fupsrl
Considerations

Why we moved to a 32‑bit floating‑point fuel model

For years the conventional wisdom in hobby ECUs was fixed‑point everything. We moved the M1 fuel model to 32‑bit floating point. Here is the reasoning.

The fixed‑point tax

Fixed‑point math is fast, but every table interpolation and unit conversion carries a scaling assumption. Those assumptions leak across modules and become bugs that only appear at the edges of the map.

What changed

The M1 MCU has a hardware FPU that sat idle. Running the fuel model in floats removed an entire class of scaling errors and made the maths read like the equations in the textbook.

The cost

About 4 µs more per injection event. At our update rates that is invisible. The readability and correctness win is not.

Takeaway

Use the hardware you already paid for. If there is an FPU, the fuel model belongs in floats.