# Troubleshooting

## MAC 地址还是不一样

ESP32-S3 可能有多个 MAC：

- `Base MAC` / factory MAC：bootloader、网页升级授权、后台设备表都应该使用这个。
- `STA MAC`：Wi-Fi Station MAC。它可能和 Base MAC 不一样。

最新应用的 Settings -> About Device 会同时显示：

```text
Base MAC: XX:XX:XX:XX:XX:XX
STA MAC:  YY:YY:YY:YY:YY:YY
```

请用 `Base MAC` 填：

- `bootloader_components/main/bootloader_start.c` 的 `s_mac_boot_rules`
- `HarshBoardFlashAPPTool/data/devices.json`
- `HarshBoardFlashAPPTool/server/devices.db.json`

如果屏幕上仍然只显示 `MAC Addr:`，说明板子上运行的还是旧应用。需要先用串口出厂烧录或网页烧录成功一次，把最新应用写进去。

## 最新固件放哪里

客户网页固定读取：

```text
HarshBoardFlashAPPTool/firmware/Lubass_Tool_app.manifest.json
HarshBoardFlashAPPTool/firmware/Lubass_Tool.bin
```

发布新固件的正确方式：

```bash
cd /mnt/d/Project/S19/ESP32/Lubass_Tool
idf.py build

cd /mnt/d/Project/S19/ESP32/HarshBoardFlashAPPTool
npm run generate -- 1.0.1
```

不要只替换 `.bin`。manifest 里的 `size` 和 `sha256` 必须和 `.bin` 一致。

## 网页还是不能烧录

按这个顺序查：

1. 关闭“模拟模式”。
2. 用 Chrome 或 Edge 打开 `http://127.0.0.1:5173/`。
3. 确认 `vendor/esptool-js-0.6.0.bundle.js` 可以访问。
4. 关闭 ESP-IDF monitor、串口助手、其他浏览器页面，避免串口被占用。
5. 点击“连接串口”，选择正确的 ESP32-S3 串口。
6. 让设备进入 ROM Download 模式：
   - 有自动下载电路：网页通常可以自动复位进入。
   - 没有自动下载电路：按住 BOOT，按一下 RESET，松开 RESET，再松开 BOOT。
7. 点击“读取设备 MAC”。如果这一步失败，说明还没进入下载模式或串口不可用。
8. MAC 授权成功后再点击“开始升级应用程序”。

网页只写应用分区：

- `ota_0` / `app_a` -> `0x10000`
- `ota_1` / `app_b` -> `0x100000`

bootloader、partition table、otadata 仍然需要出厂串口烧录。
