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) |
| Torque Pro | Full Support | .csv (trackLog) |
No (the app writes it while logging) |
| 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
- Open your datalog in Haltech NSP
- Go to File → Export → CSV
- Select all channels you want to include
- Choose save location and filename
- 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
.emuprologbinary format is NOT supported
How to Export from EMU Pro
- Open your log in EMU Pro software
- Go to File → Export → CSV
- Select channels to export
- Choose delimiter (semicolon or tab both work)
- 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
.emuprologbinary 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
Timecolumn header
How to Export from RomRaider
- Open RomRaider Logger
- Start logging your parameters
- When complete, go to File → Save Log
- Choose CSV format and save location
- 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
MLVLGheader - Channel count: No fixed limit. Current rusEFI firmware logs over 1,000 channels; these load in UltraLog 2.16.1 and later
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:
- AiM: Identifies
<hCNFtag in XRK/DRK files - Speeduino/rusEFI: Identifies
MLVLGbinary header - Link ECU: Identifies
lf3magic bytes in LLG files - Emerald: Identifies
.lg1/.lg2file pair
Then text formats, each by its own fingerprint:
- MHD Tuning: Identifies the leading
#metadata block (#Ecu CALID,#Ecu PRGID) or the tune-file header column - RaceChrono: Identifies the "created using RaceChrono" banner plus the
Format,Nmetadata line - Torque Pro: Identifies a header row that starts with
GPS Time, Device Time(searched in the first 64 lines) - MegaSquirt: Identifies TunerStudio datalog markers in the header
- TunerStudio MSL: Identifies a tab-delimited
Timeheader row followed by a units row naming a time unit (sec,s,ms) — that units row is what separates MSL from every other tab-delimitedTime-first export - ECUMaster: Identifies semicolon/tab-delimited CSV with
TIMEcolumn - BlueDriver: Identifies BlueDriver's export header (UTF-16 files are decoded first)
- Motorsport Electronics: Identifies a first column of exactly
Timefollowed by ME Tuner'sMarkercolumn (or ME221 channel names) — checked before RomRaider because ME Tuner logs seconds where RomRaider logs milliseconds - RomRaider: Identifies comma-delimited CSV starting with a
Timecolumn (also the catch-all for generic OBD-II apps such as OBDLink; the time unit is read from the header) - Locomotive: Identifies the
TimeStamp:/Customer:metadata header lines - DynamicEFI: Identifies the EBL WhatsUp
RUNTIMEcolumn layout - Woolich Racing Tuned: Identifies comma-delimited CSV starting with a
Log Timecolumn ofHH:MM:SS.mmmtimestamps - 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
<hCNFtag
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
lf3magic 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
- Connect to your Link ECU with PCLink software
- Go to Logging tab
- Select channels to log
- Click Start Logging
- Drive/run the engine
- Click Stop Logging
- Save the
.llgfile
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
- Connect to your Emerald ECU with EM Soft
- Go to Logging section
- Select channels to log
- Click Start Logging
- Drive/run the engine
- Click Stop Logging
- Save the log files (both
.lg1and.lg2will be created)
Binary Format Details
Emerald uses a dual-file binary format:
.lg1file - Contains the actual time-series data values.lg2file - 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
.lg2file 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
.lg1and.lg2files 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.lg1andmylog.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
.mslfiles: 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
.mslwith 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,
MARKlines 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 Dateis text (18.8.2026) and has no numeric meaning, so it reads as the last known value.GPS Timeis 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.mmmtimestamp parsing normalized to relative seconds, boolean channel parsing (Clutch InTrue/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
- Open your logged session in the Woolich Racing Tuned software
- Use the Export to CSV option from the logging/data view
- Load the resulting
.csvfile 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
- Open the session in RaceChrono
- Tap the share/export button and choose CSV v3 as the export format
- Load the resulting
.csvfile 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
- Open the logged session in the MHD Tuning app
- Use the log export option to save the session as CSV
- Load the resulting
.csvfile 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
- Open the logged session in the BlueDriver app
- Use the app's export/share option to save the session as CSV
- Load the resulting
.csvfile 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 and Marker as the second, followed by the channels picked in the ME Tuner log setup. A full ME221 log looks like this:
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,...
A log with a short custom channel list, such as this ME442 export, loads the same way:
Time, Marker, RPM, MAP, Coolant Temp., DBW A Pedal Pos Raw 1, Lambda Ext. AFR, DBW A Sens. Status, ALS Status
0.11,0,1004.00,35.70,59.00,0.00,12.04,0.00,0.00
0.22,0,1004.00,35.64,59.00,0.00,12.04,0.00,0.00
How to Export from ME Tuner
- Open the logged session in ME Tuner
- Use the software's log export option to save the session as CSV
- Load the resulting
.csvfile 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
Raw ADC channels (MAP Raw, Coolant temperature Raw, ...) and status channels (Sync status, ALS Status, ...) are shown without a unit, so the unit preferences never convert them.
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 ME Tuner timestamps 1000x too small. UltraLog fingerprints ME Tuner files by the Time, Marker pair at the start of the header, which ME Tuner writes whatever channels are logged. As a fallback it also accepts a bare Time header with several ME221-specific column names (Sync status, Lost sync count, MAP Raw, WBO2 Curr. AFR, and others). This check runs before the RomRaider chain so ME Tuner exports are never misread as millisecond timestamps. Before v2.15.2 only the ME221 column names were checked, so an ME442 log with a short custom channel list loaded through RomRaider at 1/1000 of its real length.
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.
Torque Pro - Full Support
- File type:
trackLog-*.csvfiles written by the Torque Pro OBD-II app (Android) - Supported devices: Any car Torque Pro can read through an ELM327-style OBD-II adapter, plus the phone's GPS and accelerometer
- Features: Millisecond timeline from the phone clock, PIDs the car never answered are hidden, logging restarts in the same file are joined, GPS Track Map support out of the box
- Available since: UltraLog v2.16.0
Supported File Format
Torque writes a header row of fixed phone columns followed by one column per logged PID, named Name(unit). A PID with no reading in a row is written as -:
GPS Time, Device Time, Longitude, Latitude,GPS Speed (Meters/second), Horizontal Dilution of Precision, Altitude, Bearing, G(x), G(y), G(z), G(calibrated),Engine RPM(rpm),Engine Coolant Temperature(°C),...
Sat Jan 05 14:34:31 MST 2013,05-Jan-2013 14:32:13.526,-104.86746,39.07588,0.0,2.83,2087.4,213.3,0.19,0.95,9.57,0.0001,850.5,-,...
How to Log with Torque Pro
- In Torque Pro, open Settings > Data Logging & Upload and pick the PIDs to log
- Start logging from the menu on a dashboard screen, drive, then stop logging
- Copy the
trackLog-*.csvfile from thetorqueLogsfolder on the phone to your computer - Load the file into UltraLog
If the file has only the header row, Torque recorded no samples in that session (for example, logging was started and stopped with no OBD-II connection). UltraLog shows an error that says this, instead of opening an empty log.
Supported Data
- Phone GPS: latitude, longitude, speed, altitude, bearing, and horizontal dilution of precision
- Phone accelerometer: G(x), G(y), G(z), and G(calibrated)
- Every OBD-II and custom PID Torque logged (RPM, coolant and intake temperatures, fuel trims, O2 sensors, boost, and more), with the unit from the column name
Timestamp Handling
- The time axis comes from
Device Time(05-Jan-2013 14:32:13.526), which has milliseconds.GPS Timehas 1 second resolution and is used only whenDevice Timecannot be read. - If the file was opened and saved in Excel,
Device Timecan become a shortmm:ss.0clock. UltraLog still reads it and handles the hourly rollover. - When the phone clock steps back (time-zone change or daylight saving time), the timeline continues from the last row instead of losing data.
Missing Readings and Empty Columns
Torque reads PIDs in turn, so a PID often has - in rows between its readings. UltraLog keeps the last reading for those rows. With "log all PIDs" the header can list more than 200 PIDs that most cars never answer; columns with no reading anywhere are hidden.
Logging Restarts
When logging restarts into the same file, Torque writes the header row again, and the PID list can change. UltraLog loads every section into one log. A PID that is missing from a section keeps its last reading there.
GPS Track Map
Latitude and Longitude keep their names, so the GPS Track Map works immediately.
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:
- Open an issue on GitHub
- 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
- Getting Started - Start using UltraLog
- User Guide - Complete feature reference
- Unit Conversion - Configure display units
From the GitHub wiki. Edit this page