Tag: clutch-cargo

18 posts tagged with "clutch-cargo".

Searching the instrument cluster for a drawing route

An exact-image search for custom pixels in the J285 cluster closed one promising callback and found a conditional drawing-buffer route with a harder timing problem.

Getting out of the reversing camera's way

ClutchOS covered the reversing camera the first time I selected reverse with Home open. The fix is a small window manager that follows the factory camera request.

A Home screen for ClutchOS

Holding HOME on the pad now opens a Home screen instead of dropping into ES-DE. Built and tested on the Mac; the car has not seen it yet.

Choosing emulator cores by running every game on the card

Five of the head unit's emulator cores came from a microcontroller project. I replaced four of them, chosen by running every game on the card and timing the winners on the car's own Cortex-A9.

Battery saves that survive the emulator

A shared save module restores exact-size battery RAM, writes it only when it changes, and keeps the previous image as a recovery copy.

A one-millisecond sleep that rounded every frame late

Replacing a millisecond sleep with a microsecond deadline removed frame overruns in three hosts. Master System's fast Z80 had never reached the QNX build.

The 92-second return to the game library

The library took 92 seconds to come back after every game. The first plausible fix did nothing; two metadata walks and an eager collection were the cause.

Game audio on a MIB2

Finding the route that puts SNES audio through the dashboard speakers, and the 92-second library load it exposed along the way.

Why the game library ran at 15 fps on the dashboard

I blamed the display, then the textures, and both times I was wrong. Isolating one variable at a time found eight bits of shader arithmetic.

Porting ES-DE to ARM QNX

Cross-compiling the ES-DE frontend for the MIB2 head unit, and what the first native runs got wrong.

Eleven emulators on the head unit

Rusty Nail became a QNX launcher for eleven emulator paths on the MIB2. N64 failed on performance and then on a graphics plugin abort.

A safe route into the factory menu, and reading a gamepad over USB

A one-word menu retarget froze the MIB2 twice before revealing the rule for a safe route. Nineteen USB runs later SMB3 accepted controller reports.

NES on the dashboard, and mirroring the screen to the P4

A native NES core reaches nominal cadence on the MIB2, and the factory screen reaches the P4 panel as live video at 54.59 fps.

Getting inside a MIB2

Three days from a locked Volkswagen head unit to a root Telnet shell and the first native frame on its display.

A phone app for the dashboard panel

A phone app that talks to the dashboard panel rather than the car, and the fault codes a battery disconnect wrote into eight modules.

Folding mirrors on lock

Reading the driver door module's memory, backing it up twice, and changing three bytes so the mirrors fold when I lock the car. Every refusal and dead end is in the record.

The car ignores UDS and answers TP2.0

The first bytes the adapter ever sent me, and the discovery that the car ignores UDS and answers an older Volkswagen transport instead.

Pairing an ESP32 with an OBD-II adapter over BLE

Two days getting an ESP32 to talk to an OBD-II adapter over Bluetooth Low Energy. Everything negotiated correctly and not one byte arrived.