
Dongle mcp2210
burgrp/bleriot
BleRiot is a compact request/response protocol for reading and writing named integer registers on low-power RF nodes. A Linux hub polls the nodes and bridges their registers to an external Registry service.

BleRiot Sense is a compact single-sensor BleRiot node built around a PY32F003L16S6TU microcontroller and a PAN2110 long-range 2.4 GHz radio. Its sensor input is configured at assembly time for one of four uses:
Bleriot sense is an open-source printed circuit board by burgrp, from the burgrp/bleriot-sense repository on GitHub. It is a 2-layer board of 55 × 22 mm with 19 parts on 13 nets, routed with 114 tracks and 68 vias.
It is built around the PAN2110P0AA, XC6206P332MR and BAT54S. Its parts include 4 capacitors, 3 ICs, 2 connectors, 2 crystals and 1 diode.
BleRiot Sense is a compact single-sensor BleRiot node built around a
PY32F003L16S6TU microcontroller and a PAN2110 long-range 2.4 GHz radio. Its
sensor input is configured at assembly time for one of four uses:
The assembly population and the firmware mode must agree. The hardware does not switch sensor modes electronically at runtime.

| Path | Description |
|---|---|
board/bleriot-sense.kicad_pro | PY32F003L16S6TU hardware |
fw/ | Importable Sense firmware and board-owned build profile |
fw/cmd/dev/ | Local inventory and BleRiot CLI |
ANALOG-INPUT.md | Configurable input circuit, populations, calculations, protection, and layout |
sub/hw-kicad/ | Shared KiCad symbols and footprints, included as a Git submodule |
| Mode | Node measurement | Registry value |
|---|---|---|
| NTC | Averaged 12-bit ADC code | Temperature in °C |
| Flow | Rising-edge pulse count | Flow in L/min with host calibration, otherwise frequency in Hz; cumulative pulse count |
| Pressure | Averaged 12-bit ADC code | Pressure in Pa with host calibration; otherwise sensor-output voltage in V |
| DS18B20 | Up to 20 signed Q12.4 scratchpad values | Temperature registers in °C |
See ANALOG-INPUT.md before assembling a board. It defines
the required values for AR1, AR2, AR3, and AC1, including the two
alternative flow-sensor output circuits.
Pressure and flow transfer functions depend on the exact sensor. Without
host-only calibration, the hub exposes pressure input voltage or flow frequency.
The local inventory selects flow mode for the connected ZJ-B10, publishing
sense.flow in L/min and sense.pulses as a raw cumulative pulse count.
It provisionally retains the earlier YF-B10 formula F = 6Q - 8; calibration
against the ZJ-B10 is deferred. No pulses means zero flow. The external AR1
pull-up has been verified with an oscilloscope to produce clean 3.3 V pulses.
See the
firmware configuration for the calibration fields.
fw targets the PY32F003L16S6TU and uses PA0 for
the universal sensor input. The NTC path has been verified end to end on
hardware through the ADC, PAN2110 radio, MCP2210 hub dongle, BleRiot hub,
conversion layer, and Registry. The single-sensor DS18B20 path has also been
verified end to end through its 1-Wire bus and the same radio/Registry path;
multidrop behavior still requires hardware validation. Flow and pressure support build and have
host-side conversion coverage but still require mode-specific hardware tests.
DS18B20 firmware prints discovered ROM IDs over RTT at boot. A single sensor needs no configured ID; multidrop inventories map each temperature register to an explicit ID. See the firmware README for configuration and timing details.
The upstream TinyGo py32f003x6 target provides the required 1 KiB system
stack. The firmware runs without a task scheduler. See the firmware README for
pin assignments, first-boot option-byte handling, configuration, and memory
constraints.
Initialize the shared KiCad library after cloning:
git submodule update --init --recursiveOpen the hardware project in KiCad:
kicad board/bleriot-sense.kicad_proConfigure sensorMode in
fw/cmd/dev/main.go, then test and build the firmware:
go -C fw test ./...
go -C fw run ./cmd/dev node build --name senseFlash with a supported SWD probe:
go -C fw run ./cmd/dev node build --name sense --flash --rttWith a Registry server running, start the hub in a separate terminal:
go -C fw run ./cmd/dev hub --registry http://localhost:8080 --diagnostics rfFor an NTC-configured node, read live temperatures:
export REGISTRY=http://localhost:8080
reg get sense.temperature --staypy32f003x6 target.reg Registry service and CLI.| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 1u | Capacitor_SMD:C_0805_2012Metric | C1, C2, C3, C6 |
| 3 | 100n | Capacitor_SMD:C_0805_2012Metric | AC1, C4, C7 |
| 1 | 10k | Resistor_SMD:R_0805_2012Metric | AR1 |
| 1 | 16MHz | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1 |
| 1 | 4.02k | Resistor_SMD:R_0805_2012Metric | AR2 |
| 1 | 6.49k | Resistor_SMD:R_0805_2012Metric | AR3 |
| 1 | Antenna_Shield | RF_Antenna:Texas_SWRA117D_2.4GHz_Left | A1 |
| 1 | BAT54S | Package_TO_SOT_SMD:SOT-23 | D1 |
| 1 | INPUT | Connector_Phoenix_MSTB:PhoenixContact_MSTBA_2,5_3-G_1x03_P5.00mm_Horizontal | J2 |
| 1 | PAN2110P0AA | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U2 |
| 1 | POWER | Connector_Phoenix_MSTB:PhoenixContact_MSTBA_2,5_2-G_1x02_P5.00mm_Horizontal | J1 |
| 1 | PY32F003L1xSx | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U4 |
| 1 | SWD | Drake:SWD | X1 |
| 1 | XC6206P332MR | Package_TO_SOT_SMD:SOT-23-3 | U1 |

burgrp/bleriot
BleRiot is a compact request/response protocol for reading and writing named integer registers on low-power RF nodes. A Linux hub polls the nodes and bridges their registers to an external Registry service.



burgrp/bleriot-CPG
CPG is a mains-powered BleRiot node for controlling a circulation pump and a motorized 3-way or 4-way valve in floor-heating and radiator-heating circuits.

burgrp/bleriot-REG6
REG6 is a six-channel solid-state-relay controller built around a PY32F030 and PAN2110. This repository contains the KiCad hardware and a standalone TinyGo/BleRiot module under fw/ that exposes one integer percentage…



It measures 55 × 22 mm and has 2 copper layers, 1.6 mm thick.
19 parts, built around the PAN2110P0AA, XC6206P332MR and BAT54S. 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 burgrp/bleriot-sense repository on GitHub, at the commit this page was made from: the board is board/bleriot-sense.kicad_pcb and its schematic board/bleriot-sense.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 burgrp before reusing the design.