for Ruuvi environmental sensor

Many users of Ruuvi Bluetooth Environmental sensors would like to "tune" them.
My fork uses the UICR area of the Nordic System On Chip to store "tuneing" values which overide the defaults in the source.

Create UICR

This web page creates the data for DeviceFirmwareUpdate OverTheAir capabilities of Nordic's nRFconnect to update the CUSTOMER Register area of the UICR for Ruuvi firmware 2.6.0. This area is dedicated by Nordic as an area in NonVoltial Memory for User Information Configuration. It begins at memory location x'10001080' and is 32 words long. Version 2.6.0 only uses the first 9 words. It is preserved across power cycles and is not erased using the nrfjprog --program file.hex --sectorerase .
It is erased with --eraseuicr as well as --sectoranduicrerase, --chiperase --eraseall, --recover .

Firmware version 2.6.0 includes a check to insure that the UICR area matches the version of the code which sets the tunable parameters. It also outputs the values used to Segger RealTimeTransfer (aka log ) via j-link if you have the Ruuvi Development Shield. Some of the settings are also transmitted in an advertisment packet with the first payload byte being x'C0' ( C0nfiguration).

You can copy the hex file from the rose colored area at the bottom of this page and paste it into a file on you laptop/desktop.
Then use nRFutil to create a DFU OTA packet, transfer it to your mobile device and use nRFconnect to update the RuuviTag.

Using this technique it is possible to make changes easily without any programming skills and without installing the entire tool chain necessary to compile and create the firmware image. You can tweak the parameters repeatedly and test them see what the best values for each Ruuvi Sensor.

If you have the Segger j-link program you can view the values used from the log messages reported via JLinkRTTClient (or telnet localhost 19021).

Future versions of this page will create a Device Firmware Update package so you can change the tunables Over The Air using the Nordic nRFconnect app or nRF Toolbox for IOS, without the need for the Dev kits or the nRFutils.

Rate (ms)
(only affects mode1 )
1285ms — 2.000 Seconds
1 — 20
Increasing Advertising Rate may increase the odds that a measurment will be received
at the expense of battery life


BME280 only
Increases in oversampling affect noise at the expense of battery life
See BME280 Documentation section 3.3.4 and
NB nRF52832 die temperature has 6 segments Chapter27!
1   2   4   8   16  
Humidity 1   2   4   8   16  
Pressure 1   2   4   8   16  

Accelerometer: Sample Resolution:

Temperature adjustment: in .1°C Humidity adjustment: in 1%                 Read
Wiki Temperature, humidity accuracy
Movement sensitivity :

TX power
-40   -20   -16   -12   -8   -4   0   +3   +4  
Increasing Transmission power increases range at the expense of battery lifetime

Sensor History

range 1—250 seconds

Receiver duty cycle
Reducing receiver on time saves battery but will increase the time it takes for RuuviStation to start Sync.
on off

sensors to log
Choose up to 3
Temperature     Humidity     Pressure    
X-axis     Y-axis     Z-axis     Movement counter    

Contact me at
DG12 if you need additional information or have a parameter I have not included as tunable that you would like added.