RuuviTag

Overview

RuuviTag is an advanced battery-operated open-source Bluetooth enabled sensor beacon platform capable of sending temperature, humidity, pressure, and motion information over Bluetooth Low Energy.

More information about the board can be found at the ruuvitag website [1].

Hardware

RuuviTag’s have the following physical features:

  • Nordic Semiconductor nRF52832 System-on-Chip

  • STMicroelectronics LIS2DH12 accelerometer

  • Bosch BME 280 temperature + relative air humidity + air pressure sensor

  • NFC™-A tag antenna

  • 1000mAh CR2477 battery

  • 2 buttons

  • 1 Green LED

  • 1 Red LED

  • IP67 Enclosure

  • Long range RF antenna

Supported Features

The ruuvi_ruuvitag board supports the hardware features listed below.

on-chip / on-board
Feature integrated in the SoC / present on the board.
2 / 2
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files.
vnd,foo
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.

ruuvi_ruuvitag/nrf52832 target

Type

Location

Description

Compatible

CPU

on-chip

ARM Cortex-M4F CPU1

arm,cortex-m4f

ADC

on-chip

Nordic Semiconductor nRF family SAADC node1

nordic,nrf-saadc

ARM architecture

on-chip

Nordic UICR (User Information Configuration Registers)1

nordic,nrf-uicr

on-chip

Nordic nRF family BPROT (Block Protection)1

nordic,nrf-bprot

on-chip

Nordic EGU (Event Generator Unit)6

nordic,nrf-egu

on-chip

Nordic nRF family MWU (Memory Watch Unit)1

nordic,nrf-mwu

Audio

on-chip

Nordic PDM (Pulse Density Modulation interface)1

nordic,nrf-pdm

Clock control

on-chip

Nordic nRF clock control node1

nordic,nrf-clock

Comparator

on-chip

Nordic nRF COMP (analog COMParator)1

nordic,nrf-comp

Counter

on-chip

Nordic nRF timer node5

nordic,nrf-timer

Cryptographic accelerator

on-chip

Nordic ECB (AES electronic codebook mode encryption)1

nordic,nrf-ecb

on-chip

Nordic nRF family CCM (AES CCM mode encryption)1

nordic,nrf-ccm

Debug

on-chip

ARMv7 instrumentation trace macrocell1

arm,armv7m-itm

Flash controller

on-chip

Nordic NVMC (Non-Volatile Memory Controller)1

nordic,nrf52-flash-controller

GPIO & Headers

on-chip

NRF5 GPIOTE1

nordic,nrf-gpiote

on-chip

NRF5 GPIO1

nordic,nrf-gpio

I2C

on-chip

Nordic nRF family TWIM (TWI master with EasyDMA)2

nordic,nrf-twim

I2S

on-chip

Nordic I2S (Inter-IC sound interface)1

nordic,nrf-i2s

Input

on-board

Group of GPIO-bound input keys1

gpio-keys

Interrupt controller

on-chip

ARMv7-M NVIC (Nested Vectored Interrupt Controller)1

arm,v7m-nvic

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

Miscellaneous

on-chip

Nordic FICR (Factory Information Configuration Registers)1

nordic,nrf-ficr

on-chip

Nordic nRF family PPI (Programmable Peripheral Interconnect)1

nordic,nrf-ppi

MTD

on-chip

Flash node1

soc-nv-flash

on-board

Fixed partitions of a flash (or other non-volatile storage) memory1

fixed-partitions

Networking

on-chip

Nordic nRF family RADIO peripheral1

nordic,nrf-radio

on-chip

Nordic nRF family NFCT (Near Field Communication Tag)1

nordic,nrf-nfct

Pin control

on-chip

The nRF pin controller is a singleton node responsible for controlling pin function selection and pin properties1

nordic,nrf-pinctrl

Power management

on-chip

Nordic nRF power control node1

nordic,nrf-power

PWM

on-chip

nRF PWM3

nordic,nrf-pwm

on-chip

nRFx S/W PWM1

nordic,nrf-sw-pwm

Regulator

on-chip

Nordic nRF5X regulator (fixed stage of the core supply)1

nordic,nrf5x-regulator

Retained memory

on-chip

Nordic GPREGRET (General Purpose Register Retention) device2

nordic,nrf-gpregret

RNG

on-chip

Nordic nRF family RNG (Random Number Generator)1

nordic,nrf-rng

RTC

on-chip

Nordic nRF RTC (Real-Time Counter)3

nordic,nrf-rtc

Sensors

on-board

BME280 integrated environmental sensor1

bosch,bme280

on-board

STMicroelectronics LIS2DH 3-axis accelerometer accessed through I2C bus1

st,lis2dh

on-chip

Nordic nRF family TEMP node1

nordic,nrf-temp

on-chip

Nordic nRF quadrature decoder (QDEC) node1

nordic,nrf-qdec

Serial controller

on-chip

Nordic nRF family UART1

nordic,nrf-uart

SPI

on-chip

Nordic nRF family SPI (SPI master)1 2

nordic,nrf-spi

SRAM

on-chip

Generic on-chip SRAM description1

mmio-sram

Timer

on-chip

ARMv7-M System Tick1

arm,armv7m-systick

Watchdog

on-chip

Nordic nRF family WDT (Watchdog Timer)1

nordic,nrf-wdt

Connections and IOs

LED

  • LED0 (red) = P0.17

  • LED1 (green) = P0.19

Push buttons

  • BUTTON0 = SW1 = P0.13

Pin descriptions

RUUVI Pinout
  • 2 = P0.29 = SPI_SCK

  • 3 = P0.28 = SPI_MISO

  • 10 = P0.04 = GPIO (can be used as a GPIO / ADC pin)

  • 11 = P0.05 = GPIO (can be used as a GPIO / ADC pin)

  • 12 = P0.25 = SPI_MOSI

  • 13 = P0.19 = LED2 (green) / GPIO (can be used as a GPIO pin but the LED will blink)

  • 14 = P0.17 = LED1 (red) / GPIO (can be used as a GPIO pin but the LED will blink)

  • 15 = P0.13 = Button / GPIO (can be used as a GPIO pin)

  • 16 = GND (Battery’s negative contact)

  • 17 = Battery’s positive contact

  • 18 = Battery’s positive contact

  • 19 = SWDIO

  • 20 = SWDCLK

  • 21 = P0.18 = SWO / GPIO (can be used as a GPIO pin)

  • 22 = P0.21 = Reset / GPIO (can be used as a GPIO pin if no need to reset the device)

  • 23 = GND (Battery’s negative contact)

  • 24 = P0.31 = GPIO (can be used as a GPIO / ADC pin)

  • 25 = P0.30 = GPIO (can be used as a GPIO / ADC pin)

GPIO = General Purpose Input Output pin

P1 = Standard 10-pin ARM Cortex debug connector (on RuuviTag Rev.B1-B5)

  • 1 = VDD

  • 2 = SWDIO

  • 3 = GND (Battery’s negative contact)

  • 4 = SWDCLK

  • 5 = GND (Battery’s negative contact)

  • 6 = SWO

  • 7 = No Connect

  • 8 = No Connect

  • 9 = GND (Battery’s negative contact)

  • 10 = Reset

P1 = TC2030 TagConnect (on RuuviTag Rev.B6)

  • 1 = Battery’s positive contact

  • 2 = SWDIO

  • 3 = Reset

  • 4 = SWDCLK

  • 5 = GND (Battery’s negative contact)

  • 6 = SWO

Programming and Debugging

Flashing

Build and flash applications as usual (see Building an Application and Run an Application for more details).

The easiest way to flash Zephyr onto a RuuviTag requires an external Ruuvi DEVKIT. More information about the board can be found at the ruuvitag devkit [2].

Once your tag is connected to the DEVKIT and connected to your PC, build and flash the application in the usual way.

# From the root of the zephyr repository
west build -b ruuvi_ruuvitag samples/basic/blinky
west flash

Advanced users may want to program the RuuviTag without the DEVKIT, this can be achieved via the SWDIO and SWDCLK pins located on the back of the RuuviTag.

Debugging

If using the Ruuvi DEVKIT refer to the Nordic nRF5x Segger J-Link page to learn about debugging Nordic boards with a Segger IC.

Testing the LEDs and buttons on the RuuviTag

There are 2 samples that allow you to test that the buttons (switches) and LEDs on the board are working properly with Zephyr:

You can build and flash the examples to make sure Zephyr is running correctly on your board. The button and LED definitions can be found in boards/ruuvi//ruuvi_ruuvitag/ruuvi_ruuvitag.dts.

References