Designing a PCB
This consumer product prototype was the second generation of an initial idea I had years ago. What originally started as a birthday gift, turned into a potentially marketable product. The original was a handmade, wood-encased clock that would count the exact days from a settable start date. It was meant to be elegant and simple, but have a meaningful message every time you checked it.
The first edition used off-the-shelf parts for the circuit, including an Arduino Uno R3 micro-controller, real-time clock, LED driver, push buttons, 7-segment displays, and other passive components. The programming was done with a modified version of C++ (Arduino), and included the ability to set the start date, LED glow color, while also calculating and displaying days-since and accounting for leap year rules.
With the initial success of the first version, I wanted to gain a little more product development experience so I decided to make a new version on a custom PCB, slimming the profile and improving its design for manufacturing.
The project began with product management in mind, creating a timeline, bill of materials, unit cost analysis, component inventory, complete CAD design of the housing, and plan for learning how to design PCBs.
I used Eagle CAD for the first time–a popular program for creating circuit schematics and using them to create PCBs. Note the stark improvement in ability to create schematics from version one to version two.
I originally planned to use Eagle's automated PCB trace routing function, but given that the board was dual layer (both sides), and the complex routing needed for all five 7-segment LEDs, it ended up being done by hand. It was also at this time that I learned about decoupling in push buttons (using capacitors to prevent bouncing of the button even when not pressed).
Without going into too much detail on the PCB design, it was finally finished and sent to a custom fabricator. I added silk-screening to give it a personal touch and mark all the components’ locations, About one week later the parts arrived.
I then had my first experience with soldering surface-mount devices (SMDs). These components have a much smaller package size, allowing me to clear space on the front side for the large 7-segment digits since no through-hole leads would be protruding, and ultimately reducing the package size of the entire assembly to just slightly larger than the display array.
After a lot of trial and error with different types of solder flux, I was eventually able to assemble a complete board. I flashed the boot-loader and uploaded the script along with the current date and time, resulting in a fully functioning circuit that properly displayed the days-since.
I never ended up finishing the machining of the housing, but I later printed a plastic version on a 3D printer for a temporary solution. I also noticed that I needed to increase the current capacity to the 7-segments since it appeared that they were quite dim in well-lit environments. I would love to one day revisit this project, make that correction, and create a few units for some friends. Still, this experience taught me worlds about product design and development, and a much more in-depth syllabus on circuit design than my mechanical college courses.