Skip to content

Releases: ClassicMiniDIY/UltraLog

v2.9.0

25 Apr 23:11

Choose a tag to compare

Installation

macOS

  1. Download the appropriate .dmg file for your Mac:
    • Intel Mac: ultralog-macos-intel.dmg
    • Apple Silicon (M1/M2/M3/M4): ultralog-macos-arm64.dmg
  2. Open the DMG and drag UltraLog to your Applications folder
  3. On first run, right-click the app and select "Open" to bypass Gatekeeper

Windows

  1. Download ultralog-windows.zip
  2. Extract the zip file
  3. Run ultralog-windows.exe

Linux

  1. Download ultralog-linux.tar.gz
  2. Extract: tar -xzf ultralog-linux.tar.gz
  3. 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

21 Apr 13:33

Choose a tag to compare

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 Dummy column 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

  1. Download the appropriate .dmg file for your Mac:
    • Intel Mac: ultralog-macos-intel.dmg
    • Apple Silicon (M1/M2/M3/M4): ultralog-macos-arm64.dmg
  2. Open the DMG and drag UltraLog to your Applications folder
  3. On first run, right-click the app and select "Open" to bypass Gatekeeper

Windows

  1. Download ultralog-windows.zip
  2. Extract the zip file
  3. Run ultralog-windows.exe

Linux

  1. Download ultralog-linux.tar.gz
  2. Extract: tar -xzf ultralog-linux.tar.gz
  3. Run: ./ultralog-linux

Full Changelog: v2.8.1...v2.8.2

Installation

macOS

  1. Download the appropriate .dmg file for your Mac:
    • Intel Mac: ultralog-macos-intel.dmg
    • Apple Silicon (M1/M2/M3/M4): ultralog-macos-arm64.dmg
  2. Open the DMG and drag UltraLog to your Applications folder
  3. On first run, right-click the app and select "Open" to bypass Gatekeeper

Windows

  1. Download ultralog-windows.zip
  2. Extract the zip file
  3. Run ultralog-windows.exe

Linux

  1. Download ultralog-linux.tar.gz
  2. Extract: tar -xzf ultralog-linux.tar.gz
  3. Run: ./ultralog-linux

What's Changed

🔄 Other Changes

Full Changelog: v2.8.1...v2.8.2

v2.8.1 — Link ECU Parser Fix

14 Apr 13:10

Choose a tag to compare

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

  1. Download the appropriate .dmg file for your Mac:
    • Intel Mac: ultralog-macos-intel.dmg
    • Apple Silicon (M1/M2/M3/M4): ultralog-macos-arm64.dmg
  2. Open the DMG and drag UltraLog to your Applications folder
  3. On first run, right-click the app and select "Open" to bypass Gatekeeper

Windows

  1. Download ultralog-windows.zip
  2. Extract the zip file
  3. Run ultralog-windows.exe

Linux

  1. Download ultralog-linux.tar.gz
  2. Extract: tar -xzf ultralog-linux.tar.gz
  3. Run: ./ultralog-linux

Full Changelog: v2.8.0...v2.8.1

v2.8.0

02 Apr 02:22

Choose a tag to compare

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

  1. Download the appropriate .dmg file for your Mac:
    • Intel Mac: ultralog-macos-intel.dmg
    • Apple Silicon (M1/M2/M3/M4): ultralog-macos-arm64.dmg
  2. Open the DMG and drag UltraLog to your Applications folder
  3. On first run, right-click the app and select "Open" to bypass Gatekeeper

Windows

  1. Download ultralog-windows.zip
  2. Extract the zip file
  3. Run ultralog-windows.exe

Linux

  1. Download ultralog-linux.tar.gz
  2. Extract: tar -xzf ultralog-linux.tar.gz
  3. Run: ./ultralog-linux

What's Changed

🔄 Other Changes

Full Changelog: v2.6.0...v2.8.0

v2.6.0

23 Feb 03:02

Choose a tag to compare

Installation

macOS

  1. Download the appropriate .dmg file for your Mac:
    • Intel Mac: ultralog-macos-intel.dmg
    • Apple Silicon (M1/M2/M3/M4): ultralog-macos-arm64.dmg
  2. Open the DMG and drag UltraLog to your Applications folder
  3. On first run, right-click the app and select "Open" to bypass Gatekeeper

Windows

  1. Download ultralog-windows.zip
  2. Extract the zip file
  3. Run ultralog-windows.exe

Linux

  1. Download ultralog-linux.tar.gz
  2. Extract: tar -xzf ultralog-linux.tar.gz
  3. Run: ./ultralog-linux

Full Changelog: v2.5.0...v2.6.0

v2.5.0

23 Feb 02:18

Choose a tag to compare

Installation

macOS

  1. Download the appropriate .dmg file for your Mac:
    • Intel Mac: ultralog-macos-intel.dmg
    • Apple Silicon (M1/M2/M3/M4): ultralog-macos-arm64.dmg
  2. Open the DMG and drag UltraLog to your Applications folder
  3. On first run, right-click the app and select "Open" to bypass Gatekeeper

Windows

  1. Download ultralog-windows.zip
  2. Extract the zip file
  3. Run ultralog-windows.exe

Linux

  1. Download ultralog-linux.tar.gz
  2. Extract: tar -xzf ultralog-linux.tar.gz
  3. Run: ./ultralog-linux

What's Changed

Full Changelog: v2.4.1...v2.5.0

v2.4.1

19 Feb 13:46

Choose a tag to compare

Installation

macOS

  1. Download the appropriate .dmg file for your Mac:
    • Intel Mac: ultralog-macos-intel.dmg
    • Apple Silicon (M1/M2/M3/M4): ultralog-macos-arm64.dmg
  2. Open the DMG and drag UltraLog to your Applications folder
  3. On first run, right-click the app and select "Open" to bypass Gatekeeper

Windows

  1. Download ultralog-windows.zip
  2. Extract the zip file
  3. Run ultralog-windows.exe

Linux

  1. Download ultralog-linux.tar.gz
  2. Extract: tar -xzf ultralog-linux.tar.gz
  3. Run: ./ultralog-linux

Full Changelog: v2.4.0...v2.4.1

v2.4.0

19 Feb 00:11

Choose a tag to compare

Installation

macOS

  1. Download the appropriate .dmg file for your Mac:
    • Intel Mac: ultralog-macos-intel.dmg
    • Apple Silicon (M1/M2/M3/M4): ultralog-macos-arm64.dmg
  2. Open the DMG and drag UltraLog to your Applications folder
  3. On first run, right-click the app and select "Open" to bypass Gatekeeper

Windows

  1. Download ultralog-windows.zip
  2. Extract the zip file
  3. Run ultralog-windows.exe

Linux

  1. Download ultralog-linux.tar.gz
  2. Extract: tar -xzf ultralog-linux.tar.gz
  3. Run: ./ultralog-linux

What's Changed

Full Changelog: v2.3.1...v2.4.0

v2.3.1

17 Feb 23:11

Choose a tag to compare

Installation

macOS

  1. Download the appropriate .dmg file for your Mac:
    • Intel Mac: ultralog-macos-intel.dmg
    • Apple Silicon (M1/M2/M3/M4): ultralog-macos-arm64.dmg
  2. Open the DMG and drag UltraLog to your Applications folder
  3. On first run, right-click the app and select "Open" to bypass Gatekeeper

Windows

  1. Download ultralog-windows.zip
  2. Extract the zip file
  3. Run ultralog-windows.exe

Linux

  1. Download ultralog-linux.tar.gz
  2. Extract: tar -xzf ultralog-linux.tar.gz
  3. 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

17 Feb 20:59

Choose a tag to compare

Installation

macOS

  1. Download the appropriate .dmg file for your Mac:
    • Intel Mac: ultralog-macos-intel.dmg
    • Apple Silicon (M1/M2/M3/M4): ultralog-macos-arm64.dmg
  2. Open the DMG and drag UltraLog to your Applications folder
  3. On first run, right-click the app and select "Open" to bypass Gatekeeper

Windows

  1. Download ultralog-windows.zip
  2. Extract the zip file
  3. Run ultralog-windows.exe

Linux

  1. Download ultralog-linux.tar.gz
  2. Extract: tar -xzf ultralog-linux.tar.gz
  3. 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

Full Changelog: v2.2.0...v2.3.0