Repository navigation
FAQ
Common questions about UltraLog.
UltraLog is a high-performance, cross-platform desktop application for viewing and analyzing ECU (Engine Control Unit) log files. It's designed for automotive tuners, engineers, and enthusiasts who need to analyze data from performance tuning systems.
Yes, UltraLog is free and open source under the AGPL-3.0 license. You can use it for personal or commercial purposes, with the requirement that modifications must be shared under the same license.
- Windows 10/11 (x64)
- macOS 10.15+ (Intel and Apple Silicon)
- Linux (most distributions, x64)
No additional software is required. UltraLog is a standalone application. On Linux, you may need to install some system libraries (see Installation).
Currently supported:
- Haltech - Full support (CSV from NSP)
- ECUMaster EMU Pro - Full support (CSV export)
- RomRaider - Full support (CSV export)
- Speeduino / rusEFI - Full support (MLG binary)
- AiM - Full support (XRK/DRK binary)
- Link ECU - Full support (LLG binary)
- Emerald - Full support (LG1/LG2 binary)
- MegaSquirt / Honda Tuning Studio - Full support (CSV from TunerStudio)
- Woolich Racing Tuned - Full support (CSV from WRT software — motorcycle ECUs)
Coming soon:
- AEM
- MaxxECU
- MoTeC
Yes! Open an issue on GitHub with:
- ECU system name and model
- Software version used for logging
- A sample log file (if possible)
- Any documentation links
Some ECU software uses proprietary binary formats that aren't publicly documented. CSV export is universally supported and ensures accurate data parsing.
-
.csv- CSV log files (Haltech, ECUMaster, RomRaider, MegaSquirt, Woolich Racing Tuned) -
.log- Standard log files -
.txt- Text-based log files -
.mlg- MegaLogViewer binary (Speeduino/rusEFI) -
.xrk,.drk- AiM binary format -
.llg- Link ECU binary format -
.lg1,.lg2- Emerald ECU binary format (both files required)
UltraLog automatically detects the format based on file contents, not the file extension. Just load the file and UltraLog will identify it.
UltraLog uses LTTB downsampling to handle very large files efficiently:
- Files up to 50MB load in seconds
- Files 100MB+ may take longer but are fully supported
- Memory usage is approximately 1-2× file size
Yes! Each file opens in its own tab. You can switch between tabs and each maintains its own channel selections.
This is intentional to prevent confusion. If you need to reload a file:
- Close the existing tab
- Load the file again
UltraLog normalizes all channels to a 0-1 range so you can compare data with vastly different scales on the same chart. For example, RPM (0-8000) and AFR (10-18) can be visually compared.
The actual values with proper units are always shown in the legend.
Up to 10 channels can be displayed simultaneously. This limit ensures the chart remains readable and maintains performance.
If Field Normalization is enabled (View → Field Normalization), channel names are standardized for consistency. Disable this to see original ECU names.
- Min - The lowest value for that channel across the entire log
- Max - The highest value for that channel across the entire log
These help you understand the range of data at a glance.
- Click on the chart at the desired time
- The legend shows the value at the cursor position
- For precise timing, type the time in seconds in the timeline input
- Click the Settings icon (⚙️) in the activity bar
- Scroll to the Units section
- Select your preferred units for each category (Temperature, Pressure, Speed, etc.)
No. Unit conversion is display-only. Your original data is never modified. You can switch between units freely without affecting the underlying data.
Some ECUs (like Haltech) store temperature in Kelvin. Check your unit preference in the Settings panel → Units → Temperature. If set to Kelvin, you'll see 363K. Change to Celsius to see 90°C.
- 0.25x (quarter speed)
- 0.5x (half speed)
- 1.0x (real-time)
- 2.0x (double speed)
- 4.0x (4x speed)
- 8.0x (8x speed)
When enabled (Settings → Display → Cursor Tracking), the chart automatically scrolls to keep the cursor centered as you scrub through data. This is useful for following data through long logs.
Yes. Click on the time display in the timeline controls and type the time in seconds.
- PNG - 1920×1080 image of the chart or table
- PDF - A4 landscape document with real, selectable text
Open the Export dialog from File → Export..., the Export... button in the Tools panel, or Ctrl/Cmd + E. Choose the format and a theme: Paper (light, the default, prints cleanly) or Graphite (dark, ink-saving grey). UltraLog remembers your choice, with a separate theme per format. Every export is the same sheet: the UltraLog lockup, a title, the time range with record and channel counts, the chart or table, a legend or color scale, and a footer with ultralog.co, the version and the export date.
Exports always use the color blind safe palette, so anyone you share them with can read them.
- Log Viewer - The visible time range of the chart
- Scatter Plots - Both density plots, side by side
- Histogram - The grid as the tool shows it, with custom ranges, sample filters and minimum-hits blanking applied
- Lambda Delay / Accel Enrichment - The table with values, count badges and edge labels
Click Copy image in the Export dialog. It copies just the chart or table, without the header or footer, to the clipboard.
Currently, UltraLog is focused on visualization. Data export to CSV/Excel is planned for a future release.
It should not be. Exports are a fixed 1920×1080 PNG or a vector PDF, whatever the window size. If text looks small in a PNG, use the PDF, which scales without loss.
UltraLog v2.0 includes several built-in analysis tools accessible from the Tools panel:
- Scatter Plot - XY correlation visualization between two channels
- Histogram - 2D heatmap visualization with configurable grid sizes
-
Analysis Tools - Four categories:
- Filters - Moving average, Kalman filter, signal processing
- Statistics - Min/max, percentiles, standard deviation
- AFR - Air-Fuel Ratio analysis with target comparison
- Derived - Calculate new channels from existing data
- Click the Tools icon (🔧) in the activity bar
- Select "Histogram" from the tool selector
- Choose X-axis and Y-axis channels
- Optionally select a Z-axis channel for color coding
- Select grid size (10x10, 16x16, 20x20, or 25x25)
- Toggle between "Hit Count" and "Average Z-Value" modes
The histogram shows a 2D heatmap using the theme's color map (cividis-style, low to high). Empty cells are hatched, so "no samples" never looks like a low value.
- Click the Tools icon (🔧) in the activity bar
- Select "Analysis" from the tool selector
- Choose a category (Filters, Statistics, AFR, or Derived)
- Select a specific analysis tool
- Configure parameters as needed
- Click "Run Analysis"
- Optionally save results as a computed channel
Yes! After running an analysis, you can click "Save as Computed Channel" to add the results to your channel list for visualization alongside your original data.
UltraLog uses the LTTB (Largest Triangle Three Buckets) algorithm to reduce millions of data points to a maximum of 2,000 for display. This preserves visual accuracy while ensuring smooth rendering.
- Use the release build (not debug)
- Close tabs for files you're not using
- Select only the channels you need
- Ensure adequate system memory (8GB+ recommended)
UltraLog uses OpenGL (via glow) for rendering, which provides hardware acceleration on most systems.
Yes! Enable Settings → Display → Color blind mode. It switches to color blind safe data colors (Okabe-Ito, 8 colors), the cividis sequential map and a blue/orange diverging map for heatmaps, dashed and labelled lines, stronger text contrast, and a white cursor.
Yes. Enable Settings → Display → High contrast for black grounds, white text and outlined controls. It turns the neon effects off and locks the Ultra intensity slider.
Settings → Display → Ultra intensity sets how much neon the interface wears, from 0 to 100. The named stops are Stealth (0), Night Drive (35, the default), Neon (70) and Ultra (100). Higher values add glow, gradients and a grid floor under the chart. It never changes your data colors or text contrast.
Later series repeat the palette colors dashed, then dotted, so every line stays distinct.
Yes! UltraLog v2.0 includes font scaling. Go to Settings → Display → Font Size and choose from S (Small), M (Medium), L (Large), or XL (Extra Large).
UltraLog is written in Rust using the egui/eframe GUI framework.
Yes, UltraLog is open source under the AGPL-3.0 license. The source code is available at GitHub.
Yes! Contributions are welcome. See Development for information on building from source and contributing.
UltraLog sends anonymous usage analytics to help improve the application. This includes:
- App version and platform (Windows/macOS/Linux)
- ECU type when loading files (e.g., "Haltech")
- Feature usage (exports, tool switches, playback)
What is NOT sent:
- Your log file data or contents
- File names or paths
- Any personal information
- Channel names or values
All analytics are anonymous with no persistent identifiers. See Privacy for complete details.
Your settings persist across sessions. UltraLog saves these automatically and restores them on the next start:
- Unit preferences
- Display settings - Font size, grid, cursor tracking and other display options
- Theme - Ultra intensity, Color blind mode and High contrast
- Field normalization - The on/off setting and your custom mappings
- Export choices - The last format and the theme for each format
-
Computed channel library - Saved separately to:
- Linux:
~/.config/ultralog/computed_channels.json - macOS:
~/Library/Application Support/UltraLog/computed_channels.json - Windows:
%APPDATA%\UltraLog\computed_channels.json
- Linux:
- Check the Troubleshooting page
- Search GitHub Issues
- Open a new issue if needed
Open an issue on GitHub with:
- UltraLog version
- Operating system
- Steps to reproduce
- Sample file if applicable
Open an issue on GitHub and describe:
- What feature you'd like
- Your use case
- Any examples or references
Check Help → About UltraLog for the version, the license, project links and a Check for Updates button.
- Download the latest release from GitHub Releases
- Replace the old binary with the new one
- On macOS/Linux, you may need to re-apply execute permissions
No. Updates are manual downloads from GitHub Releases. This ensures you control when updates are applied.
If your question isn't answered here:
- Check the User-Guide for detailed feature documentation
- See Troubleshooting for common issues
- Open a GitHub Issue for support
- Getting-Started - Quick introduction
- User-Guide - Complete feature reference
- Troubleshooting - Common issues and solutions
Links