Skip to content

v2.8.1 — Link ECU Parser Fix

Choose a tag to compare

@github-actions github-actions released this 14 Apr 13:10
· 182 commits to main since this release

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