Virtual Devices

Work with tags of devices instead of pin numbers!

Functional Blocks

The easest way to define what to do with devices in a graphical way!

Micro HMI framework

Just draw it in a Inkscape and make it a live!

PC-less configuration

Define devices and logic for them
completly by web-interface!


Ventilation System remote monitoring and control

Currently, RD/IO doesn't have HMI constructor. So some drawing skills needed. Some basic JavaScript language knowledge also needed.  But it is not so hard as you may think and it is really fascinatingly. You may draw any HMI plan and make it alive in a context of RD/IO and your text label (and any other stuffs) will be able to dynamically change his text, color, etc. In this video I show you some example of work like that. It is a ventilation system remote control.


Remote lighting control

In this video I show you example of remote lightning control with relay module.


Functional Block Diagram usage for control logic

This video is demonstration of Functional Block Diagram graphical language usage for devices control logic.


JavaScript usage for control logic

In this video you can see how JavaScript language can be used for devices control logic.

All defined devices tags is available through global IO variable that available in a task execution context.

RD/IO on SK-iMX6S-SODIMM and SK-LCD800x480-MB

Demonstrating RD/IO on hardware from www.starterkit.ru



RD/IO platform is IoT embedded software stackhmicbr for devices running the Linux operating system.

It is provide a really amazing capabilities for Home and Industrial automation.

What you can do with it?

Smart home control gate

  • Home consumer electronics remote control from any point through the Internet.
  • Remote lighting control
  • Remote conditionier control
  • Remote aquarium control

Industrial control gate

  • Any industrial devices remote control that have modbus protocol support. 
  • The excellent way to create HMI for your equipment without the need to buy fully-fledged SCADA system.

RD/IO platform allows you to create solutions for remote monitoring and control devices simply, quickly and efficiently. RD/IO platform took the best of both worlds: the IoT systems and industrial SCADA. It is somewhere in between.

RD/IO platform aims to provide a fully PC-less solution. All configuration is done via a simple and intuitive web interface, without the need to interact with your desktop computer.

Currently, the only publicly available version RaspberryPi and it is in very early stage but ready for broad usage scenarios.

Distribution platform is carried out exclusively in one form - headless-system image, which is loaded in a few seconds and does not contain anything extra that can take resources and adversely affect the characteristics of real-time PLC subsystem.

The project has a big roadmap and have a lot of plans for the future development.

Some of thus are:

  • Fully-fledged web-based HMI constructor
  • Support some of very popular sensors and actors
  • MQTT support
  • CORTEX-M/AVR embedded firmware for smart energy efficient sensors that will be integrated in RD/IO infrustructure
  • Mobile application
  • Cloud for reverse HTTP connections to control gate Web interface (that behind the NAT) from Internet



fbdcrOne distinctive feature of RD/IO platform is the programmable logic controller (PLC) subsystem. RD/IO platform solves the problem of autonomous behavior of connected devices - devices that have to do on their own without instructions from the person. For example, if someone opened the window - someone should turn off the air conditioner. The unique capabilities of RD/IO allows the user to define this kind of behavior in the simplest way - graphically, using the language functional block diagrams. For those who prefer to write the code, JavaScript support implemented to solve similar problems, you also write directly to the web interface.

Virtual Devices

Another important feature is the concept of virtual devices. The first thing you need to doIMG_20160222_170045 when you have connected all the sensors and actors, is described in the web interface that you have connected and where. In carrying out this task, you create a virtual device that can both reflect a single instance of real equipment and to combine a number of different aspects of the connected devices. At the stage when you are programming the behavior, you are already working with convenient names instead of pins, buses and other hardware complexity of the world. For example, you specify the need to turn off light bulb "LampInBathroom", rather than something that you need to send a signal to logic 0 on GPIO 17. This also means that if you decide to rearrange the LED to pin 17 on the pin 18, you do not have to adjust your control program and only need to reflect this change in one place - in the virtual device map, in which the LED is determined.


 Currently, the platform supports the following hardware interfaces:

  • Digital inputs/outputs (DIO)
  • Analog input/outputs (AIO) (not available for RaspberryPi, you can use any modbus extension module for that)
  • Modbus/RTU on RS485 bus (which is very simply realized on RaspberryPi)


The platform has a deeply thoughtful, extensible architecture in different directions. When designing the architecture it was also carried out the requirement for portability. To date, the platform ported to the industrial controller based AT91SAM9G45 processor. The entire platform code is written in C/C++ (obviously except the front-end part of the web application). RD/IO has incredible web-interface perfomance because it is on top of great CppCMS framework, that provide ability to make dynamic web applications on highest perfomance, most-efficient C++ language. The widgets concepts of HMI subsystem is implemented on top of svidgetjs framework. 


Get completely free and ready for real usage scenarios demo-version of RD/IO.