Custom rusEFI firmware for Mazduino ECU boards and compatible STM32F4-based engine management systems.
Pre-built firmware is published as nightly releases on the Releases page.
Each release includes .bin, .srec, and .hex files for every supported board.
- MCU: STM32F407VGT6 (1MB flash)
- Hardware knock detection via ADC3/PA3
- Software knock spectrogram
- CAN bus, USB virtual COM port (TunerStudio)
- Dual idle solenoid outputs
- No ETB, no traction control
- MCU: STM32F407VGT6 (1MB flash)
- No hardware knock (ADC3 not connected)
- CAN bus, USB virtual COM port
- Dual idle solenoid outputs
- No ETB, no traction control
- MCU: STM32F427VGT6 (1MB flash)
- Electronic throttle body (ETB) support
- Traction control (requires ETB)
- Hardware knock detection
- CAN bus, USB virtual COM port
- MCU: STM32F407VGT6 (1MB flash)
- Full feature set: ETB, traction control, knock, boost, launch control
- Dual pinout support: board04 layout and UA4C layout, switchable via TunerStudio board action
- USB virtual COM port and CAN bus for TunerStudio connection
- Status LED at PB7
- MCU: STM32F407VET6 (512KB flash)
- Firmware constrained to 384KB to preserve tune storage sector
- Feature reduction vs Mega100: no ETB, no knock, no boost control, no launch control, no Lua, no SD card
- CAN bus or USB virtual COM port for TunerStudio connection
- Status LED at PB7
| Board | Connection |
|---|---|
| Compact, Lite, Mini 6CH | USB virtual COM port |
| Mega100 | USB virtual COM port or CAN bus |
| Mega100-512 | USB virtual COM port or CAN bus |
Docker is required. The build image uses Ubuntu Mantic with ARM GCC toolchain.
# Build all boards
./build_boards.sh
# Build a single board
./build_boards.sh mazduino-compactThe script uses --platform linux/amd64 to ensure hex2dfu.bin (x86-64) runs correctly on Apple Silicon via Rosetta 2.
All boards are built automatically on every push via the matrix workflow in .github/workflows/build-matrix.yaml. Nightly releases are published by .github/workflows/nightly-release.yaml.
Use STM32CubeProgrammer or OpenOCD with the .bin file:
st-flash write rusefi_mazduino-compact.bin 0x08000000Put the board into DFU mode (hold BOOT0 while resetting), then:
dfu-util -d 0483:df11 -a 0 -s 0x08000000:leave -D rusefi_mazduino-compact.binUse the .srec file with the rusEFI Flasher tool or BootCommander.
boards/
mazduino-compact/ # Board-specific configuration files
mazduino-lite/
mazduino-mini6ch/
mazduino-mega100/
mazduino-mega100-512/
ext/rusefi/ # rusEFI submodule
generated/ # Auto-generated code (configs, headers, INI files)
.github/workflows/ # CI/CD workflows
Each board directory contains:
meta-info.env- Board identity and CPU selectionboard.mk- Makefile flags and feature overridesboard_configuration.cpp- Pin assignments and hardware initefifeatures.h(optional) - Feature flag overridesprepend.txt- TunerStudio UI visibility flagsknock_config.h- Knock sensor configuration
This is engine management software controlling critical engine functions. Test on a bench setup before installing in a vehicle. Incorrect configuration can cause engine damage.