Skip to content

Commit 283a680

Browse files
Updates documentation
Signed-off-by: Cole Gentry <peapod2007@gmail.com>
1 parent f7da0e1 commit 283a680

File tree

2 files changed

+125
-26
lines changed

2 files changed

+125
-26
lines changed

.claude/settings.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,16 @@
1919
"Bash(mkdir:*)",
2020
"Bash(git config:*)",
2121
"Bash(/Users/colegentry/Development/UltraLog/.githooks/pre-commit)",
22-
"Bash(./scripts/bump-version.sh:*)"
22+
"Bash(./scripts/bump-version.sh:*)",
23+
"Bash(mkdir:*)",
24+
"Bash(xxd:*)",
25+
"Bash(cat:*)",
26+
"Bash(cargo run:*)",
27+
"Bash(cargo doc:*)",
28+
"Bash(cargo check:*)",
29+
"Bash(while read line)",
30+
"Bash(do echo \"=== $line ===\")",
31+
"Bash(done)"
2332
]
2433
}
2534
}

README.md

Lines changed: 115 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -131,11 +131,18 @@ Configurable units for 8 measurement categories:
131131

132132
### Additional Tools
133133
- **Scatter Plot** - XY scatter visualization for channel correlation analysis
134+
- **Histogram** - 2D heatmap visualization with configurable grid sizes (10x10 to 25x25) for analyzing channel distributions
135+
- **Analysis Tools** - Built-in signal processing and statistics:
136+
- **Filters** - Moving average, Kalman filter, and other signal processing tools
137+
- **Statistics** - Min/max, percentiles, standard deviation calculations
138+
- **AFR Analysis** - Air-Fuel Ratio analysis with target comparison
139+
- **Derived Channels** - Calculated channels from existing data
134140
- **Normalization Editor** - Create custom field name mappings for cross-ECU comparison
135141
- **Field Normalization** - Maps ECU-specific channel names to standard names (e.g., "Act_AFR" → "AFR")
136142

137143
### Accessibility
138144
- **Colorblind mode** - Wong's optimized color palette designed for deuteranopia, protanopia, and tritanopia
145+
- **Font scaling** - Four font sizes (S, M, L, XL) for improved readability
139146
- **Custom font** - Clear, readable Outfit typeface
140147
- **Toast notifications** - Non-intrusive feedback for user actions
141148

@@ -170,10 +177,19 @@ Configurable units for 8 measurement categories:
170177
- **Supported data:** All logged channels with lap times, GPS data, and metadata
171178

172179
### Link ECU - Full Support
180+
173181
- **File type:** Link log format (`.llg`)
174182
- **Features:** Binary format parser for Link G4/G4+/G4X ECUs
175183
- **Supported data:** All ECU parameters including RPM, MAP, AFR, ignition timing, temperatures, and custom channels
176184

185+
### Emerald ECU - Full Support
186+
187+
- **File type:** Binary format (`.lg1` data + `.lg2` channel definitions)
188+
- **Features:** Native binary format parser for Emerald K6/M3D ECUs
189+
- **Supported devices:** Emerald K6, M3D, and compatible ECU models
190+
- **Supported data:** TPS, Air Temp, MAP, Lambda, Oil/Fuel Pressure, Oil/Fuel Temp, Exhaust Temp, Boost Target/Duty, RPM, Coolant Temp, Battery Voltage, Ignition Advance, Injector Pulse Width, and more
191+
- **Note:** Both `.lg1` (data) and `.lg2` (channel definitions) files must be in the same directory
192+
177193
### Coming Soon
178194
- MegaSquirt
179195
- AEM
@@ -286,15 +302,28 @@ cargo build --release
286302

287303
## User Guide
288304

305+
### Interface Overview
306+
307+
UltraLog v2.0 features a VS Code-style interface with an activity bar on the far left:
308+
309+
**Activity Bar Panels:**
310+
- **Files** (folder icon) - File list, drop zone, loaded files management
311+
- **Channels** (list icon) - Channel selection, search, selected channel cards
312+
- **Tools** (wrench icon) - Access to Scatter Plot, Histogram, and Analysis Tools
313+
- **Settings** (gear icon) - All application settings in one place (units, display options, accessibility)
314+
289315
### Loading Log Files
290316

291-
**Supported file extensions:** `.csv`, `.log`, `.txt`, `.mlg`
317+
**Supported file extensions:** `.csv`, `.log`, `.txt`, `.mlg`, `.xrk`, `.drk`, `.llg`, `.lg1/.lg2`
292318

293319
UltraLog automatically detects the ECU format based on file contents:
294320
- **Haltech:** Identified by `%DataLog%` header
295321
- **ECUMaster:** Identified by semicolon/tab-delimited CSV with `TIME` column
296322
- **RomRaider:** Identified by comma-delimited CSV starting with `Time` column
297323
- **Speeduino/rusEFI:** Identified by `MLVLG` binary header
324+
- **AiM:** Identified by `<hCNF` tag in XRK/DRK files
325+
- **Link ECU:** Identified by `lf3` magic bytes in LLG files
326+
- **Emerald:** Identified by `.lg1` and `.lg2` file pair
298327

299328
**Loading multiple files:**
300329
- Each file opens in its own tab
@@ -336,7 +365,7 @@ When enabled (View menu → Cursor Tracking), the chart automatically scrolls to
336365

337366
### Unit Preferences
338367

339-
Access via **Units** menu. Changes apply immediately to all displayed values.
368+
Access via **Settings** panel → **Units**. Changes apply immediately to all displayed values.
340369

341370
| Category | Options |
342371
| ------------ | --------------------------- |
@@ -355,15 +384,15 @@ Access via **Units** menu. Changes apply immediately to all displayed values.
355384

356385
Field normalization maps ECU-specific channel names to standardized names, making it easier to compare data across different ECU systems.
357386

358-
**Enable/Disable:** View menu → Field Normalization
387+
**Enable/Disable:** Settings panel → Display → Field Normalization
359388

360389
**Example mappings:**
361390
- "Act_AFR", "AFR1", "Aft" → "AFR"
362391
- "MAP", "Boost_Press" → "Manifold Pressure"
363392
- "RPM", "Engine_Speed" → "Engine RPM"
364393

365394
**Custom mappings:**
366-
1. Open View menu → Normalization Editor
395+
1. Open Settings panel → Display → Normalization Editor
367396
2. Add custom source → target mappings
368397
3. Changes apply immediately to channel names
369398

@@ -372,7 +401,7 @@ Field normalization maps ECU-specific channel names to standardized names, makin
372401
Computed channels (also called virtual or math channels) allow you to create custom data channels from mathematical formulas. These formulas can reference existing log channels and use standard math functions.
373402

374403
**Accessing the Manager:**
375-
- Tools menu → Computed Channels
404+
- Settings panel → Computed Channels
376405

377406
**Creating a Computed Channel:**
378407
1. Click "+ New Channel" in the Computed Channels window
@@ -447,20 +476,58 @@ Boost rate of change (kPa/second)
447476
The scatter plot tool visualizes the relationship between two channels.
448477

449478
**To use:**
450-
1. Click the tool switcher (top-right area) and select "Scatter Plot"
451-
2. Select X-axis channel from the dropdown
452-
3. Select Y-axis channel from the dropdown
453-
4. Data points are plotted showing correlation between the two channels
479+
1. Click the **Tools** icon in the activity bar
480+
2. Select "Scatter Plot" from the tools panel
481+
3. Select X-axis channel from the dropdown
482+
4. Select Y-axis channel from the dropdown
483+
5. Data points are plotted showing correlation between the two channels
454484

455485
**Use cases:**
456486
- Correlate AFR vs. manifold pressure
457487
- Compare throttle position vs. engine load
458488
- Identify tuning anomalies
459489

490+
### Histogram Tool
491+
492+
The histogram tool creates 2D heatmap visualizations for analyzing channel distributions.
493+
494+
**To use:**
495+
1. Click the **Tools** icon in the activity bar
496+
2. Select "Histogram" from the tools panel
497+
3. Select X-axis channel
498+
4. Select Y-axis channel
499+
5. Optionally select Z-axis channel for color coding
500+
6. Choose grid size (10x10, 16x16, 20x20, or 25x25)
501+
7. Toggle between "Hit Count" and "Average Z-Value" modes
502+
503+
**Features:**
504+
- Heat gradient from blue (low) to red (high)
505+
- Cell statistics on hover/click
506+
- Cursor position tracking during playback
507+
- Analyze data distributions and correlations
508+
509+
### Analysis Tools
510+
511+
The Analysis Tools panel provides built-in signal processing and statistical analysis.
512+
513+
**To use:**
514+
1. Click the **Tools** icon in the activity bar
515+
2. Select "Analysis" from the tools panel
516+
3. Choose a category: Filters, Statistics, AFR, or Derived
517+
4. Select an analysis tool
518+
5. Configure parameters
519+
6. Run analysis and optionally save results as computed channels
520+
521+
**Categories:**
522+
- **Filters** - Moving average, Kalman filter, signal smoothing
523+
- **Statistics** - Min/max, percentiles, standard deviation, variance
524+
- **AFR** - Air-Fuel Ratio analysis with target comparison
525+
- **Derived** - Calculate new channels from existing data
526+
460527
### Accessibility Features
461528

462529
**Colorblind Mode:**
463-
- Enable via View menu → Colorblind Mode
530+
- Enable via Settings panel → Display → Colorblind Mode
464531
- Uses Wong's optimized 8-color palette
465532
- Designed to be distinguishable for deuteranopia, protanopia, and tritanopia
466533

@@ -470,6 +537,12 @@ Blue, Orange, Green, Red, Purple, Brown, Pink, Gray, Yellow, Cyan
470537
**Colorblind palette:**
471538
Black, Orange, Sky Blue, Bluish Green, Yellow, Blue, Vermillion, Reddish Purple
472539

540+
**Font Scaling:**
541+
- Access via Settings panel → Display → Font Size
542+
- Four sizes available: S (Small), M (Medium - default), L (Large), XL (Extra Large)
543+
- Scales all UI text for improved readability
544+
- Settings persist across sessions
545+
473546
---
474547

475548
## Keyboard Shortcuts
@@ -527,21 +600,37 @@ cargo clippy -- -D warnings
527600
```
528601
UltraLog/
529602
├── src/
530-
│ ├── main.rs # Application entry point
531-
│ ├── app.rs # Main application state and logic
532-
│ ├── state.rs # Core data types and structures
533-
│ ├── units.rs # Unit conversion system
534-
│ ├── normalize.rs # Field name normalization
535-
│ ├── parsers/ # ECU format parsers
536-
│ │ ├── haltech.rs # Haltech CSV parser
537-
│ │ ├── ecumaster.rs # ECUMaster CSV parser
538-
│ │ ├── romraider.rs # RomRaider CSV parser
539-
│ │ └── speeduino.rs # Speeduino MLG parser
540-
│ └── ui/ # User interface components
541-
│ ├── sidebar.rs # File list and options
542-
│ ├── channels.rs # Channel selection panel
543-
│ ├── chart.rs # Main chart and LTTB algorithm
544-
│ ├── timeline.rs # Playback controls
603+
│ ├── main.rs # Application entry point
604+
│ ├── app.rs # Main application state and logic
605+
│ ├── state.rs # Core data types and structures
606+
│ ├── units.rs # Unit conversion system
607+
│ ├── normalize.rs # Field name normalization
608+
│ ├── computed.rs # Computed channels system
609+
│ ├── expression.rs # Formula parsing and evaluation
610+
│ ├── parsers/ # ECU format parsers
611+
│ │ ├── haltech.rs # Haltech CSV parser
612+
│ │ ├── ecumaster.rs # ECUMaster CSV parser
613+
│ │ ├── romraider.rs # RomRaider CSV parser
614+
│ │ ├── speeduino.rs # Speeduino MLG parser
615+
│ │ ├── aim.rs # AiM XRK/DRK parser
616+
│ │ ├── link.rs # Link ECU LLG parser
617+
│ │ └── emerald.rs # Emerald ECU parser
618+
│ ├── analysis/ # Analysis tools
619+
│ │ ├── filters.rs # Signal processing filters
620+
│ │ ├── statistics.rs # Statistical analysis
621+
│ │ ├── afr.rs # AFR analysis tools
622+
│ │ └── derived.rs # Derived channel calculations
623+
│ └── ui/ # User interface components
624+
│ ├── activity_bar.rs # VS Code-style activity bar
625+
│ ├── files_panel.rs # Files panel
626+
│ ├── channels_panel.rs # Channels panel
627+
│ ├── tools_panel.rs # Tools panel
628+
│ ├── settings_panel.rs # Settings panel
629+
│ ├── chart.rs # Main chart and LTTB algorithm
630+
│ ├── histogram.rs # Histogram tool
631+
│ ├── scatter_plot.rs # Scatter plot tool
632+
│ ├── analysis_panel.rs # Analysis tools panel
633+
│ ├── timeline.rs # Playback controls
545634
│ └── ...
546635
├── assets/ # Icons and fonts
547636
├── exampleLogs/ # Sample log files for testing
@@ -596,6 +685,7 @@ The following trademarks are the property of their respective owners:
596685
- **ECUMaster** and **EMU Pro** are trademarks of ECUMaster
597686
- **AiM**, **MXP**, **MXG**, **MXL2**, **EVO5**, and **MyChron5** are trademarks of AiM Technologies
598687
- **Link ECU** is a trademark of Link Engine Management Ltd
688+
- **Emerald** and **Emerald ECU** are trademarks of Emerald ECU Ltd
599689
- **Speeduino** is a trademark of the Speeduino project
600690
- **rusEFI** is a trademark of the rusEFI project
601691
- **RomRaider** is a trademark of the RomRaider project

0 commit comments

Comments
 (0)