
BaseChipOnly
ZonatedCord/Yggdrasill
Smart LED plant pot — ESP32 PCB, WS2812B/SK6812 LEDs, WLED firmware, modular 3D-printed vase, and a native iOS app with Apple's Liquid Glass design.

Smart LED plant pot — ESP32 PCB, WS2812B/SK6812 LEDs, WLED firmware, modular 3D-printed vase, and a native iOS app with Apple's Liquid Glass design.
BaseChipOnly is an open-source printed circuit board by ZonatedCord, from the ZonatedCord/Yggdrasill repository on GitHub. It is a 2-layer board of 39.1 × 68.9 mm with 34 parts on 50 nets, routed with 169 tracks and 39 vias.
It is built around the ESP32-WROOM-32U, LM2596S-ADJ and USBLC6-2SC6, with the MMBT3904, SMAJ5.0A and SS34 among its other parts. Its parts include 6 resistors, 4 capacitors, 3 ICs, 3 connectors and 2 diodes. It belongs with the home automation and IoT boards and the ESP32 and RISC-V boards of this library.
Base board of the Yggdrasill lamp: ESP32-WROOM-32U running WLED, 5 V input, drives the 9 leaf boards (../Foglia, 15 WS2812B each, wired in parallel). This is the second revision of ../BaseChipOnly (rev 1.03, the board that was actually fabricated and brought up).
How the board works, power budget and WLED settings: docs/base-chiponly-pcb.md.
⚠️ Limitation: verified on paper, not on a real board
Rev 2.0 has not been fabricated or assembled yet. Everything below was checked with design-rule tools, file cross-checks and circuit simulation — nothing has been measured on hardware. Simulations use component models (TI's LM2596 model, generic MMBT3904/SS34/LED models) and assumptions (cable resistance, wire length to the leaves, capacitor derating) that may differ from reality. The firmware/boot of the ESP32 cannot be simulated: "it boots" means EN and IO0 reach the right levels at the right time.
Before trusting it, build one board and follow the first power-up procedure in
docs/base-chiponly-pcb.md, then test the auto-reset withesptool.py flash_id.
| Schematic | complete, ERC 0 errors |
| PCB | complete, DRC 0 errors, schematic ↔ PCB parity clean |
| Fab files | Esportazione-2026-09-30/ (Gerbers, drill, BOM with MPNs, pick-and-place, assembly PDF with values, schematic PDF, 3D preview) |
| Fabricated | no |
| Tested on hardware | no |
| Test | Tool | Result |
|---|---|---|
| Electrical rules check | KiCad ERC | 0 errors |
| Design rules check + schematic parity | KiCad DRC --schematic-parity | 0 errors, 0 unconnected, 0 parity issues (12 known items: 0.2 mm thermal-via drills of the ESP32 footprint, same as rev 1.03) |
| Copper vs schematic | Gerber X2 pad attributes of the exported front copper | 120 / 120 pads on the right net |
| Pinout of every active part vs datasheet | netlist + datasheets | 0 mismatches (LM2596S-ADJ, USBLC6-2SC6, MMBT3904, diodes, polarised caps, connectors, ESP32) |
| ESP32 strapping pins | netlist review | IO0 pull-up + BOOT; IO2/IO12 floating (download mode OK, 3.3 V flash); IO5/IO15 internal pull-ups |
| Trace current capacity | IPC-2221, 1 oz outer layer, +10 °C | all power traces above their current (e.g. +5V bus 3 mm → 5.3 A for ~3.3 A) |
| Fab limits | JLCPCB rules | tracks ≥ 0.2 mm, vias 0.6/0.3, copper ≥ 1 mm from edge, silkscreen ≥ 0.8 mm / 0.15 mm |
| Mechanical / visual | KiCad 3D render | polarity marks, orientation, ≥ ~1 mm between parts in the regulator block, ≥ 1.1 mm from the ESP32 |
| Auto-reset (both esptool sequences) | ngspice | enters download mode; serial monitor does not reset the board |
| Power-on EN timing | ngspice | EN rises 13.7 ms after 3.3 V (spec ≥ 50 µs) |
| 3.3 V regulator: nominal, LEDs at 3 A, minimum input, start-up | ngspice + Texas Instruments LM2596 model (SNVMA65, credited in LICENSE-NOTICES.md) | 3.28 V, ≥ 3.21 V worst case; needs ≥ ~4.5 V at its input |
| Status LED current | ngspice | 4.6–6.7 mA |
| LED data line to 9 parallel leaves | ngspice | clean ~370/770 ns pulses with R5 = 100 Ω |
Re-run the checks with ./verifica.sh (ERC + DRC/parity + fab export + Gerber cross-check). Simulations: simulazioni/README.md (run simulazioni/models/get_lm2596_model.sh once to fetch the TI model).
Bugs fixed (all seen during the rev 1.03 bring-up)
| Rev 1.03 | Rev 2.0 |
|---|---|
| D2 (SS34 catch diode) reversed — shorts the regulator switch node | correct polarity, silkscreen matches |
| D1 (status LED) reversed | correct polarity; GND via moved out of the pad (likely cause of the dark LED) |
| Auto-reset wired wrong: both emitters to GND — idle adapter held the ESP32 in reset, esptool could never enter download mode | standard cross-coupled DTR/RTS circuit, like ESP32 DevKit boards |
| No BOOT / RESET buttons | SW1 BOOT, SW2 RESET (C&K PTS810), centred on the top edge |
| L1 1008 inductor, no value — burned out | Bourns SRN6045TA-101M, 100 µH, Isat 1.33 A |
| Polyfuse 12 A in 0603 — protects nothing | Bourns MF-LSMF400/12X, 4 A hold, 2920 |
| U3 (USBLC6) GND pin unconnected — no ESD protection | GND connected, VBUS to +5V (ST reference circuit) |
| TVS: bidirectional symbol, SMF5.0A part on an SMA footprint | SMAJ5.0A, unidirectional, matches the footprint |
| Reference and Value swapped on the PCB, footprints not linked to the schematic | fixed: correct BOM / pick-and-place, Update-PCB-from-Schematic works |
| 12 ESP32 thermal vias with no net | tied to GND |
| Silkscreen typo "GDN" | "GND" |
Improvements
Unchanged on purpose: board outline and mounting holes (the printed base and TasselloFissaggioPCB.stl still fit), J1 barrel jack, J2 terminal, J3 programming header (external USB-UART adapter, no USB-C), ESP32 position, C1, LED data on GPIO13.
| Path | What |
|---|---|
BaseChipOnly.kicad_pro/.kicad_sch/.kicad_pcb | KiCad 9 project |
Esportazione-2026-09-30/ | fabrication files for rev 2.0 |
verifica.sh | all automatic checks in one go |
simulazioni/ | ngspice decks, plots, results |
FIX_LOG.md | session-by-session log of every change (Italian) |
BaseChipOnly-backups/fixpcb_2026-09-30.py, relayout-work/relayout.py, build.sh | scripts that generated the PCB (record of every edit; their input boards live in the local, git-ignored BaseChipOnly-backups/) |
FileImpronte/ | ESP32-WROOM-32U symbol / footprint / 3D model |
| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 10k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R1, R2, R3, R4 |
| 4 | MountingHole_2.1mm | MountingHole:MountingHole_2.1mm | H1, H2, H3, H4 |
| 2 | 100nF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C2, C3 |
| 2 | MMBT3904 | Package_TO_SOT_SMD:SOT-23 | EN_CTRL1, IO0_CTRL1 |
| 1 | 1.2k | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | Rbot1 |
| 1 | 1000µF | Capacitor_THT:CP_Radial_D10.0mm_P5.00mm | C1 |
| 1 | 100µH | Inductor_SMD:L_Bourns_SRN6045TA | L1 |
| 1 | 100Ω | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R5 |
| 1 | 1µF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C4 |
| 1 | 2.0k | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | Rtop1 |
| 1 | 220µF 6.3V | Capacitor_Tantalum_SMD:CP_EIA-6032-28_Kemet-C_HandSolder | COUT2 |
| 1 | 22µF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | CIN1 |
| 1 | 470Ω | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R0 |
| 1 | 47µF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | COUT1 |
| 1 | 4A | Fuse:Fuse_2920_7451Metric_Pad2.10x5.45mm_HandSolder | Polyfuse1 |
| 1 | BOOT | Button_Switch_SMD:SW_SPST_PTS810 | SW1 |
| 1 | Barrel_Jack_Connector | USBC:BarrelJack | J1 |
| 1 | ESP32-WROOM-32U | USBC:XCVR_ESP32-WROOM-32U | U1 |
| 1 | ESP32_PROG_1x6 | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J3 |
| 1 | LED | LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolder | D1 |
| 1 | LM2596S-ADJ | Package_TO_SOT_SMD:TO-263-5_TabPin3 | U4 |
| 1 | Morsetto | USBC:Morsetto_3_Vie | J2 |
| 1 | RESET | Button_Switch_SMD:SW_SPST_PTS810 | SW2 |
| 1 | SMAJ5.0A | Diode_SMD:D_SMA | D_TVS1 |
| 1 | SS34 | Diode_SMD:D_SMA | D2 |
| 1 | USBLC6-2SC6 | Package_TO_SOT_SMD:SOT-23-6_Handsoldering | U3 |

ZonatedCord/Yggdrasill
Smart LED plant pot — ESP32 PCB, WS2812B/SK6812 LEDs, WLED firmware, modular 3D-printed vase, and a native iOS app with Apple's Liquid Glass design.

ZonatedCord/Yggdrasill
Smart LED plant pot — ESP32 PCB, WS2812B/SK6812 LEDs, WLED firmware, modular 3D-printed vase, and a native iOS app with Apple's Liquid Glass design.

ZonatedCord/Yggdrasill
Smart LED plant pot — ESP32 PCB, WS2812B/SK6812 LEDs, WLED firmware, modular 3D-printed vase, and a native iOS app with Apple's Liquid Glass design.

ilomon10/embedded-totalizer-hour-meter
ESP32 engine hour meter & totalizer: firmware, SensorFrame protocol, Node host tools, KiCad PCB and a Deno device simulator

matatma23-gento/embedded-portfolio
This repository collects KiCad hardware design projects. Project specifications, validation results, and individual contributions are being documented; the presence of design files does not imply production readiness or…

Takazudo/zudo-pd
P15 r1 is the common 27 × 40 mm STUSB4500 15 V / 3 A module for LED first, then PD15. The same PCB, population and NVM image serve both. Source: board-p15-draft.kicadpcb and ../../scripts/schgen/boardp15spec.py.

Satya777777/ESP32-Industrial-IO-Controller
4-layer ESP32-based industrial I/O controller designed in KiCad with 0–10 V, 4–20 mA, RS485, USB-C and relay interfaces.

rico-x/GemilaiMate
Gemilai 3007Z DIY carrier and standalone firmware. Prototype: hardware not assembled or tested.

hghaken/ESP-iRadio
ESP32 internet radio with Bluetooth A2DP output (headphones/speaker), 1.69" display and web control

hoeken/frothfet
Yarrboard load controller board with current sense, volt sense, fuses, and sender support.

YORROY123/kicad-scripted-pcb
Three KiCad 10 PCBs designed entirely as Python code with layered verification
It measures 39.1 × 68.9 mm and has 2 copper layers, 1.6 mm thick.
34 parts, built around the ESP32-WROOM-32U, LM2596S-ADJ, USBLC6-2SC6 and MMBT3904. 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.
From the ZonatedCord/Yggdrasill repository on GitHub, at the commit this page was made from: the board is PCB/BaseChipOnly_rev2/BaseChipOnly.kicad_pcb and its schematic PCB/BaseChipOnly/BaseChipOnly.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask ZonatedCord before reusing the design.