Welcome to Capoworks ECU Documentation
Firmware development log
Recent changes
The latest ECU functions and user-facing changes, with practical setup notes and limits.
New functions & user impact
record SD selection in manifests and correct profile tests
Packaged firmware manifests now record the requested sd_card selection separately from the normalized features string and preserve resolved required_modules. The documentation clarifies that sd_card is default-on only on supported boards and that nucleo_f767 and small-can-board declare it unsupported. Consumers of the manifest should read requested.sd_card and resolved.required_modules rather than inferring SD logging from the features field.
a7aae5e3d5 · Oct 23, 2026Source: fix(builder): record SD selection in manifests and correct profile testsexpose default SD selection and board-required modules
The web custom-firmware build gains a dedicated sd_card boolean input, default true, separate from the features list. The resolver rejects sd_card=false combined with sd_card in features, rejects disabling a board-required module such as Atlas sd_card, and reports required_modules per board. The resource calibration plan now treats board-required modules as part of the mandatory baseline and emits sd_card separately from features. Builders using the catalog or calibration tools should pass --sd-card and read required_modules to lock required selections.
35e904b2df · Oct 23, 2026Source: feat(builder): expose default SD selection and board-required modulespreserve legacy SD and USB exclusions on reduced boards
Reduced boards keep their previous exclusions. nucleo_f767 and small-can-board declare sd_card unsupported and keep EFI_FILE_LOGGING and EFI_USB_MSD disabled. The main firmware Makefile now strips board-level EFI_FILE_LOGGING definitions before applying the module-derived value, so the module profile controls file logging in the application while the bootloader keeps its own board value. Builders of these boards cannot enable sd_card through FOME_MODULES.
3c035a5450 · Oct 23, 2026Source: fix(firmware): preserve legacy SD and USB exclusions on reduced boardsSource coverage and analyzed head
- Coverage
- 60 commits · 34 changes · 26 merge audits
- Analyzed head
09394f14eb·
Capoworks ECU documentation is a practical guide to selecting compatible hardware, setting up an ECU, configuring and tuning an engine, and using the Capoworks firmware distribution. It brings together configuration reference material, vehicle-specific guidance, and explanations of the underlying engine-management concepts.
If you are new to the platform, start with the Capoworks ECU overview
and then follow the setup and safe-first-start guides in the order shown. Before flashing firmware,
confirm that the board, firmware binary, and TunerStudio .ini definition all come from the same
Capoworks release.
This documentation is based on project and community source material. Always verify wiring, sensor compatibility, and engine settings against the documentation for your exact board and current firmware before running an engine. Source and attribution details are on the Credits and Sources page.
Index
Intro - Start here
- Capoworks ECU Overview
- Hardware for Capoworks ECU
- How to setup a board for first use
- Updating the firmware
- Performing a safe first start
- How to test inputs and outputs
- Tips and Tricks
- How to pick the right fueling method
- Guide to ETB and VVT PIDs
Fundamentals of Capoworks ECU tuning
- Air Fuel Ratio
- Acceleration Compensation
- What is Charge temperature estimation
- What is knock and why it matters
- Multi-dimensional mapping, what is it and how to benefit from it
- Spark timing, MBT and combustion
Sensors and Gauges
Driver controls and feedback
- Accelerator pedal
- Battery Settings
- Brake pedal position and pressure sensor
- CAN gauge
- Clutch Pedal position and pressure sensing
- Rev Counter
Fuel Sensors
General Sensors
- Analogue input settings
- Aux sensors
- Cam sensor
- Crank sensor
- ETB TPS
- Mass Air Flow Sensor
- TPS
- Turbo Speed Sensor
- VSS
Pressure sensors
Temperature Sensors
Limits and protections
- Boost Pressure Limit
- Coolant based RPM limit
- Fuel Pressure Compensation
- Minimum Oil Pressure Protection
- Rev limiters
Basic Features
- Bench test commands
- Boost control
- Cylinder Bank Selection
- Data Logging Settings
- Fan Control
- Fuel pump relay control
- GPPWM General purpose PWM
- Main Relay control
Cranking Control
Cranking fuel
Idle control
- Advanced Idle control
- Closed loop idle control
- Idle hardware
- Idle ignition table
- Idle settings
- Idle VE Table
- Idle tuning
Advanced Features
- CAN settings
- Cylinder Angle Offset
- Knock control
- Launch Control
- Lua Scripting
- MAP sampling angle
- Multi-Dimensional Mapping
- Override Table Axis
- Smart Alternator
ETB
- ETB bias table
- ETB idle control
- ETB pedal target
- ETB PID and auto tune
- ETB Settings
- Redundant sensors
Fuel related
- Barometric pressure compensation
- Charge Temperature estimation
- Closed loop fueling
- Injection Phase settings
- Injector tester
GDI
Rotary
Spark related
Variable cam timing
Fuel
Acceleration
Fuel Algorithms
Fuel Settings
- AFR settings
- Coolant Multiplier
- Per-Cylinder Fuel trim
- Deceleration Fuel Cut Off
- Flex Fuel
- Fuel Injection Mode
- TPS Multiplier
- Intake Air Temperature Multiplier
- Injector Deadtime settings
- Small Pulse width correction
Software
Hardware Circuits
- High/Low circuits
- Highside circuits
- Lowside circuits
- Power supply circuits
- Discrete VR
- PT2001
- STM32 Compatibility
Hardware Details
Ignition
Ignition Hardware
Ignition Settings
- Dwell
- Firing Order
- IAT ignition adder
- Ignition Mode
- Ignition Advance Table
- Ignition Coolant Correction
- Ignition Per-Cylinder trim