Repository navigation
v2.15.0
New: Lambda Delay and Accel Enrichment table generators
Two new tools mine your logs for events and turn them into tuning tables. They sit beside Log
Viewer, Scatter Plots and Histogram in the tool switcher (⌘4 / ⌘5, Ctrl+4 / Ctrl+5), with
setup in the Tool Properties panel and the table in the center. This closes #4 and #3, which asked
for exactly this instead of hand-reading several logs.
Lambda Delay
Finds injector pulse-width steps, measures how long the wideband takes to respond, and bins the
result by RPM × load (MAP or TPS). That number is what your ECU's closed-loop O2 control wants in
its delay table.
- Dead time is the primary value; T63 (time to 63 % of the settled response) is a second view.
- Events are gated on a steady operating point, event spacing, fuel cut, clutch, coolant temperature
and closed-loop correction movement. Every rejection is counted and shown, so the tool tells you
what to log next ("208 events found · 206 rejected: 109 unsteady, 93 overlap, 4 wrong direction"). - Strict profile for trim-bump logs, relaxed for driving logs. An injector dead-time parameter
handles PW channels that include it (Haltech on-time does). - CAN widebands often update at 10–20 Hz inside a 50–500 Hz log. The tool measures the sensor's real
update rate and interpolates between updates, and warns when that limits resolution. - Exports in milliseconds, engine cycles or ignition events to match your ECU.
Accel Enrichment
Detects tip-ins from a native throttle-rate channel (TPS DOT, Throttle Position Derivative,
TPS Delta) or a computed derivative, shifts the lambda window by the measured delay, and reports
the lean or rich excursion against target with a suggested starting correction, binned by RPM ×
throttle rate.
- Signed corrections: negative means the ECU is already over-enriching.
- If you map the ECU's own AE-activity channel, the table is labelled additional and the
suggestion is a multiplier on your current AE value; otherwise it is absolute. One cell never mixes
the two. - Uses a Lambda Delay table generated in the same session for the delay compensation when the
matching cell is trustworthy, else a configurable assumed delay.
Shared
- Channel roles are auto-detected from the log with a data-plausibility check; near-ties are flagged
⚠for you to confirm. Haltech's "no reading" sentinel values are masked before any math. - Each cell shows the median with a sample-count badge coloured by confidence (Low / Medium / High).
Empty and low cells are never interpolated and export blank by default. - Hover a cell for its statistics; click it for the event inspector, and Jump to that moment in
the Log Viewer. - Fold several logs into one table with Add current file; remove a log or reset at any time.
Tables survive tab and tool switches. - Export as CSV (value, count and spread grids), clipboard (bare tab-separated grid for
pasting into tuning software), PNG or PDF. - New field normalizations: injector on-time names →
Pulse Width;TPS DOT/
Throttle Position Derivative/TPS Delta→TPS Rate. - All strings in the 15 supported languages.
Full guide: Tuning Table Generators on the wiki.
Thanks to @Barneyjm for building the generators (#90).
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
- Launch UltraLog from Applications. The app is signed and notarized by Apple, so it opens without a Gatekeeper warning.
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
- feat(analysis): lambda delay and acceleration enrichment table generators (#3, #4) by @Barneyjm in #90
- feat(tables): promote lambda delay and accel enrichment to top-level tools, add PNG/PDF export, release 2.15.0 by @SomethingNew71 in #91
- Release v2.15.0 — lambda delay and acceleration enrichment table generators by @SomethingNew71 in #92
Full Changelog: v2.14.1...v2.15.0