Configuration and programming interface for embedded systems

  • Web-application

    as device programming interface
  • Functional blocks

    as graphical programming model
  • Access to resources

    hardware/software through blocks
  • Portable

    to wide range of Linux-based systems
  • IoT support

    functional blocks for VPN, SMS, E-mail
  • XML files

    for importing/exporting user application

IOBlocks for Linux-based (embedded) systems
Graphical configuration and programming interface

IOBlocks was designed [1]

with the goal to provide a lightweight graphical interface for easily programming Linux embedded devices and facilitate their operation in simple automation tasks where other solutions, like a PLC, would be overblotted and expensive. In contrast to a PLC, the strong advantage for using a Linux-based system is the flexibility to integrate periphery (Linux supports immense number of device drivers), network protocols, operating system resources (like filesystems) and also external libraries/applications. Additionaly, there exists a wide range in price and performance of devices to select for achieving the desired task on the best possible manner. Getting started in the development of user applications for Linux could be a barrier that IOBlocks aims to overcome.

[1] The front-end is based on the flowchart software Diagramo but customized with functional blocks by IOFactory

The integration of IOBlocks

allows to build applications in a simple and intuitive way by creating diagrams with graphical functional blocks. The interface is implemented as web-application (HTML5) where the server runs on the device. This approach provides OS independency as only requires a web-browser for connecting to the device and start to design the user application. The configuration of the hardware/software resources are configured through the web-interface too. At example the creation of VPN connection profiles that can be used afterwards in the blocks diagram for bringing up/down according to the application requirements.

The IOBlocks approach

mainly consists in interconnecting functional blocks in a diagram. Each block covers a specific operation that processes input data and forwards new output data for other interconnected blocks. This new data can be written to a periphery like serial port. In difference to a PLC, the data exchange between blocks is event-triggered. Each block is able to detect events and emit signals for other blocks. This is also know as signal and slot communication. Thus simplifies the development as don't need to take care about sequential code execution, but in special cases have to consider parallel processing of an event as the blocks detect the event in unpredictable order. The sample video demostrates IOBlocks with a quite simple diagram that handles following tasks:

* Listen and read one byte from serial port /dev/ttyS0
* Set GPIO 51 when byte arrives, and send a SMS to number +34 12345678
* Afterwards write byte value 12 to USB port /dev/ttyUSB0.

Currently IOBlocks

is available in a Beta version, but it already includes a wide range of functional blocks for creating applications like data collectors, VPN gateways to Modbus/Profinet or just for special device logic. The number of blocks is limited to basic level yet, but in the future the list will growth with support for periphery like webcams or audio cards. If you have interest in the development of a custom block, please contact us.