Skip to the content
PCBKitNew board
4 layersLora node, the printed circuit board in 3D

Off-grid LoRa/BLE sensor node — 868 MHz LoRa, 2.4 GHz BLE, solar/LiFePO4

Copper layers
4
Thickness
1.62 mm
Parts
110
Nets
107
Pads
366
Tracks, vias
674, 200
Pours
8
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
28 Oct 2026
Updated
28 Oct 2026

Overview

Lora node is an open-source printed circuit board by Mehdi-Ldj, from the Mehdi-Ldj/lora-ble-sensor-node repository on GitHub, published under the CERN-OHL-P-2.0 licence. It is a 4-layer board with 110 parts on 107 nets, routed with 674 tracks and 200 vias.

It is built around the SX1262IMLTRT, NRF52840-QIAA-R and BME280, with the TPS61099DRV, BQ25570RGRR and CL21A106KAYNNNE among its other parts. Its parts include 48 capacitors, 15 resistors, 12 inductors, 6 connectors and 5 ICs. It belongs with the radio and wireless and home automation and IoT boards and the nRF52 and nRF5x boards of this library.

Main components

12

README

README.md

Off-Grid Agricultural LoRa/BLE Sensor Node — Rev A

A 55 mm round, four-layer sensor node that runs from a solar cell and a 14500 LiFePO4 cell: 868 MHz LoRa, 2.4 GHz BLE, and an environmental sensor suite on one board.

Rev A rendered board

Design viewer

KiCanvas loads the whole project in the browser: the board opens first, and the five sheets are one click away in its Project panel. No KiCad installation required. The PDF is the quickest way to read the schematic end to end.

Overview

The node is meant to sit in a field and report microclimate data for months at a time without a battery change. A solar harvester tops up a single LiFePO4 cell, a boost holds 3.3 V, and the MCU wakes to sample temperature, humidity and soil moisture before transmitting over LoRa.

Three choices shaped the board more than anything else:

  • The radio is split. A bare nRF52840 runs BLE from a PCB antenna, while an SX1262 carries the long-range link through a U.FL connector, so the 868 MHz front end can be measured and re-matched without touching the MCU.
  • The MCU is a bare aQFN73 at 0.4 mm pitch, fanned out directly on the top layer. No module, no fanout board.
  • The RF feed is impedance-controlled. The 868 MHz path, the 2.4 GHz antenna feed and the U.FL launch all run in a 50 Ω net class over an In1.Cu plane, on a stackup chosen for that geometry.

The outline is the last constraint: Ø55 mm, three mounting holes, and an antenna keepout that no layer may cross.

Features

  • 868 MHz LoRa, discrete SX1262 with a switchless match/filter/balun and a U.FL measurement point
  • 2.4 GHz BLE from a bare nRF52840 (aQFN73) with an on-board PCB antenna
  • BQ25570 solar harvester with PMOS reverse-polarity protection and TVS
  • TPS61099 3.3 V boost from a single-cell 14500 LiFePO4
  • Battery PTC, reverse-polarity protection, current-measure jumper and NTC divider
  • BME280 environment sensor and a switched analog soil probe
  • SWD debug header, six test points, three fiducials
  • 96 parts across five hierarchical sheets

Board specifications

ItemValue
Board sizeØ 55.0 mm, 4 layers
StackupJLC04161H-7628, FR4, Er 4.6, 1.6 mm nominal
Copper1 oz outer and inner, ENIG finish, green mask, white silk
Minimum feature0.20 mm track, 0.15 mm clearance, 0.20 mm drill
Vias0.30/0.20 mm and 0.20/0.20 mm, tented, no blind or buried
Impedance50 Ω ±10 % single-ended, In1.Cu reference
AssemblyJLCPCB Standard PCBA, 2 prototypes

Architecture

Block diagram: the power chain, the nRF52840, the sensing block and the 868 MHz radio path

Line colour and weight separate the five signal classes: power, digital, analog, RF and control. The 3V3 bus feeds the radio and the sensing block from the same boost converter, and the soil probe is switched so it draws nothing while the node sleeps.

Design notes

868 MHz feed

The radio sheet carries a switchless match, filter and balun between the SX1262 and the U.FL, laid out as a 50 Ω coplanar waveguide over the In1.Cu ground plane. The geometry was chosen from a quasi-static 2D sweep before layout:

W (mm)S (mm)h (mm)Z₀ (Ω)εeff
0.380.200.21050.43.51

The sweep and its caveats are in simulation/results/cpw_sweep.md. The full-wave model and the VNA coupon are still to be run.

2.4 GHz antenna

The PCB antenna sits in a keepout with no copper on any layer, fed from the nRF52840 through the same 50 Ω class. The keepout is the fragile part, and it is documented with the stackup in docs/stackup.md.

Power

The BQ25570 runs as a boost charger only — its buck converter is deliberately unused — feeding a single LiFePO4 cell through a PTC and a reverse-polarity PMOS. The TPS61099 then holds 3.3 V for the MCU, radio and sensors, and the soil probe is switched so it cannot leak current while the node sleeps. The full pin list and the reviewed net table are in the schematic.

Package and assembly

Four layers carry the aQFN73 fanout on the top, a solid ground below it, and the supplies on the inner layers. Assembly is Standard PCBA with X-ray, because the aQFN73 and the BME280 both have pads underneath.

Layout

Front copperBack copper
Front copperBack copper
Inner 1 — ground planeInner 2 — power
Inner 1Inner 2

Repository structure

PathContents
hardware/rev-a/KiCad 10 project: five schematic sheets, PCB, symbol and footprint libraries, 3D models
simulation/Coplanar-waveguide pre-check for the 868 MHz feed, and the plan for the 3D model
docs/Assembly, fabrication and PCBA notes, stackup, impedance, schematic PDF
firmware/Reserved for the node firmware

Open the project with KiCad 10:

bash
kicad hardware/rev-a/lora-node.kicad_pro

Fabrication and assembly

The board is drawn for JLCPCB 4-layer fabrication and Standard PCBA, with X-ray inspection for the aQFN73 and BME280. Paste, stencil and panel choices are in docs/fab-notes.md, docs/assembly-notes.md and docs/pcba-notes.md.

The fabrication package for a release — gerbers, drill file, job file, BOM and CPL — is attached to the release rather than committed here.

Status

Rev A is frozen and has not been fabricated yet. The design is complete through DRC, ERC and schematic/board parity.

Licence

Released under the CERN Open Hardware Licence Version 2 – Permissive.

Parts

110
QtyValueFootprintReferences
12100nFCapacitor_SMD:C_0402_1005MetricC12, C13, C14, C15, C25, C26, C29, C30, C31, C32, C33, C35
410uFCapacitor_SMD:C_0805_2012MetricC6, C7, C8, C28
412pFCapacitor_SMD:C_0402_1005MetricC19, C20, C21, C22
44.7uFCapacitor_SMD:C_0603_1608MetricC10, C11, C34, C36
46.8MResistor_SMD:R_0402_1005MetricR3, R4, R8, R10
310kResistor_SMD:R_0402_1005MetricR9, R17, R18
310nFCapacitor_SMD:C_0402_1005MetricC2, C4, C23
31uFCapacitor_SMD:C_0603_1608MetricC16, C17, C27
347pFCapacitor_SMD:C_0402_1005MetricC39, C40, C44
3AO3401APackage_TO_SOT_SMD:SOT-23Q1, Q2, Q3
3FiducialFiducial_1mm_Mask2mmFID1, FID2, FID3
3M2.5MountingHole_2.7mm_M2.5_DIN965H1, H2, H3
20.2pFCapacitor_SMD:C_0402_1005MetricC41, C50
2100kResistor_SMD:R_0402_1005MetricR13, R16
21kResistor_SMD:R_0402_1005MetricR15, R19
22.7nHInductor_SMD:L_0402_1005MetricL14, L15
232MHzCrystal:Crystal_SMD_2016-4Pin_2.0x1.6mmX1, X3
25.6pFCapacitor_SMD:C_0402_1005MetricC43, C45
1+3V3TestPoint:TestPoint_Pad_D1.0mmTP2
1+BATTTestPoint:TestPoint_Pad_D1.0mmTP1
10.5AFuse:Fuse_1812_4532MetricF1
10.5pFCapacitor_SMD:C_0402_1005MetricC52
10.8pFCapacitor_SMD:C_0402_1005MetricC51
10RResistor_SMD:R_0402_1005MetricR20
11.2pFCapacitor_SMD:C_0402_1005MetricC53
11.8pFCapacitor_SMD:C_0402_1005MetricC49
110nHInductor_SMD:L_0402_1005MetricL17
110uF/10VCapacitor_SMD:C_0805_2012MetricC1
110uHInductor_SMD:L_0603_1608MetricL10
115nHInductor_SMD:L_0402_1005MetricL11
115uHInductor_SMD:L_0603_1608MetricL12
11MResistor_SMD:R_0402_1005MetricR7
12.2uHInductor_SMD:L_1210_3225MetricL3
122nHInductor_SMD:L_0402_1005MetricL18
122uHInductor_SMD:L_1210_3225MetricL1
12x3 1.27Connector_PinHeader_1.27mm:PinHeader_2x03_P1.27mm_Vertical_SMDJ3
13.0MResistor_SMD:R_0402_1005MetricR11
13.0pFCapacitor_SMD:C_0402_1005MetricC42
13.3pFCapacitor_SMD:C_0402_1005MetricC46
13.9pFCapacitor_SMD:C_0402_1005MetricC48
132.768kHzCrystal:Crystal_SMD_3215-2Pin_3.2x1.5mmX2
14.0pFCapacitor_SMD:C_0402_1005MetricC47
14.7MResistor_SMD:R_0402_1005MetricR14
14.7nHInductor_SMD:L_0402_1005MetricL19
1470nFCapacitor_SMD:C_0402_1005MetricC24
147nFCapacitor_SMD:C_0402_1005MetricC18
147nHInductor_SMD:L_0402_1005MetricL13
18.2nHInductor_SMD:L_0402_1005MetricL16
1BME280Package_LGA:Bosch_LGA-8_2.5x2.5mm_P0.65mm_ClockwisePinNumberingU5
1BQ25570Package_DFN_QFN:QFN-20-1EP_3.5x3.5mm_P0.5mm_EP2x2mmU1
1EXT_NTCConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalTH1
1LiFePO4Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ2
1MEASConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP1
1MM8130-2600lora-node:COAXIAL-SWFJ6
1NTCTestPoint:TestPoint_Pad_D1.0mmTP6
1SCLTestPoint:TestPoint_Pad_D1.0mmTP8
1SDATestPoint:TestPoint_Pad_D1.0mmTP7
1SOILConnector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_VerticalJ4
1SOLARConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ1
1SRV05-4Package_TO_SOT_SMD:SOT-23-6D2
1SX1262Package_DFN_QFN:QFN-24-1EP_4x4mm_P0.5mm_EP2.6x2.6mmU4
1TPS61099Package_SON:WSON-6-1EP_2x2mm_P0.65mm_EP1x1.6mmU2
1U.FLConnector_Coaxial:U.FL_Hirose_U.FL-R-SMT-1_VerticalJ5
1VINTestPoint:TestPoint_Pad_D1.0mmTP4
1VSTORTestPoint:TestPoint_Pad_D1.0mmTP5
1nRF52840Package_DFN_QFN:Nordic_AQFN-73-1EP_7x7mm_P0.5mmU3
1~TestPoint:TestPoint_Pad_D1.0mmTP3

Questions

What parts does the Lora node use?

110 parts, built around the SX1262IMLTRT, NRF52840-QIAA-R, BME280 and TPS61099DRV. 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 Lora node KiCad files?

From the Mehdi-Ldj/lora-ble-sensor-node repository on GitHub, at the commit this page was made from: the board is hardware/rev-a/lora-node.kicad_pcb and its schematic hardware/rev-a/lora-node.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Lora node design in my own project?

Its repository publishes it under the CERN-OHL-P-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 layers40 × 65 mmP-1000101 Cicada WiSun, the printed circuit board in 3D

    P-1000101 Cicada WiSun

    EnAccess/Cicada-WiSUN-HW

    IoT Communications Module for Energy Access. A quick way to get production ready, bi-directional communications for your IoT embedded device.

    118 parts
  • 4 layers50 × 30 mmCc1200-balloon, the printed circuit board in 3D

    Cc1200-balloon

    tmpk13/cc1200-balloon

    High altitude balloon payload: a CC1200 sub-GHz telemetry downlink and an air quality sensor stack, hosted by a Seeed Wio-E5 module. Four-layer 50 x 30 mm board, routed.

    108 partsMIT
  • 4 layers43.2 × 17.8 mmGeekble Nano ESP32S3, the printed circuit board in 3D

    Geekble Nano ESP32S3

    SooDragon/Geekble-nano-ESP32S3

    Geekble nano ESP32S3

    94 parts6CC0-1.0
  • 4 layers95 × 67 mmLoRaDongle iCE40, the printed circuit board in 3D

    LoRaDongle iCE40

    marrrk/LoRaDongle

    A Risc-V Based LoRa custom PCB

    145 parts4
  • 4 layers96 × 90.2 mmTransceiver, the printed circuit board in 3D

    Transceiver

    ngrabbs/ember

    Open pvpanel.kicadpro with KiCad 10. The project contains the recovered schematic, routed PCB, project-local footprint libraries, and solar-module STEP model.

    161 parts1CC0-1.0
  • 2 layersMacropad, the printed circuit board in 3D

    Macropad

    moonbeeper/moonpad

    109 partsMIT
  • 4 layers90 × 56.1 mmK2-cm5-traeger, the printed circuit board in 3D

    K2-cm5-traeger

    Gamecard/k2-plus-cm5

    K2 Plus CM5 – Creality K2 Plus mit Upstream-Klipper auf einem Raspberry Pi CM5

    137 partsGPL-3.0