Skip to the content
2 layers70 × 70 mmTannenbasisV4, the printed circuit board in 3D

ESP32-powered Christmas tree ornament: 66x WS2812 LEDs on a 4-wing dual-PCB tree, IR remote with learnable sleep timer, browser-based pattern editor, LDR auto-brightness

Size
70 × 70 mm
Copper layers
2
Thickness
1.6 mm
Parts
69
Nets
65
Pads
271
Tracks, vias
591, 69
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
3 Oct 2026
Updated
3 Oct 2026

Overview

TannenbasisV4 is an open-source printed circuit board by broedschroed, from the broedschroed/NeoChristmasTreeV2 repository on GitHub, published under the MIT licence. It is a 2-layer board of 70 × 70 mm with 69 parts on 65 nets, routed with 591 tracks and 69 vias.

It is built around the ESP32-S3-WROOM-1-N8, AMS1117-3.3 and IP5306, with the USBLC6-2SC6 and BSS123 among its other parts. Its parts include 20 connectors, 19 resistors, 14 capacitors, 5 ICs and 5 diodes. It belongs with the lEDs and displays boards and the ESP32 boards of this library.

Main components

5

README

README.md

NeoChristmasTree V2

An ESP32-powered Christmas tree ornament built from two interlocking, fir-tree-shaped PCBs, lit by 66 individually addressable WS2812 LEDs and controlled by an IR remote or a browser-based pattern editor.

NeoChristmasTree lit up, with remote

Highlights

  • 66x WS2812 LEDs across 4 wings (2 PCBs plugged together at a right angle, front and back of each), plus 2 tip LEDs at the very top.
  • IR remote control — direct pattern selection, brightness, on/off, and a learnable sleep timer (30 minutes to 4 hours, set by repeatedly pressing the Timer button; the tree shows the corresponding "level" of its wings as live feedback).
  • Remote-learning mode — any compatible IR remote's 13 buttons can be taught to the tree, with LED feedback on the tree itself during learning.
  • Browser-based pattern editor — while powered via USB, the tree opens a local WiFi access point with a web UI (served from LittleFS) to create, edit, preview, and transfer lighting patterns between two trees.
  • Automatic brightness — an onboard light sensor (LDR) adjusts LED brightness to the ambient light, capped by the brightness set via remote.
  • Proper power management — on battery, switching off fully cuts power via a FET-driven double-click of the physical power button; on USB, the regulator stays active and only the LEDs go dark.

Hardware

  • ESP32 (NeoPixel data on pin 16)
  • VS1838B IR receiver
  • LDR for ambient-light sensing
  • FET power switch to emulate a double-click power-off on battery
  • Two interlocking fir-tree-shaped PCBs ("Tannenfluegellaengs" and "Tannenfluegelquer"), each carrying 32 of the 66 LEDs
  • Main control board ("TannenbasisV4") carrying the ESP32, IR receiver, LDR and power management; KiCad sources for all three boards under docs/Leiterplatten/
  • 3D-printed base housing; STL files under docs/Gehäuse/

Repository layout

  • *.ino / *.h — firmware (Arduino/ESP32 sketch)
  • data/www/ — the pattern editor web UI, uploaded to the ESP32's LittleFS filesystem (Arduino IDE "ESP32 Sketch Data Upload" or equivalent)
  • docs/manual/ — user manual (PDF)
  • docs/system/ — system documentation (PDF; describes an earlier hardware revision, kept for reference)
  • docs/Leiterplatten/ — KiCad sources, gerbers, schematic and front/back PCB renders for the control board and the two wing PCBs
  • docs/Gehäuse/ — STL files for the 3D-printed base housing
  • docs/Bilder/ — photos and a short clip of the finished tree

Building

Open NeoChristmasTreeV2.ino in the Arduino IDE (or arduino-cli) with the ESP32 core installed, plus the libraries IRremote, Adafruit NeoPixel, ArduinoJson, and ESPAsyncWebServer. Flash the sketch, then upload the contents of data/ to the ESP32's LittleFS filesystem (e.g. via the "ESP32 Sketch Data Upload" tool) to make the pattern editor available.

Hold the mode/learn switch while powering on to enter IR remote-learning mode.

License

Released under the MIT License.

Parts

69
QtyValueFootprintReferences
622µFCapacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolderC5, C6, C7, C9, C10, C11
510kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR6, R9, R13, R15, R18
41ΩResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R2, R7, R8
3100kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR5, R16, R19
3100ΩResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR10, R12, R14
310µFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2, C13
2100nFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC3, C8
2100µFCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC4, C12
25k1Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR3, R4
2LED1outMyLibrary:solderconnect-1J8, J9
2LED2inMyLibrary:solderconnect-1J10, J11
2LEDdataMyLibrary:solderconnect-1J6, J7
2LEDvddMyLibrary:solderconnect-1J2, J3
2LEDvssMyLibrary:solderconnect-1J4, J5
2mountMyLibrary:solderconnect-1J13, J14
1100%LED_SMD:LED_1210_3225Metric_Pad1.42x2.65mm_HandSolderD4
1100nCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC14
11kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR17
11µHMyLibrary:MyPowerCoilL1
1220ΩResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR11
125%LED_SMD:LED_1210_3225Metric_Pad1.42x2.65mm_HandSolderD1
150%LED_SMD:LED_1210_3225Metric_Pad1.42x2.65mm_HandSolderD2
175%LED_SMD:LED_1210_3225Metric_Pad1.42x2.65mm_HandSolderD3
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U2
1BSS123Package_TO_SOT_SMD:SOT-23Q1
1BatteryConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1
1Boot/FlashButton_Switch_SMD:SW_DIP_SPSTx01_Slide_6.7x4.1mm_W8.61mm_P2.54mm_LowProfileSW4
1Developer-IOConnector_PinHeader_2.54mm:PinHeader_2x14_P2.54mm_VerticalJ19
1ESP32-S3-WROOM-1MyLibrary:ESP32-S3-WROOM-1U5
1I2CaConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ16
1I2CbConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ15
1I2CcConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ20
1IP5306MyLibrary:IP5306U1
1LDRConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ18
1LEDLED_SMD:LED_1210_3225Metric_Pad1.42x2.65mm_HandSolderD6
1On/OffButton_Switch_SMD:SW_DIP_SPSTx01_Slide_6.7x4.1mm_W8.61mm_P2.54mm_LowProfileSW1
1ResetButton_Switch_SMD:SW_DIP_SPSTx01_Slide_6.7x4.1mm_W8.61mm_P2.54mm_LowProfileSW2
1USB-C-Plug-MyMyLibrary:MyUSB-CP2
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U3
1USB_B_MicroMyLibrary:USB_Micro-B_PinsJ12
1VS1838BOptoDevice:Vishay_MOLD-3PinU4
1mode/learnButton_Switch_SMD:SW_DIP_SPSTx01_Slide_6.7x4.1mm_W8.61mm_P2.54mm_LowProfileSW3

More from broedschroed/NeoChristmasTreeV2

1
  • 2 layers88.6 × 138.7 mmTannenfluegellaengsV31, the printed circuit board in 3D

    TannenfluegellaengsV31

    broedschroed/NeoChristmasTreeV2

    ESP32-powered Christmas tree ornament: 66x WS2812 LEDs on a 4-wing dual-PCB tree, IR remote with learnable sleep timer, browser-based pattern editor, LDR auto-brightness

    45 partsMIT

Similar boards

  • 4 layers103 × 56 mmEsp32-alarm clock, the printed circuit board in 3D

    Esp32-alarm clock

    jeremy341/esp32-alarm-clock

    ESP32 based radio-controlled alarm clock with TFT display and custom UI using a Customade software

    34 partsMIT
  • 4 layers30 × 73 mmESP32-S3 Module, the printed circuit board in 3D

    ESP32-S3 Module

    sneakylizard123-4/ESP32-S3_Module

    This is a small, self-contained development board built around the ESP32-S3-WROOM-1U. The idea is a go-to prototyping board: drop in a LiPo, plug in USB-C, and you have a programmable ESP32-S3 with WiFi/BLE/Zigbee, a…

    53 partsCERN-OHL-P-2.0
  • 2 layers53.1 × 100.5 mmJammer, the printed circuit board in 3D

    Jammer

    aryakaithal8/Jammer

    A jamming device which jam everything

    94 parts
  • 2 layers300 × 100 mmSynthesizer, the printed circuit board in 3D

    Synthesizer

    garvita4/synthesizer

    Snap-Synth is a custom-built modular synthesizer featuring mechanical keys, rotary encoders, per-key RGB lighting, and a custom-designed PCB, combining hands-on sound synthesis with an expandable hardware architecture.

    150 parts
  • 2 layers89 × 92.5 mmKabot, the printed circuit board in 3D

    Kabot

    kabot-io/kabot-hardware

    Hardware source and production files to recreate Kabot robot in physical world

    149 parts
  • 4 layers191 × 158 mmPandapute, the printed circuit board in 3D

    Pandapute

    mail2adnanyazik-bit/pandapute

    A small, esp 32 based portable computer - an upgraded version of the cardputer adv, with more functionality, processing power, and ease of use.

    131 parts
  • 4 layers38.5 × 19.5 mmCameraPosition, the printed circuit board in 3D

    CameraPosition

    Andy-Cheng1017/LEDCeliling

    NTUT IXD Graduate Exhibition

    75 parts
  • 2 layers156 × 66 mmDash 6.8, the printed circuit board in 3D

    Dash 6.8

    romioRN/Dash6.8-hardware

    wifi name "service", password 12345678, connect to 192.167.4.1

    152 parts11Apache-2.0

Questions

How big is the TannenbasisV4 PCB?

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

What parts does the TannenbasisV4 use?

69 parts, built around the ESP32-S3-WROOM-1-N8, AMS1117-3.3, IP5306 and USBLC6-2SC6. 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 TannenbasisV4 KiCad files?

From the broedschroed/NeoChristmasTreeV2 repository on GitHub, at the commit this page was made from: the board is docs/Leiterplatten/TannenbasisV4/TannenbasisV4.kicad_pcb and its schematic docs/Leiterplatten/TannenbasisV4/TannenbasisV4.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the TannenbasisV4 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).