Using RuuviTAGs for indoor positioning

With Ruuvi team’s kind permission, I’m going to write about our project,, and how it can be used with RuuviTAGs. is a unified positioning platform that combines all the major mobile positioning technologies under one simple SDK. Current offering includes Eddystone, iBeacon, IndoorAtlas and native positioning. On top of the position info, our platform offers tools for geofencing, push messaging, integrating to different 3rd party APIs and analytics collection. REST API also available. is free to use for small projects, just register at

Here’s how to connect your Ruuvi beacons to platform:

Step 1: Update the beacon to Eddystone and configure
I personally found the nRF Toolbox easier to use for the firmware update. Then, change the Eddystone settings with nRF Beacon for Eddystone app. Edit one of the slots to transmit UID. 350 is a good advertising interval for positioning use. 0dBm (the default) tends to function well for Tx power.

Step 2: Setup your account is based on the concept of turning different sensor signals (can utilize any major mobile positioning technology) to x/y coordinates. Thus, you need to define the exact location, where your beacons are positioned through the portal. It’s quite straightforward. Start from the top-left by adding your place, and then add at least one floor and one department. Adding a floorplan will make the process much easier.

1 Like

Then, add your RuuviTAG beacon through the portal from “Manage inputs” -> “Registered Inputs”. Latitude and longitude will be automatically filled in, as you select the department. Type in the namespace ID and instance ID, and then click “Next”.

Pro tip: With Android you can also use our Management App’s “Add input from Scan” function to scan the RuuviTAG and automatically add it to your account. Nevertheless, you need to use the portal for the next step, which is placing it on its correct place in the venue.

If you want to do push messages, add one geofence around your beacon with your preferred radius.
Then, add a simple action flow for push messages. You can simply copy & paste the code form here: .

Step 3: Testing in real life
The quickest way to test it out is through our Management Apps for iOS and Android and login with your credentials. Voilà.

To get the positioning functioning in your own app, we have SDKs for Android and iOS, and a Cordova plugin. If you’re starting from a scratch, starter app bases can be found for Android, iOS and Ionic.

If you have any questions, I’ll answer below or through email!

I am not able to login to portal as it’s saying my trial period is expired! My email id:

Hi, Vivek,

You might not get very fast answer here, please contact:
“If you have any questions, I’ll answer below or through email!”

Hi, Thanks for letting us know. Just took a look at it, and seems to be a cache problem with Chrome. All is fine with your account and with other browsers it works well. I’ll let you know, once we’ve fixed it!

Hi Vivek, it’s fixed now. Login functioning as it should.

Does this use triangulation, or just proximity?


If you add just individual beacons, it uses the distance to that beacon. If you add multiple ones (under the same department), the trilateration kicks in.

1 Like