World wide free shipping on orders over 100€ - PayPal and Stripe payments - Made in Finland

Setting up the Development Environment for RuuviTag Firmware

Recently I suffered a hardware failure on my laptop, so I had the pleasure of verifying my backups as well as setting up the development environment again.

A messy table with computers and Ruuvi Tags

As we get questions every now and the about how to develop firmware, I’ll write down the steps here.

My computer is running Debian 8 (Wheezy), 64 bit, nothing special in hardware.

First, I downloaded the arm-gcc toolchain version 4.9-2015q3, while the compiler has had plenty of updates since then this is the version Nordic SDK 12.3 has been tested with. To run the binaries on 64 bit computer you might have to install some libraries. I placed the toolchain into /usr/local/, so I don’t need to adjust makefiles later on.

I already had the usual build tools installed, but you might need to install build-essentials etc for make, curl etc.

To actually flash the hexes on boards, Nordic Command Line Tools are required. If you want to create DFU packages which are sent over Bluetooth, you’ll need nRF utils. If you’re going to use wired connection to RuuviTag via Dev Shield, you’ll need JLink Segger software.

Then, I cloned the RuuviTag firmware from the official git repository and ran make. The script downloads Nordic SDK and builds the bootloader and example programs.

The development environment is now set up, next post in the series will discuss on how to flash and debug the programs using JLink.


Get the RuuviTag Development kit to complete your set-up!

RuuviTag Development Kit

RuuviTag Development Kit


Tax 24% | 0%

Ruuvi is based in Finland. If you’re an EU consumer, VAT is included. If you’re a non-EU customer, you don't pay VAT. If you're an EU business, insert your VAT ID at checkout.

In stock

Total: 109,00 + shipping


Add more for free shipping!

View shipping options

The Development Kit is designed for hardcore developers who would like to take their RuuviTag sensors to the limit by flashing and debugging the devices via SWD (Serial-Wire-Debug) bus or use RuuviTag’s extra IO connections on bottom of the circuit board.

The package includes:

  • 1 x  Nordic Semiconductor nRF52-DK evaluation kit
  • 1 x  Development shield designed for RuuviTag

Advantages of the kit

  • Use third-party protocol stacks or operating systems (ie. Wirepas Connectivity or other 3rd party)
  • Debug your firmware via SWD (the nRF52-DK has an integrated Segger J-Link programmer)
  • Easy access to all the IO pins found on bottom of the RuuviTag
  • The original RuuviTag software can be restored (factory reset)
  • Safely test different protocol stacks in development (Bluetooth 5 for example, an upcoming feature)
  • No hassle with a battery while developing because the shield powers the RuuviTag

Do I need one?

The DevKit isn’t needed if you’re happy to flash your RuuviTags over-the-air.

For most of the people, DFU OTA (Device Firmware Update Over-the-Air) is enough if no protocol stack or bootloader has to be replaced or no serious debugging is needed.

Note also that if you’re developing your own firmware, power consumption measurements are recommended so that possible current leaks can be obtained. A great tool for this is Nordic Semiconductor’s Power Profiler Kit which is compatible with the nRF52-DK evaluation board.

To read more about the DevKit, refer to RuuviLab’s tutorial.

Featured Products

Find the right products for your measuring needs
  • RuuviTag sensor measures temperature, air humidity, air pressure and motionIn stock
    RuuviTag is a Bluetooth sensor that sends temperature, relative...
    Read more

    RuuviTag Sensor (4in1)

  • Ruuvi KitIn stock
    Every Ruuvi Gateway product is shipped with...
    Read more

    Ruuvi Sensor Measurement Kit

  • Ruuvi GatewayIn stock
    Note! Every Ruuvi Gateway product is shipped with a...
    Read more

    Ruuvi Gateway Router

  • RuuviTag Pro 3in1 measures temperature, air humidity and motionIn stock
    Choose your model (2in1, 3in1 or 4in1) depending on...
    Read more

    RuuviTag Pro Sensor