Skip to the content
PCBKitNew board
2 layers25.4 × 38.1 mmBle door sensor, the printed circuit board in 3D

Ble door sensor

homesensors/hardware1

KiCad project for the homesensors BLE door sensor — a custom small PCB with STM32WB09KEVx + TCS40DPR Hall sensor + active-low LED + CR2032 holder.

Size
25.4 × 38.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
32
Nets
34
Pads
108
Tracks, vias
182, 55
Pours
4
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
14 May 2026
Updated
15 May 2026

Overview

Ble door sensor is an open-source printed circuit board by homesensors, from the homesensors/hardware repository on GitHub. It is a 2-layer board of 25.4 × 38.1 mm with 32 parts on 34 nets, routed with 182 tracks and 55 vias.

It is built around the MLPF-NRG-01D3, TCS40DPR,LF and 2450AT18A0100001E, with the CR2032 and NX2016SA-32M-EXS00A-CS06465 among its other parts. Its parts include 13 capacitors, 3 resistors, 3 ICs, 2 inductors and 2 crystals. It belongs with the radio and wireless and sensors and measurement boards and the STM32 boards of this library.

Main components

5

README

door_sensor/README.md

homesensors / hardware / door_sensor

License: CERN-OHL-P-2.0

KiCad project for the homesensors BLE door sensor — a custom small PCB with STM32WB09KEVx + TCS40DPR Hall sensor + active-low LED + CR2032 holder. Part of the homesensors DIY smart-home sensor kit, and the first fabricated board in the hardware repo's board family.

Side A — KiCad render Side B — KiCad render

Revisions

TagStatusWhat changed
door_sensor-rev-aFabricatedInitial fab. Known issues: missing VDDA_VCAP 0.22 µF decoupling cap; no external battery-monitor divider. Both worked around by hand-rework on the prototype unit.
door_sensor-rev-bAt fabFolds in the VDDA_VCAP cap and the external battery-monitor divider (1 MΩ / 1 MΩ + 1 µF X7R, midpoint into PB1 = ADC1_VINP1) + JST-MX 4P expansion connector on PA8–PA11.

The older tag names pcb-rev-a / pcb-rev-b still exist as aliases pointing at the same commits — those were the door-sensor-only tags from before the hardware repo grew to host multiple board projects. New tags use the door_sensor-rev-* namespace going forward.

Check out a specific revision:

bash
git checkout door_sensor-rev-a   # or -rev-b

What's in the repo

PathWhat
ble_door_sensor.kicad_pro / .kicad_sch / .kicad_pcbKiCad 7+ project files.
ble_door_sensor.kicad_druCustom design rules.
ble_door_sensor.csvBOM exported from KiCad (informational).
fab/(when generated) Ready-to-fab Gerber zip, drill files, pick-and-place CSV.
bom/(when generated) BOM with LCSC / Mouser part numbers, suitable for direct order.
TCS40DPR_STM32WB09_v9.kicad_schLegacy standalone schematic from an earlier exploration phase, kept for reference.

Quick fab

  1. Tag: git checkout door_sensor-rev-a (or whichever rev you want).
  2. Open ble_door_sensor.kicad_pro in KiCad 7+.
  3. PCB Editor → File → Plot → Gerber + drill files → submit to JLCPCB / PCBWay / OSH Park / Aisler.
  4. BOM: use ble_door_sensor.csv with the LCSC part numbers; most fabs will assemble in-house from this BOM directly.

The PCB is hand-solderable at 0603 / 0805 sizes but the WB09KEVx in QFN32 is best assembled by the fab.

Design notes

  • MCU: STM32WB09KEVx (QFN32). On-chip 2.4 GHz BLE.
  • Sensor: Toshiba TCS40DPR Hall (active-low, single-ended). Magnet absent = sensor reads 1 = door open.
  • LED: active-low, push-pull, on PA1, with a 510 Ω series resistor.
  • BLE matching: 20 pF series cap → MLPF-NRG-01D3 → 50 Ω microstrip → chip antenna (Johanson 2450AT18A0100E or compatible).
  • Battery monitor: external divider 1 MΩ / 1 MΩ + 1 µF X7R, midpoint into PB1 = ADC1_VINP1. Quiescent current ~1.5 µA. (Rev B; hand-soldered on Rev A.)
  • VDDA_VCAP: 0.22 µF decoupling on pin 28. (Rev B; hand-soldered on Rev A.)
  • HSE crystal: 32 MHz. Firmware sets XTAL_StartupTime to 800 µs.

For the long-form design history, including the bring-up gotchas (PB3 JTDO default pull-up, ADC sample-and-hold droop with too-small reservoir cap), see the firmware repo's HANDOVER.md at homesensors/firmware.

Bring-up / known-good checks

After fabricating a new board:

  1. Visual / DMM: check VDDA_VCAP cap (pin 28) is populated, no solder bridges around the QFN32, divider resistors read ~1 MΩ each.
  2. Power-on: cell + LED behaviour matches spec — LED blinks at ~1 Hz heartbeat in boot phase when magnet absent.
  3. BLE smoke: with nRF Connect or bluetoothctl scan on, the device should appear with service-data UUID 0xFCD2. Service data byte sequence starts with 44 00 ….
  4. HA discovery: HA's BTHome integration auto-discovers the device within seconds. Confirm an entity tree with opening, battery, packet_id, timestamp.

License

CERN-OHL-P-2.0 — see LICENSE at the hardware-repo root. Permissive open hardware: fork the design, fab it, sell physical units, no copyleft strings. Just preserve the licence + notices.

Related repos

Parts

32
QtyValueFootprintReferences
31uFCapacitor_SMD:C_0402_1005MetricC4, C8, C9
210pFCapacitor_SMD:C_0402_1005MetricC2, C3
21MResistor_SMD:R_0402_1005MetricR2, R3
24.7uFCapacitor_SMD:C_0402_1005MetricC6, C11
10.1uFCapacitor_SMD:C_0402_1005MetricC12
10.1uFCapacitor_SMD:C_0603_1608MetricC13
10.22uFCapacitor_SMD:C_0402_1005MetricC7
1100nFCapacitor_SMD:C_0201_0603MetricC5
1100nFCapacitor_SMD:C_0402_1005MetricC10
110uHKiCad:LQM21DN220N00LL2
120pFCapacitor_SMD:C_0201_0603MetricC1
122nHKiCad:LQG15WH0N7B02DL1
12450AT18A0100001EAntennas:2450AT18A0100001EANT1
132.768KHzKiCad:NX2012SA32768KSTDMUB1Y2
1510Resistor_SMD:R_0402_1005MetricR1
1CR2032KiCad:BATHLD001THMBT1
1Conn_01x04_PinKiCad:JST_MX_4P-1_25J1
1GNDTestPoint:TestPoint_Pad_D2.5mmTP5
1LEDLED_SMD:LED_0402_1005MetricD1
1MLPF-NRG-01D3Library:CSPG_2025IC1
1NX2016SA-32M-EXS00A-CS06465KiCad:NX2016SA32MEXS00ACS06465Y1
1STM32WB09KEVxKiCad:QFN50P500X500X100-33N-DU1
1SWCLKTestPoint:TestPoint_Pad_D2.5mmTP2
1SWDIOTestPoint:TestPoint_Pad_D2.5mmTP1
1TCS40DPR,LFKiCad:SOTFL95P240X88-3NIC2
1VCCTestPoint:TestPoint_Pad_D2.5mmTP3
1nRSTTestPoint:TestPoint_Pad_D2.5mmTP4

Questions

How big is the Ble door sensor PCB?

It measures 25.4 × 38.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Ble door sensor use?

32 parts, built around the MLPF-NRG-01D3, TCS40DPR,LF, 2450AT18A0100001E and CR2032. 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 Ble door sensor KiCad files?

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

Can I use the Ble door sensor design in my own project?

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

Similar boards

  • 4 layers50 × 50 mmComms, the printed circuit board in 3D

    Comms

    melair/ktane

    Keep Talking and Nobody Explodes - Physical Edition

    61 parts5
  • 6 layers29.2 × 14.3 mm36mm PCB, the printed circuit board in 3D

    36mm PCB

    Romeo-Lorenzo/DIY_Electromechanical_SmartWatch

    I decided to mìhave my own take at a quartz watch by using two Miyota 2035 watch movements and a custom made case and PCB.

    92 parts1
  • 2 layers200 × 100 mmMobo, the printed circuit board in 3D

    Mobo

    opulo-inc/lumenpnp-archive

    This repository is a public archive of the LumenPnP Pick and Place (formerly Index) source material from the beginning in mid-2020 until May 2022. The current source can be found at https://github.com/opulo-inc/lumenpnp

    88 parts6GPL-3.0
  • 2 layers25.4 × 86 mmAudio jon FO1146A9E2145, the printed circuit board in 3D

    Audio jon FO1146A9E2145

    manhoosbilli1/tpa6110-stereo-amp-input-router

    Stereo audio amplifier (TPA6110A2) with 74AHC1G66 analog input switching and op-amp signal conditioning

    52 parts
  • 4 layers42 × 100 mmLockBox, the printed circuit board in 3D

    LockBox

    researchanddesire/assembly-docs

    RAD unified assembly docs — ohai.researchanddesire.com

    81 parts
  • 2 layers272.5 × 12 mmLEDIO, the printed circuit board in 3D

    LEDIO

    Defdist/GrBLDC3

    Uno Shield for grblDD: closed loop spindle VFD + 4 stepper drivers

    22 parts30
  • 2 layers85 × 85 mmCore64 CB, the printed circuit board in 3D

    Core64 CB

    ageppert/Core-64-Interactive-Core-Memory-Badge

    64 bits of core memory and LEDs to interact with directly using a magnetic wand.

    51 parts17GPL-3.0
  • 6 layers64.2 × 17.3 mmOpenRX panel rev2.2, the printed circuit board in 3D

    OpenRX panel rev2.2

    OpenDrone-hw/OpenRX

    OpenRX open-source ExpressLRS receiver family hub; board sources live in four dedicated hardware repositories.

    254 parts489CERN-OHL-S-2.0