Skip to the content
2 layers56.5 × 21.5 mmPcb1, the printed circuit board in 3D

A wireless LED performance prop system from the Department of Engineering Science, NCKU. As the props spin, they use Persistence of Vision (POV) to draw 2D images in the air, synchronized over Wi-Fi to music.

Size
56.5 × 21.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
7
Nets
6
Pads
31
Tracks, vias
51, 0
Pours
2
Routed
Yes
KiCad
KiCad 9 (file 20241229)
Created
6 Jul 2024
Updated
6 Oct 2026

Overview

Pcb1 is an open-source printed circuit board by ivan125126, from the ivan125126/light_light_light repository on GitHub, published under the BSD-3-Clause licence. It is a 2-layer board of 56.5 × 21.5 mm with 7 parts on 6 nets, routed with 51 tracks and 0 vias.

README

README.md

Lux

A wireless LED performance prop system from the Department of Engineering Science, NCKU. As the props spin, they use Persistence of Vision (POV) to draw 2D images in the air, synchronized over Wi-Fi to music. They are mainly performed at freshman orientation camps.

Full design write-up (electronics, mechanical, firmware, editor): LightPOV project page

Devices

DevicePhotoDescriptionCode
Light StickLight StickESP32 + WS2812 LED strip in a transparent PC tube, powered by an 18650 Li-ion batteryLightPOV/
Light SnakeLight SnakeShares the Stick's ESP32 core board and firmware, swung on a ropeLightPOV/
Light BallLight BallESP-12F (ESP8266) + RGB LEDs in a semi-transparent PE containerLightBall/

🎬 Performances

Click a thumbnail to watch on YouTube.

117th Freshman Orientation Camp

StickBallSnake
117th Stick117th Ball117th Snake
27th ESCamp (Stick, Ball, Snake)118th Freshman Orientation Camp (Stick)
27th ESCamp118th

Repository Layout

FolderContentsStatus
LightPOV/Stick & Snake: ESP32 firmware, effect editor (ControlPanel_v3), PCB and 3D modelsActive development
LightBall/Ball: ESP8266 firmware, controller, C# helper tool, PCBMaintained

LightPOV/legacy/ holds previous control panels and past performance files. It is kept for reference only, so please don't develop in it.

Usage

Requirements

  • Node.js 20+
  • Arduino IDE with the ESP32 board package and the FastLED, cppQueue and MPU6050 libraries

1. Effect editor (ControlPanel_v3)

bash
cd LightPOV/ControlPanel_v3
npm install
npm run dev        # open http://localhost:3000
npm run test       # run unit tests

2. Hardware server

The props fetch effects and sync time from the server over Wi-Fi. Each server serves a different prop:

ServerHow to startPortProp
ControlPanel_v3/server/server.tscd LightPOV/ControlPanel_v3/server && npm install && npm run start10240TBD
ControlPanel_v3/src/server/server.jscd LightPOV/ControlPanel_v3/src/server && npm install && node server.js (on Windows, run 啟動server.bat)20480TBD

3. Flashing the firmware (LightPOV)

  1. Open LightPOV/ESP32/ESP32.ino in Arduino IDE
  2. Set the Wi-Fi SSID/password and LUX_ID_DEFAULT (each prop's ID) in config.h
  3. Select the ESP32 board and upload; later updates can be pushed over Wi-Fi (OTA)

4. Performance workflow

TBD (edit effects → push to server → props connect → play music to start)

LightBall

bash
cd LightBall/controller
npm install
node server.js     # open http://localhost:3000

The firmware is in LightBall/Code/LightBall_v2/.

Developer docs

For questions, please open an Issue.

What's Next

Hardware

  • Bring up the core PCB v2.0 (chip-down ESP32, 14500 battery, JST connectors) and verify it works end to end
  • Measure whether the LED strip draws more than 2 A from the independent power supply
  • Magnetic charging with a 3D-printed enclosure
  • Next-generation device: replace modules with mounted electronics to shrink the core radius

Software

  • Document the end-to-end performance workflow (the TBD items above)

Acknowledgements

This project is forked from sciyen/ES-Lux (NCKU ES Makers Program). Thanks to the original authors @sciyen and @BensonYang1999. The Lux-starter kit from the original project is not included in this repo; see the upstream repo if you need it.

Licensed under the BSD 3-Clause License.

Parts

7
QtyValueFootprintReferences
1H1a7888812b2a44d4dbb4db40b5bdf1a47H1
1H2a7888812b2a44d4dbb4db40b5bdf1a47H2
1H3e6a0d22e109948b3b5ea7eec97f41443H3
1H4e6a0d22e109948b3b5ea7eec97f41443H4
1U1abe642fa63f74328b63ecdce04e13a56U1
1U27f07cc57892d4498bd1535c8f47795aeU2
1U69602c4eddce44f08a1cc8879e6cb76c3U6

Similar boards

  • 2 layersEncoder, the printed circuit board in 3D

    Encoder

    byrantech/laptop

    anyon_e, a highly integrated, high end, open source laptop. Attempt the impossible.

    7 parts4.3kMIT
  • 2 layers40 × 20 mmSensor smd, the printed circuit board in 3D

    Sensor smd

    scottbez1/splitflap

    DIY split-flap display

    7 parts4.2k
  • 2 layers19.8 × 30 mmZ limit, the printed circuit board in 3D

    Z limit

    opulo-inc/lumenpnp

    The LumenPnP is an open source pick and place machine.

    7 parts3.7k
  • 2 layers35.6 × 58.2 mmDisplay Carrier, the printed circuit board in 3D

    Display Carrier

    AxxAxx/AxxSolder

    STM32 Based soldering station for JBC cartridges, 9-24 VDC and USB-PD power

    7 parts1.7kGPL-3.0
  • 2 layers20.3 × 16.3 mmMap MPX, the printed circuit board in 3D

    Map MPX

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    7 parts1.2k
  • 2 layers26 × 44 mmCompact carrier board, the printed circuit board in 3D

    Compact carrier board

    jamro/tiny-engineer

    A small desktop robot that brings an AI coding assistant to life, physically acting out when it reads files, thinks, writes code, and finishes work.

    7 parts1.1k
  • 2 layers26.4 × 53.8 mmAtari pickup, the printed circuit board in 3D

    Atari pickup

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    7 parts1kGPL-3.0
  • 2 layersRj45 breakout, the printed circuit board in 3D

    Rj45 breakout

    rene-dev/stmbl

    AC Servo Driver for STM32F4

    7 parts990GPL-3.0

Questions

How big is the Pcb1 PCB?

It measures 56.5 × 21.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Pcb1 use?

7 parts. 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 Pcb1 KiCad files?

From the ivan125126/light_light_light repository on GitHub, at the commit this page was made from: the board is LightPOV/hardware/PCB/light_stick/pcb1.kicad_pcb and its schematic LightBall/hardware/PCB/light_ball/sheet_1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Pcb1 design in my own project?

Its repository publishes it under the BSD-3-Clause licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).