DUILIO F4
A motion control board that coordinates multiple motors and adds safety logic for machines.
Key features
DUILIO F4 - Key features
This page provides a structured technical overview of DUILIO F4, covering STM32 motion control capabilities, safety and failsafe behavior, I/O, and supported motor driver interfaces for robotics and machines.
Project documentation is available on GitHub.
Motion control and safety
I/O and interfaces
System architecture
| Section | Details |
|---|---|
| MCU |
|
| Motion control |
|
| Scalability |
|
| Motor drivers |
|
| Encoders and feedback |
|
| RC I/O |
|
| Digital I/O (power) |
|
| Digital I/O (logic) |
|
| Analog inputs |
|
| Sensors |
|
| Safety and failsafe |
|
| Configuration |
|
| Host systems |
|
| Power |
|
| Raspberry Pi power output |
|
| Protection |
|
| System philosophy |
|
Motor driver compatibility
DUILIO F4 works with many external motor drivers. Compatibility depends on the control interface used by the motor driver, while DUILIO handles motion logic and coordination.
Supported control interfaces
- PWM + DIR (5 V)
- ENABLE + DIR + PWM (5 V)
- Dual PWM (forward / reverse)
- STEP / DIR (speed or position profiles)
- Analog speed (0-5 V)
- Analog speed + direction (0-5 V)
- RC-style PWM (ESC / servo)
Commonly used motor driver families
Examples for reference only, not official support:
- ZS-X11 series
- BLD-300 / BLD-510
- BTS7960 (IBT-2 modules)
- ODrive
- VESC
- Industrial and industrial-light drives such as Nanotec, Leadshine, Oriental Motor, Trinamic, Delta Electronics, Omron, SINAMICS, Maxon, Bosch Rexroth, Parker, Lexium, Panasonic
Specific compatibility depends on wiring and firmware profile. Some drivers are already used in real applications, others are under evaluation.
Comparison / Positioning
From Controllers to Motion-Control System Cores
Most controllers are designed to run code.
DUILIO F4 is designed to run machines.
This comparison highlights architectural differences, not raw performance.
| Controller | 5V logic compatibility | High-resolution analog inputs | Designed failsafe logic | Multi-motor coordination | Wide input voltage range | Can power peripherals (e.g. Raspberry Pi) | Works with external motor drivers | System watchdog & safety states | Time to a working motion system | Cost efficiency (typical) |
|---|---|---|---|---|---|---|---|---|---|---|
| Arduino UNO / MKR | ||||||||||
| Arduino GIGA R1 | ||||||||||
| ESP32 | ||||||||||
| STM32 Nucleo | ||||||||||
| DUILIO F4 |
Note: Scores reflect typical system-level usage, not raw MCU capabilities. General-purpose boards may require extra hardware and firmware to reach similar safety and motion features.
Why it exists / Problem it solves
The story behind Duilio
The story behind Duilio
I was born in the early 1980s. As a kid, I spent hours building improvised tracks: toy cars, RC projects, and homemade push go-karts in a soapbox style, like today's Red Bull races. Today we would call them maker projects. Back then, it was simply how I played.
I studied mechanical engineering. For many years now, I've been working as a designer for a large company. Not my own.
But outside of work, I've always remained a maker. That's where Duilio comes from.
Duilio is part of a broader remote-driving project. The idea was to allow someone who hasn't been able to leave home for many years to control a real machine remotely from their PC, as if they were there.
One of the first applications was mowing the grass in my garden from a distance. A real machine, with real motors and real problems.
During development, I kept hitting the same limitation: motors existed, drivers worked, but the most fragile part was always the same -- the motion logic.
Not so much because of what it did, but because of how it changed every time.
With each different driver and each different controller, the programming model changed. Solutions became obsolete quickly, and development boards grew less and less compatible with each other.
And sooner or later, something subtle would ruin the balance: small electrical noise issues, extra components added as patches, software adapted or rewritten every time.
Ramps, limits, coordination, fault handling. Every project was almost a fresh start.
At some point, I decided to do something simple: design a proper board to control motors.
Not for a quick prototype. But for a real machine.
That board turned out better than expected. And that's where Duilio was born.
Today, Duilio is a solid foundation for motion control: a system designed to add safety, coordination, and repeatability on top of external motor drivers, without reinventing everything every time.
If you're building a real machine, Duilio comes from exactly the same kind of problem.
-- Fabio Giuliodori