

Open motion light
Open-source motion sensor light
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 99
- Nets
- 77
- Pads
- 300
- Tracks, vias
- 695, 266
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 7 Apr 2024
- Updated
- 16 Sep 2026
Overview
Open motion light is an open-source printed circuit board by ademuri, from the ademuri/open-motion-light repository on GitHub, published under the Apache-2.0 licence. It is a 4-layer board with 99 parts on 77 nets, routed with 695 tracks and 266 vias.
It is built around the CH340X, VCNL4020-GS08 and XYC-PIR224S-S1, with the TPS61165DRV, HL-AM-2835H421W-S1-08-HR3 and ESD5Z5.0 among its other parts. Its parts include 37 resistors, 28 capacitors, 15 diodes, 6 ICs and 2 switches. It belongs with the STM32 boards of this library.
Main components
10CH340X
MSOP-10-20℃~+70℃ 2Mbps 3.3V、5V USB 2.0 USB to serial、USB to Parallel MSOP-10 USB Converters ROHSWCH (Nanjing Qinheng Microelectronics)USB ConvertersVCNL4020-GS08
VDFN-10-25℃~+85℃ 0.83mm 1.5uA 16.383klx 16bit 2.4mm 2.5V~3.6V 4.9mm I2C Light Intensity Spectral correction/filtering、Interrupt/event trigger VDFN-10 Ambient Light Sensors ROHSVishay IntertechnologyAmbient Light SensorsXYC-PIR224S-S1
TO-5TO-5 Human Body Sensing Sensor ROHSNEWOPTOHuman Body Sensing SensorTPS61165DRV
UncategorisedTexas InstrumentsHL-AM-2835H421W-S1-08-HR3
SMD2835-2P-40℃~+85℃ 120° 288mW 3.2V 6000K 60mA Discrete Diode Frosted Yellow Lens Top-mount White SMD2835-2P LED Indication - Discrete ROHSHONGLITRONICLED Indication - DiscreteESD5Z5.0
SOD-523-55℃~+150℃ 1 174W 18.6V 50nA 5V 6.2V 80pF 9.4A@8/20us ESD IEC 61000-4-2、IEC 61000-4-4 Unidirectional SOD-523 ESD and Surge Protection (TVS/ESD) ROHSonsemiESD And Surge Protection (TVS/ESD)BSMD1206-075-6V
1206-40℃~+85℃ 1.5A 100A 200ms 500mΩ 600mW 6V 750mA 90mΩ 1206 Resettable Fuses ROHSBHFUSEResettable FusesSRV05-4-P-T7
SOT-23-612V 1A@8/20us 3.5pF 500W@8/20us 5V 5uA 6V ESD Four channels IEC 61000-4-2、IEC 61000-4-5、IEC 61000-4-4 SOT-23-6 ESD and Surge Protection (TVS/ESD) ROHSPROTEKESD And Surge Protection (TVS/ESD)SSSS213800
SMD-40℃~+85℃ 10000 times 300mA 5.5mm 6V Rectangular Columnar SMD(SMT) Tab SP3T Surface Mount, Right Angle SMD Slide Switches ROHSALPSALPINESlide SwitchesTYPE-C-31-M-12
SMD-30℃~+80℃ 1 10,000 cycles 16P 20V 5A 7.35mm Female Surface Mount, Right Angle Type-C SMD USB Connectors ROHSHRO ElectronicsUSB Connectors
README
README.mdopen-motion-light
A battery-powered motion sensor light.
Status: in development (as of July 2025). The current hardware revision, v1.2, mostly works, but has a few small issues. I'm hoping that the next revision will be the "final" version before starting small-scale production for sale.
Ordering and programming one of these units is a relatively complicated project. I don't recommend it unless you're looking for a learning experience, or have completed similar projects before.
Programming
To easily update the firmware on your unit, and to configure the settings, go to the management page: https://ademuri.github.io/open-motion-light-manager/. This uses the WebSerial browser API, which is only supported in Chromium-based browsers (e.g. Chrome and Edge).
Otherwise, you can build the code yourself using PlatformIO. To build and upload, from the root of this directory run:
$ pio run -e default -t uploadFirmware
The firmware for this project is written in C++ using the Arduino framework, and built using PlatformIO. It has comprehensive test coverage, which runs on the desktop (also using PlatformIO). You can run the tests with:
$ pio test -e nativeArchitecture
Most use of hardware is wrapped in a hardware abstraction layer (HAL) - a thin wrapper class. This allows writing simple fakes for each of these interfaces, for use in tests. This means that the primary control logic is easily testable.
Fabrication
This board is designed for PCB fabrication and assembly using JLC PCB. The relevant files are in hardware/production:
open-motion.light.zipcontains the Gerbers, for PCB assembly.bom.csvis the bill of materials, which contains the list of components.positions.csvis the positions file - it lists the exact position and orientation of all placed components.
PCB parameters
Most of JLC's defaults for PCBs are fine. 1.6mm is the best size for this. White soldermask is preferred, since it reflects more light. I highly recommend selecting the 'LeadFree HASL' surface finish - better not to use lead, and it's only a small cost increase.
Assembly parameters
This design requires PCBA Type 'Standard', since it needs assembly on both sides. Most of the components are on the top, except the USB port, battery holder, power switch, and reset button. For small quantities, this adds moderate cost, but the USB port would be difficult (although not impossible) to solder by hand. The rest of the parameters can be left as default.
Parts
99| Qty | Value | Footprint | References |
|---|---|---|---|
| 17 | 100nF | Capacitor_SMD:C_0402_1005Metric | C2, C5, C6, C7, C12, C14, C15, C16, C17, C18, C22, C23, C25, C26, C27, C28 +1 |
| 10 | 1k | Resistor_SMD:R_0402_1005Metric | R2, R8, R9, R13, R14, R15, R16, R26, R27, R34 |
| 7 | 10k | Resistor_SMD:R_0402_1005Metric | R3, R6, R7, R11, R12, R30, R31 |
| 7 | 10uF | Capacitor_SMD:C_0603_1608Metric | C3, C4, C8, C10, C20, C21, C24 |
| 6 | HL-AM-2835H421W-S1-08-HR3 | Homebrew:LED-SMD_L3.3-W2.8-RD | LED1, LED2, LED3, LED4, LED5, LED6 |
| 5 | 2M | Resistor_SMD:R_0603_1608Metric | R21, R28, R29, R35, R36 |
| 3 | 1M | Resistor_SMD:R_0603_1608Metric | R40, R41, R42 |
| 3 | 47uF | Capacitor_SMD:C_1206_3216Metric | C1, C13, C19 |
| 3 | 4k7 | Resistor_SMD:R_0402_1005Metric | R19, R20, R23 |
| 3 | ESD5Z5.0 | Diode_SMD:D_SOD-523 | D5, D6, D7 |
| 3 | MountingHole | MountingHole:MountingHole_3.2mm_M3_ISO7380 | H1, H2, H3 |
| 3 | RED | LED_SMD:LED_0603_1608Metric | D2, D3, D4 |
| 2 | 0R | Inductor_SMD:L_1206_3216Metric | FB1, FB2 |
| 2 | 22k | Resistor_SMD:R_0402_1005Metric | R24, R39 |
| 2 | 5k1 | Resistor_SMD:R_0402_1005Metric | R4, R5 |
| 2 | D | Diode_SMD:D_SMA | D8, D13 |
| 1 | 10 | Resistor_SMD:R_0402_1005Metric | R37 |
| 1 | 100k | Resistor_SMD:R_0402_1005Metric | R18 |
| 1 | 22uH | Inductor_SMD:L_Sunlord_SWPA4030S | L2 |
| 1 | 4.7uF 50V | Capacitor_SMD:C_1206_3216Metric | C11 |
| 1 | 4Ω3 | Resistor_SMD:R_0603_1608Metric | R25 |
| 1 | 620 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R1 |
| 1 | 82k | Resistor_SMD:R_0402_1005Metric | R43 |
| 1 | BQ25170DSGR | Homebrew:Texas_DSG0008A_WSON-8-1EP_2x2mm_P0.5mm_EP0.9x1.6mm_ThermalVias | U1 |
| 1 | BSMD1206-075-6V | Fuse:Fuse_1206_3216Metric | F1 |
| 1 | Battery_Cell | Homebrew:BAT-TH_BH-18650-A1AJ005 | BT1 |
| 1 | CH340X | Package_SO:MSOP-10_3x3mm_P0.5mm | U6 |
| 1 | SRV05-4-P-T7 | Package_TO_SOT_SMD:SOT-23-6 | D1 |
| 1 | SSSS213800 | Homebrew:SW-SMD_SSSS213800 | SW3 |
| 1 | STM32L051K8Ux | Package_DFN_QFN:QFN-32-1EP_5x5mm_P0.5mm_EP3.45x3.45mm | U7 |
| 1 | SW_Push | Homebrew:SW_TACTILE_5.1MM_TS-1187A-C-D-B | SW1 |
| 1 | TPS61165DRV | Homebrew:WSON-6-1EP_2x2mm_P0.65mm_EP1x1.6mm_ThermalVias | U3 |
| 1 | TYPE-C-31-M-12 | Homebrew:HRO_TYPE-C-31-M-12 | J1 |
| 1 | Thermistor_NTC | Resistor_SMD:R_0603_1608Metric | TH1 |
| 1 | VCNL4020-GS08 | Homebrew:SENSOR-SMD_VCNL4020-GS08 | U2 |
| 1 | XYC-PIR224S-S1 | easyeda2kicad:TO-5-4_BD9.2-P2.54_XYC-PIR224D-D0 | U4 |
The 98 most common of 99 parts.
Questions
What parts does the Open motion light use?
99 parts, built around the CH340X, VCNL4020-GS08, XYC-PIR224S-S1 and TPS61165DRV. 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 Open motion light KiCad files?
From the ademuri/open-motion-light repository on GitHub, at the commit this page was made from: the board is hardware/open-motion-light.kicad_pcb and its schematic hardware/open-motion-light.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Open motion light 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).
Similar boards
- 4 layers21 × 63 mm

- 2 layers145 × 115 mm

Tail lights
chrskly/electric-mustang-wiring
Wiring diagrams and PCBs for my Mustang EV conversion project
123 parts2 - 4 layers62.9 × 88.3 mm

Airgradient go main
Open-Air-Foundation/pcb-go
AirGradient GO is a handheld air quality monitor. It measures particulate matter (Sensirion SPS30), CO₂ (Senseair S12), VOC/NOx (SGP41), temperature and humidity (SHT4x), and barometric pressure (DPS368), with an…
194 parts1CC-BY-SA-4.0 - 2 layers48.2 × 31.5 mm

- 4 layers84.9 × 74.8 mm

- 4 layers25 × 25 mm

Mini AI Camera Module
bartsil/Mini-AI-Camera-Module
Mini AI Camera Module based on ESP32-S3 for IoT and robotic projects
68 parts3Apache-2.0 - 4 layers78.5 × 59 mm

Syncro mainboard
deadbandlabs/syncro-mainboard
Hardware Design for Syncro FFB Interceptor
158 partsCERN-OHL-W-2.0 - 4 layers45 × 95 mm

Air scales
beaked99/air-scales
2025-11-20. Updated all the footprints and symbols to their proper layouts. no more fkn errors. Hallefuckinglujah. Fucked up with LM74610 not using the right footprint. minor fix. 2025-11-16.
84 parts