lasto

Development status. Generated from the roadmap file every time the site is built. Rev. E. Last updated by Chris Johnson.

Roadmap: what’s built and what isn’t

Lasto is pre-alpha. It’s built in ten phases, and each one stops for my review before the next starts. A feature shows up in the docs only after its phase is signed off.

At a glance

Pre-alpha: Phase 2 is done, and at the truck Lasto only listens so far.

Table 1. Phases and what they send
Phase What it builds Status Sends anything on the bus?
Phase 0 Plan Done, approved 2026-09-26 No
Phase 1 Safety core, simulator, and tests Done, approved 2026-09-28 No
Phase 2 Passive drive capture and storage Done, approved 2026-10-01 No
Phase 3 Creader-assisted mapping Planned No
Phase 4 Polled reads Planned Read-only requests
Phase 5 Broadcast decoding and DBC output Planned No
Phase 6 Discovery Planned Read-only requests, parked only
Phase 7 K-line modules and the crank profile Planned Decided in this phase
Phase 8 Analysis, reports, and export packs Planned No
Phase 9 Local web GUI Planned No

Phase 4 is the first time Lasto sends anything to the truck. Everything it sends goes through the rules on the Safety page.

There are no target dates. Most phases end with a test at the truck, and the truck doesn’t care about my calendar.

Phase 0: Plan

Done, approved 2026-09-26. The questions, the architecture, and the guardrails that keep development away from real hardware.

  • The architecture and file layout, with the decisions recorded up front
  • Development guardrails that block anything aimed at a real PCAN channel or COM port
  • A bench parts list for proving listen-only and silent mode
Table 2. Phase 0 at a glance
Item Detail
Status Done, approved 2026-09-26
Sends anything? No
Commands None
Test at the truck None

Phase 1: Safety core, simulator, and tests

Done, approved 2026-09-28. Every rule about what can reach the truck, for both the PCAN-USB and the OBDLink MX+, written in code and tested against a simulated truck.

  • The safety core: listen-only open with readback and continuous rechecks, the transmit gate and the one write function behind it, allowlists, rate limits, the kill switch, interlocks, the serial guard, and the audit log
  • A simulator that stands in for the PCAN driver, the MX+, and the truck, and fails the test run if it ever receives forbidden traffic
  • Unit, property-based, and structural tests, with the test command set to fail below 100 percent branch coverage on the safety core
  • A command-line skeleton where every command says which phase delivers it
Table 3. Phase 1 at a glance
Item Detail
Status Done, approved 2026-09-28
Sends anything? No
Commands None
Test at the truck None. Nothing in this phase touches the truck.

Phase 2: Passive drive capture and storage

Done, approved 2026-10-01. Record everything on the high-speed CAN bus in listen-only mode, and keep it safe through a pulled cable or a crash.

  • lasto drive: passive capture in armed mode, where the first frame starts a session and 60 seconds without one ends it
  • Storage: compressed candump segments and a SQLite capture database. The next start recovers what a crash or power loss left, and a pulled adapter cable ends the run with every frame it heard kept, unless it’s plugged back in within a few seconds
  • lasto log: the session list, each session’s events and audit log, per-ID bus statistics, and one ID’s raw frames
  • Two safety core changes: on real hardware the audit log must be the kind that syncs each record to disk, and records held while no log is open go to a file too
  • A service layer the command line and the Phase 9 GUI both build on
  • The serial guard installed before every command except the GUI
Table 4. Phase 2 at a glance
Item Detail
Status Done, approved 2026-10-01
Sends anything? No
Commands lasto drive, lasto log
Test at the truck Done 2026-09-30 to 10-01: key off, key on with the engine off, and a drive. Listen-only held on every run, with no error frames or overruns.
Docs it added Passive capture

Open: Deleting old raw data comes after Phase 5, under a 20 GB budget. Until then nothing is deleted, and lasto drive warns as it starts if the disk has under 2 GB free or the data folder is over budget.

Phase 3: Creader-assisted mapping

Planned. Listen while the Launch Creader asks the truck for data, then match the raw answers to the numbers on its screen.

  • Conversation capture on CAN, and on the K-line through the MX+ in silent mode
  • A reference template you fill in with the values the Creader shows
  • A solver that finds byte positions, scale, and offset, and ranks the candidates
  • Definitions files for the signals that check out
Table 5. Phase 3 at a glance
Item Detail
Status Planned
Sends anything? No
Commands lasto map, lasto verify
Test at the truck A Creader engine data stream, then a KDSS data stream.
Docs it adds Mapping signals with your scan tool

Open: An independent review of the serial guard, before any MX+ code touches hardware. Since Phase 2 it also covers SQLite opening its own files, the two audit files the safety core opens by name, and when the CLI installs the guard.

Open: Whether the Creader Elite V3.0 T reaches the KDSS module on a 2006 GX470.

Open: How the stability control’s steering angle reading relates to 0x025, provisionally the steering angle sensor Phase 2 found, for trouble code C1777.

Phase 4: Polled reads

Planned. The first phase where Lasto sends anything: read-only diagnostic requests for data the truck may not broadcast, like transmission temperature.

  • Identify: VIN, calibration IDs, and module names
  • A parked health snapshot: trouble codes, freeze frames, readiness, and Mode 06 results
  • Logging profiles, including one for long grades
  • A live view with alarms: transmission 220 °F warning and 240 °F critical, coolant 225 and 235 °F, voltage below 12.5 V or above 15.0 V while running
  • The Ctrl+Alt+K hotkey wired into polled sessions
Table 6. Phase 4 at a glance
Item Detail
Status Planned
Sends anything? Read-only requests
Commands lasto snapshot, lasto identify, lasto view, lasto drive --profile
Test at the truck Parked first, then a drive with the grades profile.
Docs it adds Polled reads and logging profiles

Open: Before the first polled test at the truck: wire in the Ctrl+Alt+K hotkey, handle a kill listener that raises (L2), close two audit log gaps from the Phase 2 review (L6 and L7), and add the 17 IDs the truck broadcasts to the gate’s list of IDs it never sends on.

Open: Saving and reporting on a kill, through the stop path Phase 2 built.

Phase 5: Broadcast decoding and DBC output

Planned. Decode what the truck broadcasts on its own, and write it out as a DBC file other CAN tools can open.

  • Decoders for the broadcast IDs found in Phase 2
  • A DBC file for the GX470
  • Re-decoding old sessions with newer definitions
Table 7. Phase 5 at a glance
Item Detail
Status Planned
Sends anything? No
Commands lasto decode
Test at the truck Set when the phase starts.
Docs it adds Broadcast decoding

Phase 6: Discovery

Planned. A parked-only search for data the Creader never asks for, at 5 requests per second, with the motion interlock and battery guard on.

  • Identifier sweeps of approved modules, never airbag or immobilizer modules
  • Results that get reviewed before any new module address is approved
Table 8. Phase 6 at a glance
Item Detail
Status Planned
Sends anything? Read-only requests, parked only
Commands lasto discover
Test at the truck Set when the phase starts.
Docs it adds Discovery

Open: How many ‘not supported’ answers discovery tolerates before it stops.

Phase 7: K-line modules and the crank profile

Planned. Reach modules on the K-line (pin 7) if the Phase 2 and 3 captures show it’s worth it, and log battery voltage during engine start through the MX+.

  • An STN transport for K-line modules, if approved
  • A crank profile for battery voltage during engine start
Table 9. Phase 7 at a glance
Item Detail
Status Planned
Sends anything? Decided in this phase
Commands None
Test at the truck Set when the phase starts.
Docs it adds K-line modules

Open: Starting a K-line session needs StartCommunication (0x81), which isn’t on the allowlist. Whether to allow it gets decided here, as its own safety core change.

Phase 8: Analysis, reports, and export packs

Planned. Charts, session reports, and export packs you can open in other tools.

  • Session reports with charts
  • Export packs: CSV, Parquet, and a summary JSON
Table 10. Phase 8 at a glance
Item Detail
Status Planned
Sends anything? No
Commands lasto report, lasto export
Test at the truck Set when the phase starts.
Docs it adds Reports and exports

Phase 9: Local web GUI

Planned. An app in your browser for reviewing drives, mapping signals, and managing definitions, built on the same code as the command line. It never sends anything to the truck, and it only answers the laptop it runs on.

  • 9a: read-only browsing of sessions, charts, and health history
  • 9b: the mapping workbench and a broadcast explorer
  • 9c: the definitions library, a read-only live monitor, and settings
  • Start and stop for a passive capture, the only thing it does with hardware
Table 11. Phase 9 at a glance
Item Detail
Status Planned
Sends anything? No
Commands lasto gui
Test at the truck Set when the phase starts.
Docs it adds The local GUI

Not on the roadmap

  • Other vehicles, for now. The GX470 comes first.
  • Mac and Linux. Lasto loads PEAK’s Windows driver directly and uses Windows APIs for the Ctrl+Alt+K hotkey.
  • Anything that writes to the truck, ever. That’s what the scan tool is for.

Following along

This page is generated from one data file in the repository every time the site is built, and it updates when a phase is signed off. To follow along, watch the repository on GitHub.