Skip to the content
PCBKitNew board
2 layers45 × 55 mmRoom sensor, the printed circuit board in 3D

A local whole-house temperature and humidity monitor. USB-powered room sensors send measurements over Thread to a Raspberry Pi base unit, which stores history and presents a touchscreen dashboard without requiring a…

Size
45 × 55 mm
Copper layers
2
Thickness
1.6 mm
Parts
24
Nets
52
Pads
110
Tracks, vias
299, 48
Pours
9
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
11 Oct 2026
Updated
11 Oct 2026

Overview

Room sensor is an open-source printed circuit board by arrow53, from the arrow53/RoomTempHumidity repository on GitHub. It is a 2-layer board of 45 × 55 mm with 24 parts on 52 nets, routed with 299 tracks and 48 vias.

It is built around the SHT40-AD1B-R3, AN54LQ-P15 and LT1761IS5-3.3#TRMPBF, with the TPD2E2U06DCKR-TP, RC0603FR-0710KL and MF-MSMF020-2 among its other parts. Its parts include 5 capacitors, 4 resistors, 4 ICs, 2 connectors and 1 diode. It belongs with the sensors and measurement boards of this library.

Main components

8

README

README.md

RoomTempHumidity

A local whole-house temperature and humidity monitor. USB-powered room sensors send measurements over Thread to a Raspberry Pi base unit, which stores history and presents a touchscreen dashboard without requiring a cloud service.

Actual Pi dashboard

Actual live Raspberry Pi dashboard

Direct capture of the running Pi display on 2026-10-11. This is the live-mode application with one reporting prototype sensor, not simulated data. Readings and freshness reflect the capture time.

Design summary

mermaid
flowchart LR
  S["USB room node<br/>SHT40 + nRF54L15"] -->|"Thread IPv6 / CoAP JSON"| R["nRF52840 DK<br/>RCP"]
  R -->|"Spinel / USB serial<br/>115200 RTS/CTS"| O["Pi 5<br/>OpenThread Border Router"]
  O --> C["Python collector<br/>aiocoap + SQLite"]
  C -->|"Loopback HTTP"| D["Browser kiosk<br/>Touch Display 2"]
  • Sensors: SHT40 measures temperature and relative humidity. nRF54L15 firmware uses Zephyr and OpenThread, samples every minute and sends confirmable CoAP POSTs. Random boot IDs and sequence numbers support duplicate/replay handling. Continuous USB power permits an always-listening Thread router role.
  • Base radio: pinned OpenThread RCP firmware on an nRF52840 DK connects over Spinel/UART through USB serial. It is separate from the sensor-node application.
  • Networking: OTBR runs on the Pi 5. Recorded deployment limits forwarding to the intended local IPv6 LAN; IPv4 forwarding, NAT64, WebGUI and REST are disabled.
  • Collector/UI: Python validates readings and stores bounded SQLite history. HTML/CSS/JavaScript provides room status, history and Celsius/Fahrenheit controls. CoAP bind retries keep the local dashboard available while a Thread address is missing. The Touch Display 2 presents the landscape browser/kiosk UI.
  • Protocol: Thread + IPv6 + CoAP.

Sensor hardware

Enclosure A2Populated PCB A3 — angled 3D view
Native housing and stand renderAngled native KiCad view of populated A3 PCB

The enclosure is a native OpenSCAD render. The populated PCB is a native KiCad 3D render of the unchanged A3 layout and its 16 component placements. Package models show nominal geometry; the radio module uses a simplified dimension-based body/shield. Neither image proves assembled hardware qualification.

The working prototype uses an nRF54L15 DK and SHT40 breakout. The custom 45 × 55 mm PCB uses Raytac AN54LQ-P15 and SHT40; A3 changes the regulator to LT1761IS5-3.3#TRMPBF. Custom-board bring-up, printed fit, RF performance and thermal bias remain unqualified. A3 is quote/DFM only, not production/purchase approval.

Repository layout

DirectoryContents
SensorFirmwarenRF54L15 DK firmware, pinned SDK manifest, schema and tests
SensorCaseA2 OpenSCAD, provisional print parts and fit coupons
SensorPCBCurrent A3 native KiCad and selected quote/DFM files
BaseUnitFirmwarePinned nRF52840 RCP source/build/UART reference
BaseUnitApplicationPi collector/dashboard and sanitized OTBR reference
BaseUnitCaseRevision C digital prototype, CAD and print files; physical validation pending

Canonical workspace: C:\GIT\RoomTempHumidity. Future tasks should read AGENTS.md and migration notes.

Technologies and methodology

Sensor firmware uses C, Nordic nRF Connect SDK v3.2.1, Zephyr and OpenThread. RCP and OTBR use separate immutable upstream commits. OTBR's documented historical build uses Debug after optimized builds failed a compiler diagnostic; warning and runtime compatibility checks were retained.

The Pi application uses Python 3.11+, aiocoap, SQLite and HTML/CSS/JavaScript. Mechanical design uses parametric OpenSCAD (sensor) and CadQuery (base case), static dimension checks and independent STL topology checks. PCB work uses native KiCad schematic/layout, project-local libraries, ERC/DRC and independent manufacturing-file audits.

Source, protocol fixtures and validation limits are preserved separately from local deployment configuration. Historical hardware success is distinguished from checks rerun on this migrated snapshot:

CheckPublication preparation
Dashboard/collector26 tests passed, including loopback IPv6 CoAP, replay/storage and startup recovery
Sensor firmware schema12 tests passed
Enclosure static checks59 passed
Five primary STL meshes5 passed topology/dimension checks
Full target/RCP/OTBR buildsHistorical success documented; not rebuilt here
Custom PCB / printed-case qualificationPending

Getting started and limits

Use the application preview, sensor build reference, RCP reference and OTBR notes. Install tools outside the repository. Real room mappings, collector addresses and commissioning credentials belong in local ignored configuration.

This is an engineering source snapshot, not a turnkey OS image or production release. Site-specific OTBR service/firewall/rollback files, full historical quotation archives and vendor 3D model bundles are omitted. See dependency limits, image provenance and licensing notice. The base-unit enclosure Revision C digital design is complete; insert, cable, slicer and physical checks remain outstanding. See its assembly and print checklist.

Parts

24
QtyValueFootprintReferences
3MountingHole_2.7RoomNode:MountingHole_2.7H1, H2, H3
2100nF 50V X7RRoomNode:C_0603C4, C5
210k 1%RoomNode:R_0603R3, R4
25.1k 1%RoomNode:R_0603R1, R2
1+3V3RoomNode:TestPoint_1mmTP2
11uF 16V X7RRoomNode:C_0603C3
12.2uF 25V X7RRoomNode:C_0805C1
1200mA hold PTCRoomNode:PTC_1812F1
14.7uF 10V X7RRoomNode:C_0805C2
1AN54LQ-P15RoomNode:AN54LQ_P15_DRAFTU1
1Cortex SWD 2x5 1.27RoomNode:SWD_2x5_1p27J2
1GNDRoomNode:TestPoint_1mmTP1
1LT1761-3.3RoomNode:LT1761_TSOT23_5U3
1RESET_NRoomNode:TestPoint_1mmTP3
1SHT40-AD1B-R3RoomNode:SHT40_DFN4U2
1TPD1E10B06DYARRoomNode:SOD523D1
1TPD2E2U06DCKRRoomNode:SC70_3U4
1USB4105-GF-ARoomNode:USB4105_CustomJ1
1VBUS_FUSEDRoomNode:TestPoint_1mmTP4

Questions

How big is the Room sensor PCB?

It measures 45 × 55 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Room sensor use?

24 parts, built around the SHT40-AD1B-R3, AN54LQ-P15, LT1761IS5-3.3#TRMPBF and TPD2E2U06DCKR-TP. 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 Room sensor KiCad files?

From the arrow53/RoomTempHumidity repository on GitHub, at the commit this page was made from: the board is SensorPCB/editable/room_sensor.kicad_pcb and its schematic SensorPCB/editable/room_sensor.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Room sensor design in my own project?

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

Similar boards

  • 8 layers100 × 65 mmMatrixDrive RevB, the printed circuit board in 3D

    MatrixDrive RevB

    Matrixite/MatrixDrive

    MatrixDrive is a USB-loadable Mega Drive/Genesis cartridge

    143 parts
  • 2 layers85.6 × 54 mmSnakeBusinessCard, the printed circuit board in 3D

    SnakeBusinessCard

    alex1324575/snake-pcb-business-card

    STM32-powered PCB business card with a 10x9 LED Snake game, USB-C power, and passive NFC. KiCad hardware, C firmware, and verification reports.

    136 parts
  • 4 layers120 × 85 mmVirtual scoring box, the printed circuit board in 3D

    Virtual scoring box

    AndrewCraswell/agency

    Native KiCad engineering prototype, separate from the earlier ESP32/tscircuit board. Open usb-scoring-platform.kicadpro in KiCad 10; schematic and PCB are the editable source, with no generator required.

    146 partsMIT
  • 2 layers60 × 42 mmSmart safety tag, the printed circuit board in 3D

    Smart safety tag

    balu-16/SeedGrant_Safety

    Personal-safety project: Expo / React Native client + FastAPI + PostgreSQL (Supabase) backend + React admin portal.

    83 parts
  • 6 layers313 × 259.5 mmOpen8-vga motherboard, the printed circuit board in 3D

    Open8-vga motherboard

    adham404/Open8-VGA

    An 8-bit computer from 74HC logic: microcoded CPU, VGA, PS/2, on-board editor and assembler. Play it in your browser.

    322 parts3MIT
  • 2 layers120 × 49 mmSensor hat, the printed circuit board in 3D

    Sensor hat

    mikedahlgren/Pool-Controller

    This runs a pool from a Waveshare ESP32-S3-RELAY-6CH and the PoolVeras sensor hat plugged onto its Pico headers.

    69 parts
  • 4 layers58 × 135 mmOculink to pcie adapter, the printed circuit board in 3D

    Oculink to pcie adapter

    antmicro/oculink-pcie-adapter

    PCB design which converts an OCuLink connector into x16 PCIe slot

    165 parts22Apache-2.0
  • 2 layers90 × 60 mmFlappy esp32c3-revb, the printed circuit board in 3D

    Flappy esp32c3-revb

    Soulboy420/BP_flappyBird

    Eigenständiger KiCad-10-Entwurf für das HAW-Bachelorprojekt. Der ursprüngliche Entwurf unter hardware/ und absichtliche Benutzerlöschungen wurden nicht überschrieben. Es wurde nichts bestellt, committed oder gepusht.

    111 parts