-
-
Notifications
You must be signed in to change notification settings - Fork 4
Field Normalization
Field normalization maps ECU-specific channel names to standardized names, making it easier to work with data from different ECU systems.
Different ECU manufacturers use different names for the same data:
| Data | Haltech | ECUMaster | Speeduino |
|---|---|---|---|
| Engine speed | Engine Speed | engine/rpm | RPM |
| Air/Fuel Ratio | AFR Bank 1 | fuel/afr | AFR |
| Manifold Pressure | MAP | engine/map | MAP |
Field normalization shows all of these as consistent, standardized names.
View → Field Normalization toggles the feature on/off.
When enabled:
- Channel names show standardized versions
- Makes cross-ECU comparison easier
- Original names still used internally
When disabled:
- Channel names show exactly as stored in log file
- Useful for debugging or when you prefer ECU-specific names
UltraLog includes 100+ predefined mappings organized by category.
| ECU Names | Normalized Name |
|---|---|
| RPM, Engine_Speed, engine/rpm, EngineSpeed | Engine RPM |
| MAP, Manifold_Press, engine/map, BoostPressure | Manifold Pressure |
| TPS, Throttle_Pos, Throttle, engine/tps | Throttle Position |
| Load, Engine_Load, CalculatedLoad | Engine Load |
| VE, Vol_Eff, VolumetricEfficiency | Volumetric Efficiency |
| ECU Names | Normalized Name |
|---|---|
| AFR, Act_AFR, AFR1, AirFuelRatio | AFR |
| Lambda, Lambda1, O2_Lambda | Lambda |
| FuelPW, Inj_PW, InjectorPulseWidth | Injector Pulse Width |
| FuelPress, Fuel_Pressure | Fuel Pressure |
| STFT, ShortTermFuelTrim | Short Term Fuel Trim |
| LTFT, LongTermFuelTrim | Long Term Fuel Trim |
| InjDuty, Injector_Duty | Injector Duty Cycle |
| ECU Names | Normalized Name |
|---|---|
| Ign_Timing, SparkAdvance, Timing | Ignition Timing |
| Dwell, Dwell_Time, CoilDwell | Dwell Time |
| Knock, KnockLevel, Knock_Retard | Knock Level |
| ECU Names | Normalized Name |
|---|---|
| CLT, Coolant_Temp, CoolantTemperature | Coolant Temp |
| IAT, Intake_Temp, IntakeAirTemp | Intake Air Temp |
| OilTemp, Oil_Temperature | Oil Temp |
| EGT, ExhaustTemp, EGT1 | Exhaust Gas Temp |
| FuelTemp, Fuel_Temperature | Fuel Temp |
| ECU Names | Normalized Name |
|---|---|
| BoostPress, Boost, BoostPressure | Boost Pressure |
| OilPress, Oil_Pressure | Oil Pressure |
| FuelRailPress, Rail_Pressure | Fuel Rail Pressure |
| Baro, BaroPressure, Barometric | Barometric Pressure |
| ECU Names | Normalized Name |
|---|---|
| VSS, Vehicle_Speed, Speed | Vehicle Speed |
| Gear, GearPosition, CurrentGear | Gear Position |
| BattV, Battery_Voltage, Vbat | Battery Voltage |
| ECU Names | Normalized Name |
|---|---|
| O2_1, WBO2_1, O2Sensor1 | O2 Sensor 1 |
| O2_2, WBO2_2, O2Sensor2 | O2 Sensor 2 |
Create your own mappings for channel names not covered by built-in mappings.
View → Normalization Editor
- Open the Normalization Editor
- In the Source Name field, enter the ECU-specific name exactly as it appears
- In the Target Name field, enter your preferred standardized name
- Click Add
Your ECU logs a channel called MyCustomAFR_Gauge:
- Source Name:
MyCustomAFR_Gauge - Target Name:
AFR - Click Add
Now MyCustomAFR_Gauge displays as AFR.
In the Normalization Editor:
- Find the mapping in the list
- Click the Remove or × button
Important: Custom mappings are stored in memory only and reset when UltraLog closes.
Future versions may add persistent storage for custom mappings.
- Channel name read from log file
- Check custom mappings first
- If no custom match, check built-in mappings
- If no match found, use original name
- Display normalized name in UI
Mappings are case-insensitive for matching:
-
RPM,rpm,Rpmall match
The normalized name preserves the specified case.
Mappings use exact matching only:
-
RPMmatchesRPM -
RPMdoes NOT matchEngine_RPM_Value
Use the exact channel name for matching.
When analyzing logs from different ECU systems:
- Enable Field Normalization
- Load logs from different ECUs
- Channel names show consistently
- Easier to compare data across tabs
When multiple team members use UltraLog:
- Agree on standard channel names
- Each member adds custom mappings as needed
- Everyone sees consistent names
Simplify complex channel names:
-
Bank1_WBO2_AFR_Calibrated→AFR -
Engine_Coolant_Temperature_Sensor_1→Coolant
Recommended standard names:
| Category | Recommended Format |
|---|---|
| Temperature |
[Type] Temp (e.g., "Coolant Temp") |
| Pressure |
[Type] Pressure (e.g., "Oil Pressure") |
| Ratio | Abbreviation (e.g., "AFR", "Lambda") |
| Speed |
[Type] Speed (e.g., "Vehicle Speed") |
| Percentage |
[Item] % (e.g., "TPS %") |
- Don't map different channels to the same name
- Use descriptive target names
- Document your custom mappings
Consider disabling normalization when:
- Debugging parsing issues
- You need exact ECU channel names
- Working with ECU-specific documentation
- Verify the source name matches exactly (check spaces, underscores)
- Check if a built-in mapping conflicts
- Ensure normalization is enabled (View menu)
- Check for conflicting custom mappings
- Verify the source name is correct
- Remove and re-add the mapping
To see original channel names:
- Disable Field Normalization (View menu)
- Channel names show as stored in log file
| Source | Target |
|---|---|
| Act_AFR | AFR |
| AFR | AFR |
| AFR1 | AFR |
| AFR_Bank1 | AFR |
| AirFuelRatio | AFR |
| Baro | Barometric Pressure |
| BaroPressure | Barometric Pressure |
| Barometric | Barometric Pressure |
| BattV | Battery Voltage |
| Battery_Voltage | Battery Voltage |
| Boost | Boost Pressure |
| BoostPress | Boost Pressure |
| BoostPressure | Boost Pressure |
| CLT | Coolant Temp |
| Coolant_Temp | Coolant Temp |
| CoolantTemperature | Coolant Temp |
| CurrentGear | Gear Position |
| Dwell | Dwell Time |
| Dwell_Time | Dwell Time |
| Source | Target |
|---|---|
| EGT | Exhaust Gas Temp |
| EGT1 | Exhaust Gas Temp |
| Engine_Load | Engine Load |
| Engine_Speed | Engine RPM |
| EngineSpeed | Engine RPM |
| ExhaustTemp | Exhaust Gas Temp |
| Fuel_Pressure | Fuel Pressure |
| Fuel_Temperature | Fuel Temp |
| FuelPress | Fuel Pressure |
| FuelRailPress | Fuel Rail Pressure |
| FuelTemp | Fuel Temp |
| Gear | Gear Position |
| GearPosition | Gear Position |
| IAT | Intake Air Temp |
| Ign_Timing | Ignition Timing |
| Inj_PW | Injector Pulse Width |
| InjDuty | Injector Duty Cycle |
| Injector_Duty | Injector Duty Cycle |
| InjectorPulseWidth | Injector Pulse Width |
| Intake_Temp | Intake Air Temp |
| IntakeAirTemp | Intake Air Temp |
| Knock | Knock Level |
| Knock_Retard | Knock Level |
| KnockLevel | Knock Level |
| Lambda | Lambda |
| Lambda1 | Lambda |
| Load | Engine Load |
| LongTermFuelTrim | Long Term Fuel Trim |
| LTFT | Long Term Fuel Trim |
| Source | Target |
|---|---|
| Manifold_Press | Manifold Pressure |
| MAP | Manifold Pressure |
| O2_1 | O2 Sensor 1 |
| O2_2 | O2 Sensor 2 |
| O2_Lambda | Lambda |
| O2Sensor1 | O2 Sensor 1 |
| O2Sensor2 | O2 Sensor 2 |
| Oil_Pressure | Oil Pressure |
| Oil_Temperature | Oil Temp |
| OilPress | Oil Pressure |
| OilTemp | Oil Temp |
| Rail_Pressure | Fuel Rail Pressure |
| RPM | Engine RPM |
| Source | Target |
|---|---|
| ShortTermFuelTrim | Short Term Fuel Trim |
| SparkAdvance | Ignition Timing |
| Speed | Vehicle Speed |
| STFT | Short Term Fuel Trim |
| Throttle | Throttle Position |
| Throttle_Pos | Throttle Position |
| Timing | Ignition Timing |
| TPS | Throttle Position |
| Vbat | Battery Voltage |
| VE | Volumetric Efficiency |
| Vehicle_Speed | Vehicle Speed |
| Vol_Eff | Volumetric Efficiency |
| VolumetricEfficiency | Volumetric Efficiency |
| VSS | Vehicle Speed |
| WBO2_1 | O2 Sensor 1 |
| WBO2_2 | O2 Sensor 2 |
| Source | Target |
|---|---|
| engine/rpm | Engine RPM |
| engine/map | Manifold Pressure |
| engine/tps | Throttle Position |
| engine/coolant_temp | Coolant Temp |
| fuel/afr | AFR |
| fuel/lambda | Lambda |
- User-Guide - Complete feature reference
- Unit-Conversion - Configure display units
- Supported-ECU-Formats - ECU-specific information
Links