Visual Development with XOD

This looks interesting:

 If you program microcontrollers like the Arduino, you should check out XOD and see how you like visually creating software.

The software is open source and currently, can target the Arduino or Raspberry Pi.

Some alternative visual programming tools:

– LabVIEW RT or Matlab Simulink – both very powerful, very stable, closed source and very expensive
– Scilab Xcos – powerful, unstable, open source, free
– MyOpenLab – enough power, stable, open source, free

Visual tools already  covered on this blog:

Scratch -

- Node-Red -

- many other at


  1. Tomi Engdahl says:

    XOD is a Visual Programming Language for Arduino, Raspberry Pi, and other Maker Boards

    When you think about visual programming on the Raspberry Pi or Arduino board, Scratch may come to mind, but some developers have decided to create their own visual programming language working for Arduino, Raspberry Pi, and other boards. Meet XOD, pronounced ksəud.

  2. Tomi Engdahl says:

    XOD: A New And Open Source Visual Programming Language For Arduino, Raspberry Pi, Etc.

    However, when it comes to hardware tinkering, programming knowledge is a must. To take care of this issue, developers have been trying to create what’s called visual programming languages. Many of them are already popular, including the likes of Node-Red and NoFlo, and others are budding.

    One such new visual programming language for Raspberry Pi, Arduino, and other development boards is XOD. In an email sent to Fossbytes, the creators of XOD programming language told that they’ve added graphical functionality and functional reactive principles. XOD language, XOD IDE, and library sources will be open sourced and published on GitHub once it’s launched.

    Compared to other visual programming languages like Node-Red and NoFlo, differs is execution environment. “Node-RED and NoFlo require a full-fledged computer that is capable of running NodeJS programs. At least Raspberry Pi. XOD can be run on much more constrained devices such as microcontrollers and low-end Arduino’s,” XOD creators told me.

    It should be noted that XOD is a lower-level programming language. Another thing, XOD is able to let the user build up some missing node using other nodes, without switching to textual programming.

  3. Tomi Engdahl says:

    XOD, a new visual programming language for Arduino, Raspberry Pi and other development cards

    XOD is a new visual programming language project by assembling function blocks. XOD is more modern and simpler than the Scratch project on Raspberry Pi. XOD is still in the development stage. It will be offered as open source software. The source code will be available on GitHub from the day of its release. At launch XOD will be able to manage the GPIO of the Raspberry Pi as well as the Arduino. The development team hopes to create enough enthusiasm among Makers and developers to quickly add other platforms. Hopefully we can quickly develop for Espressif ESP8266 and ESP32 platforms.

    Creating a project is similar to Labview’s National Instrument or Node-RED from IBM. Blocks are placed on a board. Each block has inputs / outputs. The blocks are then connected to each other by wires which transmit the data, the commands or the states.

  4. Tomi Engdahl says:

    Raspberry Pi gets new visual programming language

    A Russian software development team has developed a new programming language which uses visuals and graphics to simplify the programming of Raspberry Pi and Arduino boards.

    The language is based on functional reactive programming principles and graphical functionality has been added.

    The plan is to publish the XOD language, XOD IDE, and library sources on GitHub once launched.

  5. Tomi Engdahl says:

    Yep, this is the point. And it’s not up to change text programming to some graphical widgets, it’s different approach, XOD is data flow concept. In textual programming, you start from real user problem, then decompose it, imagine code abstracts and some kind architecture and then operate with these abstracts to solve problem. In XOD you operate with Nodes and links which correspond to real world more closely.


  6. Tomi Engdahl says:

    XOD — A New Visual Programming Language for Arduino

    over the last few years visual tools seem to be going through a renaissance. This is being driven, at least in part, by the growing popularity and the communities that have formed up around two very different visual tools, Node-RED and Scratch.

    Enter XOD, a new visual programming language for the Arduino, which has just been released into the wild by its creators.

    The project is still in very early days, and support for Arduino libraries and other hardware is somewhat limited, and while it shows promise

    Right now the visual blocks map closely to the underlying code. However this problem may be resolved with time as “composite” nodes can by connecting two (or more) existing nodes. In other words, you can build small (but higher level) logical blocks which you can then distribute to other XOD users.

    XOD will however face stiff competition, as both Node-RED and Scratch support Arduino to different degrees.

    However both Node-RED and Scratch require special sketches to be loaded onto the board. Node-RED uses Firmata, and the S4A fork of Scratch that supports the Arduino uses a custom sketch. This means that your laptop has to stay attached to the Arduino—and here XOD is different.

    One thing I like a lot about the XOD approach is that it generates native code for the target platform. There’s a lot of boiler plate code in its automatically generated sketches, but there’s no need for Firmata, or an attached laptop to control the board. It runs on the Arduino as if it was programmed with native tools.

    The XOD core language, development environment, and standard libraries are all available on GitHub. Alternatively the development environment can be run directly in the browser, or downloaded to your desktop.

  7. Tomi Engdahl says:

    XOD programs are stored in regular JSON files. And each module is stored in its own file. The JSONs are pretty-printed. So XOD project source files are quite diff/git-friendly.

    Furthermore, there is a CLI that lets you perform some actions (transpile, publish, install) from the terminal without even running visual IDE. It should make XOD suitable for server environments.

    Interop is done with native modules mechanism. For any module, you can write down its native implementation in C++ or JS (depends on the target platform). Of course, you may include 3-rd party native libraries there. In such way, you effectively can quickly create a thin wrapper for the library of your choice to bring it to XOD ecosystem.

    Probably 80% of the code written for microcontrollers is amenable to this type of development tool. For the remaining 20% if XOD supports creation of custom nodes, 80% of the remaining 20% is probably amenable.

    Visual programming is not new and has been used in the real world for decades so solve real production problems. I’ve seen LabView used to build very complicated control systems.

    No sure if it’s already in XOD, but a very useful module would be a code block with inputs and output(s) where developer could write code using a scripting language, like a subset of JavaScript, when needed.

    I currently use a very powerful visual development environment called Boomi to create very complex system integrations.

  8. Tomi Engdahl says:

    This package is a part of the XOD project.
    The package provides functions that transpile XOD projects into JavaScript code.


Leave a Comment

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