# 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.

- Build status: Pre-alpha: Phase 2 is done, and at the truck Lasto only listens so far.
- Status: Objective data sheet. What Lasto is being built to do.
- Page: https://lasto.dev/
- Last updated: 2026-10-06
- By: Chris Johnson

## 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.

Fig. 1. Service map, generated from the safety core's allowlist on every build. There are 256 possible service bytes (0x00 to 0xFF).

- Passive mode: 0 of 256. The passive code path has no transmit call.
- Polled mode (Phase 4): 14 of 256, all read-only.
  - OBD-II: 01 02 03 06 07 09 0A
  - Manufacturer reads, to one approved module at a time and never to 0x7DF: 13 17 18 19 1A 21 22
- Never allowed, in any mode: 04 08 10 11 14 23 27 28 2C 2E 2F 30 31 34 35 36 37 38 3B 3D 3E 85
- Everything else is denied by default.

### 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](https://lasto.dev/docs/passive-capture/), and [what isn't proven yet](https://lasto.dev/safety/#not-proven).

### Polled mode

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 speed
7E8#04410C0AF0000000   answer: 0x0AF0 / 4 = 700 rpm
```

Ex. 1. Example frames in standard OBD-II format, made up for this page: Lasto has recorded the truck's own traffic, but it hasn't asked the truck anything yet. A request for engine speed, and the engine computer's answer.

### 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](https://lasto.dev/safety/) lists every rule and where the code enforces it.

Table 1. Quick reference data

| 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](https://lasto.dev/docs/passive-capture/#bus)) |
| 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.

## 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.

Fig. 2. How it connects. The PCAN-USB has run at the truck in listen-only mode, with Phase 2. The OBDLink MX+ joins in Phase 3.

1. 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.
2. Splitter: A 3-way splitter that passes all 16 pins.
3. 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.
4. 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.
5. Leg 3: Launch Creader Elite V3.0 T scan tool. Keeps doing scan-tool work, including anything that writes.

## 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.

Table 2. Build phases

| Phase | What it builds | Status |
|---|---|---|
| [Phase 0](https://lasto.dev/roadmap/#phase-0) | Plan | Done, approved 2026-09-26 |
| [Phase 1](https://lasto.dev/roadmap/#phase-1) | Safety core, simulator, and tests | Done, approved 2026-09-28 |
| [Phase 2](https://lasto.dev/roadmap/#phase-2) | Passive drive capture and storage | Done, approved 2026-10-01 |
| [Phase 3](https://lasto.dev/roadmap/#phase-3) | Creader-assisted mapping | Planned |
| [Phase 4](https://lasto.dev/roadmap/#phase-4) | Polled reads | Planned |
| [Phase 5](https://lasto.dev/roadmap/#phase-5) | Broadcast decoding and DBC output | Planned |
| [Phase 6](https://lasto.dev/roadmap/#phase-6) | Discovery | Planned |
| [Phase 7](https://lasto.dev/roadmap/#phase-7) | K-line modules and the crank profile | Planned |
| [Phase 8](https://lasto.dev/roadmap/#phase-8) | Analysis, reports, and export packs | Planned |
| [Phase 9](https://lasto.dev/roadmap/#phase-9) | Local web GUI | Planned |

The [roadmap](https://lasto.dev/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.
