Skip to content

Supported ECU Formats

Cole Gentry edited this page Sep 27, 2026 · 17 revisions

Supported ECU Formats

UltraLog supports multiple ECU systems. This page details each format's capabilities and requirements.

Quick Compatibility Reference

ECU System Status File Type Export Required
Haltech Full Support .csv Yes (from NSP)
ECUMaster EMU Pro Full Support .csv Yes (from EMU Pro)
RomRaider Full Support .csv Yes (from RomRaider Logger)
Speeduino Full Support .mlg No (native format)
rusEFI Full Support .mlg No (native format)
AiM Full Support .xrk, .drk No (native format)
Link ECU Full Support .llg No (native format)
Emerald Full Support .lg1, .lg2 No (native format)
MegaSquirt Full Support .csv Yes (from TunerStudio)
TunerStudio MSL Full Support .msl Yes (TunerStudio legacy ASCII, or RealDash)
Woolich Racing Tuned Full Support .csv Yes (from WRT software)
RaceChrono Full Support .csv (v3) Yes (CSV v3 export)
MHD Tuning Full Support .csv Yes (from MHD Tuning app)
BlueDriver OBD-II Full Support .csv Yes (from BlueDriver app)
Motorsport Electronics Full Support .csv Yes (from ME Tuner software)
DynamicEFI Full Support .csv Yes (from EBL WhatsUp software)
Locomotive Full Support .csv Yes (from datalogger export)
AEM Coming Soon - -
MaxxECU Coming Soon - -
MoTeC Coming Soon - -

Haltech

Overview

Full support for Haltech ECU log files exported from NSP (Nexus Software Platform).

Supported File Format

  • Type: CSV text file
  • Extension: .csv
  • Source: Exported from Haltech NSP software
  • Identifier: File begins with %DataLog% header

How to Export from NSP

  1. Open your datalog in Haltech NSP
  2. Go to File → Export → CSV
  3. Select all channels you want to include
  4. Choose save location and filename
  5. Click Export

Supported Channel Types

UltraLog supports 50+ Haltech channel types with automatic unit conversion:

Engine Parameters

  • Engine Speed (RPM)
  • Manifold Pressure (MAP)
  • Throttle Position (TPS)
  • Engine Load

Fuel System

  • Air/Fuel Ratio (AFR)
  • Lambda
  • Fuel Pressure
  • Injector Duty Cycle
  • Fuel Trim (Short-term, Long-term)

Ignition System

  • Ignition Timing
  • Knock Levels
  • Dwell Time

Temperatures

  • Coolant Temperature
  • Intake Air Temperature
  • Oil Temperature
  • Exhaust Gas Temperature (EGT)

Pressures

  • Boost Pressure
  • Oil Pressure
  • Fuel Pressure
  • Barometric Pressure

Vehicle Data

  • Vehicle Speed
  • Gear Position
  • Battery Voltage

And many more...

Unit Handling

Haltech logs store data in specific units based on the CAN protocol. UltraLog:

  • Automatically detects the channel type
  • Applies appropriate conversions
  • Displays in your preferred units via Unit Preferences

Min/Max Values

Haltech logs include min/max metadata for each channel, which UltraLog uses for the legend display.


ECUMaster EMU Pro

Overview

Full support for ECUMaster EMU Pro log files exported as CSV.

Supported File Format

  • Type: CSV text file (semicolon or tab-delimited)
  • Extension: .csv
  • Source: Exported from EMU Pro software
  • Note: Native .emuprolog binary format is NOT supported

How to Export from EMU Pro

  1. Open your log in EMU Pro software
  2. Go to File → Export → CSV
  3. Select channels to export
  4. Choose delimiter (semicolon or tab both work)
  5. Save the file

Channel Path Structure

ECUMaster uses hierarchical channel paths:

engine/rpm
engine/map
engine/coolant_temp
fuel/lambda
fuel/injector_pw
ignition/timing

UltraLog parses these paths and can normalize them to standard names.

Automatic Unit Inference

UltraLog infers units from channel naming patterns:

Pattern Inferred Unit
*temp* °C
*rpm* RPM
*map*, *press* kPa
*lambda* Lambda
*percent*, *duty* %

Supported Channels

Engine

  • RPM
  • MAP
  • TPS
  • Load

Fuel

  • Lambda
  • AFR
  • Injector Pulse Width
  • Fuel Pressure

Ignition

  • Timing
  • Dwell

Temperatures

  • Coolant
  • Intake Air
  • Oil

And more depending on your EMU Pro configuration

Limitations

  • Native .emuprolog binary format is not currently supported
  • Always export to CSV from EMU Pro software

RomRaider

Overview

Full support for RomRaider ECU log files. RomRaider is an open-source tuning suite primarily used for Subaru ECUs, providing comprehensive logging capabilities for OEM and modified ECU parameters.

Supported File Format

  • Type: CSV text file (comma-delimited)
  • Extension: .csv
  • Source: Exported from RomRaider Logger
  • Identifier: File begins with Time column header

How to Export from RomRaider

  1. Open RomRaider Logger
  2. Start logging your parameters
  3. When complete, go to File → Save Log
  4. Choose CSV format and save location
  5. The file is ready to load in UltraLog

CSV Format Details

RomRaider logs use a straightforward CSV format:

Time (msec),Engine Speed (rpm),Engine Load (%),A/F Correction #1 (%)
0,850,15.2,1.5
20,855,15.4,1.6
40,860,15.3,1.5

Key characteristics:

  • First column is always timestamp in milliseconds
  • Column headers include units in parentheses
  • Comma-separated values
  • Timestamps are converted to relative seconds automatically

Automatic Unit Extraction

UltraLog automatically extracts units from column headers:

Header Example Extracted Name Extracted Unit
Engine Speed (rpm) Engine Speed rpm
A/F Correction #1 (%) A/F Correction #1 %
Manifold Relative Pressure (psi) Manifold Relative Pressure psi
Coolant Temperature (C) Coolant Temperature C

For columns without units in parentheses, UltraLog infers units from common patterns.

Supported Channels

Engine Parameters

  • Engine Speed (RPM)
  • Engine Load
  • Manifold Absolute/Relative Pressure
  • Throttle Position
  • Mass Airflow

Fuel System

  • A/F Correction #1 and #2
  • A/F Learning #1 and #2
  • A/F Sensor readings
  • Fuel Injector timing

Ignition System

  • Ignition Timing
  • Knock Correction
  • Fine Knock Learning
  • Feedback Knock Correction

Temperatures

  • Coolant Temperature
  • Intake Air Temperature

Subaru-Specific

  • IAM (Ignition Advance Multiplier)
  • DAM (Dynamic Advance Multiplier)
  • Fine Learning tables
  • Various OEM diagnostic parameters

Timestamp Handling

RomRaider logs time in milliseconds. UltraLog:

  • Converts milliseconds to seconds for display
  • Calculates relative time from the first record
  • Supports precise cursor positioning and playback

Speeduino / rusEFI

Overview

Full support for Speeduino and rusEFI logs in MegaLogViewer (MLG) binary format.

Supported File Format

  • Type: Binary file
  • Extension: .mlg
  • Source: Logged directly by Speeduino/rusEFI
  • Identifier: File begins with MLVLG header

No Export Required

Unlike Haltech and ECUMaster, Speeduino and rusEFI log directly to the MLG format. Simply load the .mlg file directly into UltraLog.

Binary Field Types

UltraLog supports all MLG field types:

Type Description
U08 Unsigned 8-bit integer
S08 Signed 8-bit integer
U16 Unsigned 16-bit integer
S16 Signed 16-bit integer
U32 Unsigned 32-bit integer
S32 Signed 32-bit integer
S64 Signed 64-bit integer
F32 32-bit floating point

Supported Channels

Depends on your Speeduino/rusEFI configuration. Common channels include:

Engine

  • RPM
  • MAP
  • TPS
  • VE (Volumetric Efficiency)

Fuel

  • AFR / Lambda
  • Pulse Width
  • Fuel Pressure

Ignition

  • Advance
  • Dwell

Temperatures

  • Coolant
  • IAT

Sensors

  • O2 Sensor
  • Battery Voltage
  • Various analog inputs

Timestamp Handling

MLG files include precise timestamps for each record, which UltraLog uses for:

  • Time axis display
  • Playback synchronization
  • Cursor position tracking

Format Auto-Detection

UltraLog automatically detects the ECU format based on file contents. Binary formats are checked first:

  1. AiM: Identifies <hCNF tag in XRK/DRK files
  2. Speeduino/rusEFI: Identifies MLVLG binary header
  3. Link ECU: Identifies lf3 magic bytes in LLG files
  4. Emerald: Identifies .lg1/.lg2 file pair

Then text formats, each by its own fingerprint:

  1. MHD Tuning: Identifies the leading # metadata block (#Ecu CALID, #Ecu PRGID) or the tune-file header column
  2. RaceChrono: Identifies the "created using RaceChrono" banner plus the Format,N metadata line
  3. MegaSquirt: Identifies TunerStudio datalog markers in the header
  4. TunerStudio MSL: Identifies a tab-delimited Time header row followed by a units row naming a time unit (sec, s, ms) — that units row is what separates MSL from every other tab-delimited Time-first export
  5. ECUMaster: Identifies semicolon/tab-delimited CSV with TIME column
  6. BlueDriver: Identifies BlueDriver's export header (UTF-16 files are decoded first)
  7. Motorsport Electronics: Identifies a first column of exactly Time with ME Tuner channel markers — checked before RomRaider because ME Tuner logs seconds where RomRaider logs milliseconds
  8. RomRaider: Identifies comma-delimited CSV starting with a Time column (also the catch-all for generic OBD-II apps such as OBDLink; the time unit is read from the header)
  9. Locomotive: Identifies the TimeStamp: / Customer: metadata header lines
  10. DynamicEFI: Identifies the EBL WhatsUp RUNTIME column layout
  11. Woolich Racing Tuned: Identifies comma-delimited CSV starting with a Log Time column of HH:MM:SS.mmm timestamps
  12. Haltech: Looks for %DataLog% header (also the final fallback in the chain)

You don't need to specify the format - just load the file.


AiM

Overview

Full support for AiM motorsport data acquisition systems. AiM devices are widely used in professional racing and track day applications.

Supported File Format

  • Type: XRK/DRK binary format
  • Extension: .xrk, .drk
  • Source: Logged directly by AiM devices
  • Identifier: File begins with <hCNF tag

No Export Required

AiM devices log directly to XRK/DRK format. Simply load the file directly into UltraLog.

Supported Devices

UltraLog works with all AiM data loggers:

  • MXP - Professional dash logger
  • MXG - GPS lap timer with data acquisition
  • MXL2 - Compact GPS lap timer
  • EVO5 - Advanced dash display
  • MyChron5 - Karting data acquisition
  • And other AiM motorsport data loggers

Binary Format Parsing

UltraLog uses a pure Rust implementation to parse the XRK binary format:

  • Automatically extracts all logged channels
  • Parses metadata (vehicle, racer, track, championship, lap count)
  • Handles GPS data and lap timing information
  • Supports all AiM channel types

Supported Data

Depends on your AiM device configuration and sensors. Common channels include:

GPS and Lap Data

  • GPS Speed
  • GPS Position
  • Lap Times
  • Lap Number
  • Split Times

Engine Data

  • RPM
  • Engine Temperature
  • Oil Temperature
  • Oil Pressure

Vehicle Dynamics

  • Lateral G-Force
  • Longitudinal G-Force
  • Vertical G-Force
  • Speed

Sensors

  • Analog inputs
  • Digital inputs
  • CAN bus data (if configured)
  • Lambda/AFR sensors

Metadata

AiM files include rich metadata that UltraLog displays:

  • Vehicle name
  • Racer name
  • Track/venue name
  • Championship
  • Session date and time
  • Lap count

Link ECU

Overview

Full support for Link ECU log files from G4, G4+, and G4X ECUs. Link ECUs are popular in the performance and motorsport community.

Supported File Format

  • Type: Link log format (binary)
  • Extension: .llg
  • Source: Logged directly by Link ECU via PCLink software
  • Identifier: File begins with lf3 magic bytes

No Export Required

Link ECUs log directly to LLG format via PCLink. Simply load the .llg file into UltraLog.

How to Log with PCLink

  1. Connect to your Link ECU with PCLink software
  2. Go to Logging tab
  3. Select channels to log
  4. Click Start Logging
  5. Drive/run the engine
  6. Click Stop Logging
  7. Save the .llg file

Binary Format Details

Link uses a proprietary binary format:

  • Header with ECU model and software version
  • Metadata section with log date/time
  • Channel blocks with name, unit, and time-series data
  • Data stored as f32 (value, time) pairs
  • UTF-16 LE string encoding for metadata

Supported Channels

Depends on your Link ECU model and configuration. Common channels include:

Engine Parameters

  • Engine RPM
  • Manifold Absolute Pressure (MAP)
  • Throttle Position
  • Engine Load

Fuel System

  • Lambda (AFR)
  • Fuel Pressure
  • Injector Pulse Width
  • Fuel Trim

Ignition System

  • Ignition Timing
  • Ignition Coil Dwell
  • Knock levels

Temperatures

  • Coolant Temperature
  • Intake Air Temperature
  • Oil Temperature
  • Exhaust Gas Temperature (EGT)

Pressures

  • Oil Pressure
  • Fuel Pressure
  • Barometric Pressure

Vehicle Sensors

  • Vehicle Speed
  • Gear Position
  • Battery Voltage

Custom Channels

  • Analog Voltage inputs
  • Digital inputs
  • CAN bus data (if configured)

Metadata

Link log files include:

  • ECU model name
  • Log date and time
  • Software version
  • Data source information

Emerald ECU

Overview

Full support for Emerald ECU log files from K6, M3D, and compatible ECU models. Emerald ECUs are popular in the British motorsport and classic car communities.

Supported File Format

  • Type: Binary format (dual-file system)
  • Extensions: .lg1 (data) + .lg2 (channel definitions)
  • Source: Logged directly by Emerald ECU via EM Soft
  • Note: Both files must be in the same directory

No Export Required

Emerald ECUs log directly to LG1/LG2 format. Simply load either the .lg1 or .lg2 file into UltraLog - both files are automatically loaded together.

How to Log with Emerald EM Soft

  1. Connect to your Emerald ECU with EM Soft
  2. Go to Logging section
  3. Select channels to log
  4. Click Start Logging
  5. Drive/run the engine
  6. Click Stop Logging
  7. Save the log files (both .lg1 and .lg2 will be created)

Binary Format Details

Emerald uses a dual-file binary format:

  • .lg1 file - Contains the actual time-series data values
  • .lg2 file - Contains the channel ID for each of the 8 logger slots and the logger unit settings
  • Data stored as binary values with timestamps
  • Both files must be present in the same directory for UltraLog to load the log

Supported Channels

The .lg2 file stores a channel ID for each of the 8 logger slots. UltraLog maps these IDs to channels:

EM Soft label UltraLog channel Unit Status
Engine Speed RPM RPM Confirmed
Throttle Pos TPS % Confirmed
AFR/Lambda Lambda Sensor Voltage V Confirmed (see note)
MAP MAP kPa Confirmed
Ign Adv Ignition Advance ° Confirmed (see note)
Inj Duration Inj Duration % Confirmed
BoostPWM Boost PWM % Confirmed
Load site Load Site 0-15 Confirmed
AirTemp Air Temp °C Not yet confirmed
CoolantTemp Coolant Temp °C Not yet confirmed

Other channel IDs show as Channel N (ID x) with the raw value, or use a name that is not yet confirmed. If a channel shows the wrong name or value, open an issue and attach the .lg1/.lg2 pair and a screenshot of the same point in EM Soft.

Notes:

  • Lambda Sensor Voltage is the K6's own lambda input in volts (0-1 V). If a wideband controller feeds that input, convert the voltage to AFR with a computed channel (see Computed Channels) that uses your controller's output curve.
  • Ignition Advance uses an offset worked out from log data (5.5° at idle, 14-17° at full boost on a turbo engine). Compare it with EM Soft for your log before you use it for tuning.
  • MAP is stored in the pressure unit the EM Soft logger was set to. UltraLog reads that setting from the .lg2 file and shows kPa. Only the kPa and bar settings are supported; with any other setting MAP values are wrong.
  • If a log has two channels with the same name, the confirmed one keeps the plain name and the other gets its channel ID added, for example Ignition Advance (ID 21).

Important Notes

  • Both files required: You must keep the .lg1 and .lg2 files together in the same directory
  • Load either file: UltraLog can be pointed at either file - it will automatically find and load the companion file
  • File naming: The files must have matching base names (e.g., mylog.lg1 and mylog.lg2)

MegaSquirt / Honda Tuning Studio - Full Support

  • File type: CSV datalogs exported from TunerStudio
  • Supported devices: MegaSquirt MS1, MS2, MS3, MS3-Pro, MSPNP, MSPNP2, Honda Tuning Studio
  • Features: Automatic channel and unit extraction from column headers, boolean value parsing (MIL lamp ON/OFF), anomalous first-row timestamp handling, UTF-8 BOM support

Supported Data

  • RPM, MAP, TPS, VSS, Gear
  • Injector Duration & Duty Cycle
  • Ignition Table & Final Timing
  • Coolant Temperature (ECT), Intake Air Temperature (IAT)
  • Air-Fuel Ratio, Battery Voltage
  • Boost Pressure, Barometric Pressure
  • Analog inputs (D14, MAP Voltage, ELD Voltage, TPS Voltage)
  • MIL (Malfunction Indicator Lamp) status

Important Notes

  • TunerStudio format: The log file must be exported from TunerStudio (starts with "Tune Datalog export")
  • Channel variability: Available channels depend on your TunerStudio dashboard configuration
  • Compatible software: TunerStudio MS, TunerStudio Lite, Honda Tuning Studio, MegaLogViewer
  • .msl files: Those use a different layout and are handled by the TunerStudio MSL parser below

TunerStudio MSL - Full Support

  • File type: Tab-delimited legacy ASCII datalogs (.msl)
  • Where they come from: TunerStudio's Data Logging menu, and third-party dashes that write the same dialect — notably RealDash, which logs a Speeduino over Bluetooth straight to .msl with no cable and no conversion step
  • Supported devices: Speeduino, MegaSquirt, and any ECU logged through TunerStudio or RealDash
  • Features: Units read from the row beneath the header, optional firmware/capture-date preamble, MARK lines skipped, blank and non-numeric fields carried forward from the last known value, clock columns converted to seconds since midnight, monotonic time enforced across concatenated sessions

Format Layout

Time    SecL    RPM     MAP     ...     GPS Latitude    GPS Longitude   GPS Time
sec     s       RPM     kPa     ...     lat             lon             time
0.0     202.0   965.0   33.0    ...     -26.253315      -51.06884       21:51

Row 1 is the channel names, row 2 is the unit for each column, and everything after is data. UltraLog reads the time unit from that second row, so a log in milliseconds scales correctly instead of being read as seconds.

Supported Data

  • RPM, MAP, TPS, MAT, CLT, Battery Voltage
  • AFR and AFR2, EGO corrections
  • Pulse Width, VE, Duty Cycle (per bank)
  • Spark Advance, MAF, Boost (bar and psi), Acceleration
  • Speed, and GPS Latitude / Longitude / Altitude / Speed / Date / Time

Important Notes

  • Track Map works out of the box: GPS columns keep their exported names, so a logged session draws the track with lap detection and channel coloring
  • Non-numeric columns: GPS Date is text (18.8.2026) and has no numeric meaning, so it reads as the last known value. GPS Time is converted to seconds since midnight and does plot
  • Blank fields: RealDash leaves GPS fields blank until it gets a fix. Those rows carry the previous value forward rather than dropping to zero mid-log
  • Not the same as the MegaSquirt CSV: TunerStudio's comma-delimited CSV export is handled by the MegaSquirt parser above. Both are supported; UltraLog picks the right one automatically

Woolich Racing Tuned - Full Support

  • File type: CSV datalogs exported from Woolich Racing Tuned (WRT) flash-tuning software
  • Supported devices: Yamaha, Kawasaki, Suzuki, Honda, and BMW sportbike ECUs flashed and logged through the WRT datalogger
  • Features: HH:MM:SS.mmm timestamp parsing normalized to relative seconds, boolean channel parsing (Clutch In True/False → 1/0), automatic unit inference, trailing-comma handling

Supported File Format

Woolich logs are plain comma-delimited CSV with a Log Time column first and a trailing comma on every row:

Log Time,RPM,TPS,IAP,AFR,Gear,Clutch In,Coolant Temp,IAT,
00:00:00.040,0,0.00,100.00,0.0,0,False,24.0,25.0,
00:00:00.100,1224,12.50,59.00,13.2,0,True,92.0,26.0,

How to Export from Woolich Racing Tuned

  1. Open your logged session in the Woolich Racing Tuned software
  2. Use the Export to CSV option from the logging/data view
  3. Load the resulting .csv file directly into UltraLog

Supported Data

  • RPM, TPS (throttle position), IAP (intake air pressure)
  • AFR (air-fuel ratio)
  • Gear, Clutch In (boolean)
  • Coolant Temp, IAT (intake air temperature)
  • Any additional channels selected in the WRT logging configuration

Timestamp Handling

The Log Time column is wall-clock elapsed time formatted as HH:MM:SS.mmm. UltraLog converts it to seconds and normalizes the first sample to t = 0.

Unit Handling

WRT exports do not embed units in the header, so UltraLog infers conventional units from each channel name (e.g. RPM → RPM, IAP → kPa, temps → °C, TPS → %, AFR → AFR). Boolean channels such as Clutch In are charted as 1 (True) / 0 (False).


RaceChrono - Full Support

  • File type: CSV v3 session exports from the RaceChrono / RaceChrono Pro lap-timing app (Android/iOS)
  • Supported devices: Any session recorded in RaceChrono — phone GPS or external GPS receivers, phone accelerometer/gyroscope/magnetometer, and OBD-II / CAN-Bus channels from a connected adapter
  • Features: All sources merged on one time axis, duplicate channel names disambiguated by source, multi-fragment (paused and resumed) sessions, GPS Track Map support out of the box

Supported File Format

RaceChrono CSV v3 files start with a banner and a metadata preamble, followed by a header row, a units row, and a sources row:

This file is created using RaceChrono Pro v10.1.3 ( http://racechrono.com/ ).
Format,3
Session title,"My Track Session"
Session type,Lap timing
...

timestamp,fragment_id,lap_number,elapsed_time,...,latitude,longitude,...,speed,...,rpm
unix time,,,s,...,deg,deg,...,m/s,...,rpm
,,,,...,100: gps,100: gps,...,calc,...,300: canbus
1785849363.002,0,,0.002,...,44.831825,11.224415,...,0.0,...,850.0

How to Export from RaceChrono

  1. Open the session in RaceChrono
  2. Tap the share/export button and choose CSV v3 as the export format
  3. Load the resulting .csv file directly into UltraLog

Only CSV v3 is supported. The other RaceChrono export formats (.vbo, .rcz, CSV v1/v2) will not load — UltraLog shows a clear error asking for a CSV v3 re-export if it sees an older CSV version.

Supported Data

  • GPS: latitude, longitude, altitude, speed, bearing, accuracy, satellites, fix type
  • Phone sensors: accelerometer (x/y/z), gyroscope, magnetometer, and derived lateral/longitudinal/combined acceleration and lean angle
  • Lap timing: lap number, fragment id, distance traveled
  • OBD-II / CAN: every channel the session logged (RPM, engine oil temp, throttle, and more)

Channel Naming

RaceChrono exports the same column name once per source (for example speed from GPS and from the calculated pipeline). UltraLog disambiguates duplicates with the source label — speed (gps), speed (calc), device_update_rate (acc) — while unique names such as latitude, longitude, and rpm are kept exactly as exported.

Timestamp Handling

The timestamp column is unix time. UltraLog re-bases it so the first record is t = 0. The elapsed_time column resets to zero at every fragment boundary (each time the recording was paused and resumed), so it is kept as a regular channel rather than used as the time axis.

GPS Track Map

Because latitude/longitude arrive in decimal degrees under their standard names, the GPS Track Map works immediately: lap detection, channel-colored track polyline, and cursor sync.


MHD Tuning - Full Support

  • File type: CSV datalogs exported from the MHD Tuning flashing/logging app
  • Supported devices: BMW N54, N55, S55, B58, and other platforms flashed and logged with MHD Tuning
  • Features: Skips the leading # metadata block, UTF-8 BOM handling, unit extraction from column headers, MHD's *-for-degree notation normalized to °

Supported File Format

MHD logs are comma-delimited CSV with a leading block of #-prefixed metadata lines, then a header row whose first column is Time and whose channel names carry their unit in trailing parentheses:

#Encoding: UTF-8
#Ecu CALID: 
#Ecu PRGID: 7616431
#VIN: REDACTED
Time,Boost (Bar),Coolant (*C),RPM (RPM),Gear (-),MHD 5.26 IJE0S ST2V7.bin
539.607,-0.479,89,1346,2,0
539.742,-0.466,89,1350,2,0

How to Export from MHD Tuning

  1. Open the logged session in the MHD Tuning app
  2. Use the log export option to save the session as CSV
  3. Load the resulting .csv file directly into UltraLog

Supported Data

  • Boost and boost target, wastegate duty cycle (WGDC)
  • RPM, coolant and intake air temperature, engine load
  • Per-cylinder ignition timing correction
  • Lambda/AFR per bank, short-term fuel trim per bank
  • Fuel rail pressure, gear, torque
  • Any additional channel selected in the MHD logging configuration

Metadata Block

MHD writes a leading block of #-prefixed lines before the header row (#Encoding, #Ecu CALID, #Ecu PRGID, #VIN). UltraLog reads these into log metadata, then skips past them to find the header row. This preamble is also why MHD detection runs against the raw file text ahead of the rest of the format-detection chain, rather than after the generic comment-stripping step every other CSV parser sees.

The final header column is normally the active tune file name (e.g. MHD 5.26 IJE0S ST2V7.bin) — UltraLog captures this in log metadata rather than treating it as a channel.

Degree Notation

MHD substitutes * for the degree sign in channel headers: (*C) normalizes to °C, (*) to °, and (*CRK) to °CRK. A unit of - means the channel is unitless (e.g. Gear (-)).

Missing Data

Unparseable or blank fields are filled with the last successfully parsed value for that column (0.0 before the first valid sample), the same approach used by the Haltech and ECUMaster parsers. This keeps every row aligned with the channel list instead of shifting later columns when one field fails to parse.


BlueDriver OBD-II - Full Support

  • File type: CSV log exports from the BlueDriver Bluetooth OBD-II scan tool app
  • Supported devices: Any vehicle with an OBD-II port, scanned through a BlueDriver Bluetooth adapter
  • Features: Automatic channel/unit extraction from parenthesized header units, UTF-16 file handling

Supported File Format

BlueDriver exports a UTF-16-encoded CSV (with a byte-order mark) containing a title line, a date line, then a header row and comma-separated data. Time is in decimal seconds:

BlueDriver Data Log
Jan 16, 2026
Time(s), Engine RPM (rpm), Voltage (V)
0.00, 850, 14.2
0.50, 900, 14.1
1.00, 950, 14.0

How to Export from BlueDriver

  1. Open the logged session in the BlueDriver app
  2. Use the app's export/share option to save the session as CSV
  3. Load the resulting .csv file directly into UltraLog

Supported Data

  • Every OBD-II PID logged by the session: RPM, vehicle speed, coolant temperature, MAF
  • Fuel trims (short-term/long-term)
  • O2 sensor readings and voltages (e.g. "O2 Bank 1 - Sensor 2 - Oxygen Sensor Voltage")
  • Any additional PID selected in the BlueDriver live-data view

Character Encoding

BlueDriver writes its CSV as UTF-16 with a byte-order mark, unlike nearly every other supported format, which is UTF-8. UltraLog detects and decodes this automatically — no manual conversion needed before loading the file.

Missing Data

Empty or unparseable cells are recorded as NaN rather than filled from the previous value, so a PID the scan tool briefly failed to read shows as a genuine gap instead of a flat line.


Motorsport Electronics - Full Support

  • File type: CSV exports from the ME Tuner software used with Motorsport Electronics ECUs
  • Supported devices: ME221, ME442, and other Motorsport Electronics ECUs — common on turbo/supercharged MX-5s, Ford Focus ST150, Honda S2000, Toyota Starlet, Mitsubishi Evo, and similar builds
  • Features: Automatic unit inference from channel names, since ME Tuner does not embed units in the header

Supported File Format

ME Tuner logs are comma-delimited CSV with Time (seconds since logging start) as the first column, followed by ME-specific channel names:

Time, Marker, RPM, Sync status, Lost sync count, Injector duty, MAP Raw, MAP, TPS Raw, TPS, ...
0.11,0,1104.00,2.00,0.00,0.64,5908.00,27.05,5870.00,0.00,...
0.22,0,1105.00,2.00,0.00,0.64,5924.00,27.09,5881.00,0.00,...

How to Export from ME Tuner

  1. Open the logged session in ME Tuner
  2. Use the software's log export option to save the session as CSV
  3. Load the resulting .csv file directly into UltraLog

Supported Data

  • RPM, MAP, TPS (raw and calibrated), primary/secondary load
  • Injector duty cycle, base and total VE, fuel trims (CLT/IAT/idle/knock/lambda)
  • Ignition advance (base table, knock modifier, CLT/IAT add), dwell
  • Coolant and intake air temperature, battery voltage
  • Boost open/closed-loop duty and target, wideband AFR/lambda status
  • Drive-by-wire (DBW) status and throttle plate position
  • Any additional channel logged in the ME Tuner configuration

Detection Against RomRaider

ME Tuner's header also starts with a bare Time column — the same fingerprint the RomRaider/generic-CSV parser looks for. RomRaider treats an un-annotated Time column as milliseconds, which would scale ME221 timestamps 1000x too small. UltraLog fingerprints ME Tuner files by requiring several ME221-specific column names (Sync status, Lost sync count, MAP Raw, WBO2 Curr. AFR, and others) alongside the bare Time header, and runs this check before the RomRaider chain so ME Tuner exports are never misread as millisecond timestamps.


DynamicEFI - Full Support

  • File type: CSV exports from DynamicEFI's EBL WhatsUp software, used with modified GM TBI (Throttle Body Injection) systems
  • Supported devices: GM TBI-based engines logged through EBL WhatsUp
  • Features: GM TBI channel abbreviations mapped to display units, Y/N flag and gear-letter parsing, sub-second timestamp interpolation

Supported File Format

EBL WhatsUp exports comma-delimited CSV with a trailing comma on every row, a RUNTIME column in HH:MM:SS format, and GM TBI-specific channel abbreviations:

RUNTIME,RPM,MPH,MAP,PSI,BRO,VAC,VE%,TPS,CTS,IAT,I/C,O2,G/S,SA,...,BLM,BPC,IAC,AFR,WB,...
00:00:00,   0,  0, 98,  0, 98,  0, 72,  0, 72, 69, 72, 451,  0,10, 0,...
00:01:53, 775,  0, 35,  0, 98, 63, 38,  0,100, 69, 99, 743, 17,25, 0,...

How to Export

EBL WhatsUp logs natively to a .dat raw serial stream; use the software's CSV export option to convert a logged session, then load the resulting .csv file directly into UltraLog.

Supported Data

  • RPM, road speed (MPH), MAP/BRO (kPa), boost/vacuum (PSI/inHg)
  • VE%, TPS, injector pulse width (base/actual/AE)
  • Coolant and intake air temperature (°F), O2 sensor (mV), airflow (g/s)
  • Spark advance, BLM/BPC fuel trims, IAC steps
  • AFR/wideband, and Y/N flag or gear-letter channels (e.g. Park/Neutral)
  • Any additional channel logged by EBL WhatsUp

RUNTIME Resolution and Timestamp Interpolation

EBL WhatsUp's RUNTIME column only has 1-second resolution, but the underlying data is sampled much faster. UltraLog distributes the multiple samples that share a RUNTIME value evenly across that second so the time axis stays smooth instead of stair-stepping. It also detects RUNTIME resets — the column wrapping back to 00:00:00 mid-session — and continues the time axis monotonically with a 1-second gap rather than jumping backwards.

Flag and Gear Values

GM TBI channel values include letter/flag codes alongside numbers: Y/N map to 1/0, P/N (Park/Neutral) maps to 0, and gear letters map to D = 4, R = -1, L = 1.


Locomotive - Full Support

  • File type: CSV exports from a locomotive datalogger
  • Supported devices: Locomotive control/monitoring systems that export a TimeStamp:/Customer:/UnitNumber: metadata header followed by day-of-week-prefixed data rows
  • Features: Wall-clock timestamp parsing, metadata extraction (customer, unit number, software version), parallel row parsing for large logs

Supported File Format

Locomotive logs start with five metadata lines, a blank line, then a comma-delimited header row, followed by data rows that begin with a day-of-week abbreviation:

TimeStamp: Sat Nov 15 19:00:03 2025
Customer: VLi
UnitNumber: 6194
SoftwarePartNumber: 16085
SoftwareVersion: 33.21.04

TimeStamp, CPMRst, Rc_tfnd, AB Mode, ASRstSt, ..., Eng RPM, ..., Batt V, ...
Sat Nov 15 19:00:03 2025, 1, 1, 1, 2, ..., 2907, ..., 64.0000000000, ...

How to Export

Export the session log as CSV from your locomotive datalogger software, then load the resulting .csv file directly into UltraLog.

Supported Data

  • Hundreds of locomotive control and diagnostic channels: engine RPM, battery voltage, traction motor and alternator status, brake and throttle position, cab signal states, and fault/status flags across the locomotive's control systems
  • Exact channel set depends on the datalogger configuration and locomotive model
  • Channels carry no unit metadata in the source file, so all values display unitless

Metadata

Locomotive logs carry session metadata in their first five lines, which UltraLog reads into log metadata rather than treating as channels: TimeStamp, Customer, UnitNumber, SoftwarePartNumber, and SoftwareVersion.

Timestamp Handling

Each data row starts with a full wall-clock timestamp (e.g. Sat Nov 15 19:00:03 2025), not an elapsed-time column. UltraLog parses this <weekday> <month> <day> <HH:MM:SS> <year> format, converts it to seconds, and normalizes the first sample to t = 0.


Coming Soon

The following ECU formats are planned for future releases:

AEM

  • AEM Infinity
  • AEM EMS

MaxxECU

  • MaxxECU log files

MoTeC

  • MoTeC M1 series
  • MoTeC i2 exports

Requesting New Format Support

If your ECU system isn't supported:

  1. Open an issue on GitHub
  2. Include:
    • ECU system name and model
    • Software version used for logging/export
    • A sample log file (if possible)
    • Documentation links (if available)

Trademark Notice

UltraLog is an independent, open-source project created for interoperability purposes. All ECU system names and trademarks mentioned on this page are property of their respective owners.

UltraLog is not affiliated with, endorsed by, or sponsored by any of these companies or projects. Product names are used solely for identification and interoperability purposes.

For full legal information, see Legal.


Next Steps

Clone this wiki locally