Skip to the content
PCBKitNew board
4 layersOpen motion light, the printed circuit board in 3D

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

10

README

README.md

open-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:

bash
$ pio run -e default -t upload

Firmware

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:

bash
$ pio test -e native

Architecture

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.zip contains the Gerbers, for PCB assembly.
  • bom.csv is the bill of materials, which contains the list of components.
  • positions.csv is 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
QtyValueFootprintReferences
17100nFCapacitor_SMD:C_0402_1005MetricC2, C5, C6, C7, C12, C14, C15, C16, C17, C18, C22, C23, C25, C26, C27, C28 +1
101kResistor_SMD:R_0402_1005MetricR2, R8, R9, R13, R14, R15, R16, R26, R27, R34
710kResistor_SMD:R_0402_1005MetricR3, R6, R7, R11, R12, R30, R31
710uFCapacitor_SMD:C_0603_1608MetricC3, C4, C8, C10, C20, C21, C24
6HL-AM-2835H421W-S1-08-HR3Homebrew:LED-SMD_L3.3-W2.8-RDLED1, LED2, LED3, LED4, LED5, LED6
52MResistor_SMD:R_0603_1608MetricR21, R28, R29, R35, R36
31MResistor_SMD:R_0603_1608MetricR40, R41, R42
347uFCapacitor_SMD:C_1206_3216MetricC1, C13, C19
34k7Resistor_SMD:R_0402_1005MetricR19, R20, R23
3ESD5Z5.0Diode_SMD:D_SOD-523D5, D6, D7
3MountingHoleMountingHole:MountingHole_3.2mm_M3_ISO7380H1, H2, H3
3REDLED_SMD:LED_0603_1608MetricD2, D3, D4
20RInductor_SMD:L_1206_3216MetricFB1, FB2
222kResistor_SMD:R_0402_1005MetricR24, R39
25k1Resistor_SMD:R_0402_1005MetricR4, R5
2DDiode_SMD:D_SMAD8, D13
110Resistor_SMD:R_0402_1005MetricR37
1100kResistor_SMD:R_0402_1005MetricR18
122uHInductor_SMD:L_Sunlord_SWPA4030SL2
14.7uF 50VCapacitor_SMD:C_1206_3216MetricC11
14Ω3Resistor_SMD:R_0603_1608MetricR25
1620Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1
182kResistor_SMD:R_0402_1005MetricR43
1BQ25170DSGRHomebrew:Texas_DSG0008A_WSON-8-1EP_2x2mm_P0.5mm_EP0.9x1.6mm_ThermalViasU1
1BSMD1206-075-6VFuse:Fuse_1206_3216MetricF1
1Battery_CellHomebrew:BAT-TH_BH-18650-A1AJ005BT1
1CH340XPackage_SO:MSOP-10_3x3mm_P0.5mmU6
1SRV05-4-P-T7Package_TO_SOT_SMD:SOT-23-6D1
1SSSS213800Homebrew:SW-SMD_SSSS213800SW3
1STM32L051K8UxPackage_DFN_QFN:QFN-32-1EP_5x5mm_P0.5mm_EP3.45x3.45mmU7
1SW_PushHomebrew:SW_TACTILE_5.1MM_TS-1187A-C-D-BSW1
1TPS61165DRVHomebrew:WSON-6-1EP_2x2mm_P0.65mm_EP1x1.6mm_ThermalViasU3
1TYPE-C-31-M-12Homebrew:HRO_TYPE-C-31-M-12J1
1Thermistor_NTCResistor_SMD:R_0603_1608MetricTH1
1VCNL4020-GS08Homebrew:SENSOR-SMD_VCNL4020-GS08U2
1XYC-PIR224S-S1easyeda2kicad:TO-5-4_BD9.2-P2.54_XYC-PIR224D-D0U4

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 mmRfboard, the printed circuit board in 3D

    Rfboard

    candykingdom/firefly2

    Small blinkenlight boards that sync up using radios

    67 parts5
  • 2 layers145 × 115 mmTail lights, the printed circuit board in 3D

    Tail lights

    chrskly/electric-mustang-wiring

    Wiring diagrams and PCBs for my Mustang EV conversion project

    123 parts2
  • 4 layers62.9 × 88.3 mmAirgradient go main, the printed circuit board in 3D

    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 mmQNOB V5, the printed circuit board in 3D

    QNOB V5

    alperbasarn/QNOB

    HID with tactile feedback

    147 parts
  • 4 layers84.9 × 74.8 mmGps tracker, the printed circuit board in 3D

    Gps tracker

    candykingdom/gps-tracker

    95 partsApache-2.0
  • 4 layers25 × 25 mmMini AI Camera Module, the printed circuit board in 3D

    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 mmSyncro mainboard, the printed circuit board in 3D

    Syncro mainboard

    deadbandlabs/syncro-mainboard

    Hardware Design for Syncro FFB Interceptor

    158 partsCERN-OHL-W-2.0
  • 4 layers45 × 95 mmAir scales, the printed circuit board in 3D

    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