nRF52 Sensors Mesh Network

An alive mesh network

Public Chat
Similar projects worth following
The nRF52 powers here a wireless sensor device and a Mesh router device, both 100% open source and simple for DIY. This protocol stack frees you from the cumbersome softdevices and offers extensible features such as permanent network self diagnosis. The right SW for database and dashboard is also available for a raspberry pi server and docker image as well.

nRF52 Home Smart Mesh Website

Home Smart Mesh with comprehensible structure, menu for different boards, mesh concept,...

nRF52840 usb dongle

  • Nordic has release a cheap usb dongle. This board does not have a serial to usb converter, rather the physical usb of the nRF52840 chip. I will be porting the custom RF protocol to use this board as a high performance repeater and dongle.
  • In parallel, I'm developing applications using "OpenThread" as a protocol, but that does not replace many use cases such as robotic applications (see #Self standing balancing robot). The custom protocol has a millisecond scale efficiency , is much simpler.

nRF52 Sensor Tag

mRF52 Sensor Tag Key Features

  • RF Mesh Logging of Temperature, Humidity, Pressure, Battery Level
  • Low power ~ 25 uA
  • Open source firmware, even the RF stack is open source, no softdevice used.
  • nRF52832
  • BME280 : temperature (high precision 0.01°), humidity, pressure
  • MAX44009 : Ambient light (0.045 Lux to 188,000 Lux Range)
  • PCB is available on the repo, schematics, board and gerbers for direct order
  • Very easy to solder
  • Possibility to solder different I²C sensor modules
  • nRF SDK 15.0.0 inetgrated as a light weight git submodule where custom radio protocol is extracted
  • debug project for Segger Ozone

Two battery types

nRF52 Mesh Router Dongle

nRF52 Mesh Dongle Key Features

  • RF Mesh Autonomous router
  • RF Mesh Remote configuration
  • RF Mesh Host Controller Interface (HCI)
  • HCI used by Raspberry pi Python scripts
  • UART @ 460 Kbps
  • Continuos Streaming of up to 300 RF Packets / second

How the Mesh Works

Complete Mesh to MQTT Mapping

Docker and Raspberry pi Server Software

More structured info on

nRF52 Home Smart Mesh Website

The PCB is ready

  • Eagle design files available in the IoT Frameworks github
  • gerber files also available in there
  • Frame dimensions are 37 mm x 27 mm with around 8mm of antenna side out of frame so total is 37 x 35 mm.
  • Support options on same pcb the user can decide what support to solder :
    • CR2032 small
    • CR2477 big
  • BME280
  • APDS9960
  • MPU6050 (can be soldered from the back side or below the other modules)

Cost0.25 €2 €x8
Capacity230 mAh900 mAhx4
Holder height4 mm12 mmx3

Link to Schematics

Used module

"nRF52832 module" search keyword, returns on vendor websites modules similar to this one :

  • nRF52832 512KB ROM, 64KB RAM
  • PCB ant
  • 16.4 mm x 22.9 mm
  • VCC, GND, SDIO, SCLK, P0. (6, 7, 8, 9, 10, 11, 12, 14, 29, 30, 31)
  • pio spacing 2.54 mm very easy soldering

Selection process of the power supply strategy 

Market Available nRF52 sensor Tags Alternatives

As this is not a project that focus on competition rather on feature rich eco-system, here are provided the closest market available alternatives, all of those HW could easily be ported to the Home Smart Mesh SW stack and vice versa.


This is the ideal design, low power sensors logging in mind, has a big battery for longer life, open source, open hw. Although everything looks ideal, it is not affordable for a simple maker like me to redesign this into my own IoT sensors combination. Same as in the #Home Smart Mesh , the Ruuvio community is also converging to standard tools for logging data such as Grafana and a serious time series database such as Influx db. But funnily enough, as of...

Read more »

  • nRF dongle brought to life with a pogo-pin adapter

    Wassim05/15/2018 at 21:23 0 comments

    The pogo-pin adapter is successful

    The used pogo-pins, not ideal, very thin, but all I got at the moment, can't wait.

    during the testing all possible mistakes were obviously performed :

    • SWDIO and SWDCLK have been inverted, the nrfjprog got thus an error, had to swap them to make it work
    • Tx and Rx pin were confused between sender and receiver, so first attempt was silent
    • At least the RF worked since the first attempt

    Photos of the scene

    Lack of helping hands and preliminary design not possible to put a holder on top or clip it to the DUT, anyway, at least the pogo-pins are matching.

    It was very hard to get tiny holes on the 3d print, I had to set them much bigger around 1.3 mm diameter to get something where the 065 mm could pass, but not adjusted so had to set some glue.

    Two first attempt failed because of holes diameter, then I abandoned the idea of having a ceiling holding the pins, after all some glue did the trick.

    This nRF52 board will become the official dongle for the nRF52 Mesh project, given its cost and compacity, it makes it an ideal candidate.

    I also figured out before flashing my own application that it had a bootloader, so I should probably start testing and using the serial bootloader to avoid mounting and dismounting every time. As this is already a serial USB adapter this concept fits perfectly.

View project log

Enjoy this project?



Tim Kerby wrote 08/07/2018 at 23:24 point

Did you get a boot loader compiled for this dongle? I’ve been trying to get the Nordic secure boot loader up and running without much success in buttonless mode

  Are you sure? yes | no

Wassim wrote 01/05/2019 at 10:11 point

Hi @Tim Kerby , sorry for late reply, the notification was not clear.

Same as you, I spent some efforts on the the example of the bootloader:


I followed all steps but did not succeed. It is a pain to open the small usb dongle every time, so I kept it for deployed projects only and develop using another pcb that is open.

Things evolved since, and now the official nRF52840 is available with functional bootloader, so I would recommend it for new projects. I will be porting my custom RF on it. It would be great if I manage to build a bootloader with a custom transmort using my custom RF for it, but given the alternative of using pogo pin adapters, the investment of custom BL is a bit scary.

I'm currently very active on different nRF applications

so let me know if you'd like to collaborate on any particular one.

  Are you sure? yes | no

electrobob wrote 06/24/2018 at 12:22 point

That chipset looks pretty cool, a nice way to integrate sensors into small products.

In which conditions do you reach the 25 µA power consumption?

  Are you sure? yes | no

Wassim wrote 06/24/2018 at 15:22 point

Thanks @electrobob , well 25 uA is an honest measure of the currently deployed firmware sleeping to be awaken with RTC, with the nRF52 module, BME280 and MAX44009 modules unmodified. Also not sure if the BME code can be optimised, and there is potential to do a lot better for the nRF52, as the datasheet mentions 1.9 uA with RTC and RAM retention is less than that. The tx time is neglected as hundreds of microseconds every 20 sec. But I still have to work on the full power profile, also going up to +4 dB. I'll do that with a scope and serial reistor. But let's say that power optimisation is not the priority because I'm logging continuously the battery voltage and it looks good so far, around 0.1 V drop in about a month, you can view here a snapshot I exported from my grafana :

  Are you sure? yes | no

electrobob wrote 06/24/2018 at 15:46 point

Indeed, both sensors should be well below 1µA each, but better check the extra components added and what is happening in the SoC. I think you should be able to keep sleep below 5µA and another 5µA for the data transmission, going for 2-3 years from a CR2032. 

  Are you sure? yes | no

Wassim wrote 06/24/2018 at 18:28 point

Yeah 2-3 years that's a nice target usually reached with the nRF52, the CR2477 would be for a timely waking up listener or more extensive communication.

For my router nodes, there's no chance running them on batteries, as I allow the low power devices to sleep as long as they want, so the routers have to be listening full time ~ 10 mA. Low power and real time mesh is a real challenge, so now I stick with Home application where every corner is allowed a USB power supply for the surrounding low power nodes.

  Are you sure? yes | no

electrobob wrote 06/26/2018 at 11:55 point

Since you are talking about router nodes, what is the maximum range you have?

  Are you sure? yes | no

Wassim wrote 06/26/2018 at 16:44 point

I have two types of routers that can operate on the same mesh, one for long distances from my previous project #Home Smart Mesh  based on an STM32 and an nRF24 + PA + LNA, The metal shielded ones seen on the picture promise 2KM, I only tested them indoors and they could still send (1 msg out of 100) through x4 floors, I have no good unit for measure but e.g. 80% of messages through 2 ~ 3 walls.

The second type I stick with in this project is a much less powerful repeater (+4dB default nRF52 usb dongle), in favor of a much better design integration, inside a wall usb socket you would barely notice them. Another advantage is the RSSI only available since the nRF51 / nRF52 series, and I'd like to base the concept of this mesh on top of that, where every ~ 60 sec, every low power node sends one alive message, which acts like a trace-route, with every router appending the RSSI and tx power to the packet, the server thus can fully diagnose the mesh permanently from all redundantly received routes, also working on a webgl 3d viewer (preliminary version already shared on github) we'll see how that'll end up.

I have found some nRF51 + PA + LNA modules, I'm tempted to use them as another variation, but at the beginning I try to minimize the variations and get them better working first.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates