MicroFlo: Live dataflow programming for microcontrollers
Unlike most other dataflow runtimes for constrained devices,
MicroFlo run standalone on the microcontroller, can be introspected and reconfigured at runtime,
and has built-in support for automated testing.
One can program with MicroFlo either:
- Visually, using Flowhub
- Textually, using the declarative .fbp DSL
or .json definition
- Programatically, by embedding it and building a graph using the C++ API
MicroFlo is very portable, written in C++03 without exceptions and stdlib.
It comes with support for multiple platforms,including Arduino and Embedded Linux.
It has been used on many different devices,
from Atmel AVR8 to ARM Cortex M0/M1/M3/M4 devices (LPC mbed, TI Tiva/Stellaris), ESP8266 and Raspberry PI.
MicroFlo is designed to integrate with other data-driven programming tools, including
msgflo for easy building of distributed systems (IoT).
For visual programming your Arduino, follow the microflo-example-arduino.
MicroFlo is a part of Flowhub, a platform for building robust IoT systems and web services.
We offer an Integrated Development Environment and consulting services.
- Works fine for simple programs
- Components exists for standard I/O on Arduino devices
- Live programming supported for most changes
- Basic support for automated testing
MicroFlo in the wild:
Jon's fridge thermostat
has been running uninterrupted since September 2013.
- The Ingress table at c-base station, Berlin uses MicroFlo
to control the lights. One major upgrade/bugfix since March 2014.
- The lights on the CNC-milled Christmas tree at Bitraf,
Oslo ran for 4 weeks during Christmas 2013.
When you find issues: file bugs
and/or submit pull requests!
For porting MicroFlo to other microcontrollers, see how-microflo-works and target bringup.
MicroFlo is released under the MIT license.
Note that the platform MicroFlo runs on (like Arduino), and MicroFlo components may be under other licenses!