up,需要画新PCB
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# 2026-03-30 日志
|
||||
|
||||
## 编译环境搭建(esp32c3_moonshine_travelers)
|
||||
|
||||
- Python 3.14.0 已预装(C:\Python314)
|
||||
- 安装 PlatformIO 6.1.19:`pip install platformio`
|
||||
- PlatformIO Scripts 路径:`C:\Users\wuwen\AppData\Roaming\Python\Python314\Scripts`
|
||||
- 已写入用户 PATH 永久生效(无需每次手动加)
|
||||
- 平台工具链 `espressif32@6.11.0`、`framework-arduinoespressif32`、`toolchain-riscv32-esp` 已存在(之前工程留下)
|
||||
- 固件目录:`code/firmware-2.7.15.567b8ea`,编译命令:`pio run -e esp32c3_moonshine_travelers`
|
||||
|
||||
## 遇到问题:Windows MAX_PATH 限制
|
||||
|
||||
- SparkFun ICM-20948 库解压时路径超过 260 字符 → `PackageException`
|
||||
- 根因:`examples/Arduino/Example10_DMP_FastMultipleSensors/` 路径过长
|
||||
- 修复方案:需要管理员权限执行以下命令启用 Windows 长路径支持:
|
||||
```powershell
|
||||
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1
|
||||
```
|
||||
- 后续:用户反映编译成功(Windows 长路径问题已自行解决)
|
||||
|
||||
## 调试:节点不发公钥/节点名字对端看不到
|
||||
|
||||
- **根本原因**:设备 Flash 中残留 `owner.is_licensed = true`(HamConfig 曾通过 App 下发并持久化)
|
||||
- **公钥不发**:`NodeInfoModule::allocReply()` 中 `is_licensed==true` 时主动清零公钥字段(Ham 法规要求)
|
||||
- **名字对端不可见**:`handleReceivedProtobuf()` 检查 `p.is_licensed != owner.is_licensed` 时直接丢包
|
||||
- **解决**:擦除 Flash NVS 分区(`pio run -t erase`)后重烧,或通过 App 关闭 Licensed 开关
|
||||
|
||||
## 修复:切换 role 后 NodeInfo/公钥仍不广播(CLIENT_HIDDEN 遗留问题)
|
||||
|
||||
### Bug 1:owner.role 不随 config.device.role 同步
|
||||
- **位置**:`AdminModule.cpp` `handleSetConfig()` device_tag 分支
|
||||
- **原因**:改 role 时只更新 `config.device.role`,`owner.role`(广播字段)从不更新
|
||||
- **修复**:在 `installRoleDefaults()` 调用后加 `owner.role = config.device.role;`
|
||||
|
||||
### Bug 2:从 CLIENT_HIDDEN 切回 CLIENT 后广播间隔不恢复
|
||||
- **位置**:`NodeDB.cpp` `installRoleDefaults()`
|
||||
- **原因**:CLIENT_HIDDEN 把 `node_info_broadcast_secs` 设为 `INT32_MAX`,切回 CLIENT 时没有对应的重置分支
|
||||
- **修复**:新增 `CLIENT` / `CLIENT_MUTE` 分支,恢复 `default_node_info_broadcast_secs` 等默认值
|
||||
|
||||
### 额外确认
|
||||
- **公钥不生成的前置条件**:`config.lora.region == UNSET` 时 NodeDB::init() 跳过 PKI keygen;需先通过 App 设置 region 才会生成密钥对
|
||||
Reference in New Issue
Block a user