A visual
programming language
for microcontrollers

like code, but better

1. Build programs
visually with nodes

A node is a block that represents either some physical device like a sensor, motor, or relay, or some operation such as addition, comparison, or text concatenation.

2. Link nodes to define behavior

Each node has one or more inputs that accept values to be processed, and outputs that return results. Creating a link from an output to an input builds a path for data, allowing one node to feed values into another. Use this simple yet powerful principle to define what the program does.

You’re protected against creating programs that don’t compile. If it links, it’s likely going to work.

3. Evolve your program incrementally

Add a new node and link to make the next little improvement.

4. Upload directly to the board

XOD generates native code for the target platform. No need for Firmata or a controlling PC. The board runs fully autonomously, just as if it was programmed with native tools.

Extensible and free

Nodes can be built from other nodes. The process is simple. Connect two or more existing nodes together and...you’re done. Use your newly created composite node as many times as you want. That’s how modularity is done in XOD.

Create and share your nodes with the world. Explore what others have created. Search for community nodes and reuse them in your project.

Widely compatible

XOD isn’t locked to a particular vendor or platform. In fact, we intend to provide every tool necessary to communicate with any component, board, or module. XOD is currently compatible with Arduino boards, and several popular modules. The body of supported components grows.

Open-source

The XOD language, XOD IDE, and library sources are available on­GitHub. We believe that’s the best way to benefit xoders, implement new features, squash bugs, build a powerful ecosystem, and make XOD reliable and exciting.

Young and welcoming

The XOD project is in its early stages. There are many things to do before it could be used in production. We appretiate any feedback on our forum.

Simple yet powerful

There are plenty of high-level and low-level nodes that let you implement very complex things. If you can do something on a target platform with a native programming language and tools, our goal is for you to be able to do it in XOD.

After all, XOD is nothing new. It’s just a crazy mix of FRP, dataflow programming, spreadsheets, and passion, which have existed for a long time and have proven to be effective ;)