Smart connected devices; the VRI-board

Smart connected devices; the VRI-board

VRI Sensor and actuator platform


For our full-stack IoT platform, we developed a general purpose system board that can be used for communicating with our backend through a gateway. In this article you can find some details about the project. Also you should also check out the GITHUB repository where you can find all the resources including schematic, layouts and C code plus the youtube video where you can learn how to program it!


The VRI sensor system consist of two different board: a main board and a RF sheld. The main board contain the microcontroller (MCU), the power management unit and the temperature sensor; while the RF shield contains the RF module and the antenna connector. The board is programmed by using the “main” connector and the ST-LINK, present on the STM discovery boards. More detailed instructions are present in our instructional video series:

Main Board

The main board consist of a small squared pcb board which include the “core” electronic devices.  It is based on STM32L151 microcontroller, a low-power 32 bit MCU from ST microelectronic. This MCU is extremely flexible and thanks to the ARM M3 core, is also very powerful. The main board is powered by a standard usb connector (5V) and a single Cell LiPo Battery. It also include a temperature sensor and a power management unit (BQ24075), which will recharge the battery when the the board is plugged on a USB power source and automatically switch to battery when the power is disconnected without resetting the circuit.  There are 4 connectors available on the board. One is used for communication between the RF shield and the Main board. The “main” connector is used for programming the board via Serial Wire Debug (SWD). In this connector is also routed out the I2C1 bus.  The other two connector are used for connecting external sensors/actuators. In particular the “Analog” connector route out several GPIO connected to MCU ADCs. The last connector is used for digital communication and in particular it routes out the I2C2 bus together with another two GPIOs.  Onboad are also present one button and 2 LEDs that are user configurable!

RF Shield

Communication is ensured by a tinymesh module mounted on a shield board. The advantage of this configuration is that the user can easily substitute the RF module with other shields, in case they want to switch frequency and or protocol. The standard RF shield uses the radiocraft module with a proprietary mesh protocol developed by tinymesh. We choose this module over the more popular ZigBee because the compatibility between the different module families. In particular all the tinymesh modules are both pin compatible and API compatible, meaning that in principle a user can switch for example the working frequency from 868MHz to 2.4 GHz without changing anything in the Code, by just swapping RF board. Also the RF Board layout is fixed and different version will only need to differs by a different Radiocraft module!


C Code is developed using the COIDE, a free IDE developed by CooCoX.  you can find it in our GITHUB repository together with the instructions! just download the code and open the project on the IDE. For flashing the code, please follow the instruction present on our Video Series.

A getting started video on the C code is available on youtube:

All the Material and Code is released under MIT license! So just get started!

Leave A Comment

Your email address will not be published. Required fields are marked *