ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

PX4 中 SiK Radio 的固件构建与 AT 命令配置完全指南

PX4 中 SiK Radio 的固件构建与 AT 命令配置完全指南 嵌入式物联网机器人自动驾驶智能硬件【免费下载链接】PX4-AutopilotPX4 Autopilot Software项目地址https://gitcode.com/gh_mirrors/px/PX4-Autopilot点击查看免费下载导读SiKSiK Radio是一套面向遥测电台telemetry radio的开源固件与工具集PX4 飞控与其保持协议兼容是连接飞控与地面站之间无线 MAVLink 链路最常见的方案之一。本文以 PX4 仓库中开发者向文档 docs/en/data_links/sik_radio.md 为主体系统讲解 SiK 固件的支持硬件、从源码构建固件、通过 AT 命令完成电台配置的完整流程并结合仓库内遥测集成资料说明如何在 PX4 侧将 SiK 电台接入TELEM1端口并完成串口参数配置。读完本文你将能够独立完成一对 SiK 遥测电台的刷机、配对与 PX4 集成解决两块电台无法建立链路等常见问题。SiK 是什么PX4 如何与之协同SiK 是 LorenzMeier 维护的一套遥测电台固件与工具集合仓库名即SiK它运行在基于 8051 内核的廉价射频模块上提供透明串口桥接与 MAVLink 协议帧封装能力。PX4 官方文档明确说明PX4 与使用 SiK 固件的电台协议兼容一般情况下即插即用无需额外驱动或协议适配相关说明见 docs/en/telemetry/sik_radio.md 与 docs/en/telemetry/index.md。典型使用形态是一对电台机载电台通过 6 针 JST-GH 线缆接到飞控的TELEM1端口TELEM2也可用但默认推荐TELEM1通常无需额外配置地面端电台通过 USB 接入地面站如 QGroundControl基本属于即插即用。SiK 电台之所以在 PX4 生态中流行是因为其固件专门针对 MAVLink 数据包做了优化并可与 QGroundControl、PX4 Autopilot 深度集成。硬件上SiK 电台有 915 MHz美国等区域与 433 MHz欧盟、亚洲、非洲、大洋洲大部分地区等频段变体选择时需对照当地无线电法规。注意PX4 仓库中 docs/en/data_links/sik_radio.md 是开发者向的深度文档聚焦如何从源码构建固件 AT 命令配置面向普通用户的如何使用说明位于 docs/en/telemetry/sik_radio.md。本文整合两层内容供开发者一站式查阅。支持的电台硬件根据 docs/en/data_links/sik_radio.mdSiK 仓库包含以下遥测电台的 bootloader 与固件截至 2020-02-25型号说明HopeRF HM-TRP标准 SiK / 3DR 电台常用的射频模块HopeRF RF50-DEMOHopeRF 评估/演示模块RFD900RFDesign 长距电台经典款RFD900aRFD900 改良版RFD900p高功率版RFD900pe高功率增强版RFD900u带 USB 接口版RFD900ue带 USB 接口增强版仓库文档同时给出一个重要限制提示SiK 仓库目前没有 RFD900x 与 RFD900ux 的固件。若需要对这两款电台升级固件例如为了支持 MAVLink v2.0官方建议的流程是从 RFDesign 官网固件页面下载对应固件在 Windows PC 上安装 RFD Modem Tools使用 RFD Modem Tools 的 GUI 界面将固件刷入 RFD900x / RFD900ux。在 PX4 生态中基于 SiK 的成品电台由多家厂商提供PX4 仓库文档列出的供应商包括Holybro Telemetry RadioHolyBro SiK Long RangeRFD900 Telemetry RadioThunderFly TFSIK01 Telemetry RadioHKPilot Telemetry Radio已停产3DR Telemetry Radio已停产其中 RFD900 系列被定位为长距方案官方宣称使用普通天线即可在 5 km 以上保持可靠连接。而 Holybro 等短距/桌面级方案100 mW 可调功率、-117 dBm 接收灵敏度典型开箱距离为 300 m 以上配合地面端平板天线可扩展到数公里。这些电台普遍具备跳频扩频FHSS、可配置占空比、最高纠正 25% 位错误的纠错能力并可通过 Mission Planner / APM Planner 进行配置详见 docs/en/telemetry/holybro_sik_radio.md。从源码构建 SiK 固件构建 SiK 固件需要 8051 编译器而它不在 PX4 默认构建工具链中必须单独安装。仓库文档给出的完整流程如下以 Mac OS 为例Linux 下安装对应发行版的 sdcc 包即可。1. 安装 SDCC 工具链brew install sdccSDCCSmall Device C Compiler是 8051 等小型嵌入式平台的开源 C 编译器SiK 固件正是基于 8051 架构的如 HopeRF HM-TRP 模块因此这是编译链路的关键依赖。2. 克隆仓库并编译git clone https://github.com/LorenzMeier/SiK.git cd SiK/Firmware make installmake install会根据默认目标配置编译出各支持电台的固件镜像如dst/radio~hm_trp.ihx.ihx是 Intel HEX 格式的固件文件。3. 刷写固件到电台使用 SiK 仓库自带的 Python 上传工具记得把串口号改成你实际的设备名tools/uploader.py --port /dev/tty.usbserial-CHANGETHIS dst/radio~hm_trp.ihx示例中的radio~hm_trp.ihx即标准 SiK / 3DR 电台对应的固件镜像。如果你的电台是其他型号请从dst/目录中选择对应的.ihx文件。使用 AT 命令配置电台SiK 固件内置了类 Hayes 风格的 AT 命令集用于查询状态、修改参数与保存配置。整体流程为打开串口终端 → 进入命令模式 → 查看/修改参数 → 写回并重启。1. 打开串口终端screen /dev/tty.usbserial-CHANGETHIS 57600 8N1关键参数波特率57600SiK 电台默认的 AT 命令通信波特率8N1 即 8 数据位、无校验、1 停止位设备路径需替换为实际串口名Mac 下形如/dev/tty.usbserial-*Linux 下常为/dev/ttyUSB0。2. 进入 AT 命令模式在串口终端中输入转义序列⚠️ 重要在输入之前和之后的一秒内不要键入任何其他字符。这是 Hayes 风格命令模式的标准保护机制防止飞行过程中遥测数据里的序列误触发命令模式。3. 查看当前配置ATI5ATI5用于列出电台当前的完整参数设置Net ID、波特率、发射功率、占空比、空中速率等是配置前必做的先查后改步骤。4. 设置 Net ID、保存并重启ATS355 ATW ATZATS355将 Net ID网络 ID对应S3参数设置为55。配对使用的两块电台必须设置为相同的 Net ID 才能建立链路这是多组电台在同一区域同时工作而不互相干扰的关键ATW将当前参数写入非易失存储断电不丢失ATZ重启电台使新配置生效。提示若重启后仍未连接到第二块电台可能需要对电台进行断电重上电power-cycle。PX4 侧的集成与串口配置SiK 电台刷好固件、配对完成后剩下的工作就是让 PX4 与机载电台正确通信。PX4 通过 MAVLink 模块与遥测端口进行交互见 docs/en/data_links/telemetry.md只要电台支持 MAVLink 且提供电平与接口兼容的 UART就无需再做协议级集成。TELEM1 端口与 SER_TEL 参数机载电台默认接到飞控TELEM1端口。PX4 启动脚本中通过SER_TEL1_BAUD参数设定该端口的串口波特率例如ROMFS/px4fmu_common/init.d/airframes/6002_draco_r 中设置param set-default SER_TEL1_BAUD 57600与 SiK 电台常用的 57600 波特率一致而 ROMFS/px4fmu_common/init.d/airframes/4016_holybro_px4vision 等机型的TELEM1则默认配置为 921600用于高速数传链路。因此在接入 SiK 电台时通常需要把飞控的SER_TEL1_BAUD与电台的串口波特率设置为一致常见为 57600。同理若使用TELEM2端口则对应SER_TEL2_BAUD。这一参数映射关系可以从仓库启动脚本中看到例如 ROMFS/px4fmu_common/init.d/airframes/18001_TF-B1 设置了SER_TEL2_BAUD 9600ROMFS/px4fmu_common/init.d/airframes/4601_droneblocks_dexi_5 设置了SER_TEL2_BAUD 3000000可见不同机型对遥测端口波特率的差异化需求。MAVLink 实例的启动方式在 PX4 启动脚本中遥测端口上的 MAVLink 实例通过mavlink start命令显式拉起。例如ROMFS/px4fmu_common/init.d/rcS 第 620 行附近mavlink start -d /dev/ttyACM0通过-d指定 UART 设备ROMFS/px4fmu_common/init.d/airframes/4901_crazyflie21 中的示例mavlink start -d /dev/bridge0 -b 57600 -m osd -r 40000其中-b 57600显式指定波特率-m osd指定 MAVLink 模式-r 40000指定数据速率。对于采用标准 Pixhawk 布局的飞控TELEM1在启动流程中会被自动挂载为 MAVLink 遥测实例这也是机载电台接TELEM1即可用的底层原因。此外MAVLink 模块还支持跨端口转发例如 src/modules/mavlink/module.yaml 中记录了在 TELEM2 上启用 MAVLink 转发的相关选项适用于需要把遥测链路扩展到第二端口的场景。地面站侧地面端电台通过 USB 接入 PC/地面站Windows 下会自动安装驱动并显示为一个新的USB Serial PortCOM 口QGroundControl 或 Mission Planner 直接选择该端口即可建立连接无需任何额外配置。常见问题与排查现象可能原因处理方式两块电台无法建链配对不上Net ID 不一致需要断电重启用 AT 命令确认并统一两块电台的S3参数ATW保存后ATZ重启必要时 power-cycle建链后地面站无数据飞控TELEM1波特率与电台不一致将SER_TEL1_BAUD与电台串口波特率如 57600设为一致老硬件无法使用 MAVLink 2固件过旧按本文流程重新编译并刷写新版 SiK 固件RFD900x / RFD900ux 无法刷 SiK 固件SiK 仓库不支持该型号改用 RFDesign 官方固件 RFD Modem Tools 刷写误入命令模式导致链路中断遥测数据中出现序列遵循输入前后 1 秒不键入任何字符的原则配置完成后及时退出命令模式总结SiK Radio 是 PX4 生态中验证最充分、集成成本最低的遥测方案之一对普通用户成品电台接上TELEM1即用对开发者docs/en/data_links/sik_radio.md 提供了一条从 8051 工具链搭建、固件编译、刷写到 AT 命令级参数配置的完整通路。将固件侧的 Net IDS3与串口波特率以及 PX4 侧的SER_TEL1_BAUD对齐即可获得稳定可靠的无线 MAVLink 数据链路。若需要将全新的遥测系统接入 PX4可进一步参考 docs/en/data_links/telemetry.md 的集成指南并与 PX4 开发团队沟通。赞分享嵌入式物联网机器人自动驾驶智能硬件【免费下载链接】PX4-AutopilotPX4 Autopilot Software项目地址https://gitcode.com/gh_mirrors/px/PX4-Autopilot点击查看免费下载相关推荐Earthfile 指令参考Earthly 构建文件完整命令与配置指南Earthfile 指令参考Earthly 构建文件完整命令与配置指南 Earthfile 是 Earthly 构建框架的核心配置文件它由一系列目标tarCI/CDDevOps构建工具AgentScope 2.0 多智能体框架5 种权限模式 8 种沙箱后端让智能体能干活还不失控AgentScope 2.0 多智能体框架5 种权限模式 8 种沙箱后端让智能体能干活还不失控 AgentScope 2.0 是阿里巴巴通义实验室开源的嵌入式物联网机器人自动驾驶智能硬件PX4 Autopilot 适配 CUAV Nora 飞控硬件特性、接线供电与固件构建全指南PX4 Autopilot 适配 CUAV Nora 飞控硬件特性、接线供电与固件构建全指南 本指南以 PX4 官方文档 cuav_nora.md https嵌入式物联网机器人自动驾驶智能硬件创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进