Using a Ruuvitag as a Gateway

For those who have a spare Ruuvitag and aren’t happy with the RPI’s BLE performance or have a device like a Onion Omega 2+ or older RPI that doesn’t have built in BLE.

A spare Ruuvitag or any other nRF52832 module can be used as a gateway. With the upcoming Ruuvi Gateway on it’s way the Firmware for the nRF module can be used to turn your spare Ruuvitag into a BLE receiver which can turn a small board into a powerful gateway.

I slightly altered fimware found at:

So the data includes the channel of which the device is currently scanning on. This could be used in the future if lets say a certain BLE tag had bad performance and it turned out that it was unable to be seen on certain BLE channels.

I also changed the RX, TX pins so that connecting to the devkit was easier for testing. The edited firmware can be found at:

Once the Ruuvitag is flashed it can be simply connected to Either a RPI or Onion Omega 2+. Note that there are some steps needed to get the UART pin to work on a RPI.

With the use of Python a power BLE gateway can be created that can leverage the performance or the BLE in the nRF52832.

The application can be found at:

It can be configured to easily use the RPI BLE or to use the external nRF module.

What would be awesome would be to create a expansion board for a RPI or the Onion Omega that would be a simple plug and play experience. Tied in with the BLE in the RPI , MQTT messages could then be used to connect to BLE devices exchange data whilst not loosing Scanning functionality.


Really cool, thanks for sharing!

Have you already made range tests? Better than RPi?

Still needing to test the range.

I should have some Raytac MDBT42Q-U512KV2 modules coming in the amil soon so will test that as well. I would think they would betetr range then both the RPI ble and a Ruuvitag.

Did some initial testing.

Yellow is the tag being seen via a ruuvitag as the scanner.
Blue is a RPI Zero W next to the Ruuviscanner.

The Ruuvi gives more consistent RSSI reading whilst closer to the beaconing tag, however the RPI Zero W had a better range in the simple test witht he ruuvitag not being seen by the ruuvi scanner at the furthest corn of the house.

This could be due to the Ruuviscanner being in the devkit having a Zip tie over then antenna and also the to devboard helping to reduce the range.