The Inspiration
I stumbled across John Beardon’s hack https://john.beardon.net/hacking-a-fibre-optic-christmas-tree/ one late December evening. Brilliant! I have an ancient halogen fibre optic tree needing this. In recent years I’ve been saying… “just one more year” as I fished it out of the loft. It grinds, creaks, and feels like a fire hazard whilst gobbling up loads of electricity.
The Patient


This is a generic late-90s/early 2000s fibre optic tree. These units rely on a 12V Halogen MR16 bulb to push light through a rotating colour wheel and into the fibre bundle at the base.
Back in the day this was “fine” , but today the problems are:
- Fire hazard: The halogen bulb gets incredibly hot, posing a fire risk.
- Mechanical Noise: The synchronous AC motor for the colour wheel was grinding.
- Inefficiency: High current draw.
- No changes to light pattern: Apparently some of these trees had a black and white colour wheel, though I don’t recall having one.

The Upgrade
I wanted to use parts and modules I had on hand. Digging around I found these:
Electronics
- Qty:1 Adafruit Trinket M0 3V
- Qty:3 Kitronik Zip Sticks (Stock code: 35129)
- Qty:1 RobotDyn level converters, as the ZIP stick is 5V
- Qty:1 Old 5V USB power supply
Mechanical
- 3mm thick cast acrylic to make PCB and LED mounts.
Wiring Schematic
graph LR
A[5V DC Input] --> B[Trinket M0 3V]
A --> C[LED ZIP STICKS]
A --> D
B --> |Data|D[Level Shifter]
D --> |Data|C
Prototyping and Build
A quick sanity check "Hello World" with Arduino IDE.
Acrylic laser cut.
Circuit modules mounted.

The Result
We are happy with it. Future upgrades perhaps:
- Mode switch to cycle through patterns and colours
- Home Assistant integration
- Pattern sensitivity to ambient noise


