
StandaloneLeakDetector
ncsurobotics/SW8E-StandaloneLeakDetector
Standalone leak detector intended for use in LiPo battery hulls

A wireless temperature monitoring system: small battery-powered probes broadcast temperature, humidity, and battery level over BLE, and a Wi-Fi-connected hub collects those readings and uploads them to a webhook.
Probe is an open-source printed circuit board by JamieG, from the JamieG/temp-sensor repository on GitHub. It is a 2-layer board of 40.7 × 52.1 mm with 11 parts on 45 nets, routed with 77 tracks and 29 vias.
It is built around the MDBT42Q-512KV2, SHT40-AD1B-R2 and BAT-HLD-005-THM, with the FTSH-105-01-L-D among its other parts. Its parts include 2 capacitors, 2 resistors, 2 inductors, 1 connector and 1 switch. It belongs with the sensors and measurement boards and the nRF52 and nRF5x boards of this library.
A wireless temperature monitoring system: small battery-powered probes broadcast temperature, humidity, and battery level over BLE, and a Wi-Fi-connected hub collects those readings and uploads them to a webhook.
┌──────────┐ BLE advertising ┌──────────┐ Wi-Fi (HTTPS POST) ┌──────────────┐
│ Probe │ - - - - - - - - - -▶│ Hub │ ──────────────────────▶│ Receiver │
│ (nRF52) │ TEMP-XXXXXX │ (ESP32C6)│ JSON batches │ (your server)│
└──────────┘ ~1 s bursts └──────────┘ adaptive schedule └──────────────┘Probe/)A custom battery-powered sensor board (KiCad design in Probe/hardware/,
currently developed on an nRF52 Development Kit) running Zephyr RTOS.
TransmissionPolicy).TEMP-5A6B7C derived from its own BLE address.The board is a two-layer, button-cell-powered design built in KiCad
(Probe/hardware/): an MDBT42Q nRF52 module with a PCB antenna, an SHT40
sensor, a spring-contact coin-cell holder, a programming header, and a
power switch.
| PCB layout (top view) | 3D render |
|---|---|
![]() | ![]() |
Hub/)A Seeed XIAO ESP32C6 running Arduino firmware.
Probe/lib/tempsensor_protocol/)The on-air message layout is defined once, in
Probe/lib/tempsensor_protocol/src/tempsensor_protocol.hpp, and consumed by
both firmwares (the Hub pulls it in through a PlatformIO file:// library
dependency). The probe encoder and hub decoder can therefore never drift apart;
changing the layout means bumping kProtocolVersion and reflashing both sides.
| Offset | Size | Field |
|---|---|---|
| 0 | 2 | Company ID 0xFFFF (prototype identifier) |
| 2 | 1 | Protocol version (0x02) |
| 3 | 3 | Sensor ID (from the probe's BLE address) |
| 6 | 2 | Sequence number (uint16) |
| 8 | 2 | Temperature (int16, 0.01 °C) |
| 10 | 2 | Humidity (uint16, 0.01 %RH) |
| 12 | 2 | Battery voltage (uint16, mV) |
The hub POSTs JSON of the form {hub_mac, hub_rssi, readings: [{timestamp, sensor_id, sequence, temperature, humidity, battery_mv, ble_rssi}, ...]}. The
receiving server is not part of this repository and must deduplicate per
reading by (hub_mac, sensor_id, sequence, timestamp).
Requires PlatformIO Core.
# Build the probe firmware (nRF52 DK, uploads via J-Link)
cd Probe && pio run && pio run --target upload
# Build the hub firmware (XIAO ESP32C6, uploads over USB serial)
cd Hub && pio run && pio run --target upload
# Watch serial output (115200 baud)
pio run --target monitorFirst hub boot with no saved configuration: connect to the hub's setup
access-point, open the captive portal, and save your Wi-Fi SSID/password and
webhook URL. See AGENTS.md for the full agent/developer reference (build
config, test workflow, troubleshooting) and Hub/docs/ for the upload
reliability and stress-testing notes.
TempSensor/ # repository root
├── AGENTS.md # Developer/agent reference: builds, tests, conventions
├── Probe/ # BLE sensor firmware (nRF52, Zephyr)
│ ├── lib/tempsensor_protocol/ # Shared on-air schema (used by both sides)
│ └── hardware/ # KiCad PCB design and component models
└── Hub/ # Collector/upload firmware (XIAO ESP32C6, Arduino)
├── docs/ # Reliability & stress-test documentation
└── test/ # Host-side policy tests + serial stress capture| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | 10k | Resistor_SMD:R_0603_1608Metric | R3, R4 |
| 1 | 1 µF | Capacitor_SMD:C_0603_1608Metric | C14 |
| 1 | 10 µF | Capacitor_SMD:C_0805_2012Metric | C11 |
| 1 | 10 µH | Inductor_SMD:L_0603_1608Metric | L2 |
| 1 | 15 nH | Inductor_SMD:L_0402_1005Metric | L3 |
| 1 | BAT-HLD-005-THM | components:BAT_BAT-HLD-005-THM | BT1 |
| 1 | FTSH-105-01-L-D | components:SAMTEC_FTSH-105-01-L-D | J1 |
| 1 | MDBT42Q-512KV2 | MDBT42Q-512KV2:RAYTAC_MDBT42Q-512KV2 | E1 |
| 1 | SHT40-AD1B-R2 | components:SHT4X | SHT40 |
| 1 | SW_SPDT | components:SW_SSSS811101 | SW1 |
It measures 40.7 × 52.1 mm and has 2 copper layers, 1.09 mm thick.
11 parts, built around the MDBT42Q-512KV2, SHT40-AD1B-R2, BAT-HLD-005-THM and FTSH-105-01-L-D. 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.
From the JamieG/temp-sensor repository on GitHub, at the commit this page was made from: the board is Probe/hardware/probe.kicad_pcb and its schematic Probe/hardware/probe.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask JamieG before reusing the design.

ncsurobotics/SW8E-StandaloneLeakDetector
Standalone leak detector intended for use in LiPo battery hulls

eihli/morse-mesh
This is the current hardware source for future Morse Mesh revisions. It is a professionally reviewed redraw of the frozen, fabricated v1 board, not a pin-compatible replacement: notably, KEYIN moved from v1 PA0 to v2…

ldab/SARA-Rx-application-board
SARA-R4 NB-IoT + Cat-M1 + GNSS application board - NINA-B3 with Secure MQTT


Shwetha-org/BLE-Garment-Monitoring-System
BLE Garment Monitoring System is a research prototype that uses a custom BLE tag, a Raspberry Pi room scanner, and a mobile app to detect simple garment usage states (stored, worn, wet) and summarize wears and washes.


