lasto

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

no transmit path

Polled mode, Phase 4 14 of 256

0102030607090A131718191A2122
  • 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 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.

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

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

Fig. 2. Block diagram. The PCAN-USB has run at the truck in listen-only mode, with Phase 2. The OBDLink MX+ joins in Phase 3. Numbers at the DLC3 are pin numbers, and P and V are Toyota’s wire colors for pink and violet. The slash marked 16 pins is the full harness, and the dotted line is Bluetooth. The open switch on TX stands for listen-only mode: the controller never drives its transmit line. The list below is the same diagram as text.
Vehicle2006 Lexus GX470CAN modulesHigh-speed CAN, 500 kbpsPins 6 and 14K-line modulesKDSS, per the factory diagramPin 7DLC3Connector D3OBD-II portCANH6CANL14BAT16SIL7CG4SG5PV+B, live with the key off16 pins3-way splitterPasses all 16 pinsLeg 3Leg 1Leg 2Launch CreaderElite V3.0 T scan toolKeeps doing scan-tool work.PCAN-USBOpto-decoupled, IPEH-002022Pins 6 and 14, 500 kbpsRXTXListen-onlyCAN controllerListen-only inpassive modeIn listen-only mode the controllernever drives TX.USBOBDLink MX+K-line modules, pin 7Phase 3, silent modeBTLaptopWindowslasto Vehicle2006 Lexus GX470CAN modulesHigh-speed CAN,500 kbpsK-line modulesKDSS, per thefactory diagramPVDLC3Connector D3, OBD-II port6CANHPCAN-H14CANLVCAN-L7SILK-line16BATBattery, live with the key off4 5CG SGGrounds16 pins3-way splitterPasses all 16 pinsLeg 3Leg 1Leg 2Launch CreaderElite V3.0 Tscan tool.Keeps doingscan-tool work.OBDLink MX+K-linemodules, pin 7.Phase 3,silent mode.PCAN-USBOpto-decoupled,IPEH-002022500 kbpsRXTXCAN controllerListen-only inpassive modeIn listen-onlymode thecontroller neverdrives TX.USBBTLaptopWindowslasto
  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.

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.

Table 2. Build phases
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.