FreshSqueezed Contact Me
About Me... (Dave Entenman)

Overall Skillset

  • Electro-Mechanical Drafting; Orthographic, isometric, electrical schematic, etc.
  • Printed Circuit Board (PCB) Design; single/dual/6-layer, analog/digital
  • Automotive Repair; (among many other things) rebuilt two 4-cylinder engines, rebuilt 4-speed manual transmission (Fiat X-1/9)
  • Competitive Autocross & Gymkhana; Class PB Fiat X-1/9
  • Competitive Road Bicycle Racing; Road (Cat3; Criterium, Stage), Track (Cat4)
  • Home Remodelling; electrical, plumbing, framing, finishing, etc.
  • Production Management
  • Program/Project Management
  • Ladder-Logic Structures/PLC programming, etc.
  • Application Development; HTML, VB, VBA, C#, JavaScript, PHP, Perl, SQL

    Curiosity

    From an early age I'd always been curious about how things worked and what made them tick. I was very fortunate to have a very loving mother that gave me an opportunity to tinker and learn. Mom "gave" me our first color console television set that she'd previously deemed too expensive to have diagnosed and repaired by a qualified individual. That opportunity started me down an exciting path.

    My Brother Paul

    I remember first meeting my bother sometime in 1965 or 66. I must've been around 6 or 7 years old at the time. I was playing near our detached garage at our home near Lemon Grove, California when I saw my mother burst out of the door to our house and began hugging this tall man in a uniform. I found out a few minutes later that that man was my brother. I knew I had an older sister at the time but did not recall a lot of conversations about a brother (yeah, I know... I'm sure it was talked about but how much attention does a 6 year-old pay to details?).

    At any rate, getting to know my brother Paul was a great experience for me. I truly looked up to him in those days and continue to do so to this day. Paul took me on my first fishing trip to Green Lake in Seattle. He also spent countless hours playing catch with me under the freeway overpass next to our house. These were fantastic memories for me since I always had a difficult time feeling like I fit in anywhere -especially with kids my own age. It was Paul that fostered my interests in anything mechanical or electronic. It was Paul that taught me how to bleed the brakes on our family car. He even trusted me enough to rebuild his carburetor on his V8 Ford while he was at work. Paul also taught me to solder (a skill I put to great use during my High School years).

    Speaking of High School -I focused my elective-credit efforts in the vocational area. My freshman year I began my endeavor into mechanical drafting -ultimately progressing through four years of that subject. As a Sophomore, I also took as many courses in electronics as my schedule would allow. Tinkering with electronic components and devices became my hobby. I remember blowing my $20 monthly allowance on resistors, capacitors and digital IC's at our neighborhood Radio Shack on a routine basis.

    The Great Audio/Light-Box Project

    It was Paul again that suggested we turn his living room bookcase into an audio-controlled lightbox. Remember, these were the days before printed circuits could be made in your kitchen... so using a schematic I developed, we procured some SCRs and other components and proceeded to solder-up the circuit using a simple wood plank and nails for the connection points. It wasn't elegant, but it was very functional. Finally, we installed a string of C2 Christmas lights in the bookcase, connected the three-tiered audio filter/driver to them and finally encased it in a sheet of prismatic plastic Paul procured from a local supply house in Seattle's SoDo district. The completed unit worked quite well... two separate displays (stereo, you know), each with 3 tunable channels of color (red for bass, blue -mid, green -treble). I think both were quite proud of our joint project.

    Experiments During My High School Summers

    In my High School years I continued to tinker with the components I was able to obtain. I remember making a calculator (remember, these were the days before hand-held or even electronic desktop devices were readily available) using a huge industrial surplus volt meter. It was a simple device, using two separate adjustable-voltage circuits which by placing them in parallel produced the sum. After careful thought, I ultimately came up with a multiplication circuit using a resistance-ladder technique. The whole unit must've weighed over 90 lbs! Again, not elegant, but I was still proud of it.

    I remember having obtained several of the hard-bound Texas Instruments data books in those days. These were a great resource for me, as they helped guide me as I continued to experiment with discrete transistors and ultimately migrating to simple analog and digital integrated circuits. I did a lot of tinkering with the common "555" timer, simple Flip-Flops, Nixie-tube drivers, AND, OR, NOR, NAND gates, etc. I'm sure I was viewed as a geek, but I had a blast in those days.

    Fast-Forward to Adulthood...

    I began a long career with a local dot-matrix printer manufacturing company, met and married my lovely wife, started a family with two wonderful children and had less time to devote to tinkering. When personal computers began to become available in the workplace, I received my first exposure with the ever-popular IBM PC-XT. Although we only had a handful of them in our company, I was able to find time to play around with MS-DOS and a few other simple (by today's standards) applications. By the mid-90's just about everyone (including me) in our company had a PC. I was hooked.

    Introduction to Object-Oriented Programming

    In 1996 I took my first Visual Basic programming class at a local community college. This was a blast and I used every free moment (much to the dissatisfaction of my family I'm sure) to do my homework, as well as work-ahead and experiment with new routines, etc. VB 4 was the current version at the time, but I seem to remember VB6 being available by the time I completed the coursework. For my class project I chose to develop an application called "Cycle-Companion". As I was also heavy-into bicycle riding and was a part-time racer with a local team, I thought this was a natural fit. The application featured a gear-inch calculator, chainring and cog gear-ratio selector, daily training guide and diary and a few other select features.

    Initial MS Access Projects for Work

    Soon after being promoted to Production Manager at the company mentioned above, I discovered that several of our test processes were both inefficient and provided few metrics. Ah, now I could put some of my new-found education to work. I began by transferring all of our test procedures that were only available in paper form at the time -to HTML. This allowed them to be updated remotely and instantly. It also provided a means of controlling our documentation from an ISO-9001 perspective (i.e., no more having to manually return several floor-copies of an old document in exchange for a new revision, etc.). I was pretty proud of this idea, as it provided an interactive means of conveying the applicable steps of a given test process -new trainees loved it.

    Next I tackled the test metrics issue. Using MS Access, I created a client-server database where the test results of each device could be entered by our technicians (as part of the HTML step-by-step guide mentioned above). Now with our data in one repository, creating reports & graphs from Access Jet-engine was a snap. My superiors and colleagues were always impressed with my "one-click" reports that were provided to them in our weekly quality and production meetings.

    My First VB Shareware Application

    My daughter began playing basketball -first at the Jr. High and AAU level (this must've been around 1999 or so). Being a geek, I searched for a cost-effective way to record her game stats... no luck. Well, necessity is the mother... -What a perfect opportunity for me to develop an app while keeping my coding skills in good practice. BasketScore was born. This project was a true work-in-progress as it literally took about 18 months of incremental improvements before I felt proud enough of my work to release it to the world. I won't go into too much of the operational details and features here, as you can take a closer look at it on my VB page.

    A New Career Brings New Coding Opportunities

    After 27 great years with my "first" company, my work ended abruptly -along with about 200 other fine individuals, as the company fell victim to the tough economic conditions experienced by several other manufacturing entities. We merged with our main competitor and transferred our production operations to Reynosa, Mexico. I had the dubious "honor" of having to lay-off my staff of over 100 as the last of our printers made their way down the factory. As each manufacturing cell completed its job, we prepared its equipment for shipment and turned off the lights. I was initially confident in my abilities and accomplishments -thinking I'd have a new job in no time. By the 9th month (yes, it was a long time) I was pretty depressed. I must've applied for close to 100 jobs -I even applied to sell insurance, cellphones -anything to pay the mortgage. I then got a call from a 1 year-old start-up with about a dozen employees (coincidently just a few miles from my home). I was ultimately hired as the warehouse manager for Integrated Healthcare Systems. Although it wasn't as prestigious as my previous job (nor did it pay nearly as well), it was the perfect environment for me. My duties ranged from purchasing our production equipment to coordinating shipments and deliveries.

    Development of a Pretty Standard, but Important Inventory Database

    But the best news? Being a start-up, IHS kept virtually no records of what was purchased, shipped, sold or returned. We had no central MRP system. This was a great opportunity for me to develop a database to finally begin tracking our six-figure product packages. Using my old friend MS-Access I created another client-server database -this time to track each of the products purchased (ranging from Ethernet cables, to PCs, servers, barcode printers & scanners, etc.) and ultimately shipped to our customers. The database gave IHS the ability to finally understand where its products (and money) were going. The built-in metrics also gave instant information on which customers were slow to reorder consumables, etc.as well. Shortly thereafter, IHS became known as Talyst -an industry leading provider of pharmacy-automation hardware and software.

    VBA Inventory Database

    My next project for Talyst was much more involved; The cornerstone of our product line was the sale of a value-added medication dispensing device for in-patient pharmacies. These devices required a special, custom-configured canister for each size/shape of pill that it was to dispense. Depending on the model chosen, these "packagers" as they're known will contain anywhere from 150 to 500 canisters. Our customers would order canisters from us based upon the specific National Drug Code (NDC) parameters for each pill dispensed. Similar to our purchasing and shipment history (or lack thereof), IHS did not have a formal means of tracking which canisters were ordered for any of our customers... this no doubt was a problem.

    Because the only spare time I had was in the evenings it took several months before I was able to roll out my first iteration of "CaniTrak". CaniTrak is the app I'm most proud of.

    Some of the features include;

  • Customer Shipment and packager model data
  • Database of individual pill profiles for each NDC
  • Ability to track order & delivery info for each canister process (over 110,000 to-date)
  • Automatic export of orderable canisters by NDC
  • Automatic import of received canister orders
  • Failure and repair details & metrics by canister, or customer
  • Auto-generated graphs of canister/NDC popularity, order history, failure mode, etc.

    Currently, the database is a 49MB monster tool that continues to evolve with added features on a weekly basis. As you can see, I've been very fortunate to work for a company that affords me the time to develop tools as the need arises. To Talyst I am extremely grateful.

    Medication Dispensing Kiosk User Interface (C#)

    In 2017 my (three member) team was commissioned to create a POC medication dispensing kiosk for a retail environment. Our company had purchased five cosmetic-sample dispensing systems from a company known for designing and placing similar vending systems (DVD's, coin-collection, etc.) outside of grocery stores. After installing several of the cosmetic-sample kiosks inside stores across the country, the project was cancelled (I'm sure for business reasons), and the kiosks were removed -thus giving Talyst an opportunity to purchase the devices at a very favorable price.

    The cancellation of the manufacturer's kiosk program made it extremely difficult to obtain much, if any development documentation, etc. Our team had to essentially reverse engineer just about every aspect of the kiosk in order to understand its operation and prepare it to be repurposed for our use. The most challenging aspect was understanding the design of the purpose-built robotics controller CBA and its firmware (written in C++). However, my colleagues were ultimately able to successfully modify and recompile the code to suit our needs.

    My initial task was to create a user specification for our newly-repurposed unit's touch-screen user interface. Due to our time constraints (we had intended to have a POC ready for trade-show display in just four months time) we had intended the UI to be created by an outside partner. I completed my rather detailed UI spec within a week and submitted it to a familiar partnering engineering firm we'd utilized in the past. After reviewing my specification, the firm returned with a bid of about $300k for the UI. This figure nearly equaled our budget for the entire project! As an alternative, I asked for (and was granted) an opportunity to try my hand at creating the user interface myself.

    Again, with almost zero documentation available, I spent approximately one week evaluating the existing code structure and controller board architecture in order to develop a coding strategy. Within the next three days I had a working UI (C#), and successfully dispensed a pill vial. Over the course of the next several weeks my team and I incorporated a barcode label printer into the kiosk and had a fully operational pill vial dispensing kiosk in our lab.

    Here are some of the features I incorporated into the kiosk:

  • Touch interface with guided audio instruction
  • User ID presentation utilizing an on-board magnetic card reader (user name parsed from credit/debit card, etc.)
  • Alternative user ID presentation via a custom-design on-screen keyboard
  • On-screen confirmation of prescription, featuring a graphic of the patient's prescribed pill-type
  • Optional feature to speak with a remote pharmacist via secure video link (similar to Skype, etc.)
  • On-board payment acceptance using debit/credit card, etc., again using integral magnetic card reader
  • Signature-capture via touch screen
  • Dispense communication with kiosk's robotics system via RS-232
  • Vial label printing utilizing user's captured data and prescription information
  • Receipt label printing featuring;
          -Payment details
          -User's pharmacist consultation selection
          -Drug interaction details
          -Graphic depiction of user's captured signature
  • On-board retention of dispensing history (including text file reports), etc. utilizing MS SQL Server Express LocalDB
  • Secure and hidden access to owner-accessible layer for restocking, data retrieval, etc.

    Sadly, the project was cancelled (and my team eliminated) before the kiosk could be deployed in a beta environment.

    Arpeggio Generator for Guitarists

    Due to a need to better understand the relationship between musical chord structures and their applicable scales & modes I (unsuccessfully) searched for an app that displayed those relationships as needed. As I'm always looking for new challenges I began coding my own solution. Although not polished enough for external distribution, the application (IMHO) performs very well. I simply incorporated a DataGridView object to represent the guitar neck, and populated the appropriate arpeggio notes for each chord selected from a drop-down box. The application can display, save and print up to 4 arpeggios in a given chord progression. I find it quite handy and refer to it frequently when learning to solo over new songs, etc. Given time, I may improve the app and consider offering it commercially.

    My Wonderful Family

    As I truly respect their privacy concerns and needs, I haven't really mentioned my family much in the above text. However, I will tell anyone who will listen to me that although I'm not a well-educated individual, I owe all of my happiness and success to my wonderful wife (words can't describe), son, daughter, daughter-in-law, and the newest member... my grandson. I'm IMMENSELY proud of all of them. They've taught me, guided me and introduced me to many wonderful things. I'm forever grateful.

    What's Next?

    Stay tuned...

  • spacer
    Links