Mini Hemm Tree
The Story Behind the Project
The website-controlled Gonzaga Christmas Tree Ornaments that I made were really popular and fun. And each ornament was modular and independent which made adding additional clients really easy from a code perspective. The only issue was that physically building additional decorations was rather tedious, and coming up with a design that could sit on a desk and looked good was more challenging than I expected.
Around this time I was learning about PCB manufacturing and assembly. I came up with the design pictured above, which can be ordered fully assembled and cut in the right shape, leaving assembly to be as simple as slotting the two pieces together and soldering a few joints.
This year we're handing a dozen out around Gonzaga, and I gave a few to family and friends around the world. All of them sync up with each other, so my parents changing theirs in the Philippines changes the big Gonzaga tree, and everyone else's mini-trees. And each time a student changes the big tree, everyone around campus and the world with a mini-tree gets the same light color or pattern :)
Since these are so easy to produce, I'm happy to sell some! Let me know if you want to buy one.
If you need help setting yours up, check out the connection guide.
Features
Runs the same code as the Gonzaga Tree ornaments, and therefore can receive firmware updates remotely with all the other clients
A small switch sets the tree to one of three different brightness levels
A pin is grounded on all mini-trees so the code can check if it's running on a mini-tree and make adjustments
For example, on a mini tree, lights will not be full white at boot to avoid overloading a low-power USB power source
Coming soon, mini trees will light up from the bottom-up instead of clockwise, enabled by knowing where each LED physically is on the mini-tree and using a custom animation order.
The first time code is uploaded, it must be done physically. USB-UART adapters are expensive to include on every tree, and including a bulky connector for a single use doesn't really make sense. So the trees include a tagConnect footprint which is very small, free, and hardly visually noticeable. And code upload is really easy with the corresponding tool.