Skip to the content
PCBKitNew board
2 layers125 × 68 mmLights, the printed circuit board in 3D

ESP32 firmware project built with PlatformIO + ESP-IDF.

Size
125 × 68 mm
Copper layers
2
Thickness
1.6 mm
Parts
27
Nets
56
Pads
142
Tracks, vias
203, 0
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
22 Feb 2026
Updated
15 Oct 2026

Overview

Lights is an open-source printed circuit board by aarusso-nyx, from the aarusso-nyx/Luce repository on GitHub. It is a 2-layer board of 125 × 68 mm with 27 parts on 56 nets, routed with 203 tracks and 0 vias.

It is built around the AM2302. Its parts include 7 resistors, 5 capacitors, 5 connectors, 4 ICs and 3 diodes. It belongs with the ESP32 boards of this library.

Main components

1

README

README.md

Luce Firmware

ESP32 firmware project built with PlatformIO + ESP-IDF.

scripts/luce.sh refreshes PlatformIO discovery, including sourcing your ~/.zshrc environment when required.

Build/Flash/Monitor

Use the repository scripts for deterministic local workflows:

bash
source ~/.zshrc
./scripts/luce.sh build                    # build all environments
./scripts/luce.sh upload --env default      # flash a specific environment
./scripts/luce.sh monitor --env default     # serial monitor with timestamps
./scripts/luce.sh test --layers all --env net1 --host https://<device-ip> --http-token <token> --tcp-token <cli-token>

You can also call PlatformIO directly when preferred. Use pio when available; use python3 -m platformio only when the module is installed in the active Python.

For Python contract-test dependencies, use a local virtual environment:

bash
python3 -m venv .venv
.venv/bin/python -m pip install -r tests/requirements.txt

Serial Ports and Runtime Iteration

Operational serial port policy for Luce CORE/NET workflows:

  • Flash/upload port: /dev/cu.usbserial-0001
  • Mirror monitor/console port: /dev/cu.usbserial-40110

Use the following exact commands unless the port assignment is changed intentionally:

bash
pio run -e default -t upload --upload-port /dev/cu.usbserial-0001
pio device monitor -p /dev/cu.usbserial-40110
pio run -e net0 -t upload --upload-port /dev/cu.usbserial-0001

Autonomous firmware iteration:

bash
source ~/.zshrc
./scripts/luce.sh build --env <env>
./scripts/luce.sh upload --env <env> --upload-port /dev/cu.usbserial-0001
./scripts/luce.sh monitor --env <env> --monitor-port /dev/cu.usbserial-40110

For net0, run CLI commands (help, status, nvs_dump, i2c_scan, mcp_read, relay_set, relay_mask, buttons, lcd_print, reboot) and collect the first 80 monitor lines after reset.

Monitor fallback (if termios fails on this host):

bash
python3 - <<'PY'
import sys, serial
with serial.Serial('/dev/cu.usbserial-40110', 115200, timeout=0.2) as ser:
    for _ in range(80):
        line = ser.readline()
        if line:
            sys.stdout.write(line.decode('utf-8', errors='replace'))
PY

Feature flags

LUCE_NET_* selects network feature groups in build_flags.

  • default — no LUCE_NET_* flags (baseline): NVS, I2C, LCD, CLI
  • net0 — -DLUCE_NET_CORE=1: baseline + Wi-Fi + NTP + mDNS + TCP CLI
  • net1 — -DLUCE_NET_CORE=1 -DLUCE_NET_MQTT=1 -DLUCE_NET_HTTP=1 -DLUCE_NET_OTA=1: net0 + MQTT + HTTP + OTA

In scripts/luce.sh build, LUCE_ENV can optionally build a single env. If unset, all declared envs are built. Default PlatformIO environment is default. Canonical SDK config is a single file: sdkconfig (shared across all envs).

Ports used by bootstrap scripts:

bash
Upload:  /dev/cu.usbserial-0001
Monitor: /dev/cu.usbserial-40110

Documentation Locations

  • Product/architecture/operations docs: docs/user/
  • Governance evidence: docs/governance/audit/, docs/governance/health/, docs/governance/compliance/
  • Scratch investigation/diagnostics/plans: docs/work/inv/, docs/work/diag/, docs/work/plan/

Parts

27
QtyValueFootprintReferences
3100nFCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mmC2, C3, C5
3470Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR5, R6, R7
3LEDLED_THT:LED_D3.0mmD1, D2, D3
3MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3
2100kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR1, R2
2100µFCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC1, C4
147kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR3
1AM2302Sensor:ASAIR_AM2302_P2.54mm_VerticalU1
1BSS138_4chBSS138:BSS138U3
1BUTTONSConnector_PinHeader_2.54mm:PinHeader_1x09_P2.54mm_VerticalJ2
1CJMCU-2317MCP23017:MCP23017U2
1ESP32-DEVKIT-V1ESP32-DEVKIT-V1:MODULE_ESP32_DEVKIT_V1U4
1I2CConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ4
1Jack-DCConnector_BarrelJack:BarrelJack_HorizontalJ5
1LDR07OptoDevice:R_LDR_5.1x4.3mm_P3.4mm_VerticalR4
1RelaysConnector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_VerticalJ1
1UARTConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ3

Questions

How big is the Lights PCB?

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

What parts does the Lights use?

27 parts, built around the AM2302. 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 Lights KiCad files?

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

Can I use the Lights design in my own project?

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

Similar boards

  • 4 layers101.6 × 141.7 mmPiPtr, the printed circuit board in 3D

    PiPtr

    jmlzone/PiPtr

    Repeater controller

    388 parts8
  • 2 layers46.5 × 38.1 mmMainboard smd, the printed circuit board in 3D

    Mainboard smd

    OpenHumidistat/hardware

    KiCAD design files for PCBs for the OpenHumidistat humidity controller

    30 parts4
  • 2 layersMars rover navigation system, the printed circuit board in 3D

    Mars rover navigation system

    tjiuce/rover

    Rover Navigation Optimization System (R-NOS): An ESP32-powered autonomous robotic prototype designed for real-time environmental monitoring.

    4 parts4
  • 2 layersWeather balloon V1.0, the printed circuit board in 3D

    Weather balloon V1.0

    Launchpad-Incubator/weather-balloon

    The research repository for Launchpad's flat-packed weather balloons.

    3 parts2
  • 2 layersPriject 2 ESP32 build, the printed circuit board in 3D

    Priject 2 ESP32 build

    Aanuoluwap/555blinker

    This repository contains electronics design projects created using KiCad.

    12 parts1MIT
  • 2 layers100 × 100 mmGasGuard, the printed circuit board in 3D

    GasGuard

    pasinduh2002/GasGuard

    IoT and ML-based LPG monitoring system with ESP32 leak detection, automatic valve shutoff, real-time mobile alerts and refill prediction. Built with React Native, Firebase and Python.

    14 parts1MIT
  • 2 layers94 × 68.5 mmWireless temp sensor, the printed circuit board in 3D

    Wireless temp sensor

    Akilesh-10/Wireless_Temperature_Sensor

    This is pcb project

    21 parts