Releases: ClassicMiniDIY/UltraLog
v2.9.0
Installation
macOS
- Download the appropriate
.dmgfile for your Mac:- Intel Mac:
ultralog-macos-intel.dmg - Apple Silicon (M1/M2/M3/M4):
ultralog-macos-arm64.dmg
- Intel Mac:
- Open the DMG and drag UltraLog to your Applications folder
- On first run, right-click the app and select "Open" to bypass Gatekeeper
Windows
- Download
ultralog-windows.zip - Extract the zip file
- Run
ultralog-windows.exe
Linux
- Download
ultralog-linux.tar.gz - Extract:
tar -xzf ultralog-linux.tar.gz - Run:
./ultralog-linux
What's Changed
🔄 Other Changes
- Release v2.9.0: chart UX fixes, grid toggle, MLG timestamp fix by @SomethingNew71 in #68
Full Changelog: v2.8.2...v2.9.0
v2.8.2 - Motorsport Electronics Support
New ECU Support: Motorsport Electronics (ME221 / ME442)
UltraLog now parses ME Tuner CSV exports from Motorsport Electronics ECUs — popular in turbo and supercharged MX-5, Ford Focus ST150, Honda S2000, Toyota Starlet, and Mitsubishi Evo builds.
Bug Fix: ME221 Time Scaling
Before this release, importing an ME221 CSV produced a log with the time axis compressed by roughly 1000x — a 111-second log would render as 0.111 seconds, making the data effectively unreadable.
The root cause was that both ME Tuner and RomRaider CSV exports start with a Time, header, and RomRaider's format detection was permissive enough to claim ME221 files. The RomRaider parser then divided the Time column by 1000 on the assumption it was milliseconds, while ME Tuner actually exports Time in seconds.
The fix adds a dedicated Motorsport Electronics parser with strict detection (exact Time first column plus ME221-specific fingerprint columns like Sync status, Injector duty, WBO2 Curr. AFR, and DBW Status), dispatched before RomRaider so it correctly claims ME Tuner exports.
What Works
- Detection of ME221 and ME442 logs without collisions against other
Time,-prefixed CSV formats - Time axis rendered in real seconds, normalized so logs start at t = 0
- Automatic unit inference from channel names (RPM, kPa, %, °C, V, etc.) since ME Tuner does not embed units in headers
- Trailing
Dummycolumn silently stripped
Testing
- Comprehensive unit tests cover detection, RomRaider rejection, generic CSV rejection, time-seconds scaling, first-timestamp normalization, and unit inference
- Integration tests parse two bundled real ME221 example logs and assert the time range is in seconds
Installation
macOS
- Download the appropriate
.dmgfile for your Mac:- Intel Mac:
ultralog-macos-intel.dmg - Apple Silicon (M1/M2/M3/M4):
ultralog-macos-arm64.dmg
- Intel Mac:
- Open the DMG and drag UltraLog to your Applications folder
- On first run, right-click the app and select "Open" to bypass Gatekeeper
Windows
- Download
ultralog-windows.zip - Extract the zip file
- Run
ultralog-windows.exe
Linux
- Download
ultralog-linux.tar.gz - Extract:
tar -xzf ultralog-linux.tar.gz - Run:
./ultralog-linux
Full Changelog: v2.8.1...v2.8.2
Installation
macOS
- Download the appropriate
.dmgfile for your Mac:- Intel Mac:
ultralog-macos-intel.dmg - Apple Silicon (M1/M2/M3/M4):
ultralog-macos-arm64.dmg
- Intel Mac:
- Open the DMG and drag UltraLog to your Applications folder
- On first run, right-click the app and select "Open" to bypass Gatekeeper
Windows
- Download
ultralog-windows.zip - Extract the zip file
- Run
ultralog-windows.exe
Linux
- Download
ultralog-linux.tar.gz - Extract:
tar -xzf ultralog-linux.tar.gz - Run:
./ultralog-linux
What's Changed
🔄 Other Changes
- ci: optimize GitHub Actions to reduce costs (~$18-20/mo savings) by @SomethingNew71 in #62
- Version 2.8.1 by @SomethingNew71 in #64
- feat(parser): add Motorsport Electronics ME221/ME442 support by @SomethingNew71 in #66
Full Changelog: v2.8.1...v2.8.2
v2.8.1 — Link ECU Parser Fix
Bug Fix
Corrected Link ECU binary parsing across all format variants (.llg, .llg5, .llgx)
The previous Link parser used a byte-scan heuristic for channel discovery that had several critical issues:
- Produced false-positive channel detections
- Read each 8-byte data pair as (value, time) when the actual format is (time, value)
- Silently skipped the first 8 bytes of every channel's data section
- Filtered out pre-trigger samples with negative times
- Resulted in ~24-hour time ranges and all-zero values on every file
The parser has been rewritten around proper block-based parsing, walking the file's <3-byte marker> block framing to correctly identify channel definitions and read data streams.
Before: Time range 0–89,477s (24.8 hours), all-zero values on every file.
After: Physically plausible time ranges (21–52s) with real RPM, MAP, lambda, and other channel values.
Testing
- Added plausibility checks for Link timing and channel values to catch regressions
- Verified against all example Link files in the repo and additional .llgx files from real G4X hardware
Installation
macOS
- Download the appropriate
.dmgfile for your Mac:- Intel Mac:
ultralog-macos-intel.dmg - Apple Silicon (M1/M2/M3/M4):
ultralog-macos-arm64.dmg
- Intel Mac:
- Open the DMG and drag UltraLog to your Applications folder
- On first run, right-click the app and select "Open" to bypass Gatekeeper
Windows
- Download
ultralog-windows.zip - Extract the zip file
- Run
ultralog-windows.exe
Linux
- Download
ultralog-linux.tar.gz - Extract:
tar -xzf ultralog-linux.tar.gz - Run:
./ultralog-linux
Full Changelog: v2.8.0...v2.8.1
v2.8.0
What's New in v2.8.0
Stackable Log Viewer
The most requested visualization feature is here — stacked plot areas let you split your chart into multiple independent panels, each with its own Y-axis and channel set. No more struggling to compare RPM (0–8000) and Lambda (0.7–1.3) on the same scale.
- Toggle stacked mode from the view options to split your chart into separate vertically-stacked panels
- Up to 10 plot areas — create named panels like "Engine", "Fuel", "Temps" and assign channels to each
- Drag to resize — adjust the height of each plot area by dragging the dividers between them
- Collapse panels — minimize plot areas you don't need right now without losing your channel assignments
- Per-plot channel management — add and remove channels from individual plots, or move channels between plots
- Shared timeline — all stacked plots share the same time axis, cursor position, and playback controls, so everything stays synchronized as you scrub through the log
- Works with all tools — stacked mode integrates with the existing channel selection, color assignment, min/max legends, and cursor value readouts
When you disable stacked mode, all channels consolidate back to a single chart — nothing is lost.
MCP Server — Claude Desktop Integration
UltraLog now embeds a Model Context Protocol (MCP) server that lets Claude Desktop (or any MCP-compatible AI client) control the application in real time. When UltraLog launches, it starts an MCP endpoint at http://localhost:52453/mcp that exposes 23 tools for AI-assisted log analysis:
- File management — Load, close, and inspect ECU log files
- Channel operations — List channels, select/deselect channels for display, get time-series data and statistics (min, max, mean, std dev, median)
- Computed channels — Create, delete, and list computed channels from mathematical formulas
- Formula evaluation — Evaluate arbitrary formulas against log data without creating permanent channels
- Playback control — Play, pause, stop, set cursor position, and set visible time range
- Analysis tools — Find peaks in channel data, compute Pearson correlation between channels
- View switching — Switch between time-series chart, scatter plot, and histogram views
To connect Claude Desktop, add UltraLog as a Streamable HTTP MCP server pointing to http://localhost:52453/mcp.
New ECU Format: BlueDriver OBD-II
Added support for BlueDriver OBD-II diagnostic scanner log files (.csv). BlueDriver is a popular Bluetooth OBD-II scanner used for reading live data from any OBD-II compliant vehicle.
AFR/Lambda Unit Preference
Added a new unit preference for Air-Fuel Ratio (AFR) and Lambda display, letting you switch between AFR and Lambda units across all channels that report mixture data.
UI Polish
- Improved histogram and scatter plot tool properties panels with better layout and controls
- Refined tool properties panel styling
- Cursor tracking now defaults to on for a better out-of-the-box experience
Under the Hood
- Rust toolchain updated from 1.92.0 to 1.94.1
- egui ecosystem upgraded to eframe 0.34.1, egui_plot 0.35.0, egui_extras 0.34.1
- Dependency updates: zip 8.5, printpdf 0.9 (complete PDF export rewrite), strum 0.28, dirs 6.0, ureq 3.3, serde_yml (replacing deprecated serde_yaml), chrono 0.4.44
- OpenECU Alliance API — Fixed spec refresh parsing for the updated API response format; added Diagnostics channel category
- PDF export rewritten to use printpdf 0.9's Op-based API
Installation
macOS
- Download the appropriate
.dmgfile for your Mac:- Intel Mac:
ultralog-macos-intel.dmg - Apple Silicon (M1/M2/M3/M4):
ultralog-macos-arm64.dmg
- Intel Mac:
- Open the DMG and drag UltraLog to your Applications folder
- On first run, right-click the app and select "Open" to bypass Gatekeeper
Windows
- Download
ultralog-windows.zip - Extract the zip file
- Run
ultralog-windows.exe
Linux
- Download
ultralog-linux.tar.gz - Extract:
tar -xzf ultralog-linux.tar.gz - Run:
./ultralog-linux
What's Changed
🔄 Other Changes
- Stackable log viewer, BlueDriver support, and v2.7.0 updates by @SomethingNew71 in #58
- Add MCP server for Claude Desktop integration by @SomethingNew71 in #60
- Bump version to 2.8.0 by @SomethingNew71 in #61
Full Changelog: v2.6.0...v2.8.0
v2.6.0
Installation
macOS
- Download the appropriate
.dmgfile for your Mac:- Intel Mac:
ultralog-macos-intel.dmg - Apple Silicon (M1/M2/M3/M4):
ultralog-macos-arm64.dmg
- Intel Mac:
- Open the DMG and drag UltraLog to your Applications folder
- On first run, right-click the app and select "Open" to bypass Gatekeeper
Windows
- Download
ultralog-windows.zip - Extract the zip file
- Run
ultralog-windows.exe
Linux
- Download
ultralog-linux.tar.gz - Extract:
tar -xzf ultralog-linux.tar.gz - Run:
./ultralog-linux
Full Changelog: v2.5.0...v2.6.0
v2.5.0
Installation
macOS
- Download the appropriate
.dmgfile for your Mac:- Intel Mac:
ultralog-macos-intel.dmg - Apple Silicon (M1/M2/M3/M4):
ultralog-macos-arm64.dmg
- Intel Mac:
- Open the DMG and drag UltraLog to your Applications folder
- On first run, right-click the app and select "Open" to bypass Gatekeeper
Windows
- Download
ultralog-windows.zip - Extract the zip file
- Run
ultralog-windows.exe
Linux
- Download
ultralog-linux.tar.gz - Extract:
tar -xzf ultralog-linux.tar.gz - Run:
./ultralog-linux
What's Changed
- Adds support for a variety of Megasquirt logs by @SomethingNew71 in #56
Full Changelog: v2.4.1...v2.5.0
v2.4.1
Installation
macOS
- Download the appropriate
.dmgfile for your Mac:- Intel Mac:
ultralog-macos-intel.dmg - Apple Silicon (M1/M2/M3/M4):
ultralog-macos-arm64.dmg
- Intel Mac:
- Open the DMG and drag UltraLog to your Applications folder
- On first run, right-click the app and select "Open" to bypass Gatekeeper
Windows
- Download
ultralog-windows.zip - Extract the zip file
- Run
ultralog-windows.exe
Linux
- Download
ultralog-linux.tar.gz - Extract:
tar -xzf ultralog-linux.tar.gz - Run:
./ultralog-linux
Full Changelog: v2.4.0...v2.4.1
v2.4.0
Installation
macOS
- Download the appropriate
.dmgfile for your Mac:- Intel Mac:
ultralog-macos-intel.dmg - Apple Silicon (M1/M2/M3/M4):
ultralog-macos-arm64.dmg
- Intel Mac:
- Open the DMG and drag UltraLog to your Applications folder
- On first run, right-click the app and select "Open" to bypass Gatekeeper
Windows
- Download
ultralog-windows.zip - Extract the zip file
- Run
ultralog-windows.exe
Linux
- Download
ultralog-linux.tar.gz - Extract:
tar -xzf ultralog-linux.tar.gz - Run:
./ultralog-linux
What's Changed
- Implements improvements to the zooming behavior by @SomethingNew71 in #53
Full Changelog: v2.3.1...v2.4.0
v2.3.1
Installation
macOS
- Download the appropriate
.dmgfile for your Mac:- Intel Mac:
ultralog-macos-intel.dmg - Apple Silicon (M1/M2/M3/M4):
ultralog-macos-arm64.dmg
- Intel Mac:
- Open the DMG and drag UltraLog to your Applications folder
- On first run, right-click the app and select "Open" to bypass Gatekeeper
Windows
- Download
ultralog-windows.zip - Extract the zip file
- Run
ultralog-windows.exe
Linux
- Download
ultralog-linux.tar.gz - Extract:
tar -xzf ultralog-linux.tar.gz - Run:
./ultralog-linux
What's Changed
- Updates dependencies and addresses various bugs within the app by @SomethingNew71 in #51
Full Changelog: v2.3.0...v2.3.1
v2.3.0
Installation
macOS
- Download the appropriate
.dmgfile for your Mac:- Intel Mac:
ultralog-macos-intel.dmg - Apple Silicon (M1/M2/M3/M4):
ultralog-macos-arm64.dmg
- Intel Mac:
- Open the DMG and drag UltraLog to your Applications folder
- On first run, right-click the app and select "Open" to bypass Gatekeeper
Windows
- Download
ultralog-windows.zip - Extract the zip file
- Run
ultralog-windows.exe
Linux
- Download
ultralog-linux.tar.gz - Extract:
tar -xzf ultralog-linux.tar.gz - Run:
./ultralog-linux
What's Changed
- Adds new sourcing method for adapters and protocols by @SomethingNew71 in #47
- Bump bytes from 1.11.0 to 1.11.1 in the cargo group across 1 directory by @dependabot[bot] in #48
New Contributors
- @dependabot[bot] made their first contribution in #48
Full Changelog: v2.2.0...v2.3.0