Shop

Get started — Ready to use firmware

Every Duilio F4 board ships with a baseline firmware already flashed and working. It is designed for real motion control with common external motor drivers (such as ZS-X11), providing two-motor open-loop PWM control, integrated safety logic and optional speed limiting.

Power it, wire your driver, plug your controller -- you can drive two wheels in minutes.

What is already included

The baseline firmware ships ready for real machines, with the most common control blocks already configured.

Two-motor PWM control

Open-loop control for left and right wheels.

ZS-X11 style drivers

  • ENABLE_X/ENABLE_Y active LOW
  • BRAKE_X/BRAKE_Y active HIGH (if used)

Optional speed limiter

  • default limit: 25 km/h
  • based on 6" wheels and 45 pulses per revolution
  • if not needed, leave the RPM input unconnected

RC mapping + auxiliary outputs

Inputs and NPN outputs are already configured.

Failsafe and safe states

Safe behavior on command loss is built in.

Dual sonar inputs

Supports 2 ultrasonic sensors out of the box.

Battery voltage sensing

Battery voltage input is included out of the box.

Sonar distances and battery voltage are reported over USB and can be used as host feedback.

Control sources (RC, Raspberry Pi, PC)

The baseline firmware can be commanded in two ways, without reflashing:

USB host (Raspberry Pi/PC) can command the board via USB using the provided Python or Arduino library.

When controlled from a host:

No firmware change is required to switch between RC and host control.

Control priority RC override is always active: RC inputs supersede USB commands.

Default RC mapping

RC inputs:

Outputs:

NPN outputs:

Driver wiring (ZS-X11 example)

The minimum required connection for each motor is PWM + DIR. This allows basic motion control to work.

The ENABLE_X/ENABLE_Y pins are strongly recommended for safety. They allow the firmware to fully disable motor outputs on failsafe, disarm, or fault conditions. Using ENABLE_X/ENABLE_Y provides a safer system compared to PWM/DIR only.

Recommended for safety PWM + DIR is sufficient to move the motors. Using the ENABLE_X/ENABLE_Y pins is strongly recommended to allow the firmware to put the system into a true safe state.

Expected logic:

Minimum wiring:

Recommended wiring:

Speed limiter

The speed limiter uses an RPM signal. Default assumptions:

If RPM is not connected, the limiter is automatically inactive.

Quick start & safety

Follow these steps to validate wiring and motion safely.

  1. Test with wheels off the ground
  2. Wire power and common ground
  3. Wire driver PWM and ENABLE_X/ENABLE_Y
  4. Connect RC or USB host
  5. Apply power and test at low speed

Always keep a physical power switch or emergency stop accessible.

Other baseline options (on request)

The shipped baseline firmware is the standard configuration described above. Alternative baseline configurations can be provided on request, for example:

With Duilio Tools you can switch configurations in a few clicks, without writing a single line of code.

No-code reconfiguration Change driver mode and pin mapping from Duilio Tools in a few clicks.

Keep exploring