Skip to the content
PCBKitNew board
2 layers42 × 154 mmLightmotron, the printed circuit board in 3D

A micropython project to automate neopixels via a web interface, specifically for lighting models.

Size
42 × 154 mm
Copper layers
2
Thickness
1.6 mm
Parts
15
Nets
60
Pads
100
Tracks, vias
0, 0
Routed
Not yet
KiCad
KiCad 10.0 (file 20260206)
Created
22 Mar 2026
Updated
10 Oct 2026

Overview

Lightmotron is an open-source printed circuit board by PeterDarley, from the PeterDarley/lightmotron repository on GitHub. It is a 2-layer board of 42 × 154 mm with 15 parts on 60 nets.

It is built around the ESP32-S3-WROOM-1-N8. Its parts include 8 connectors, 5 resistors, 1 capacitor and 1 IC. It belongs with the lEDs and displays and interfaces and adapters boards and the ESP32 boards of this library.

Main components

1

README

README.md

Lightmotron

A lighting controller for plastic model kits, running on an ESP32-S3. Uses NeoPixel LED strips to produce dynamic lighting effects, with optional MP3 sound playback — all configured and controlled from a web interface over WiFi, no app or account required.

License

You are welcome to use this project in products, research, kits, and services. Selling the software itself, or minor variations of it, as a standalone product is against the spirit of the project.

text
This software is licensed under GPLv3 with the following additional permission:
You may sell products or services that include this software, provided the software is not sold independently.
Distribution of the software itself, except as part of a larger product or service, is not permitted.

Features

  • NeoPixel LED strip control with 15 built-in animation patterns and 11 post-processing filters
  • Combine effects into named scenes, triggered manually or automatically
  • Optional MP3 sound playback (looping, chaining, soundscapes) synced to scenes
  • Multiple named Models, for controlling more than one kit from a single device
  • Browser-based control interface — no app install required
  • WiFi connectivity with a guided first-time setup (captive portal)
  • Firmware updates over WiFi, right from the web interface

Install

[blocked]

peterdarley.github.io/lightmotron — flashes the firmware directly from your browser over USB. No drivers, no command line, no account.

  1. Connect your ESP32-S3 board to your computer with a USB-C data cable (not a charge-only cable).
  2. Open the link above in Google Chrome or Microsoft Edge (this uses the Web Serial API, which only those browsers support).
  3. Click Install Lightmotron and select your device's serial port when prompted.

That's it — the page writes everything a blank board needs. Once it's done, unplug the USB cable (or leave it connected for power) and continue to First Boot below.

Already have a Lightmotron device and just want to update it? Use Setup → Updates in the web interface instead — see Firmware Updates below.

Hardware

  • Microcontroller: YD-ESP32-S3 board (ESP32-S3-WROOM-1 N16R8 module — 16MB flash, 8MB octal PSRAM)
  • Lighting: a NeoPixel-compatible LED strip (default GPIO 4; configurable in System Settings) — see the NeoPixel Wiring Diagram
  • Sound (optional): up to 3 YX5200-based MP3 player modules with a small amplifier and speakers — see the Hardware Reference

First Boot — WiFi Setup

On first boot (or whenever WiFi credentials are missing or fail to connect), the device starts a captive portal access point:

  1. Look for a WiFi network called lightmotron-setup on your phone or laptop and connect to it.
  2. Your device should automatically open the portal page. If not, navigate to http://192.168.4.1/.
  3. The page shows a list of nearby WiFi networks sorted by signal strength. Select yours, enter the password, then tap Save & Connect. If your network isn't listed, choose Other to enter the SSID manually, or use the rescan link if you don't see it yet.
  4. The device reboots and joins your network. You can then access it at http://lightmotron.local/ (or http://<hostname>.local/ if you've set a custom hostname). If .local addresses don't resolve on your network (common on Android), try http://lightmotron.lan/, http://lightmotron.home/, or just http://lightmotron/.

SSID matching is case-insensitive, so credentials stored with different capitalization will still connect.

Credentials are stored persistently, so this only needs to be done once. To change them later, use System Settings on the Setup page.

Web Interface

Once the device is on your network, open its address in a browser.

Home Page

Control animation playback and trigger scenes from here day-to-day: start/stop the lighting engine, switch between scenes, play sounds and soundscapes. The Active Scenes list shows both ongoing scenes and any immediate (one-shot trigger) scenes while they're running.

Home page

Setup Page

Configure everything: custom colors, named LED ranges, effects, filters, scenes, sounds, soundscapes, models, and the interface theme. See the Programming Guide for a complete walkthrough of every option and what it does.

Setup page Custom Colors Named Ranges Filters Effects Scenes Theme picker

System Settings on this page also covers WiFi credentials, hostname, NeoPixel strip wiring, and audio module pin assignments — changes there take effect on the next reboot.

IP address announcement: if audio modules are configured and the device's IP address has changed since it last booted, it announces the new address by voice automatically (each octet's digits, repeated once after 15 seconds). Use Mark Current IP as Announced on the Setup page if you don't want to hear it again for the current address.

Status Page

Monitor system health: memory and storage usage, networking details, animation state, the reason for the last reboot, and the responsiveness of any configured audio modules. Download or restore your entire configuration as a JSON backup file from here — restoring never overwrites WiFi credentials, so a backup is safe to move between devices.

Status page

Storage Page

View the raw JSON configuration underlying everything else on the device, for advanced inspection or manual editing. WiFi passwords are masked as *** here for safety.

Firmware Updates

Setup → Updates checks the configured GitHub repository (defaults to this one) for a newer release and, when you confirm, downloads and installs it — no cable required. Your settings, scenes, and sounds are untouched by an update; only the firmware itself changes.

History

Lightmotron began as a MicroPython project. It's since been fully rewritten in C for better performance and reliability, and that's what you'll get from the installer above — the original MicroPython version is no longer maintained. If you're curious about the internals or want to build the firmware yourself, see the Developer Guide.

Documentation

  • Programming Guide — how to configure effects, filters, sounds, and scenes
  • Developer Guide — architecture, building from source, and links to the rest of the technical docs

Parts

15
QtyValueFootprintReferences
4470Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R3, R4, R5
11000uFCapacitor_THT:CP_Radial_D10.0mm_P5.00mmC1
11kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR2
15V_PSUConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ3
1BSS138_LevelShifter_4chlocal:BSS138_LevelShifter_4ch_2x06_P2.54mm_Row10.16mmJ1
1ESP32-S3-WROOM-1local:YD-ESP32-S3_DevKit_2x22_P2.54mmU1
1NeoPixel_StripConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ2
1NeoPixel_Strip_2Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ6
1NeoPixel_Strip_3Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ7
1NeoPixel_Strip_4Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ8
1SpeakerConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ5
1YX5200_MP3_Playerlocal:YX5200_DFPlayer_DIP16_W15.24mmJ4

Questions

How big is the Lightmotron PCB?

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

What parts does the Lightmotron use?

15 parts, built around the ESP32-S3-WROOM-1-N8. 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 Lightmotron KiCad files?

From the PeterDarley/lightmotron repository on GitHub, at the commit this page was made from: the board is hardware/hardware/hardware.kicad_pcb and its schematic hardware/double/double.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Lightmotron design in my own project?

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

Similar boards

  • 2 layers85 × 115 mmOSO BOOK B1, the printed circuit board in 3D

    OSO BOOK B1

    joeycastillo/The-Open-Book

    For details on how to build, test and use Open Book, I've made documentation available here.

    76 parts8.1kCC-BY-SA-4.0
  • 2 layers299 × 82.5 mmPixelWave, the printed circuit board in 3D

    PixelWave

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    663 parts915
  • 4 layers56.5 × 99.8 mmBitaxeGamma, the printed circuit board in 3D

    BitaxeGamma

    bitaxeorg/bitaxeGamma

    Bitaxe based on the BM1370 from the S21 Pro

    147 parts432CERN-OHL-S-2.0
  • 2 layers129.5 × 50.8 mmLilka, the printed circuit board in 3D

    Lilka

    lilka-dev/lilka

    Схема та документація ігрової консолі Lilka

    39 parts234GPL-2.0
  • 4 layers84.5 × 129.5 mmBitaxeHex, the printed circuit board in 3D

    BitaxeHex

    bitaxeorg/ultraHex

    multi-ASIC Bitcoin miner

    369 parts190CERN-OHL-S-2.0
  • 2 layers110 × 115 mmEsp32 keyboard v0.1, the printed circuit board in 3D

    Esp32 keyboard v0.1

    hhuysqt/esp32s3-keyboard

    USB/BLE keyboard driver based on ESP32S3-WROOM-1

    230 parts168GPL-3.0
  • 2 layers35.1 × 36.6 mmBinNanoFOC, the printed circuit board in 3D

    BinNanoFOC

    katbinaris/nanofoc_devkit

    Compact All-In-One BLDC Controler featuiring ESP32-S3, TMC6300 and Magalpha sensors. Small 35x35mm footprint.

    76 parts146
  • 2 layers148 × 81 mmCommunicator pcb, the printed circuit board in 3D

    Communicator pcb

    Hack-a-Day/2025-Communicator_Badge

    The 2025 Hackaday Supercon RF Communicator Badge

    58 parts107MIT