About SMFlow
Bridging the gap between manual C/C++ firmware and proprietary industrial PLCs.
The Problem We Solve
Engineers building automated machines, robotics, pump systems, and industrial controllers have traditionally been trapped between two extremes:
- ✕Writing Bare-Metal C/C++ Firmware: High flexibility, but requires deep embedded expertise, produces code that is difficult to understand visually, and makes modifying state machines months later risky.
- ✕Traditional PLCs: Great deterministic visual modeling, but requires expensive proprietary hardware racks, specialized software licenses, and more infrastructure than is necessary for smaller machines and custom OEM products.
SMFlow was created to occupy the middle ground: delivering the deterministic execution, cyclic scan behavior, and visual clarity of a PLC, combined with the cost efficiency of modern microcontrollers (ESP32, STM32, RP2040, and 8-bit AVR) and modern developer tooling.
Hard Technical Invariants
The visual graph is not documentation or an abstract diagram that gets converted into an interpreter script. The visual node-and-wire graph is the authoritative source code compiled directly into native C++17.
Target microcontrollers run clean, native machine code. There is no Node.js, Python, JVM, or SMFlow runtime installed on the target device.
Byte-identical code generation ensures that the same project produces the exact same binary output every time, enabling safety audits and verification testing.
SMFlow projects are saved in clean, Git-friendly JSON files. Files are never locked or proprietary.
Who SMFlow is For
SMFlow is engineered for professionals and technical teams building real physical hardware: