OBD1 8-Bit Low-Cam RPM Scaling
Technical guide on converting 8-bit hex values from OBD1 ECU low-cam tables into readable RPM values.
OBD1 ECU ROMs use 8-bit hex values to define RPM-based parameters within the low-cam fuel and ignition tables. Converting these hex values into actual engine RPM requires applying specific piecewise linear scaling formulas.
Scaling Formula
The RPM value is determined by the input hex value (Y, ranging from 0 to 255) using a four-stage piecewise linear scale:
| Hex Range | RPM Range |
|---|---|
00hâ40h |
500 â 1,000 RPM |
40hâ80h |
1,000 â 2,000 RPM |
80hâC0h |
2,000 â 4,000 RPM |
C0hâFFh |
4,000 â 8,000 RPM |
Calculation Logic
The conversion relies on the following piecewise logic:
- Q = Integer part of
Y / 64 - R = Remainder of
Y / 64 - RPM =
(2^Q) * (IntegerPart(R * 500 / 64) + 500)
Technical Implementation Notes
This piecewise approach defines four distinct linear slopes, which is how the OBD1 ECU architecture handles RPM scaling across different load ranges.
- Precision: These formulas are approximations used by the ECU firmware. Minor variations may occur compared to ideal continuous exponential scales.
- Tuning Tools: Modern ROM editing software (e.g., Crome, Hondata, HTS) handles this scaling automatically. This reference is primarily for those developing custom ROM analysis or diagnostic tools.
Always verify your calculated values against a known baseline ROM in your editing software to ensure accuracy.