up,需要画新PCB

This commit is contained in:
2026-03-30 20:01:45 +08:00
parent 4c81d35964
commit 4fad0c7d6e
7 changed files with 82 additions and 3 deletions
+27 -1
View File
@@ -2,7 +2,8 @@
## 项目概述
- **项目**LoRa Meshtastic 固件开发
- **主代码目录**`code/firmware-2.7.15.567b8ea`(基于 Meshtastic 官方固件 v2.7.15
- **主代码目录**`code/meshtastic_firmware`(基于 Meshtastic 官方最新 develop 分支
- **旧代码目录**`code/firmware-2.7.15.567b8ea`(基于 Meshtastic 官方固件 v2.7.15,已废弃)
- **构建系统**PlatformIO + ESP-IDF (Arduino framework for ESP32)
## 硬件平台 & 自定义板卡
@@ -86,6 +87,9 @@
## 代码架构要点
- **踩坑记录**TCA9535 矩阵扫描 cols 计算中 `~` 运算符对 uint8_t 会整数提升为 int,导致高 4 位被污染。修复:`((~(p0In & 0xF0)) >> 4) & 0x0F`。见 scanMatrix()。
- **踩坑记录**`owner.role` 只在 `NodeDB::NodeDB()` 构造时同步一次(`owner.role = config.device.role`),`AdminModule::handleSetConfig()` 改 role 时不更新 `owner.role`,导致广播出去的 NodeInfo 里 role 仍是旧值。已修复:在 `AdminModule.cpp` device_tag 分支末尾加 `owner.role = config.device.role;`2026-03-30
- **踩坑记录**`NodeDB::installRoleDefaults(CLIENT_HIDDEN)``node_info_broadcast_secs = INT32_MAX`,但 `installRoleDefaults(CLIENT)` 没有对应的恢复分支,切回 CLIENT 后 NodeInfo 永远不广播。已修复:新增 CLIENT/CLIENT_MUTE 分支恢复 `default_node_info_broadcast_secs`2026-03-30
- **踩坑记录**`is_licensed = true``NodeInfoModule::allocReply()` 主动清零公钥,且接收端 `handleReceivedProtobuf()``is_licensed` mismatch 直接丢包。Flash 残留旧 HamConfig 时会触发此问题,需擦 Flash 或 App 关闭 Licensed 开关。
- 路由层:FloodingRouter → ReliableRouter → NextHopRouter
- 无线接口:RadioLib 抽象层(SX126x/SX128x/LR11x0/RF95
- 模块系统:`src/modules/` 下各功能模块(TextMessage, Position, Telemetry, etc.
@@ -102,8 +106,30 @@
- MAX_THREADS=40
- 默认 envtbeam(需要切换到 esp32c3_moonshine 系列时要指定 env
- **Flash 占用**esp32c3_moonshine_travelers):text≈1.92MB, data≈0.63MB, 总≈2.57MB / 4MB
- **移植记录**2026-03-30):
- 将 esp32c3_moonshine_travelers 变体从 firmware-2.7.15 移植到官方最新 develop 分支
- 修复 `tca9535IsCharging` 未声明错误:在 Power.cpp 添加 extern 声明
- **分区表**partition-table.csv):app=0x2C0000(2.75MB), OTA=0x030000(192KB), spiffs=0x100000(1MB)
- **中文 12×12 字库**`src/graphics/fonts/ChineseFont12x12.h`21075 字形,535KB flash
## 🔧 硬件更换计划
### 问题描述
- **症状**:不发送公钥、不发送节点名字信息(最新固件仍存在)
- **潜在原因**LLCC68 规格书不支持 SF11 125kHz 模式,导致 LoRa 通信异常
### 解决方案
1. **方案A**:更换为带温补晶振(TCXO)的 LoRa 模块
- 确保晶振精度满足 SF11 125kHz 模式要求
2. **方案B**:更换为 E22-30S 系列模块
- E22-900M30S 或 E22-400M30S
- 该系列支持更宽的工作模式
### 待确认事项
- [ ] 确认 RA-01SC-P 是否为 LLCC68 芯片
- [ ] 测试更换 TCXO 版模块后的表现
- [ ] 测试 E22-30S 系列的兼容性
- 生成工具:`tools/gen_chinese_font.mjs`(需 npm install @napi-rs/canvas
- 覆盖:U+4E00-U+9FFFCJK 统一汉字全集,含 GB2312 6763 字)
- 像素判定:透明背景 + 黑色前景,alpha > 128 阈值(去掉抗锯齿毛边,字形锐利)