petrus, 2026-09-06: "faster brain for e-class", target board Orange Pi 5 Plus 32 GB (RK3588, LPDDR4X; the 5 Max has no 32 GB variant). Grep of origin/main for everything Raspberry-Pi-specific; this is the whole surface:
| Where |
What |
Port |
carwatch/presence.py:106-135 |
watts from vcgencmd pmic_read_adc (sum of PMIC rails) |
RK3588 has no PMIC ADC via vcgencmd; read /sys/class/power_supply/* or /sys/class/hwmon/* if the board exposes rails, else report watts_w: null (missing, not zero, per the honesty rule) |
carwatch/selfstate.py:31-37 |
temperature: tries /sys/class/thermal/thermal_zone0/temp first, then vcgencmd measure_temp |
sysfs path already works on RK3588 (several zones; pick soc-thermal or the max); drop the vcgencmd fallback when absent |
carwatch/selfstate.py:48 |
throttling via vcgencmd get_throttled |
no equivalent; report unknown, or read the cpufreq governor and current versus max frequency as a proxy |
carwatch/agent.py:47, carwatch/grounding.py:52 |
identity strings say "a Raspberry Pi 5" |
make the brain description come from the car config block or /proc/device-tree/model |
install.sh:2 |
written for Raspberry Pi OS 64-bit |
verify each step on Armbian or the community Ubuntu for RK3588 (packages, nmcli present, rfcomm bind, systemd units, loginctl enable-linger) |
Everything else (rfcomm OBD, nmcli wifi profiles, whisper.cpp, piper, llama-server, the dashboard, the presence beat) is plain Linux on aarch64 and needs a rebuild, not a change.
Power (from the maker's spec page, not memory): the board is Type-C 5 V 5 A; the car feed is the same regulated 5 V class the Pi 5 uses, or a 12 V-to-USB-PD converter. Never the 12 V rail directly.
Plan when the board arrives: flash Armbian, run install.sh and fix what breaks, port the three functions above behind a small platform.py (Pi vs RK3588 detection from /proc/device-tree/model), bench the same GGUFs as the Pi 5 (Gemma 4 E2B, the Qwen MoE) with llama-bench and record tokens per second in gpu-metal-wip-style results, then a parked-car soak before it replaces Vadelma in the E-Class. The Pi 5 stays the fallback.
petrus, 2026-09-06: "faster brain for e-class", target board Orange Pi 5 Plus 32 GB (RK3588, LPDDR4X; the 5 Max has no 32 GB variant). Grep of origin/main for everything Raspberry-Pi-specific; this is the whole surface:
carwatch/presence.py:106-135vcgencmd pmic_read_adc(sum of PMIC rails)/sys/class/power_supply/*or/sys/class/hwmon/*if the board exposes rails, else reportwatts_w: null(missing, not zero, per the honesty rule)carwatch/selfstate.py:31-37/sys/class/thermal/thermal_zone0/tempfirst, thenvcgencmd measure_tempsoc-thermalor the max); drop the vcgencmd fallback when absentcarwatch/selfstate.py:48vcgencmd get_throttledcarwatch/agent.py:47,carwatch/grounding.py:52carconfig block or/proc/device-tree/modelinstall.sh:2nmclipresent,rfcommbind, systemd units,loginctl enable-linger)Everything else (rfcomm OBD, nmcli wifi profiles, whisper.cpp, piper, llama-server, the dashboard, the presence beat) is plain Linux on aarch64 and needs a rebuild, not a change.
Power (from the maker's spec page, not memory): the board is Type-C 5 V 5 A; the car feed is the same regulated 5 V class the Pi 5 uses, or a 12 V-to-USB-PD converter. Never the 12 V rail directly.
Plan when the board arrives: flash Armbian, run install.sh and fix what breaks, port the three functions above behind a small
platform.py(Pi vs RK3588 detection from/proc/device-tree/model), bench the same GGUFs as the Pi 5 (Gemma 4 E2B, the Qwen MoE) withllama-benchand record tokens per second ingpu-metal-wip-style results, then a parked-car soak before it replaces Vadelma in the E-Class. The Pi 5 stays the fallback.