ESP32 无人机合规识别:ArduRemoteID 开源方案详解
硬件选择与连接指南
ArduRemoteID 支持 ESP32-S3 和 ESP32-C3 两种主流芯片,兼容多种开发板。推荐使用 ESP32-S3 开发板,其引脚配置如下:
- UART TX 引脚:18
- UART RX 引脚:17
- CAN TX 引脚:47
- CAN RX 引脚:38
通过 USB 连接到标有"UART"的端口用于 MAVLink 通信和调试,或通过 UART 连接到飞行控制器的 RX(17)/TX(18)/GND 引脚。CAN 连接需要使用标准的 CAN 收发器连接到引脚 47(tx)/38(rx)/GND。
快速配置与固件烧录
首先克隆项目仓库:
git clone <repository_url>
cd ArduRemoteID/RemoteIDModule
安装 ESP32 支持环境:
make setup
编译项目并上传固件:
make upload
如果上传失败,按住 BOOT 按钮并短暂按下 RESET 按钮进入 bootloader 模式后重试。
参数配置与合规设置
ArduRemoteID 提供丰富的参数配置选项,关键参数包括:
- LOCK_LEVEL:控制板子锁定级别,防止参数篡改
- UAS_TYPE:设置无人机类型标识
- UAS_ID_TYPE和UAS_ID:设置无人机 ID 信息
- WEBSERVER_ENABLE:启用内置 Web 服务器
通过 DroneCAN GUI 工具可以直观地配置这些参数,确保符合 RemoteID 要求。
安全特性与防篡改机制
ArduRemoteID 内置多重安全保护:
固件签名验证:使用 generate_keys.py 脚本生成公私钥对,确保只有经过签名的固件才能升级:
scripts/generate_keys.py
安全参数更新:设置 LOCK_LEVEL=1 后,只能通过安全命令更新参数:
scripts/secure_command.py --private-key my_private_key.dat UAS_TYPE=3
eFuse 保护:LOCK_LEVEL=2 时永久设置 eFuse,防止非授权固件更新。
多协议支持与生态集成
ArduRemoteID 支持四种传输模式:
- WiFi 广播传输
- WiFi NAN(邻居感知网络)
- 蓝牙 4 传统广播
- 蓝牙 5 长距离扩展广播
与 ArduPilot 飞行控制器完美集成,通过 MAVLink 或 DroneCAN 协议通信。内置 Web 服务器提供状态监控和安全固件更新功能,默认访问地址为 http://192.168.4.1。

