Skip to the content
2 layers48.3 × 59.2 mmXmas board, the printed circuit board in 3D

Christmas Tree-shaped PCB Driven by ATtiny25V-10SU and Powered by a CR2032

Size
48.3 × 59.2 mm
Copper layers
2
Thickness
1.6 mm
Parts
36
Nets
17
Pads
66
Tracks, vias
336, 63
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
17 Nov 2025
Updated
12 Dec 2025

Overview

Xmas board is an open-source printed circuit board by Cosmin2106, from the Cosmin2106/xmas-pcb repository on GitHub, published under the Apache-2.0 licence. It is a 2-layer board of 48.3 × 59.2 mm with 36 parts on 17 nets, routed with 336 tracks and 63 vias.

It is built around the ATTINY25V-10SU, CR2032 and KMR421NGLFS. Its parts include 12 diodes, 4 resistors, 2 capacitors, 2 switches and 1 IC. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

3

README

README.md

ATtiny-powered Christmas Tree

The goal of this project was to create a Christmas decoration that houses a secret puzzle. The implementation is based around the Microchip ATtiny25V at 1 MHz, which offers 5 GPIO pins with pin change interrupts. The board is driven by a single CR2032 battery and features a button for user input.

The MCU can be either programmed using the exposed connectors of the "tree trunk", or with an SOIC-8 clip. In my case, I opted for the latter. Details regarding the programmer can be found in this repository.

Modes of Operation

When we turn on the board, we can perform a quick check to see if the button is already being held down or not. If we encounter a normal power cycle, we enter christmas decoration mode. The button is now dedicated to cycling through different prebuilt light shows. If the button is being pressed at boot, we enter game mode instead. The game idea is inspired by Pop The Lock and Stop Me. To optimize flash usage, we emulate randomness by using a linear congruential generator as PRNG. At the end of each game, the board displays the total number of points using the "branch" LEDs: one left blink means +10, one right blink, +1. Using EEPROM flags, we can remember if the user surpassed a hard-coded points threshold in order to unlock secret light shows in the other mode.

BOM

DesignatorFootprintQuantityDetails
BT1Renata_HU2032LF1Renata 701106 holder for CR2032
C14021Ceramic 100 nF
C24021Ceramic 10 uF
D1, D11, D3, D5, D7, D96036Osram LO L29K-J2L1-24-0-2-R18-Z
D10, D12, D2, D4, D6, D86036Osram LY L29K-H1K2-26-0-2-R18-Z
R1, R2, R3, R44024150 Ω
SW1SW_Push_1P1T_NO_CK_KMR21C&K KMR421NGLFS
SW3SW_DPDT_CK_JS202011JCQN1C&K JS202011JCQN
U1SOIC-8_5.3x5.3mm_P1.27mm1ATtiny25V-10SU

Photos

Front Side of Assembled PCB Back Side of Assembled PCB
Image Licenses:
Improvements?

If you have ideas for improvements, please don't hesitate to reach out! Since this is my first custom PCB project, advice would be highly appreciated! :D

Parts

36
QtyValueFootprintReferences
10LOGOLOGOG***, G***, G***, G***, G***, G***, G***, G***, G***, G***
6LO L29K-J2L1-24-0-2-R18-ZLED_SMD:LED_0603_1608MetricD1, D3, D5, D7, D9, D11
6LY L29K-H1K2-26-0-2-R18-ZLED_SMD:LED_0603_1608MetricD2, D4, D6, D8, D10, D12
4150ΩResistor_SMD:R_0402_1005MetricR1, R2, R3, R4
2Tooling HoleMountingHole:ToolingHole_1.152mmH2, H3
1ATtiny25V-10SPackage_SO:SOIC-8_5.3x5.3mm_P1.27mmU1
1CR2032Imports:Renata_HU2032LFBT1
1Ceramic 100nFCapacitor_SMD:C_0402_1005MetricC1
1Ceramic 10uFCapacitor_SMD:C_0402_1005MetricC2
1KMR421NGLFSButton_Switch_SMD:SW_Push_1P1T_NO_CK_KMR2SW1
1Mounting HoleMountingHole:MountingHole_3.2mm_M3_DIN965H1
1On/Off Switch JS202011JCQNButton_Switch_SMD:SW_DPDT_CK_JS202011JCQNSW3
1Pin HeadersConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJ2

Similar boards

  • 2 layers85.6 × 54 mmName card, the printed circuit board in 3D

    Name card

    Nicholas1023/name-card

    My PCB name card with a microcontroller, LEDs and RFID tag.

    16 partsMIT
  • 2 layers177 × 119.4 mmStrobe torch panelized, the printed circuit board in 3D

    Strobe torch panelized

    PublicDomainProject/strobe-torch

    Little flashlight (or torch in UK) to generate 50, 60 and 300 Hz strobe light to calibrate turntables with a strobe discs

    300 parts
  • 2 layers63 × 88 mmParagon, the printed circuit board in 3D

    Paragon

    timbalicious/netrunner_paragon_pcb

    Possibly functional PCB alt-art Paragon for the Netrunner LCG

    128 parts
  • 2 layers333.4 × 149.9 mmOmega Mainboard, the printed circuit board in 3D

    Omega Mainboard

    skiselev/omega

    Omega Home Computer

    248 parts459GPL-3.0
  • 2 layers17.2 × 30.4 mmWeigand, the printed circuit board in 3D

    Weigand

    linklayer/BLEKey

    A Bluetooth Low Energy device for interfacing with Wiegand

    17 parts268
  • 4 layers188 × 188 mmITX Llama, the printed circuit board in 3D

    ITX Llama

    eivindbohler/itxllama

    422 parts246GPL-3.0
  • 2 layers61 × 36.8 mmKeebcard, the printed circuit board in 3D

    Keebcard

    rsheldiii/Keebcard

    Home of the KeebCard project - Kicad files, code, and more!

    15 parts112
  • 2 layers59.2 × 41 mmBluey, the printed circuit board in 3D

    Bluey

    electronut/ElectronutLabs-bluey

    Nordic nRF52832 BLE development board with sensors.

    79 parts96

Questions

How big is the Xmas board PCB?

It measures 48.3 × 59.2 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Xmas board use?

36 parts, built around the ATTINY25V-10SU, CR2032 and KMR421NGLFS. 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 Xmas board KiCad files?

From the Cosmin2106/xmas-pcb repository on GitHub, at the commit this page was made from: the board is cad/xmas-board/xmas-board.kicad_pcb and its schematic cad/xmas-board/xmas-board.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Xmas board design in my own project?

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