Skip to the content
2 layers77.5 × 67.1 mmFibre tree LED controller, the printed circuit board in 3D

Fibre tree LED controller

koczadly/xmas-led-controller2

Personal project to revitalise an ancient fibre optic Christmas tree using a custom-built digital LED module

Size
77.5 × 67.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
53
Nets
49
Pads
134
Tracks, vias
322, 0
Pours
1
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
15 Jan 2019
Updated
3 May 2025

Overview

Fibre tree LED controller is an open-source printed circuit board by koczadly, from the koczadly/xmas-led-controller repository on GitHub, published under the MIT licence. It is a 2-layer board of 77.5 × 67.1 mm with 53 parts on 49 nets, routed with 322 tracks and 0 vias.

It is built around the 74HC595. Its parts include 23 resistors, 12 diodes, 10 transistors, 2 capacitors and 2 ICs. It belongs with the PIC boards of this library.

Main components

1

README

README.md

Alrite?

Introduction

This repository contains files from a personal project. The aim was to create a small microcontroller-driven LED module to replace a broken incandescent-based fibre optic Christmas tree. This is my first project involving PIC microcontrollers, and the second PCB I've designed; mistakes and questionable design techniques are to be expected.

Files

  • PCB files are in hardware (KiCad project)
  • Software code is in firmware (MPLAB X project)

Feel free to re-use or modify this project to fit your needs, or use as a reference for PCB design or PIC software development.

Finished product

A range of final images can be found in the media folder.

Tree running program 1's animation Finished PCB

Bill of materials

MPNTypeQuantityUnit cost (GBP)Purpose
PIC12F683 (DIP)Microcontroller1£0.45Controls visual animations and user input
74HC595 (DIP)8-bit Shift Register1£0.05Controls outputs to outer blue LEDs from the MCU
N/A3mm Blue LED8£0.01Outer LED ring
N/A5mm Green LED3£0.01Inner LEDs (PWM-driven)
N/A5mm White LED1£0.01Inner strobing LED
2N3904 (TO-92)NPN Transistor10£0.01Drives each individual controllable LED group (8x Blue, 1x Green, 1x White)
N/ASPST Momentary Switch1£0.30User input for changing displayed animation/colour
N/A1000μF (25V) Electrolytic Capacitor1£0.10Supply voltage smoothing
N/A100nF (50V) Ceramic Capacitor1£0.01Decoupling capacitor for MCU
N/A10k Resistor (1/4W)1£0.001Input switch pull-down resistor
N/A1k Resistor (1/4W)10£0.001Transistor base current limiters
N/A150R Resistor (1/4W)8£0.001Current limiter for blue LEDs
N/A120R Resistor (1/4W)3£0.001Current limiter for green LEDs
N/A62R Resistor (1/4W)1£0.001Current limiter for white LED

Total component cost: £1.15
PCB panel cost (DIY): £0.35
Total cost: £1.50 (Not including etchant, solder or original tree product)


Design notes & constraints

There were various constraints throughout this project, the most difficult one being that I could only produce a single-sided PCB, making overlaps impossible without using space for a 0Ω link. The size of the board was also restricted to 68mm x 92mm, otherwise the module wouldn't fit into the tree's current plastic base housing. Drill holes also had to be made and inserted at defined locations so the board could easily be screwed into the unit using pre-existing screw mounts from the previous incandescent arrangement.

Parts

53
QtyValueFootprintReferences
101kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1, R3, R7, R8, R9, R10, R11, R12, R13, R14
102N3904Package_TO_SOT_THT:TO-92L_Inline_WideQ1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10
8150Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR15, R16, R17, R18, R19, R20, R21, R22
8LED-BLED_THT:LED_D3.0mm_FlatTopD5, D6, D7, D8, D9, D10, D11, D12
3120Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR4, R5, R23
3LED-GLED_THT:LED_D3.0mm_FlatTopD2, D3, D4
2Conn_01x02Connector_Wire:SolderWirePad_1x02_P7.62mm_Drill2mmJ1, J2
11000ufCapacitor_THT:CP_Radial_D10.0mm_P5.00mmC2
110kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR6
110nfCapacitor_THT:C_Disc_D4.7mm_W2.5mm_P5.00mmC1
162Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR2
174HC595Package_DIP:DIP-16_W7.62mm_Socket_LongPadsU2
1LED-WLED_THT:LED_D3.0mm_FlatTopD1
1PIC12F683-IPPackage_DIP:DIP-8_W7.62mm_Socket_LongPadsU1

The 51 most common of 53 parts.

Similar boards

  • 2 layers45.7 × 31.8 mmLEDx16 board, the printed circuit board in 3D

    LEDx16 board

    tardate/LittleArduinoProjects

    a collection of "Little Electronic & Arduino Projects", most involving electronics or an Arduino in one way or another!

    36 parts803MIT
  • 2 layers228.6 × 100 mmMongus48, the printed circuit board in 3D

    Mongus48

    ChrisChrisLoLo/beyblock20

    The magnetic, modular, 20-key macropad that can join together to form an ortholinear board

    124 parts335GPL-3.0
  • 2 layers245.1 × 160 mm8-Bit CPU 32k, the printed circuit board in 3D

    8-Bit CPU 32k

    slu4coder/Minimal-64x4-Home-Computer

    My DIY TTL home computer with VGA and PS/2 and 4x the processing power of a Commodore C64 or Apple II.

    139 parts326
  • 2 layers100 × 95.1 mmProtoboard-6x4-breakout, the printed circuit board in 3D

    Protoboard-6x4-breakout

    electroniceel/protoboard

    Advanced protoboard layout with 1.27mm pitch for smd parts

    4,745 parts311CC-BY-4.0
  • 4 layers140 × 100 mmDc usv, the printed circuit board in 3D

    Dc usv

    TobleMiner/DC-UPS

    A small DC UPS, designed to keep small appliances like consumer network equipment running during power outages

    351 parts223CERN-OHL-P-2.0
  • 2 layers100.5 × 218.3 mmTraktorino, the printed circuit board in 3D

    Traktorino

    silveirago/traktorino

    The open-source DIY MIDI Controller for DJs.

    96 parts220
  • 2 layers287.8 × 126.7 mmNoName, the printed circuit board in 3D

    NoName

    AlaaSaadAbdo/battoota

    Keyboards

    267 parts188
  • 2 layers100 × 100 mmTommyPROM32-595, the printed circuit board in 3D

    TommyPROM32-595

    TomNisbet/TommyPROM

    Simple Arduino-based EEPROM programmer

    36 parts187

Questions

How big is the Fibre tree LED controller PCB?

It measures 77.5 × 67.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Fibre tree LED controller use?

53 parts, built around the 74HC595. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Fibre tree LED controller KiCad files?

From the koczadly/xmas-led-controller repository on GitHub, at the commit this page was made from: the board is hardware/Fibre tree LED controller.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Fibre tree LED controller design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).