Skip to the content
4 layers104.4 × 50.9 mmChristmasLight, the printed circuit board in 3D

ChristmasLight

bamnet/village

I have a collection of 1-2 dozen Department 56 lighted Christmas houses. The default lighting solution has a big problem though: a house is either lit or not.

Size
104.4 × 50.9 mm
Copper layers
4
Thickness
1.58 mm
Parts
56
Nets
69
Pads
263
Tracks, vias
413, 109
Pours
5
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
22 Dec 2018
Updated
8 Nov 2026

Overview

ChristmasLight is an open-source printed circuit board by bamnet, from the bamnet/village repository on GitHub, published under the Apache-2.0 licence. It is a 4-layer board of 104.4 × 50.9 mm with 56 parts on 69 nets, routed with 413 tracks and 109 vias.

It is built around the 74AHCT125D, ESP32-S3-WROOM-1-N16 and SI7021-A20-GM, with the LM1117-3.3, USBLC6-2SC6 and SK6812 among its other parts. Its parts include 15 resistors, 10 capacitors, 9 diodes, 8 connectors and 7 ICs. It belongs with the ESP32 boards of this library.

Main components

7

README

README.md

Village Electric Light Department

(village, for short)

Background

I have a collection of 1-2 dozen Department 56 lighted Christmas houses. The default lighting solution has a big problem though: a house is either lit or not. Further, the default technique of daisy-chaining all of the plugs together means the entire village is typically on or off.

This is not very realistic, our winter Dickens Village is not North Korea.

Goal

The Village Electric Light Department provides the ability for each house to be individually dimmed and to have that brightness vary throughout the night. This enables much more custom and realistic displays, with each house following its own lighting pattern throughout the night and across different nights.

Approach

2018?

In 2018 we built our first prototype. To do this, we bought an RGB LED strip and cut it into individual segments. We soldered wires onto each segment, and wired them all back into a TLC5947 controlled by an ESP32.

Each house got one cut segment of a 12 V analog (not individually addressable) RGBW strip (Shiji Lighting SJ-10060-RGBW, 60 LEDs/m). A segment has 3 warm-white 5050 RGBW LEDs. Each color channel runs its 3 LEDs in series with a current-limiting resistor (150 ohm on G/B/W), roughly 20 mA per channel. The TLC5947 sank each channel's current. See archive/2018_led_segment.jpg.

This was a good proof of concept, but the construction was quite messy with flexible LED strip segments haphazardly positioned in the back / bottom lighting holes of the houses, a messy breadboard wiring this all together, and standalone power supply.

2020?

We started cleaning up this design by introducing a circular PCB with LEDs that we could fit into a 3D printer holder for each house. These could, in theory, be wired back to a base station for control.

Ultimately, we never finished a working end-to-end design here, largely driven by the manual work to solder connectors onto each of the PCBs and, more importantly, the manual work to build custom cables to connect the PCBs back to the base station.

2025

We specified a two-board design (ESP32-S3 base station running WLED, plus a daisy-chained 20 mm Pixel PCB with SK6812 RGBW LEDs) and started a controller layout. Nothing was fabricated because we ran out of time.

Specifications

Requirement keywords (MUST, SHOULD, MAY) follow RFC 2119. Items marked TBD are open decisions.

System

  • The system MUST support 22 houses.
  • Each house MUST be independently addressable, so its brightness can be set on its own. Addressing each LED within a house MAY be supported, but is not required.
  • Houses SHOULD be daisy-chained, with the base station driving about 4 chains (roughly 6 houses per chain). This keeps cables short and the base station tidy. It is a preference, not a hard requirement: another topology is acceptable if it is clearly better.

Physical layout

  • Tentatively, the base station sits in the middle, between two shelves, with chains running outward on both sides.
  • Houses are spaced about 1 ft (0.3 m) apart. A house-to-house cable of about 1 m gives enough slack.
  • The farthest house is no more than 8 ft (2.4 m) from the base station.

Light

As a winter village, each house MUST be lit using warm white light. Each house MAY support RGB to fine tune the colors and do neat patterns.

The light should be bright, historically using a 5 - 6 watt C7 bulb @ 120 volts. We obviously want to modernize this with an LED.

  • Research (2026-09) shows small incandescent C7 bulbs are dim. Retail listings give a 4 W clear C7 as 16 - 19 lm, and a 5 W, 130 V-rated C7 as about 10 lm. LED "5 W equivalent" C7 bulbs claim 50 - 75 lm, but those figures are marketing, not measurements. The 2025 spec's "~60 lm" target is probably 3x too high.
  • The 2018 prototype segment was bright enough, even with its poor LED placement on a flexible strip. It had 3 warm-white RGBW 5050 LEDs per house, each channel's LEDs in series at about 20 mA.
  • Brightness target: warm-white output per house SHOULD match the 2018 segment, meaning 3 warm-white RGBW 5050 LEDs driven at about 16 - 20 mA.
  • Each house MUST use one WS2814 as its driver. It is a 4-channel RGBW constant-current driver that WLED supports (configured as SK6812 RGBW type). Its outputs are fixed at 16.5 mA per channel, about 80% of the 2018 current. TBD: confirm this is bright enough.
  • As of 2026-09-30, the original SOP-12 WS2814 (C965562) shows 0 stock at LCSC. The draft schematic uses the WS2814F (FSOP-8, C5446694, about 107,000 in stock). It has the same 16.5 mA outputs, the same 9 V DIN rating, and the same 12 V application circuit (2.7k to VDD, 0.1 uF). It has no backup data input (DIN2), so there is nothing to tie off. Its data order is W, R, G, B (datasheet p. 4). The WS2814A (SOP-8, C2920044, about 7,800 in stock) is the same die in a larger package. It is the fallback, with a standard SOIC-8 footprint.
  • Decided (2026-09-30): the Pixel PCB uses the WS2814F. Its smaller body leaves more room for the LEDs on the 20 mm board.
  • The WS2814F's FSOP-8 footprint (1.65 x 3.25 mm body, 2.85 mm lead span, 0.8 mm pitch) is not in KiCad's stock libraries, so we drew it. Once it's proven on a fabricated board, consider contributing it (and a WS2814 symbol) upstream to the KiCad libraries.
  • Each channel drives 3 LEDs in series, and all 3 LEDs show the same color, with one address per house. The white channel MUST be warm white (2700 - 3000 K).
  • LEDs SHOULD be 3 RGBW 5050 4-in-1 packages with a warm-white die, matching 2018. Fallback: 3 RGB LEDs plus 3 separate warm-white LEDs, which also allows a free choice of warm-white LED.
  • As of 2026-09, LCSC has two warm-white 4-in-1 RGBW 5050 parts (SMD5050-8P, with a separate anode and cathode pin per color). Both are JLCPCB extended parts. Figures are from the datasheets, at 20 mA:
    • Honglitronic HL-5050RGBW-S1-A27 (C22470444): about 11,000 in JLCPCB stock. The "-A27" suffix is the datasheet's white bin A27, which is 2580 - 2870 K. That is slightly warmer than 2700 - 3000 K at the low end. White gives 7 - 9 lm, CRI 80 or better. Forward voltage is 2.8 - 3.4 V (W/G/B) and 1.8 - 2.4 V (R).
    • TCWIN TC5050RGBW3D06-4CSAR3-AFW324A (C784543): 2800 - 3200 K. White gives 6 - 7 lm, CRI 80 - 85, with a forward voltage of 2.8 - 3.2 V. Stock is low (about 240 at JLCPCB, 860 at LCSC).
    • Cool-white variants that do not meet the spec: XINGLIGHT XL-5050RGBW (C7371891), TCWIN C784545 (6000 - 6500 K), and C784544 (3800 - 4200 K). Chosen: Honglitronic C22470444. We tested samples of both parts in 2026-11. The Honglitronic white was warmer and slightly preferred. Its spec sheet (B-18-A-1651 rev A/2, 2019) has "Under Development" checked on its cover, not "Mass production", but JLCPCB stocks it, so this looks like stale paperwork.
  • Heat is not expected to be a concern. The cut-up LED strip prototype ran without heat problems.
  • Driver heat (estimated): 3 red LEDs drop only 5.4 - 7.2 V, which leaves up to about 6.6 V across the WS2814's red output (about 110 mW at 16.5 mA). The draft adds a 120 ohm ballast resistor (R4) on red to take about 2 V (33 mW) of that off the chip. With all four channels at full, the WS2814 then dissipates about 0.2 W worst case. Warm-white-only use is well below this.
  • The two LED candidates number their pins differently. Honglitronic has anodes on pins 1/3/5/7 (W/B/G/R) and cathodes on 2/4/6/8. TCWIN has anodes on 1-4 (R/G/B/W) and cathodes on 8-5. Physically they match: with the corner mark at the top left, looking at the lens, both put the anodes on the right with white at the top, and each cathode is directly across from its anode. A multimeter check of both samples (2026-11) confirmed this for white. The schematic and footprint use the Honglitronic numbering.

Interconnect

The lack of a practical cable solution is what stalled the 2020 attempt, so it is a first-class requirement here.

  • Cables MUST be off-the-shelf or easily purchasable. We MUST NOT need to crimp, solder, or otherwise build our own cables (the system needs about 24 of them).
  • House-to-house links need cables of about 1 m. TBD: the length from the base station to the first house in each chain.
  • The WS2814 datasheet specifies data runs of up to 2 m between two points without extra circuitry. The base-station-to-first-house run SHOULD stay within about 2 m. Otherwise the base station needs a stronger line driver.
  • Cables MUST be standard 3-wire RC servo extension cables (JR/Futaba style, 2.54 mm pitch), bought ready-made. 1 m male-to-female cables are widely sold. 22 AWG is preferred over 26 AWG for lower voltage drop.
  • Boards MUST use 2.54 mm pitch 1x3 headers: male pins for the incoming cable and a female socket for the outgoing cable. JLCPCB SHOULD solder these through-hole parts (v0.1 headers were hand-soldered; see the Pixel PCB section).
  • Pinout MUST put power on the middle pin, following the servo convention. Then a reversed plug swaps ground and data rather than shorting the supply. The design SHOULD tolerate a reversed plug without damage, using series resistors on data lines and similar measures. This is to be verified during design: in a reversal, a house's ground rides on the upstream data line, and the WS2814 data input is rated to only 9 V.
  • Draft protection (Pixel PCB schematic v0.1, estimated rather than tested):
    • Reversed plug: this house's GND pin lands on the upstream data line. The return current of this house and every house downstream is about 2.6 mA per house through its 2.7k VDD resistor, so about 16 mA for 6 houses, since the LEDs stay dark with no valid data. Most of it flows through the upstream house's R3 (100 ohm) into the upstream WS2814's DOUT. For the first house in a chain, it flows into the Dig-Quad's output buffer instead. Only about 1 - 2 mA goes through this house's R2 (1k) and D1. The part at risk is therefore the upstream driver. The datasheet rates DOUT sink current at 10 mA minimum at 0.4 V (p. 3), which is less than 16 mA. While the upstream DOUT is high, this house's ground rises to about 5 V. The current then splits between R2/D1 (about 5 mA) and the upstream chip's VDD. D1's job is to clamp DIN so it can't go below this house's lifted GND.
    • Offset plug (a socket shifted one pin over on the header): 12 V can land on the data pin. R2 limits this to about 7 mA into VDD through D1, so R2 dissipates about 45 mW (the 0402 is rated 62.5 mW). The pass/fail limit is the datasheet's VDD absolute maximum of 3.7 - 5.3 V (p. 2), so VDD must stay at or below 5.3 V.
    • Why keep D1: the datasheet limits logic input voltage to "VDD-0.7 ~ VDD+0.7" (p. 2). The lower bound is almost certainly a typo for -0.7 V. Either way, DIN may go only about 0.7 V beyond the rails. The BAT54S (Vf about 0.3 V) keeps DIN inside that window in both the reversed and offset cases. A series resistor alone would not.
    • DOUT keeps the datasheet's 100 ohm series resistor.
    • TBD: the R2 value. Test on the first fabricated Pixel boards (the LED samples on order don't include a WS2814F):
      • Reversed plug: check that the upstream DOUT and the Dig-Quad output survive and still work afterward.
      • Offset plug: measure VDD with 12 V on DATA_IN. It must stay at or below 5.3 V. No circuit change is planned until those results are in.
  • Flat servo cable fits the original cord channel. It is thinner than the classic 120 V lamp cord that already uses it.

Power

  • The system MUST use a 12 V supply. We chose 12 V over 5 V because of voltage drop. 5 V SK6812 LEDs need at least 4.5 V at the last house, which leaves only about 0.5 V for losses across a chain of servo cables. At 12 V, 3 white/blue/green LEDs in series need about 9 - 9.6 V (3.0 - 3.2 V each). Allowing for the driver output, that leaves roughly 1.5 V of headroom. These are estimates: the WS2814 datasheet does not specify the minimum output voltage it needs to regulate.
  • Estimated load: about 66 mA per house with all four channels at full, so about 1.5 A (18 W) for 22 houses. With warm white only, it is about 16.5 mA per house, so about 0.4 A.
  • Estimated voltage drop: about 0.6 V at full RGBW for a 6-house chain on 26 AWG cable (about 2 m to the first house, then 1 m hops). This is within the headroom.
  • For the prototype, power enters through the Dig-Quad's input screw terminals. TBD: a supply sized with margin (for example 12 V, 3 A or more).

Pixel PCB

  • The project targets KiCad 10. Files saved in KiCad 10 cannot be opened in KiCad 9.
  • Draft schematic: hardware/pixel/pixel.kicad_sch (v0.1). It was authored in KiCad 9 format and is ERC clean in KiCad 9.0.2 and 10.0.6.
  • Custom footprints live in the project library hardware/pixel/village.pretty (nickname village), since neither part is in KiCad's stock libraries:
    • FSOP-8_1.65x3.25mm_P0.8mm (U1, WS2814F). From the datasheet package drawing (V1.1, p. 6): 0.35 mm leads with 0.4 mm feet. The land pattern is 0.9 x 0.45 mm pads centered 2.6 mm apart (0.3 mm toe, 0.2 mm heel).
    • LED_Honglitronic_HL-5050RGBW_5.0x5.0mm_P1.2mm (D2-D4). This is the manufacturer's recommended land pattern (spec B-18-A-1651 rev A/2, p. 3): 1.1 x 0.54 mm pads, 2.83 mm inner gap, 1.2 mm pitch. Pads are numbered as in the datasheet's top view: anodes 1/3/5/7 on the right, cathodes 2/4/6/8 on the left, pin 1 at the top right. The part's corner mark sits at pin 2 (white cathode), and the footprint's silkscreen tick and Fab chamfer mark that corner. KiCad's usual pin-1 marking would put the tick on the white anode, which would make a correctly placed LED look rotated in review.
    • The LED datasheet's "bottom view" labels the pins the same as its top view, not mirrored, so one of the two views is wrong. A 2026-11 multimeter check of a sample (diode mode, red lead on the anode) showed that the top view is correct. With the corner mark at the white cathode, the white anode is directly across from it. That is the footprint as drawn, not a mirror image.
    • TBD: both footprints are unproven until a fabricated board is assembled and works. The TCWIN LED would fit the same pads, but its symbol pin numbers would need remapping, because its pad numbering differs.
  • In order to fit the 3D-printed holder that sits in each house's lighting hole, the per-house PCB ("Pixel PCB") MUST be a circle no bigger than 20 mm in diameter. This is small, but large enough to fit several LEDs as needed.
  • The lighting hole in the house itself is slightly larger than the holder hole. The hole size is broadly consistent across houses (the original lights are interchangeable). TBD: the measured house hole size.
  • Some houses have the lighting hole in the back and some in the bottom. For bottom holes, the original clip-in lamp sits in the hole and its cord leaves sideways, flush with the base, through a notch and cord channel in the house base.
  • For bottom holes, the assembly can extend up to about 1 in (25 mm) into the house.
  • A daisy-chained house has two cables (in and out). Both MUST fit through the notch and cord channel. Two flat servo cables fit, since a classic 120 V lamp cord does.
  • LEDs MUST be on the top side, clustered near the center. Headers (through-hole) go on the bottom side.
  • All surface-mount parts, the WS2814 included, SHOULD also go on the top side. That keeps assembly to one surface-mount side, which is simpler and cheaper. Moving the WS2814 to the bottom is allowed if the LEDs don't fit otherwise, but it requires JLCPCB two-sided (Standard) assembly. Settled in layout: every surface-mount part, the WS2814F included, is on the top side.
  • Through-hole header pins and solder joints come out on the LED side. Headers MUST sit near the rim, with a centered keep-out for the LEDs.
  • Headers SHOULD be right-angle, mounted side by side on the bottom, with both pointing the same way (toward the cord notch). The plugs then lie flat under the board. This gives a much lower profile than vertical headers, and both cables already point where they need to go. JLCPCB-assemblable candidates: male C492411 and female C2897385. If two plugs don't fit side by side on the 20 mm board, fall back to vertical headers. TBD: confirm the fit with real servo plugs (the width is estimated at about 8 mm each).
  • Provisional layout (placed and routed, pending real plug dimensions): hardware/pixel/pixel.kicad_pcb.
    • The board is a 20 mm circle. The cord notch is taken to be at the south (+Y) edge.
    • J1 and J2 are on the bottom side, with pin rows side by side about 4 mm north of center. Their bodies point south and run under the board, so the plugs mate near the south rim and lie flat. This works because the headers and plugs are on the bottom while every other part is on the top, so the header bodies can sit under the top-side parts.
    • This relaxes "headers near the rim". The pin rows sit just north of the LEDs, and the LED cluster sits about 2.5 mm south of center.
    • The header rows are 8.9 mm apart, center to center. KiCad's stock footprints need at least 8.62 mm, which is slightly more than the estimated 8 mm plug width.
    • J1 and J2 use KiCad's stock right-angle footprints. Checked against the LCSC drawings on 2026-09-30, and the copper matches:
      • J1, male (XFCN PZ254R-11-03P, C492411): Ø1.02 mm holes and 0.64 mm square pins (0.91 mm across the corners, so they fit the 1.0 mm drill). The body's front face is 4.4 mm from the pin row, and the pin tips are at 10.4 mm (KiCad draws 4.04 mm and 10.04 mm).
      • J2, female (HCTL PM254-1-03-W-8.5, C2897385): Ø1.02 mm holes. The 8.5 mm body ends 10.2 mm from the pin row (KiCad draws 10.03 mm), and the body is 8.02 mm wide (KiCad draws 7.62 mm). A purchased sample measured about 8.09 mm wide (2026-11).
      • KiCad's courtyards still cover both real bodies. With the rows 8.9 mm apart, the bodies are about 1.1 mm apart.
      • The pin tails are 3.0 and 3.2 mm long, so on a 1.6 mm board they stick up about 1.4 - 1.6 mm on the LED side.
    • Pin order: the stock footprints put J1's pin 1 at the west end and J2's pin 1 at the east end, so the two GND pins are adjacent. Neither part is polarized, so this only decides which way up each cable plugs in.
    • Silkscreen markings for plugging in and for JLCPCB's assembly review:
      • Bottom: a filled triangle points at each header's pin 1 (data), with "+" and "-" at the other pins. These shapes read the same whether or not they are mirrored.
      • Bottom: "JLCJLCJLCJLC" marks where JLCPCB should print its order number. The 2026-11 order form had no "Specify a location" option, so v0.1 was ordered with "Mark on PCB: Remove Mark" instead.
      • Top: "v0.1", and a pin-1 dot inside U1's outline. The footprint's pin-1 silkscreen line is clipped by J1's GND pad, so without the dot the top and bottom lines would look alike.
      • The LEDs keep their pin-1 tick. D1 uses KiCad's stock SOT-23 outline.
    • On the top side, the LEDs follow the chain +12V -> D2 (east, rot 90) -> D3 (south, rot 0) -> D4 (west, rot 270) -> U1. Each LED faces the side that connects to the next LED toward it, so each group of four color nets between LEDs fans diagonally with no crossings. D4's R/G/B cathodes sit just below U1's matching outputs. U1 is between D4 and D2, with R4 on the red output and C1 beside the VDD pin. D1, R1, C2 and R2 sit above the header pin rows.
    • Routed with Freerouting 2.4.1: 4 vias. +12V and GND are 0.4 mm (a Power netclass), because up to ~0.4 A passes through to the rest of the chain. Signals are 0.2 mm. VDD narrows to 0.15 mm around U1, and the board minimum is set to 0.15 mm to allow it.
    • DRC: 0 errors, 0 unconnected. JLCPCB's limits are enforced by pixel.kicad_dru and the board setup.
    • Routing workflow: export the DSN with KiCad's Python module (pcbnew.ExportSpecctraDSN). Route with Freerouting's bundled launcher, because the standalone jar needs Java 25. Import the session in KiCad with File -> Import -> Specctra Session. Konnect's own DSN export refuses this board (round outline, back-side headers, custom rules).
    • JLCPCB export: Konnect's export_manufacturing_package with the board open in KiCad, fab_house jlcpcb, all copper/paste/silkscreen/mask layers plus Edge.Cuts, BOM fields Value,Reference,Footprint,LCSC, and jlcpcb_cpl_corrections_path set to jlcpcb_cpl_corrections.json. That file rotates U1 by 270 degrees and D1 by 180 degrees in the CPL. Both values came from comparing our footprints with JLCPCB's EasyEDA footprints for the BOM parts. The same comparison reproduces Konnect's preview-verified SOIC-8 rule. The LEDs need no correction. JLCPCB's placement preview for v0.1 confirmed U1, D1 and the LEDs.
    • JLCPCB's Economic assembly is single-sided, so it leaves off the bottom-side headers J1 and J2. Standard assembly can do both sides but needs a board of at least 70 mm. v0.1 (5 boards) was assembled top side only, with J1/J2 hand-soldered.
    • TBD: for the 22-board run, either order a JLCPCB panel of at least 70 mm (for example 4 x 4) with Standard two-sided assembly, or move the headers so that single-sided assembly covers them. Hand soldering MUST be kept to a minimum.
    • Manufacturing releases live in hardware/pixel/production/<version>/, named after the silkscreen version. Each has the exact uploaded files and a MANIFEST.md with the source commit, file hashes, checks, and the order record. When an order is placed, fill in the manifest and tag the commit pixel-<version>. An ordered release is never changed. A design change bumps the silkscreen version and gets a new folder.
    • TBD: revisit the header positions once real plugs are measured.
  • The connector, the holder, or both SHOULD let the cables make the turn into the channel without stressing the connectors or their solder joints.

Base station

  • For prototyping, we will buy an off-the-shelf WLED controller instead of designing one, so the effort goes into the Pixel PCB. A custom base station is deferred. The requirements below still apply to whatever we use. The prototype controller is the QuinLED Dig-Quad (pre-assembled): 4 level-shifted outputs, 12 V capable, and a plug-in fuse per pair of outputs, which should be sized to protect the servo cables.
  • For the prototype, each chain connects to the Dig-Quad's screw terminals using a servo extension cable cut in half, with the ends stripped. This is an accepted exception to the no-built-cables rule, since it needs no soldering or crimping.
  • The base station does not have any sizing constraints.
  • It MUST be compatible with WLED (ESP32-based), so we can get started quickly. Custom firmware is a future goal and is out of scope for now.
  • Because of that, the LED or driver IC on the Pixel PCB MUST be one of the LED types WLED supports.
  • The WS2814 data input needs a logic-high of at least 0.7 x VDD (about 3.5 V), which is above the ESP32's 3.3 V. Each chain output MUST go through a 5 V level shifter (for example 74AHCT125) and a series resistor.
  • It MUST have enough chain outputs for the chosen topology (about 4).
  • No extra features, such as sensors or current monitoring, are required.

Manufacturing

  • Both boards SHOULD be assembled by JLCPCB, as completely as possible, including the connectors. Hand soldering MUST be kept to a minimum.
  • Minimize cost per house, but pay for factory assembly rather than hand work where there is a trade-off.

Parts

56
QtyValueFootprintReferences
510KResistor_SMD:R_0402_1005MetricR1, R2, R7, R8, R9y
4100nCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC1, C3, C8, C9
41KResistor_SMD:R_0402_1005MetricR5, R6, R7, R9
4jst connectorConnector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_VerticalJ6, J7, J8, J9
333RResistor_SMD:R_0402_1005MetricR6, R7, R9x
3ESD3.3Diode_SMD:D_SOD-923D2, D4, D6
3SK6812LED_SMD:LED_SK6812_PLCC4_5.0x5.0mm_P3.2mmD5x, D7, D8
21uCapacitor_SMD:C_0603_1608MetricC4, C7
222uCapacitor_SMD:C_0805_2012MetricC5, C6
25.1KResistor_SMD:R_0402_1005MetricR3, R4
274AHCT125Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU5, U6
2MountingHoleMountingHole:MountingHole_3.2mm_M3H3, H3
10.1uCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC9x
110uCapacitor_SMD:C_0603_1608MetricC2
11N5817Diode_SMD:D_SOD-123D1
12K2Resistor_SMD:R_0402_1005MetricR6
1BLM21PG220Inductor_SMD:L_0805_2012MetricFB1
1BOOTButton_Switch_SMD:SW_SPST_B3U-1000PSW2
1CLV1L-FKBLED_SMD:LED_Cree-PLCC4_3.2x2.8mm_CCWD5
1Conn_01x04Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ5
1Conn_02x03_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJ3
1ESP32-S3-WROOM-1-N16Morten_Library:ESP32-S3-WROOM-1U2
1GREENLED_SMD:LED_0603_1608MetricD3
1INA219AxDPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU5
1LM1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U3
1Pin_2x5Connector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ2
1Polyfuse 1AFuse:Fuse_1206_3216MetricF1
1RESETButton_Switch_SMD:SW_SPST_B3U-1000PSW1
1Si7021-A20Package_DFN_QFN:DFN-6-1EP_3x3mm_P1mm_EP1.5x2.4mmU4
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U1
1USB_C_Receptacle_USB2.0Morten_Library:USB_C_Receptacle_HRO_TYPE-C-31-M-12J1
1USER_SWMorten_Library:SW_Tactile_SPST_Angled_PTS645Vx31-2LFSSW3

More from bamnet/village

1
  • 2 layers20 × 20 mmPixel, the printed circuit board in 3D

    Pixel

    bamnet/village

    I have a collection of 1-2 dozen Department 56 lighted Christmas houses. The default lighting solution has a big problem though: a house is either lit or not.

    13 partsApache-2.0

Similar boards

  • 4 layersESP32, the printed circuit board in 3D

    ESP32

    lhaquoc/kicad_learning

    kicad_learning

    42 parts
  • 4 layers50 × 50 mmESP32-S3, the printed circuit board in 3D

    ESP32-S3

    ysaip07/KiCAD_Project

    Personal PCB design projects using KiCad, reflecting a strong foundation in electronics design, component footprints, and PCB fabrication workflows.

    52 parts
  • 4 layers61 × 60.7 mmESP32-S3 IOT, the printed circuit board in 3D

    ESP32-S3 IOT

    dohaahmed2135-oss/kicad-learning-projects

    Welcome to my KiCad Learning Projects repository!

    42 parts
  • 4 layers50 × 50 mmESP32-S3-testboard, the printed circuit board in 3D

    ESP32-S3-testboard

    Imdad2005/ESP32-S3-testboard

    Custom 4-layer ESP32-S3 IoT testboard designed in KiCad 9, featuring USB-C, 3.3 V power regulation, environmental sensing, and QWIIC/SPI expansion.

    42 parts1
  • 4 layers50 × 50 mmEsp32s3, the printed circuit board in 3D

    Esp32s3

    talhazmc/ESP32-S3-TestBoard-Kicad

    ESP32-S3 based custom test board PCB with USB-C, Qwiic, I2C, SPI, buttons, LEDs, and Si7021 sensor interface designed in KiCad.

    43 parts1
  • 4 layers51 × 51 mmESP32-S3, the printed circuit board in 3D

    ESP32-S3

    alisarpaksoy/ESP32-S3-Testboard

    Custom ESP32-S3 test board designed in KiCad with USB-C, Si7021 temperature/humidity sensor, Qwiic I2C connector, RGB LED, and GPIO headers.

    44 parts
  • 4 layers84 × 72 mmESP32 Custom Devboard, the printed circuit board in 3D

    ESP32 Custom Devboard

    shreyD2408/Custom_Esp32_Devboard

    This project is a custom ESP32-S3 development board designed for robotics and embedded systems. It integrates two DRV8833 motor drivers, an MPU6050 accelerometer and gyroscope, a MAX98357A audio amplifier, and…

    72 parts
  • 2 layers216 × 89 mmPcb ledmatrix, the printed circuit board in 3D

    Pcb ledmatrix

    stebit/pcb-ledmatrix

    302 parts

Questions

How big is the ChristmasLight PCB?

It measures 104.4 × 50.9 mm and has 4 copper layers, 1.58 mm thick.

What parts does the ChristmasLight use?

56 parts, built around the 74AHCT125D, ESP32-S3-WROOM-1-N16, SI7021-A20-GM and LM1117-3.3. 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 ChristmasLight KiCad files?

From the bamnet/village repository on GitHub, at the commit this page was made from: the board is archive/2025/ChristmasLight.kicad_pcb and its schematic archive/2025/ChristmasLight.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

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