An electronic looking Christmas ornament that counts down the days until Christmas.
To make the experience fit your profile, pick a username and tell us what interests you.
We found and based on your interests.
I had the opportunity and skillset to redraw the project in Altium Designer. I was unhappy with the look and feel that the project had taken last year so this year I had two spins made. One continued last years path with the seven segment displays coming through a large cutout in the PCB, and one reverting to the passthrough effect of years prior. The two boards would otherwise be electrically identical, only differing in the way the display would be handled. This would give me the most representative A-B comparison to see which path to pursue.
For the cutout version I opted to remove the spacer PCB from last years design, and reverse mount the seven-segment displays directly onto the PCB.
The passthrough version employed small perforations between the segments. The idea was that the light diffusion would stop or at least reduce at the perforation. Only the small connecting material would allow light to bleed into neighboring segments.
The micro-b USB port was dropped in favor of a hybrid USB-C port, overall making the jack feel much sturdier, although solder would be much more difficult.
The programming connector also transitioned from the 10-pin cortex header, to a 6 pin tag-connect plug-of-nails. I had resisted this approach from the beginning to avoid putting and holes in the board which would detract from the appearance on the font side. Ultimately with the USB-C port and embracing the front-side traces, I no longer felt that the three holes in the tag-connect footprint were any concern.
The battery holder changed from a soldered on type, to a battery holder, with retaining clip. This felt like a good compromise between safety and sustainability for the product.
This year I had
This was closer yet to perfection, but I was still not happy with the seven segments showing their gray faces. The perforations did seem better, but still allowed some light bleed.
Having a user-replaceable battery gave me more consideration to the process for setting the internal clock. Initially the battery was non-replaceable, so the factory RTC setting was the only one I was concerned with. Now, I could be asking a technologically-challenged person to plug this thing into a computer and send some custom string to a COM port. That was a lot to ask. I needed to think more on this problem.
The third iteration of this project was made in 2022 or 2023, in not perfectly sure, because the silkscreen year also did not get updated from 2020.
Fed up with the diffusing properties of FR4 and challenges of reverse mounting LEDs, I opted to try using proper seven-segment displays. This was a considerably more expensive solution, but I trusted the optics of a proven solution and didn't want to waste another spin and another year on more guesswork.
Our family Christmas tree, like many others', is lit by white or off-white bulbs. I didn't want the light from the ornament to significantly distract anyone viewing the tree, so sticking to the white light was a necessity. Off-white was preferred, but I didn't find any off-white seven segment displays that fit the other criteria for the project.
I was able to find some surface mount seven-segment display modules from Innolux that had white segments. These were the right size for the project, but their gray faces meant it would change the look of the final ornament.
The displays were also deeper than the FR4 was thick, meaning they would protrude out the visible side of the ornament. To compensate for this, I opted to use a spacer pcb, that would offset the surface mount pads enough so the face of the seven segment displays would be nearly flush with the front of the ornament.
This spin also modified the microcontroller footprint to allow for both QFP and QFN packages. This was during a time when many microcontrollers were experiencing supply chain shortages, so flexibility in manufacturing/assembly was top of mind.
Additionally, a small number of traces were routed on the visible side of the PCB. Ultimately, I really liked the look and this sparked a change in design philosophy for the project. I embraced the visible traces as it made the ornament look more like a techy gadget, and didn't detract from the core purpose which was to display the number of days remaining until Christmas.
Overall this spin was very good, and could have been the conclusion of the project, but visually, I was not happy with the grey faces showing. The spacer PCB relied on castellations, which this was my first shot at. I learned that having castellations without paying for castellations is a recipe for disaster. Many of the spacer boards had insufficient PTH barrel remaining to do the job, not to mention this extra PCB adds considerable assembly complexity, time, and cost.
The micro usb jack was also getting long-in the tooth. By this time the world was really moving to USB C, and micro-b was feeling more and more fragile by comparison.
I also realized the soldered battery backup, meant this thing would lose the factory preset RTC in 2-5years. At this point the owner would need to use a PC to set the time every time the ornament loses power, rendering it basically useless.
My next iteration of this project came the next year, 2021. I forgot to update the year shown on the silkscreen so this revision still shows 2020.
I was disappointed with the 'fill' for each segment of the display provided by a single 0805 LED.
My solution was to double the number of LEDs per segment. Rev 2 otherwise nearly identical.
This did seem to fill out each segment better but was still fairly hot-spotted and unfortunately created a new visual flaw. The FR4 would diffuse the light into neighboring segments. In the worst cases, it was very difficult to tell if a segment was intended to be on or off. This light bleed was unacceptable to me, but I was happy enough to finish stuffing the board and begin working on firmware.
The STM32 platform was similar to the Microchip platform I was experienced with so it was easy to get things up and running. The inclusion of STM's USB CDC library to leverage the built-in USB peripheral became an issue. This alone ate up the majority of the flash space on the micro. At this point it became apparent that I would either need to come up with another method to set the RTC, and/or move up to the next larger flash storage size.
As I worked through the development, I had begun thinking more and more about how I may want to share this design with others, either as a gift, or a product. This drastically complicates the matter of figuring how much time was left until the start of December 25th. If the timezone set in the RTC was the same as the timezone for which December 25 was referenced, things would be fine. But if the unit was relocated to a different time zone, it would reflect the time left until 25th in its original timezone. I couldn't be sure what time zone it would end up operating in, so there could be up to a 12 hour discrepancy.
UTC seemed like the most neutral choice, but if the internal time and hardcoded Christmas timestamps are in UTC, the number of days will be reflective of UTC. This is a minor problem, but something I was becoming aware of. I was considering a set of dip switches, or solder pads to set the timezone offset.
My first stab at this project began in 2020. The idea was to make a simple PCB with two-digit seven-segment displays, and a real-time clock to count down the time left until December 25th of the current year.
The first revision was designed in EaglePCB, as this was the tool I was most familiar with. This was a two layer design, with the bottom layer being the 'visible' side. I had included the standard 10 pin cortex JTAG/SWD header for programming, and a 48pin STM32F042C6 microcontroller. A micro b usb jack was located at the top which would serve as power and mounting while on the tree, and a virtual com port to set the internal clock.
Each segments of the two seven-segment displays would have a single 0805 LED behind it which would be driven directly from the microcontroller pins. I would normally have some driver chip for this, but in the interest of minimizing component count, I opted to drive the LEDs directly from the microcontroller. A single common current limiting resistor was used for the common anode net of each digit. A simple LDO used to regulate USB bus power for the micro and lights.
The bottom side side featured cursive words "Days Until Christmas", a simple bulb topper, and a full ground polygon with copper cutouts for the segments of the seven segment display. A handful of small vias were the only evidence of it being an electronic device visible from this side.
I ordered the PCB with red soldermask and white silkscreen and assembled myself.
Several flaws existed in this first spin, but the most obvious was the hotspotting of light within each segment. Unhappy with the visual result of the led arrangement, I never fully populated this spin.
Create an account to leave a comment. Already have an account? Log In.
Become a member to follow this project and never miss any updates