As seen on Kickstarter

Official RuuviTag Firmware

« Back to tutorials

Measure Anything Anywhere



This super simple but extremely capable firmware application turns your RuuviTag into a remote temperature + relative air humidity + air pressure + acceleration sensor.

The firmware has two modes: RAW and URL. The URL mode is low-resolution designed to be used mainly with Android Nearby. The RAW mode sends the data in high-resolution. The user can toggle between the modes by pressing the button B

Beginning of firmware version 1.2.12, RAW mode has been the default mode. It automatically starts after battery has been connected to the device.

RAW mode (red LED blinks dimly)

In the RAW mode, red LED blinks once a second.

Just press the button B again to return to the URL mode where the green LED blinks once in five seconds.

The RAW mode uses "Manufacturer specific data" format of Bluetooth Low Energy advertisements to transmit the data. This is the most effective way of packing measurement data of sensors into 20 bytes allowed in the BLE advertisement.

The RAW data format contains temperature, relative air humidity and air pressure readings in high resolution. The RAW mode also includes XYZ-acceleration data and battery voltage. Transmit power is +4dBm (which is RuuviTag's maximum) and packets are sent at 1Hz (once a second).

You can see the environmental values transmitted with Android app.

If you want to build your own custom application, TTU's python library or ojousima's Node-Red module will get you started.

For a ready-made solution, check out our official Raspberry Pi image which has Scrin's RuuviCollector gathering data to InfluxDB. Grafana then displays the logged data. The Raspberry Pi image also acts as a WiFi hotspot, so you can log into SSID "Ruuvi GW" with password "ruuvi-gateway"

All the passwords are set to these defaults listed below, and SSH server is enabled. Change at least Pi's root password ASAP. 

  • Pi: pi raspberry
  • Grafana: admin admin
  • Chronograf: blank
  • InfluxDB: blank

For more details about the RAW (and URL) mode please refer to data format specification.

URL mode (green LED blinks dimly)

The URL mode sends rounded environmental sensor values but the transmissions do not include accelerometer data.

The application broadcasts all these environmental variables continuously, 2 times every second. The latest firmware (download here) has a TX power of +4dBm (which is RuuviTag's maximum).

RuuviTag transmits simple URL addresses in Eddystone-URL format which have sensor data encoded into them.

Weather station notification

Until end of October 2017, Google Chrome on Android/iOS had a widget feature which supported Physical Web. However, now the support has been removed. Read more.

ANOTHER UPDATE: In December 2018 Google will shut down Android Nearby notificationsUntil this, Android phones running KitKat (4.4) and above have a feature called Nearby Notifications. It helps nearby RuuviTags in URL mode to show up on your phone's notification bar.

An alternative way to see these readings is to use a beacon scanner. Many are available. The one we love is nRF Connect. It's available on both Android and iOS. You can also try Beacon Toy or Physical Web (iOS).


To see multiple RuuviTags running the firmware (RAW mode) in action, check a beautiful data visualization demo made by our community member Henrik Heikkilä.



Share your project

#ruuvitag / @ruuvicom

Ruuvi Innovations Ltd (Oy) / Finland

Web Design Niku Creative