TROUBLESHOOTING

刷机与排错手册

卡在哪一步,直接跳过去。所有条目都来自实车上真实发生过的问题,不是"理论上可能"。

Step 00

开工前先确认四件事

这四条任何一条不满足,后面的步骤都会白忙。

Step 01

三步刷机

电脑与板子的 USB-C 连接示意
  1. 插线:板子接电脑,等 3–5 秒。
    屏幕亮 → 说明供电正常,继续下一步。
  2. 选串口:点「连接并安装 v4.20」,在弹窗里选带 usbmodem(Windows 是 COM)的那一项。
  3. 等完成:按钮变成「安装」后点它,1–2 分钟。中途别拔线。
串口选择弹窗,只有 usbmodem 那一项是板子
刷完看什么:屏幕重新亮起 → 开机画面显示 v4.20 和「汽车男团」LOGO(没有 STI 标,那是有意去掉的)→ 自动进入油压页。

Stage 1

刷机阶段卡住了

点了按钮完全没反应,或者提示浏览器不支持

原因浏览器没有 Web Serial 接口。

怎么办:换成电脑上的 Chrome 或 Edge。Opera 也行。Safari、Firefox、所有手机浏览器都不行,这是浏览器的硬限制,没有绕过的办法。

弹窗里没有 usbmodem / COM,只有蓝牙设备

怎么办按这个顺序查,八成在第一条:

1. 线是纯充电线。换一根,手机能传文件的那种。这条占七成。

2. 板子没上电。插着 USB 的时候按一下 PWR 键,屏幕应该亮。

3. 系统还没枚举完。等 5 秒,刷新网页重试。

4. macOS 权限被拒过。系统设置 → 隐私与安全性 → 检查有没有拒绝过 USB 访问。

选了设备,但提示 Failed to open serial port / 无法打开串口

原因串口被别的程序占用了,一个串口同时只能被一个程序打开。

怎么办:关掉 Arduino IDE、串口监视器、PlatformIO、以及任何正在连着板子的软件,然后刷新网页重试。

写到一半失败 / 进度条卡住

怎么办先别慌,ESP32 刷一半失败不会变砖。

1. 换一个 USB 口(台式机优先插后面的,别用前面板或 USB Hub)。

2. 换一根线。

3. 还不行就按住板上的 BOOT 键不松,点连接,识别到之后再松开——这是强制进下载模式。

4. 仍然失败,用离线包:bin/oilgauge-v4.20-full.bin + tools/flash-macos.sh(或 Windows 的 .bat),走 esptool 命令行。

刷完了,但屏幕不亮

1. 拔掉 USB 再插上,或者按一下 PWR 键。

2. 还是不亮:按住 BOOT 插 USB 重新刷一次。

3. 屏幕有背光但全黑:等 10 秒,开机画面有 3 秒延迟。

4. 依然不亮:这件板子可能有问题,先插回原厂固件确认硬件是好的。

Stage 2

开机了,但连不上车

屏幕一直显示 DEMO / 演示数据在动

原因没有连上 OBD 适配器,固件在放演示数据。

1. 适配器插到车的 OBD 口了吗?(一般在方向盘下方,斯巴鲁在左脚休息踏板附近)

2. 车通电了吗?很多车熄火状态下 OBD 口不给电。

3. 适配器是 BLE 版吗?经典蓝牙(HC-05/06)的绝对不能买,协议完全不同。

4. 适配器是不是已经被手机连走了?一个 BLE 适配器同时只能给一个主机用,先在手机蓝牙里断掉。

显示 UNABLE TO CONNECT / CAN ERROR

原因适配器连上了,但车不回应 OBD 查询。

1. 点火开关打到 ON(不用启动发动机),等仪表自检完。

2. 有的车 OBD 口接触不良,把适配器拔下来重新插紧。

3. 插电脑看串口(115200),发 s,看 [STA] proto= 那行有没有值。空的话说明协议没协商上。

4. 老车(2008 年前)可能要 10–20 秒自动搜协议,耐心等。

连上了,但刷新率只有 1–2Hz

原因常见三种,按可能性排:

1. 供电不稳。用车机 USB 口或者劣质车充供 5V,会导致 BLE 反复重连。换独立宽压降压(≥36V 耐压)。

2. Wi-Fi 在抢射频。长按 BOOT 3 秒关掉 OTA,再看 Hz 有没有回来。

3. 适配器本身弱。廉价 ELM327 的单轮往返能到 300ms 以上,换 Vgate iCar Pro 之类会明显好转。

只有转速和水温,车速/节气门/增压都是 --

正常这台车确实不支持那些 PID,不是故障。

插电脑发 d,能看到完整的 PID 支持位图,比如:

[PID] bitmap: 0A- 0C+ 0D+ 05+ 11+ 42+ 5C-
(x+ = 车说支持,x- = 车说不支持)

- 的那几项就是车不提供,任何表都读不出来。

Stage 3

数据不对

油温一直显示 --(尤其是奔驰)

正常机油温度是 PID 5C,标准 OBD-II 里它是可选项,很多车根本不实现。

奔驰实测就是这样:除油温之外全都能读。这不是 bug,换任何设备都读不到。

油压页一直是 --,但转速正常

原因两种可能,先分清:

没装压力传感器:正常,油压页会退回到 OBD 的油压数据,而标准 OBD 没有机油压力 PID(只有压力开关),所以显示 --。

装了传感器但不显示:插电脑发 s,看 [STA] adc=:

· adc=none → ADS1115 没通,查 SDA/SCL 有没有插反、ADDR 有没有焊到 GND
· adc=OK 但读数异常 → 查分压电阻是不是 10k/18k、信号线有没有接错

增压页显示负值 / 一直是 0

正常增压页读的是进气歧管绝对压力(MAP),"增压值" = MAP − 100kPa。

自然吸气发动机在怠速、松油门时本来就是负压(显示 VAC),只有涡轮车深踩油门才会出现正的 BOOST。P 挡空踩油门几乎没有负载,值也很小。

Stage 4

电源与休眠

熄火后屏幕一直亮着,不断电

怎么办熄火保护默认开启,判据是「转速 < 300 且电压 < 13.4V」持续一段时间。

1. 确认 o 命令没被关掉(插电脑发 o 可切换,状态存 NVS)。

2. 电压判据依赖适配器上报的电压(ATRV),如果适配器不报,就只靠转速判断,可能延迟。

3. 想立刻验证:发 k,板子会马上进深睡,USB 端口消失是正常的。

怕长期接常电把电瓶耗光

固件有三层:正常 → 待机熄屏 → 深睡定时唤醒。深睡时射频和屏全关,电流降到毫安级。

但如果你打算停放两周以上,最稳的还是从 ACC 取电或者加个总开关——再低的待机电流,乘以两周也不小。

深睡之后怎么叫醒

目前只支持定时唤醒(醒来探测一次,车没动就继续睡)。触摸唤醒还没做——CST9217 的中断极性没确认。

想立刻用,直接给板子断电再上电,或者按 PWR。

Reference

各系统里的串口名长什么样

系统板子的串口名
macOScu.usbmodem101 / cu.usbmodem1101 / cu.usbmodem1234561
WindowsCOM3 / COM4(设备管理器 → 端口)
Linux/dev/ttyACM0
别选这些cu.Bluetooth-*、cu.debug-console、cu.wlan-debug、任何耳机/音箱名字
macOS 快速确认:终端执行 ls /dev/cu.*。插板子前后各跑一次,多出来的那个就是它。

Still stuck

还是不行,这样反馈

把下面这些发给我,能省掉三轮来回。

1. 板子型号 + 固件版本(开机画面上的 vX.XX)
2. 操作系统 + 浏览器版本
3. 卡在哪一步(截图最好)
4. 串口输出:插电脑,115200,发 s 和 d,把内容贴过来
5. 车型 + 年款(如果是数据问题)

车型能用但没收录的,去 车型库表单 提交一条, 审核后就会出现在公开列表里。