diff --git a/checklists/z27ag-captures.json b/checklists/z27ag-captures.json index 49126bd..ab84ae8 100644 --- a/checklists/z27ag-captures.json +++ b/checklists/z27ag-captures.json @@ -1,6 +1,6 @@ { "id": "z27ag-captures", - "version": 3, + "version": 4, "title": "Z27AG decoding captures", "about": "docs/impl/plans/Z27AG-CAPTURES.md", "mark_format": " [ #] start|end for a span, [ #] for a point", @@ -445,6 +445,30 @@ "hold_s": 10 } ] + }, + { + "id": "31", + "title": "One wheel at a time, by hand", + "do": "Ignition on, engine off, neutral. A front: hold the other front still (open differential: in neutral the turned wheel spins the gearbox, not its partner) and spin this one briskly by hand, forward, about one turn a second; start as it turns, end as you stop. A rear, if you raise it: rears turn freely, no holding needed. Fronts are enough if the rears are not up.", + "finds": "which word of 235 is which wheel, one at a time (the drives already point to bytes 0-1 front right, 2-3 front left, 4-5 rear right, 6-7 rear left); also the slowest speed the ABS reports", + "actions": [ + { + "label": "front left by hand", + "hold_s": 10 + }, + { + "label": "front right by hand", + "hold_s": 10 + }, + { + "label": "rear left by hand", + "hold_s": 10 + }, + { + "label": "rear right by hand", + "hold_s": 10 + } + ] } ] }, diff --git a/docs/impl/plans/Z27AG-CAPTURES.md b/docs/impl/plans/Z27AG-CAPTURES.md index 34d782d..13e462f 100644 --- a/docs/impl/plans/Z27AG-CAPTURES.md +++ b/docs/impl/plans/Z27AG-CAPTURES.md @@ -1,7 +1,7 @@ --- type: plan status: ready -updated: 2026-10-14 +updated: 2026-10-15 --- # Z27AG decoding captures: what to do in the car @@ -59,7 +59,9 @@ recorder refuses marks with "no session" otherwise); engine off, doors shut. - **On jack stands** (23–26, since v2): front wheels up, rears chocked, handbrake off. Unpowered steering; speedometer readings held in 2nd and 3rd (fronts turn, rears stay still, which tells the wheels apart); braking from speed with vacuum - assist; reverse. Stands replace the driving speeds where a drive is not practical. + assist; reverse. Stands replace the driving speeds where a drive is not practical. Step 31 + (since v4, kept in this section, numbered after the IMU steps so earlier numbers stay): each + wheel spun by hand, the other front held still; the rears only if they are raised too. - **IMU calibration** (27–30, since v3): once the IMU is fixed in its final place. Level twice on the same spot, facing one way and then turned round (a rough 180° is fine: the ground's slope reverses and cancels, the mounting's tilt does not); then three @@ -67,7 +69,7 @@ recorder refuses marks with "no session" otherwise); engine off, doors shut. which kind of stretch it is). Any session holds raw IMU samples (`imu.bin`), so these can go in their own short session or with anything else. -Version 3 (2026-10-14) adds the IMU calibration section. Version 2 (2026-10-13) adds the stands section and writes down the conditions the +Version 4 (2026-10-15) adds step 31, one wheel at a time by hand. Version 3 (2026-10-14) adds the IMU calibration section. Version 2 (2026-10-13) adds the stands section and writes down the conditions the first run showed matter: engine off and handbrake on for 1–13, foot brake held for the handbrake step, neutral with the clutch up for the revs. diff --git a/docs/impl/reports/Z27AG-DECODE-3.md b/docs/impl/reports/Z27AG-DECODE-3.md index 29eb64d..1e1b828 100644 --- a/docs/impl/reports/Z27AG-DECODE-3.md +++ b/docs/impl/reports/Z27AG-DECODE-3.md @@ -64,6 +64,32 @@ Jack stands (checklist 23–26) would still confirm this, but are no longer need Scale unknown: full is unlikely to be 100 or 255. A refuel gives two points (before and after, parked level, with the litres put in). Not registered until then. +- **`449` bytes 0, 1, 3: climate-control temperatures, most likely raw sensor readings.** Pass 2 looked + for a byte that equals OBD-II intake air temperature less 40 and found none. Read the other way, + bytes 1 and 3 run *against* it (correlation −0.96 and −0.98 in `000007`), the way a thermistor's raw + reading falls as it warms. They follow it over tens of minutes, not second to second, so they are + other sensors that warm and cool with the air around the engine and car: + - **Byte 3: the A/C evaporator.** At each first switch-on of the compressor (`ac_compressor`) it climbs + from 115–145 to about 185 within 30–60 s, then stays there while the compressor cycles on and off + every 10–20 s. That is the evaporator being held just above freezing, the job its sensor exists + for. It keeps climbing a few counts after each switch-off, as an evaporator does while the last + refrigerant boils off. With the A/C off it drifts with the air (the `000007` correlation above). + Higher count, colder. + - **Byte 1: outside air, probably.** Slow; 89–91 on the afternoon of the 13th, 99–117 in the evening + of the 15th (higher count, colder, as byte 3). It fell from 114 to 99 over 30 minutes parked and + idling, and rose from 112 to 117 over 8 minutes of driving. A sensor behind the grille does this: + radiator heat soaks it while standing, and the airflow cools it once moving. That is why climate + controls filter it. + - **Byte 0: unclear.** 119–134, slow, unmoved by the engine starting or stopping (so not the + charging voltage), and its sign against the other two is not consistent. A cabin sensor is one + guess. + + An auto climate control has these three: evaporator, outside air, cabin. The way to scale them is + an overnight soak: a cold start after the car has stood all night gives one reading of each with + everything at the outside temperature (OBD-II intake and coolant say what that is). With a + thermometer and the A/C steps (12, 17), it gives a second. A mid-session frame with byte 6 = 24 instead + of 51 (end of `000009`, engine stopping) has every byte halved or changed; left out of the above. + ## Notes on the recording - `000012` is a 25-second parked session in between; `000013` ends with the PEAK unplugged.