UltraLog
Better Log viewer for all Aftermarket ECUs
Install / Use
/learn @ClassicMiniDIY/UltraLogREADME
UltraLog
<img width="500" alt="UltraLog Banner" src="https://github.com/user-attachments/assets/9924e8ae-ace8-4b16-a8d6-cbf456a8bc62" />A high-performance, cross-platform ECU log viewer written in Rust.
Overview
UltraLog is an independent, open-source desktop application designed for automotive tuners, engineers, and enthusiasts who need to analyze ECU (Engine Control Unit) log data. Built with Rust for maximum performance, it handles large log files (millions of data points) smoothly using advanced downsampling algorithms while maintaining visual accuracy.
Purpose: UltraLog exists to provide data interoperability for the automotive tuning community. It reads standard export formats (CSV, binary logs) from various ECU systems, enabling users to analyze their own vehicle telemetry data in a unified, cross-platform tool without vendor lock-in.
Key Benefits:
- Fast - Handles massive log files without lag using LTTB downsampling
- Universal - Supports multiple ECU formats in one unified interface for cross-platform data analysis
- Cross-platform - Runs natively on Windows, macOS, and Linux
- Accessible - Colorblind-friendly palette and clear visualization
- Open - AGPL-3.0 licensed with documented format specifications for community benefit
Features
Data Visualization
- Multi-channel overlay - Plot up to 10 data channels simultaneously on a single chart
- Normalized display - All channels scaled 0-1 for easy comparison regardless of original units
- Min/Max legend - Peak values displayed for each channel at a glance
- Real-time cursor values - Legend shows live values at cursor position with proper units
- High-performance rendering - LTTB (Largest Triangle Three Buckets) algorithm reduces millions of points to 2,000 while preserving visual fidelity
- Stacked plot areas - Split the chart into up to 10 independent vertically-stacked panels, each with its own Y-axis and channel set — ideal for comparing channels with wildly different scales
Timeline and Playback
- Interactive timeline - Click anywhere on the chart or use the scrubber to navigate
- Playback controls - Play, pause, stop with adjustable speed (0.25x, 0.5x, 1x, 2x, 4x, 8x)
- Cursor tracking mode - Keep the cursor centered while scrubbing through data
- Manual time input - Type a specific time in seconds to jump directly to that position
Multi-File Support
- Tab-based interface - Open multiple log files with Chrome-style tabs
- Drag and drop - Simply drop files onto the window to load them
- Per-tab state - Each tab maintains its own channel selections and view settings
- Duplicate detection - Prevents loading the same file twice
Unit Conversion
Configurable units for 8 measurement categories:
- Temperature - Kelvin, Celsius, Fahrenheit
- Pressure - kPa, PSI, Bar
- Speed - km/h, mph
- Distance - km, miles
- Fuel Economy - L/100km, MPG
- Volume - Liters, Gallons
- Flow Rate - L/min, GPM
- Acceleration - m/s², g
- AFR/Lambda - Air-Fuel Ratio, Lambda
Export Options
- PNG Export - Save chart views as PNG images
- PDF Export - Generate PDF reports of your visualizations
Computed Channels
- Formula-based virtual channels - Create custom channels from mathematical expressions
- Time-shifting support - Reference past/future values with index offsets (
RPM[-1]) or time offsets (Boost@-0.5s) - Reusable library - Save formulas as templates to use across different log files
- Full expression support - All standard math functions:
sin,cos,sqrt,abs,max,min, etc. - Example formulas:
RPM * 0.5- Simple arithmetic"Manifold Pressure" - "Barometric Pressure"- Quoted channel names with spacesRPM[-1] - RPM- RPM change from previous samplemax(AFR1, AFR2)- Maximum of two channelssqrt(TPS * MAP)- Complex calculations
Additional Tools
- Scatter Plot - XY scatter visualization for channel correlation analysis
- Histogram - 2D heatmap visualization with configurable grid sizes (10x10 to 25x25) for analyzing channel distributions
- MCP Server - Built-in Model Context Protocol server lets Claude Desktop (or any MCP client) control UltraLog — load files, select channels, get stats, create computed channels, and run analysis via
http://localhost:52453/mcp - Analysis Tools - Built-in signal processing and statistics:
- Filters - Moving average, Kalman filter, and other signal processing tools
- Statistics - Min/max, percentiles, standard deviation calculations
- AFR Analysis - Air-Fuel Ratio analysis with target comparison
- Derived Channels - Calculated channels from existing data
- Normalization Editor - Create custom field name mappings for cross-ECU comparison
- Field Normalization - Maps ECU-specific channel names to standard names (e.g., "Act_AFR" → "AFR")
Accessibility
- Colorblind mode - Wong's optimized color palette designed for deuteranopia, protanopia, and tritanopia
- Font scaling - Four font sizes (S, M, L, XL) for improved readability
- Custom font - Clear, readable Outfit typeface
- Toast notifications - Non-intrusive feedback for user actions
- Multilingual support - 15 languages including English, Spanish, German, French, Italian, Portuguese, Chinese, Japanese, Hindi, Arabic, Bengali, Russian, Urdu, and Indonesian
Supported ECU Formats
Haltech - Full Support
- File type: CSV exports from Haltech NSP software
- Features: 50+ channel types with automatic unit conversion
- Supported data: Pressure, temperature, RPM, throttle position, boost, ignition timing, fuel trim, and more
ECUMaster EMU Pro - Full Support
- File type: CSV exports (semicolon or tab-delimited) from EMU Pro software
- Features: Hierarchical channel paths, automatic unit inference
- Note: Native
.emuprologbinary format not supported; export to CSV from EMU Pro
RomRaider - Full Support
- File type: CSV exports from RomRaider ECU logging software
- Features: Automatic unit extraction from column headers, Subaru ECU parameter support
- Supported data: Engine speed, load, AFR corrections, timing, knock, temperatures, and all standard Subaru ECU parameters
Speeduino / rusEFI - Full Support
- File type: MegaLogViewer binary format (
.mlg) - Features: Binary format parsing with field type detection
- Supported data: All standard Speeduino/rusEFI channels with timestamps
AiM - Full Support
- File type: XRK/DRK binary format (
.xrk,.drk) - Features: Pure Rust binary parser for AiM motorsport data loggers
- Supported devices: MXP, MXG, MXL2, EVO5, MyChron5, and other AiM data acquisition systems
- Supported data: All logged channels with lap times, GPS data, and metadata
Link ECU - Full Support
- File type: Link log format (
.llg) - Features: Binary format parser for Link G4/G4+/G4X ECUs
- Supported data: All ECU parameters including RPM, MAP, AFR, ignition timing, temperatures, and custom channels
Emerald ECU - Full Support
- File type: Binary format (
.lg1data +.lg2channel definitions) - Features: Native binary format parser for Emerald K6/M3D ECUs
- Supported devices: Emerald K6, M3D, and compatible ECU models
- Supported data: TPS, Air Temp, MAP, Lambda, Oil/Fuel Pressure, Oil/Fuel Temp, Exhaust Temp, Boost Target/Duty, RPM, Coolant Temp, Battery Voltage, Ignition Advance, Injector Pulse Width, and more
- Note: Both
.lg1(data) and.lg2(channel definitions) files must be in the same directory
MegaSquirt / Honda Tuning Studio - Full Support
- File type: CSV datalogs exported from TunerStudio
- Features: Automatic channel and unit extraction, boolean value parsing (MIL lamp ON/OFF), anomalous first-row timestamp handling
- Supported devices: MegaSquirt MS1, MS2, MS3, MS3Pro, Honda Tuning Studio, and any TunerStudio-compatible ECU
- Supported data: RPM, MAP, TPS, injector duration/duty, ignition timing, ECT, IAT, AFR, battery voltage, boost, VSS, gear, and all logged channels
BlueDriver OBD-II - Full Support
- File type: CSV exports from BlueDriver Bluetooth OBD-II scanner app
- Features: Automatic channel and unit detection from BlueDriver live data exports
- Supported data: All OBD-II PIDs logged by BlueDriver including RPM, speed, coolant temp, MAF, fuel trims, O2 sensors, and more
Coming Soon
- AEM
- MaxxECU
- MoTeC
Installation
Pre-built Binaries
Download the latest release for your platform from the Releases page:
| Platform | Download | Notes |
| ------------------- | ----------------------------- | ------------------ |
| Windows x64 | ultralog-windows.zip | Windows 10/11 |
| macOS Intel | ultralog-macos-intel.tar.gz | macOS 10.15+ |
| macOS Apple Silicon | ultralog-macos-arm64.tar.gz | M1/M2/M3/M4 Macs |
| Linux x64 | ultralog-linux.tar.gz | Most distributions |
Windows:
- Download and extract
ultralog-windows.zip - Run
ultralog-windows.exe - You may see a SmartScreen warning on first run - click "More info" → "Run anyway"
macOS:
- Download the appropriate
.tar.gzfor your Mac - Extract:
tar -xzf ultralog-macos-*.tar.gz - On first run, right-click the file and select "Open" to bypass Gatekeeper
- Or remove quarantine attribute:
xattr -d com.apple.quarantine ultralog-macos-*
Linux:
- Download and extract:
tar -xzf ultralog-linux.tar.gz
