Repository navigation
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