Objective data sheet. What Lasto is being built to do. Rev. C. Last updated .
A read-only data logger for a 2006 Lexus GX470
Lasto is being built to record what a GX470’s modules say on the OBD-II port, and to ask read-only questions for data the truck may not broadcast, like transmission temperature on a long grade.
- Status
- Pre-alpha: Phase 2 is done, and at the truck Lasto only listens so far.
- Also
- The roadmap and the source on GitHub (external site).
- Name
- “Lasto” is Sindarin, one of Tolkien’s Elvish languages, for “listen,” because the app listens and never talks out of turn.
1 Two modes
Lasto is being built with two modes, and both use a PEAK PCAN-USB interface on the truck’s high-speed CAN bus. Fig. 1 shows what each one may send.
Passive mode 0 of 256
Polled mode, Phase 4 14 of 256
- Allowed, read-only
- Never allowed
- Denied by default
Fig. 1. Service map, generated from the safety core’s allowlist every time the site is built. One cell for every possible service byte, 0x00 to 0xFF. Row plus column gives the byte: row 20, column 2 is 0x22. Phase 3 captures may trim the allowlist. Flow-control frames carry no service byte, so they aren’t cells here.
Polled mode, Phase 4: service bytes
- OBD-II
- 01 02 03 06 07 09 0A
- Manufacturer reads
- 13 17 18 19 1A 21 22 (one approved module at a time, never the functional address 0x7DF)
- Never
- 04 08 10 11 14 23 27 28 2C 2E 2F 30 31 34 35 36 37 38 3B 3D 3E 85
1.1 Passive mode
In passive mode, Lasto puts the PCAN-USB in hardware listen-only mode, reads the setting back, and won’t record if it can’t confirm it. While it records, it reads the setting again every 0.1 seconds. In listen-only mode the adapter’s CAN controller sends nothing on the bus. It doesn’t even send the acknowledge bit every other module sends.
Passive capture is built, and it has run at the truck: listen-only held on every run, with no error frames. How passive capture works, and what isn’t proven yet.
1.2 Polled mode Phase 4
Polled mode arrives in Phase 4. It sends read-only diagnostic requests, plus the flow-control frame a module needs before a long answer, and every one goes through allowlists, rate limits, and a kill switch first.
7DF#02010C0000000000 request: engine speed7E8#04410C0AF0000000 answer: 0x0AF0 / 4 = 700 rpm1.3 Never allowed
It won’t clear codes, reset or reflash a module, open a diagnostic session, ask for security access, or run actuator tests. No setting turns those on. That’s your scan tool’s job. The Safety page lists every rule and where the code enforces it.
| Parameter | Value |
|---|---|
| Vehicle | 2006 Lexus GX470: 2UZ-FE V8, A750F five-speed automatic, KDSS |
| CAN bus | High-speed CAN, 500 kbps, DLC3 pins 6 and 14 |
| K-line | DLC3 pin 7. KDSS talks here, per the factory diagram |
| CAN interface | PEAK PCAN-USB interface, opto-decoupled, IPEH-002022 |
| K-line interface | OBDLink MX+ adapter over Bluetooth, from Phase 3 |
| Sends in passive mode | Nothing. The passive code path has no transmit call |
| Request rate, polled mode | Up to 20 per second while logging, 5 during discovery, never more than 20 per second in total |
| Addresses it may ask | Standard OBD-II requests: 0x7DF, which every OBD-II module answers. Everything else: the engine computer, requests on 0x7E0 and answers on 0x7E8 |
| Broadcast IDs | 17 seen at the truck with the key on, about 520 to 540 frames a second. What each one carries is provisional (the list) |
| Runs on | Windows, Python 3.13 or later |
| License | GPL-3.0-or-later, no warranty |
Sources: Toyota’s wiring diagrams for the 2006 GX470, PEAK-System’s PCAN-USB documentation, and Lasto’s own source, which the site reads every time it’s built.
2 How it connects
The GX470 is Lexus’s version of the Toyota Land Cruiser Prado, and its diagnostic port is Toyota’s standard DLC3, so the approach should carry over to related Toyota trucks. Only the GX470 is being built for and tested, though.
Everything will plug into the truck’s OBD-II port through one 3-way splitter, so the scan tool, the PCAN-USB, and the MX+ can share it.
- DLC3 The truck's OBD-II port, which Toyota calls DLC3 (connector D3 in the wiring diagrams): pin 6 CAN-H on a pink (P) wire, pin 14 CAN-L on a violet (V) wire, pin 7 the K-line (SIL), pin 16 battery power (live with the key off), pins 4 (CG) and 5 (SG) ground.
- Splitter A 3-way splitter that passes all 16 pins.
- Leg 1 PEAK PCAN-USB interface (IPEH-002022), USB to a Windows laptop. Listens to high-speed CAN at 500 kbps on pins 6 and 14. In passive mode its CAN controller runs in listen-only mode.
- Leg 2 OBDLink MX+ adapter over Bluetooth. For K-line modules. KDSS talks on pin 7, per the factory diagram. It joins in Phase 3, in silent mode.
- Leg 3 Launch Creader Elite V3.0 T scan tool. Keeps doing scan-tool work, including anything that writes.
3 Where it stands
Pre-alpha: Phase 2 is done, and at the truck Lasto only listens so far. Lasto gets built in ten phases, and each one stops for my review before the next starts.
| Phase | What it builds | Status |
|---|---|---|
| Phase 0 | Plan | Done, approved 2026-09-26 |
| Phase 1 | Safety core, simulator, and tests | Done, approved 2026-09-28 |
| Phase 2 | Passive drive capture and storage | Done, approved 2026-10-01 |
| Phase 3 | Creader-assisted mapping | Planned |
| Phase 4 | Polled reads | Planned |
| Phase 5 | Broadcast decoding and DBC output | Planned |
| Phase 6 | Discovery | Planned |
| Phase 7 | K-line modules and the crank profile | Planned |
| Phase 8 | Analysis, reports, and export packs | Planned |
| Phase 9 | Local web GUI | Planned |
The roadmap has the details, including Phase 4, the first one that sends anything to the truck.
The roadmap updates each time a phase is signed off. To follow along, watch the repository on GitHub.