Skip to the content
PCBKitNew board
4 layers182 × 150 mmStarman, the printed circuit board in 3D

Starman Christmas Tree Topper PCB

Size
182 × 150 mm
Copper layers
4
Thickness
1.6 mm
Parts
248
Nets
259
Pads
1,293
Tracks, vias
1,920, 241
Pours
4
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
9 Dec 2018
Updated
28 Sep 2026

Overview

Starman is an open-source printed circuit board by adamm, from the adamm/starman repository on GitHub. It is a 4-layer board of 182 × 150 mm with 248 parts on 259 nets, routed with 1,920 tracks and 241 vias.

It is built around the ESP32-S3-MINI-1-N8, PAM8302AASCR and BA33BC0FP-E2, with the M20-8771246, PH2-06-UA and PJ-063AH among its other parts. Its parts include 145 diodes, 40 capacitors, 26 resistors, 13 ICs and 12 connectors. It belongs with the lEDs and displays boards and the ESP32 boards of this library.

Main components

8

README

README.md

Starman Christmas Tree Topper

Disclaimer: This work is a work-in-progress. While this project is still under active development, version 2.1 was released December 1st, 2022. What you see here is code that is largely incomplete, buggy, crashes, and could catch fire. The PCB board is largely inefficient, expensive, broken, and could catch fire.

Version 1 of the star is a POC I created a few years ago which was literally a 3d-printed star with 24 LEDs hot-glued onto it, driven by a LED PWM module from Adafruit, 3 PWM channels for audio, running from an Arduino Uno.

Version 2 is a complete redesign for 2022, including a custom PCB, 144 LEDs, 235 components, ESP32-S3 MCU, esp-idf framework, and WiFi/Bluetooth support. Audio is driven by 4 PWM channels, featuring a volume control and a class-D amplifier.

Version 2.1 includes over-the-air firmware updates. I plan on releasing new themes and songs every Holiday season.

As of December 2023, there are 7 themes and 81 arranged songs.

[!NOTE] I'll be demoing the Starman project, as well demoing its build process at Calgary Maker Faire, May 4 & 5 2024. Come talk to me if you are interested in purchasing a pre-built Starman for Christmas 2024!

You can see v2 in action here: https://www.youtube.com/watch?v=h6fquYPDars

Starman v2 Christmas Tree Star

The PCB is created using KiCad:

Starman v2 PCB front Starman v2 PCB back

The sound module connects to the spine of the star through 20mm pin socket risers. Finally, a 3d-printed mount secures the display to the christmas tree's top branch via the risers:

3D-printed mount

I plan on producing 10 units for friends and family for Christmas 2022. Right now the costs are too high to mass produce, so perhaps sometime in 2023 I can simplify the design and cut costs for general orders.

HOW TO PLAY

  • Press the button to start the game.
  • Start the game with three lives at level 1 (overworld). If you lose all lives, it's game over.
  • There is a 50% chance you will complete each level. If you do, you move onto next level. If not, you die and need to retry.
    • Death can occur randomly within the level.
    • Press the button again to start the next level, or retry the same level.
  • There is a 40% chance you'll get a star.
    • Stars can occur randomly within the level.
    • Stars do not negate death (ie, falling into a pit).
  • There is a 25% chance you'll get a 1-up, resulting in an extra life.
  • If you make it to level 4 (castle) and complete it, there is a 25% chance the princess will be there and the game is over.

Installation

  1. Install Starman at the top of your tree, or on your desk, shelf, or wall.
  2. Connect the play button remote cable to the play button port. Hide the play button in your tree, desk, shelf, or wall.
  3. Power it on.
  4. (Optiona) Connect to your wifi network (see below) to configure the brightness and theme.
  5. Press the physical play button, or press Play on the Starman web app

Wifi Setup

  1. Power on the Starman
  2. Watch for a "starman_######" access point, and connect to it.
  3. Search for your home Wifi, and enter the credentials
  • Starman can only connect to 2.4Ghz/WPA2 endpoints
  1. Once connected, wait for your IP address to scroll past the screen
  2. Open the IP address in your web browser
  • You can now use this site to play Starman directly, and to access the internal API.

If you ever want to factory reset Starman, follow this procedure:

  1. Press and hold Play button
  2. Press and release Reset button
  3. Release Play button Starman will forget about its current wifi configuration, theme, and configuration. Follow the Wifi Setup instructions above to set it back up again.

TODO

  • Finalize PCB design
  • Play music
  • Implement game logic
  • Unique light pattern per music song/state
  • Flash lights in sequence with music
  • GPIO play button
  • Show simple text messages
  • WiFi onboarding process
  • Over-the-air firmware updates
  • WiFi play button
  • HTTP REST API to push text, play sound
  • Brightness control
  • Selectable themes
  • Document the REST API
  • Upgrade the speaker from 800mW to 1.5W for more power
  • Debug the RC filter to reduce distortion

Known Issues

  • v2.1 PCB has a label that says it supports 7 to 12 volts power. WARNING: only 6-7V is actually supported in v2.1 hardware. Do not connect more than 7 volts!
  • Only 2.4Gz WPA2 wifi is supported (Cannot connect to 5Gz or WPA Enterprise)
  • Sound gets distorted at high volume levels.
  • It can take a long time after startup to get an IP address and start the web service
  • Even though wifi and the web service are online and functioning, the index.html sometimes takes a long time to load
  • Sometimes the device spontaneously resets if wifi connection is not stable or strong enough
  • Some songs are way too long. (>60s)
  • Some songs end way too early (<3s) with a "course completed" event.

Milestones

2022-09-01

  • PCB layout identified and key components selected

2022-09-25

  • Components ordered and footprints verified

2022-09-27

  • Upgrade from ESP32-S2 to ESP32-S3

2022-09-29

  • PCB design delivered for production

2022-10-09

  • Complete migration of core game logic from Arduino version (v1) to esp-idf version (v2)

2022-10-29

  • Framework for connecting to wifi / performing OTA updates

2022-11-02

  • Framework for showing basic text messages, like "Game Over", "Connect to Wifi", "Firmware Update in progress", etc

2022-11-27

  • Manufacturing is complete for 10 units for friends and family.

Key Components

  • ESP32-S3-Mini module

  • 9x LED1642GW drivers

  • 144 OSRAM LY P47 2mm LEDs

  • PAM8302A amplifer

  • 239 total components (35 unique)

  • Translate MIDI to Playtune C array

Build Dependencies

Parts

248
QtyValueFootprintReferences
144LEDstarman:LED_Osram_Lx_P47F_D2mm_ReverseMountD1, D10, D11, D100, D101, D102, D103, D104, D105, D106, D107, D108, D109, D110, D111, D112 +128
181uFCapacitor_SMD:C_0805_2012MetricC3, C4, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C33, C35, C36, C39 +2
911kResistor_SMD:R_0805_2012MetricR8, R9, R10, R11, R12, R13, R14, R15, R16
947uFCapacitor_Tantalum_SMD:CP_EIA-3216-10_Kemet-IC20, C21, C22, C23, C24, C25, C26, C27, C28
9LED1642GWTTRPackage_SO:TSSOP-24_4.4x7.8mm_P0.65mmU2, U3, U4, U5, U6, U7, U8, U9, U10
4500kResistor_SMD:R_1206_3216MetricR3, R17, R18, R19
475Resistor_SMD:R_0805_2012MetricR4, R5, R6, R7
310uFCapacitor_Tantalum_SMD:CP_EIA-3216-10_Kemet-IC5, C6, C40
3ECS-2333-300Oscillator:Oscillator_SMD_ECS_2520MV-xxx-xx-4Pin_2.5x2.0mmX1, X2, X3
20.1uFCapacitor_SMD:C_0805_2012MetricC29, C34
2100Resistor_SMD:R_0805_2012MetricR24, R25
2100 ncResistor_SMD:R_0805_2012MetricR22, R23
2100pF ncCapacitor_SMD:C_0805_2012MetricC31, C32
210kResistor_SMD:R_0805_2012MetricR1, R2
210uFCapacitor_SMD:C_0805_2012MetricC1, C2
2220pFCapacitor_SMD:C_0805_2012MetricC37, C38
2Conn_01x10Connector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_VerticalJ7, J9
2Conn_02x01Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ11, J12
2ESW-112-44-T-SConnector_PinSocket_2.54mm:PinSocket_1x12_P2.54mm_VerticalJ6, J8
2FerriteBeadCapacitor_SMD:C_0805_2012MetricFB1, FB2
2M20-8771246Connector_PinHeader_2.54mm:PinHeader_1x12_P2.54mm_Vertical_SMD_Pin1RightJ1, J3
2PTS810 SJM 250 SMTR LFSButton_Switch_SMD:SW_SPST_PTS810SW1, SW2
110kPotentiometer_THT:Potentiometer_Bourns_3339P_VerticalRV1
11kResistor_SMD:R_0805_2012MetricR26
122uFCapacitor_SMD:C_0805_2012MetricC30
122uFCapacitor_Tantalum_SMD:CP_EIA-3216-10_Kemet-IC7
1250Resistor_SMD:R_1206_3216MetricR21
1750Resistor_SMD:R_1206_3216MetricR20
1AZ1084CS2-ADJPackage_TO_SOT_SMD:TO-263-2U11
1BA33BC0FP-E2Package_TO_SOT_SMD:TO-252-2U12
1ESP32-S3-MINI-1Espressif:ESP32-S3-MINI-1U1
1ESW-106-44-T-SConnector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalJ4
1KiCad-Logo2_5mm_SilkScreenSymbol:KiCad-Logo2_5mm_SilkScreenLOGO1
1M20-8771246Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical_SMD_Pin1RightJ2
1OSHW-Logo_7.5x8mm_SilkScreenSymbol:OSHW-Logo_7.5x8mm_SilkScreenLOGO2
1PAM8302AASPackage_SO:SOP-8_3.9x4.9mm_P1.27mmU13
1PH2-06-UAConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJ5
1PJ-063AHConnector_BarrelJack:BarrelJack_CUI_PJ-063AH_HorizontalJ10
1SMS-1508MS-HT-Rstarman:SPKR_SMS-1508MS-HT-RLS1
1WS2812BLED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mmD145

The 247 most common of 248 parts.

Questions

How big is the Starman PCB?

It measures 182 × 150 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Starman use?

248 parts, built around the ESP32-S3-MINI-1-N8, PAM8302AASCR, BA33BC0FP-E2 and M20-8771246. 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 Starman KiCad files?

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

Can I use the Starman design in my own project?

Its repository states no licence, so its author keeps all rights: ask adamm before reusing the design.

Similar boards

  • 6 layers38.1 × 38.1 mmSmartWatch, the printed circuit board in 3D

    SmartWatch

    evgenu/EyeWatch

    78 parts
  • 2 layers76.2 × 76.2 mmSpeaker, the printed circuit board in 3D

    Speaker

    gregory-chekler/Volume-Adjusting-Speaker-PCB

    The circuit takes in a signal from an audio jack, that is of a frequency from about 40 Hz to 22 kHz (the range of human hearing). The LM 378 is supplied with 9 volts and the gain is at most 200 times.

    12 parts
  • 2 layers230.4 × 233.5 mmBkm-68x simple, the printed circuit board in 3D

    Bkm-68x simple

    skumlos/bkm-68x-simple

    Simplified BKM-68X

    216 parts7
  • 2 layers63 × 65.7 mmWifi GPIB, the printed circuit board in 3D

    Wifi GPIB

    bitdivision/GPIB-wifi-pcb

    A GPIB adapter using an ESP8266 for wifi functionality and a Cortex M0.

    113 parts4
  • 2 layers77.5 × 80 mmReader, the printed circuit board in 3D

    Reader

    antonloof/monpoly_reader

    Spela monopol fast långsamare

    56 parts
  • 2 layers81 × 55 mmFABI schematic, the printed circuit board in 3D

    FABI schematic

    asterics/FABI

    The repository for FABI (Flexible Assistive Button Interface)

    80 parts22
  • 4 layers35 × 48 mmHoppy clock, the printed circuit board in 3D

    Hoppy clock

    borkdlabs/hoppy_clock

    STM32-based alarm clock and RGB lamp: custom alarms wake you with light and your own songs, configured over USB from the browser or a Python tool

    61 parts2MIT
  • 2 layers139.7 × 100.3 mmAchterart, the printed circuit board in 3D

    Achterart

    CounterPillow/achterart

    An 8-way USB-to-UART converter board based on the CH348 chip

    63 parts2