dtrac_quansheng_uv-k5-k6-k1
差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
| dtrac_quansheng_uv-k5-k6-k1 [2026/04/02 19:42] – [UV-K1/K5v3(PY32F071)] bg6ud | dtrac_quansheng_uv-k5-k6-k1 [2026/04/03 12:34] (当前版本) – [六、对讲机与APP设置] bg6ud | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ====== 使用泉盛UV-K5/ | ====== 使用泉盛UV-K5/ | ||
| - | DTrac APP 新增了对泉盛UV-K5/ | + | ===== 一、前言 ===== |
| - | + | DTrac APP新增对泉盛UV-K5/ | |
| - | ===== 实现功能 ===== | + | ===== 二、核心功能介绍 |
| - | + | 通过DTrac | |
| - | 仅需使用APP连接对讲机,抛弃繁琐一个手机全搞定,业余卫星通联操作更智能,实现以下功能: | + | * 自动获取位置:APP自动获取当前地理位置信息,为卫星参数同步提供基础; |
| - | * 自动获取位置; | + | * 自动更新星历:实时同步卫星星历数据,确保卫星轨道预测的准确性; |
| - | * 自动更新星历; | + | * 成熟算法预测:采用优化算法,精准预测卫星运行轨迹及通联窗口; |
| - | * 成熟算法预测; | + | * 实时同步卫星多普勒频率:根据卫星位置动态调整频率,保障通联音质; |
| - | * 实时同步卫星多普勒频率; | + | * 实时同步通联模式参数:自动匹配卫星通联所需的模式参数,无需手动切换; |
| - | * 实时同步通联模式参数; | + | * 实时同步发射亚音参数:同步卫星通联对应的发射亚音,确保通联正常; |
| - | * 实时同步发射亚音参数; | + | * 自动监听控制:卫星入境时自动开启对讲机监听,卫星离境后自动关闭监听,减少无效耗电。 |
| - | * 卫星入境时自动开启监听,离境后自动关闭监听; | + | **注意:由于泉盛UV-K5/ |
| - | 注:由于泉盛UV-K5/ | + | ===== 三、硬件改造(蓝牙透传模块) |
| - | ===== 硬件改造 ===== | + | 泉盛UV-K5/ |
| - | + | ==== 3.1 推荐模块及选型建议 ==== | |
| - | 泉盛UV-K5/ | + | |
| {{:: | {{:: | ||
| - | 推荐使用3.3V的双模蓝牙透传模块,方便日后拓展,如EBYTE/ | + | 优先选择3.3V双模蓝牙透传模块,兼顾稳定性与拓展性,推荐型号如下: |
| - | + | * 首选:EBYTE/ | |
| - | * 设置为从机模式; | + | * 备选:度云doBT-M01双模蓝牙模块(从机版本),需手动通过AT指令激活相关功能。 |
| - | | + | ==== 3.2 模块基础设置(必做) ==== |
| - | * 修改波特率为38400; | + | 模块安装前需完成基础参数设置,确保与对讲机及APP正常通信,不同模块设置方法如下: |
| - | * 拆机(自行搜索网上教程); | + | === 3.2.1 亿佰特EWM104-BT41SP模块(首选) === |
| - | * 然后根据蓝牙模块的引脚定义参考下图位置使用合适的漆包线连接 | + | 该模块默认已激活SPP和BLE功能,无需额外激活,仅需执行以下AT指令设置参数(指令需通过串口工具发送): |
| - | * 蓝牙 | + | < |
| - | * TXD 接 RXD | + | AT+SPPNAME=UV-K6 |
| - | * RXD 接 TXD | + | AT+BLENAME=UV-K6_BLE |
| - | * 3.3V 接 3V3 | + | === 3.2.2 度云doBT-M01模块(备选) === |
| - | * GND 接 GND | + | 该模块需手动通过AT指令激活SPP和BLE功能,同时设置相关参数,指令如下(顺序不可乱): |
| - | * 将模块绝缘处理,放在合适位置即可。 | + | < |
| - | + | AT+CT03\r\n | |
| - | 其中,ble部分UUID定义如下: | + | AT+BDUV-K6\r\n |
| - | + | AT+B501\r\n | |
| - | * Service UUID: 0000FFF0-0000-1000-8000-00805F9B34FB | + | AT+BMUV-K6_BLE\r\n |
| - | * Notify feature:0000FFF1-0000-1000-8000-00805F9B34FB | + | AT+B401\r\n |
| - | * Write feature:0000FFF2-0000-1000-8000-00805F9B34FB | + | AT+U0FFF0\r\n |
| - | + | AT+U1FFF3\r\n | |
| - | 前期使用度云双模蓝牙模块(doBT-M01(从机版本))的玩家,需要依次执行以下设置命令激活SPP和BLE: | + | AT+U2FFF1\r\n |
| - | + | AT+U3FFF2\r\n | |
| - | * AT+CR00\r\n | + | === 3.2.3 蓝牙模块UUID定义(通用) === |
| - | * AT+CT03\r\n | + | 无论选用哪种模块,如果通过BLE对接DTrac APP时需遵循以下UUID定义,确保通信正常: |
| - | * AT+BDUV-K6\r\n | + | * Service UUID: 0000FFF0-0000-1000-8000-00805F9B34FB |
| - | * AT+B501\r\n | + | * Notify feature(通知特征): |
| - | * AT+BMUV-K6_BLE\r\n | + | * Write feature(写入特征): |
| - | * AT+B401\r\n | + | ==== 3.3 拆机与接线步骤 ===== |
| - | * AT+U0FFF0\r\n | + | 温馨提示:拆机操作需谨慎,建议提前搜索对应机型的拆机教程(网上可轻松找到),避免损坏设备。接线前需关闭对讲机电源,确保断电操作。 |
| - | * AT+U1FFF3\r\n | + | === 3.3.1 通用接线原则 === |
| - | * AT+U2FFF1\r\n | + | 蓝牙模块与对讲机的接线对应关系(核心,不可接反): |
| - | * AT+U3FFF2\r\n | + | ^ 蓝牙模块引脚 ^ 对讲机对应引脚 ^ 备注 ^ |
| - | + | | TXD(发送) | RXD(接收) | 交叉连接,确保数据正常传输 | | |
| - | 亿佰特EWM104-BT41SP双模蓝牙模块SPP和BLE默认是激活的,只需要依次执行以下设置命令: | + | | RXD(接收) | TXD(发送) | 交叉连接,不可接反,否则无法通信 | |
| - | + | | 3.3V(电源正) | 3V3(电源正) | 必须接3.3V,不可接5V,避免烧毁模块/ | |
| - | * AT+BAUD=4 | + | | GND(电源负) | GND(电源负) | 共地,确保电路稳定 | |
| - | * AT+SPPNAME=UV-K6 | + | === 3.3.2 分机型接线细节 === |
| - | * AT+BLENAME=UV-K6_BLE | + | 不同机型的MCU型号不同,TXD、RXD引脚位置有差异,具体如下: |
| - | ==== UV-K5/K6(DP32G030) ==== | + | == (1)UV-K5/K6(MCU:DP32G030) == |
| {{: | {{: | ||
| - | UV-K5/6的TXD在MCU的8脚,RXD在MCU的9脚。 | + | TXD对应MCU的8脚,RXD对应MCU的9脚,找到对应引脚后,用合适规格的漆包线连接,接线后做好绝缘处理。 |
| - | ==== UV-K1/K5v3(PY32F071) ==== | + | == (2)UV-K1/K5v3(MCU:PY32F071) == |
| {{:: | {{:: | ||
| - | 注:UV-K1接线方法,请参照相关电路图,关键是找到RXD、TXD、3V3、GND的位置,一般根据K头走线很容易查找,以下内容仅供参考。 | + | 注:接线前需先完成一个关键操作——去除原RXD位置与3.5mm插座PTT功能极的100欧姆电阻,避免开机误触进入刷机模式,导致设备故障。 |
| + | * TXD对应MCU的30脚,RXD对应MCU的31脚; | ||
| + | * UV-K1机身较紧凑,建议选择小尺寸模块(如亿佰特EWM104-BT41SP),绝缘处理后可放置在对讲机顶部空隙位置,不影响机身闭合。 | ||
| {{: | {{: | ||
| - | UV-K1需要去除原RXD位置与3.5mm插座PTT功能极的100欧姆电阻,防止开机误触进入刷机模式,TXD在MCU的30脚,RXD在MCU的31脚。 | + | **提示**:UV-K1接线可参考相关电路图,通常根据K头走线可快速找到RXD、TXD、3V3、GND引脚,本文内容仅作参考,具体以实际电路为准。 |
| + | === 3.3.3 收尾处理 === | ||
| + | 接线完成后,对蓝牙模块进行绝缘处理(可使用绝缘胶带包裹),将模块固定在对讲机内部合适位置,确保不影响对讲机按键、屏幕及电池安装,随后重新组装对讲机即可。 | ||
| + | ===== 四、定制固件介绍与下载 ===== | ||
| + | 本定制固件基于F4HWN等最新开源固件轻微修改,完整保留原固件所有功能,仅新增DTrac APP适配相关功能,确保对讲机原有操作不受影响。 | ||
| + | **重要提示:相对于泉盛官方原版固件,本次定制固件的内存映射已完全改变,刷写后将丢失对讲机内所有内存通道和原有设置,请提前做好备份。固件遵循[[https:// | ||
| + | ==== 4.1 固件来源(分机型) ==== | ||
| + | === 4.1.1 UV-K5/ | ||
| + | * 开源网址:https:// | ||
| + | * 参考文献:https:// | ||
| + | === 4.1.2 UV-K1/ | ||
| + | * 开源网址:https:// | ||
| + | * 参考文献:https:// | ||
| + | ==== 4.2 固件下载(分机型) ==== | ||
| + | **警告:泉盛UV-K系列对讲机版本迭代较多,下载和使用固件时,务必认准与自己机型MCU对应的版本,若因版本不匹配导致对讲机变砖,本文作者及相关开发者概不负责!** | ||
| - | {{:: | + | === 4.2.1 UV-K5/ |
| + | 适用范围:仅适用于MCU为DP32G030的UV-K5和UV-K6对讲机。 | ||
| - | 由于UV-K1较紧凑,蓝牙芯片建议选择小尺寸的,如EBYTE/亿佰特EWM104-BT41SP双模蓝牙模块,绝缘处理后恰好可以放在对讲机的顶部空隙位置。 | + | 固件下载地址:{{ :: |
| - | ===== 定制固件 ===== | + | |
| - | 定制的固件在F4HWN、BA7IQE等最新开源固件上轻微修改,完整保留了原固件功能。相对于泉盛官方原版固件,由于内存映射完全改变,你会丢失所有内存通道和设置。注: [[https:// | + | === 4.2.2 UV-K1/K5v3(MCU:PY32F071) === |
| + | 适用范围:仅适用于MCU为PY32F071的UV-K1和UV-K5/ | ||
| - | 固件主要迭代功能,请参阅原固件更新日志。 | + | 固件下载地址:{{ :: |
| + | ==== 4.3 固件迭代说明 ==== | ||
| + | 定制固件的主要迭代功能、Bug修复及优化内容,可参考其修改来源的原固件更新日志(链接见4.1章节),本文不再重复赘述。 | ||
| + | ===== 五、刷机方法与校准备份 ===== | ||
| + | 刷机前请务必仔细阅读本章节内容,养成备份校准文件的习惯,避免因刷机导致设备故障或参数丢失。 | ||
| + | ==== 5.1 通用刷机方法 ==== | ||
| + | 无论是在线刷机、离线线刷,还是蓝牙无线刷机,操作流程一致,具体步骤如下: | ||
| + | - 开机进入刷机模式:长按PTT键,同时开启对讲机电源,保持PTT键长按直至进入刷机模式; | ||
| + | - 连接设备:将对讲机与电脑/ | ||
| + | - 选择固件:打开对应刷机工具/ | ||
| + | - 开始刷机:点击“更新”“刷机”等按钮,等待刷机完成,期间切勿断开连接、关闭电源或操作对讲机; | ||
| + | - 重启设备:刷机完成后,对讲机将自动重启,或手动重启,刷机完成。 | ||
| + | 补充说明:原版固件升级的详细操作步骤,可参考泉盛官方升级固件程序及说明文档;若刷机后出现变砖情况,可尝试先刷回对应机型的官方原版固件,再重新刷写定制固件。 | ||
| - | {{:: | + | ==== 5.2 校准文件备份与恢复 |
| - | + | 校准文件包含对讲机的核心参数(如频率校准、电压校准等),刷机前备份、刷机后恢复,可避免设备性能异常,具体操作如下: | |
| - | ===== 下载地址 ===== | + | === 5.2.1 备份校准文件 === |
| - | 警告:固件仅供学习和业余无线电交流,由于泉盛UV-K系列对讲机版本迭代很多,下载使用时请认准对应的版本,如果造成对讲机变砖,概不负责! | + | 1. 对讲机以普通模式开机(不进入刷机模式); |
| - | ==== UV-K5/ | + | 2. 通过对应机型的在线刷机网站(见5.3章节),按照网站友好提示,在线备份校准数据; |
| - | 注:仅适用于MCU为DP32G030的UV-K5和UV-K6使用。 | + | 3. 备份完成后,用对讲机的序列号重命名校准文件(序列号印在设备背面电池下方的标签上),避免多台设备时校准文件混淆。 |
| - | + | === 5.2.2 恢复校准文件 === | |
| - | 固件下载地址:{{ :: | + | 1. 刷机完成后,对讲机以普通模式开机; |
| - | + | 2. 进入对应在线刷机网站,按照提示上传备份的校准文件,在线恢复校准数据; | |
| - | 固件修改自 | + | 3. 恢复完成后,重启对讲机,确保参数生效。 |
| - | + | **提示**:更新固件后,建议立即创建一个新的校准文件备份;若后续需要切换回原厂固件或其他固件,需先恢复对应备份的校准文件,再进行刷机操作。 | |
| - | https:// | + | ==== 5.3 分机型在线刷机网站 |
| - | + | === 5.3.1 UV-K5/K6(MCU:DP32G030) === | |
| - | 参考文献 | + | |
| - | + | * 在线刷机/ | |
| - | https:// | + | === 5.3.2 UV-K1/K5v3(MCU:PY32F071) === |
| - | + | | |
| - | + | * 在线刷机/ | |
| - | ==== UV-K1/ | + | ===== 六、对讲机与APP设置 ===== |
| - | 注:仅适用于MCU为PY32F071的UV-K1和UV-K5/ | + | 刷机完成并恢复校准文件后,需完成对讲机和DTrac APP的相关设置,才能实现卫星通联参数的实时同步。 |
| - | + | ||
| - | 固件下载地址:{{ :: | + | |
| - | + | ||
| - | 固件修改自 | + | |
| - | + | ||
| - | https:// | + | |
| - | + | ||
| - | + | ||
| - | 参考文献 | + | |
| - | + | ||
| - | https:// | + | |
| - | + | ||
| - | + | ||
| - | ===== 刷机方法 ===== | + | |
| - | + | ||
| - | 刷机方法简介:在线刷机、离线线刷和蓝牙无线刷机的方法都是一样的,长按PTT键开机,选择正确的端口,连接电台,选择固件,点击更新即可。 | + | |
| - | + | ||
| - | 原版固件升级详细操作步骤可参考官方升级固件程序和说明文档,升级变砖时可以先刷回原版试试。 | + | |
| - | + | ||
| - | {{ :: | + | |
| - | + | ||
| - | 其它版本硬件,强烈推荐在线刷机方式。 | + | |
| - | + | ||
| - | ==== 备份校准文件 | + | |
| - | 养成良好的习惯,刷机前先备份校准数据,更新固件后立即创建一个新的校准文件,然后在安装不同固件之前(比如回到原厂固件时)先恢复它,刷机后再恢复校准数据。 | + | |
| - | + | ||
| - | 开机用普通模式通过刷机网站在线备份,参阅网站友好提示。 | + | |
| - | + | ||
| - | 用你对讲机的序列号来重命名校准文件,序列号印在设备背面(电池下方)标签上,这样可以避免你有多台设备时校准文件混淆。 | + | |
| - | + | ||
| - | GL! | + | |
| - | ==== UV-K5/K6(DP32G030) ==== | + | |
| - | + | ||
| - | 在线刷机 | + | |
| - | + | ||
| - | https:// | + | |
| - | + | ||
| - | https:// | + | |
| - | + | ||
| - | ==== UV-K1/K5v3(PY32F071) ==== | + | |
| - | + | ||
| - | 在线刷机 | + | |
| - | + | ||
| - | https:// | + | |
| - | + | ||
| - | https:// | + | |
| - | + | ||
| - | ==== 恢复校准文件 | + | |
| - | 开机用普通模式通过刷机网站在线恢复校准,参阅网站友好提示。 | + | |
| - | ===== 对讲机设置 | + | |
| - | + | ||
| - | 将RxMode设置为MAIN ONLY,并使用VFO频率待机模式。 | + | |
| + | DTrac APP下载地址: {{ :dtrac.apk |DTrac APP}},操作说明请参阅 [[dtrac_app|]]相关内容。 | ||
| + | ==== 6.1 对讲机设置(必做) ==== | ||
| {{: | {{: | ||
| - | ===== APP设置 ===== | ||
| - | |||
| - | 本例,电台类型选择“QUANSHENG UV-K6”,选择已配对的电台蓝牙适配器,如上述自定义的“UV-K6”,然后用蓝牙方式连接对讲机。 | ||
| + | 开机后,进入对讲机设置界面,完成以下操作: | ||
| + | * 将RxMode(接收模式)设置为“MAIN ONLY”; | ||
| + | * 切换至VFO频率待机模式,确保APP可正常同步频率参数。 | ||
| + | ==== 6.2 DTrac APP设置 ==== | ||
| {{: | {{: | ||
| - | 当然,你也可以通过使用电脑的虚拟串口软件将电台自带的串口转换为网络透传服务,然后用网络接口的方式来与DTrac APP对接,可参考以下内容 | + | 打开DTrac APP,按照以下步骤完成设置,实现与对讲机的连接和参数同步: |
| + | - 打开手机蓝牙,搜索并配对已安装的蓝牙模块(蓝牙名称为之前自定义的“UV-K5/ | ||
| + | - 进入DTrac APP,在电台类型中选择对应机型(如“QUANSHENG UV-K6”); | ||
| + | - 在APP中选择已配对的对讲机蓝牙适配器,点击连接,等待连接成功; | ||
| + | - 连接成功后,APP将自动完成位置获取、星历更新等操作,实时同步卫星通联参数,无需手动干预。 | ||
| + | ==== 6.3 备选连接方式(无蓝牙) ==== | ||
| + | 若未安装蓝牙模块,可通过电脑虚拟串口软件,将对讲机自带的串口转换为网络透传服务,再通过网络接口与DTrac APP对接,具体操作可参考“[[dtrac_virtualserialport|使用虚拟串口]]”相关教程(本文暂不详细介绍)。 | ||
| + | ===== 七、隐藏校准菜单操作 ===== | ||
| + | 刷写定制固件后,可通过以下方法进入隐藏校准菜单,进行电压校准等操作,优化设备性能: | ||
| + | 1. 开机操作:开机时,同时按住PTT键和侧键1,保持按住状态直至开机,随后松开所有按键,即可进入隐藏校准菜单; | ||
| + | 2. 复位建议:固件刷新后,建议在隐藏菜单中找到“75/ | ||
| + | 3. 电压校准:在隐藏菜单中找到“BatCal”(电池校准)相关选项,可根据实际情况进行电压校准,优化电池电量显示精度。 | ||
| + | ===== 八、相关协议与指令说明 ===== | ||
| + | 本章节详细介绍DTrac APP与泉盛UV-K5/ | ||
| + | ==== 8.1 通信协议概述 ==== | ||
| + | 本软件使用的编程协议,是通过观察对讲机与原厂编程软件之间的通信过程反向工程得到的,并非典型的宝峰类协议,其核心特点如下: | ||
| + | * 数据包格式:0xAB 0xCD len 0x00 <data bytes> <2 bytes CRC> 0xDC 0xBA; | ||
| + | * 长度说明:len代表有效载荷数据(data bytes)的长度; | ||
| + | * CRC校验:采用CRC-16 xmodem算法,数据字节和CRC均通过与8字节序列异或进行混淆; | ||
| + | * 双向通信:对讲机发送给计算机的数据包格式相同,但CRC字段固定为0xFFFF,说明CRC并非用于数据完整性校验,而是用于进一步混淆(与异或功能一致)。 | ||
| + | **注:后续将发布该协议及EEPROM内容的详细描述,目前可参考相关开源固件源码作为文档参考。** | ||
| + | ==== 8.2 核心通信指令 ==== | ||
| + | ^ 指令ID ^ 功能描述 ^ | ||
| + | | 0x0514 | 会话初始化,返回版本信息和设备状态 | | ||
| + | | 0x051B | EEPROM数据读出 | | ||
| + | | 0x051D | 向EEPROM写入数据 | | ||
| + | | 0x0527 | 读取RSSI值(信号强度) | | ||
| + | | 0x0529 | 读取ADC数据,返回电池信息 | | ||
| + | | 0x052D | 检查设备锁状态 | | ||
| + | | 0x052F | 会话初始化,返回详细版本信息和设备状态 | | ||
| + | | 0x0601 | 读出BK4819寄存器数据 | | ||
| + | | 0x0602 | 向BK4819寄存器写入数据 | | ||
| + | | 0x0801 | 模拟按键操作 | | ||
| + | | 0x0803 | 将LCD屏幕内存转储至电脑 | | ||
| + | | 0x0808 / 0x0888 | 扫描功能控制 | | ||
| + | | 0x0850 | 向多个寄存器写入数据 | | ||
| + | | 0x0851 | 从多个寄存器读取数据 | | ||
| + | | 0x0860 | 配置GPIO引脚 | | ||
| + | | 0x0861 | 读取GPIO引脚状态 | | ||
| + | | 0x0870 | 启用全控制模式 | | ||
| + | | 0x9999 | DTrac APP专用:CTCSS_CODE(亚音码)控制 | | ||
| + | | 0x8888 | DTrac APP专用:DownFrequency(下行频率)控制 | | ||
| + | | 0x7777 | DTrac APP专用:UpFrequency(上行频率)控制 | | ||
| + | | 0x6666 | DTrac APP专用:Mode(通联模式)控制 | | ||
| + | | 0x5555 | DTrac APP专用:MonitorStatus(监听状态)控制 | | ||
| + | ==== 8.3 数据加密与解析示例 ==== | ||
| + | === 8.3.1 示例数据包 === | ||
| + | 以下是对讲机选择[F-0]调频收音机时的通信序列数据: | ||
| - | ===== 演示视频 ===== | + | < |
| - | UV-K6 | + | |
| - | {{: | + | === 8.3.2 数据包结构解析 === |
| + | * 分组发起:数据包以0xAB 0xCD开头,标识数据包开始; | ||
| + | * 数据长度:接下来的两个字节(06 00)表示有效载荷数据长度为6字节; | ||
| + | * 有效载荷:后续7字节(17 64 16 E6 2E 91 E8)为经过异或处理的核心数据,包含操作命令; | ||
| + | * CRC校验和:接下来的2字节(EA DC)为CRC校验和,用于数据混淆; | ||
| + | * 数据包终止:最后以0xDC 0xBA结尾,标识数据包结束。 | ||
| + | === 8.3.3 异或解密方法 === | ||
| + | 发送和接收的数据均通过以下8字节序列进行异或加密,解密时只需将加密数据与该序列逐字节异或即可: | ||
| - | UV-K1 | + | '' |
| - | https:// | + | 解密示例(以上述数据包为例): |
| - | + | < | |
| - | + | 0x17 XOR 0x16 → 0x01 | |
| - | ===== 隐藏校准菜单 ===== | + | 0x64 XOR 0x6C → 0x08 |
| - | 进入固件隐藏校准菜单的方法如下:开机时按住PTT+侧键 1️,然后松开所有键,进入隐藏菜单,固件刷新后建议执行菜单75/ | + | 0x16 XOR 0x14 → 0x02 |
| - | + | 0xE6 XOR 0xE6 → 0x00 | |
| - | 进入后,找到与电池校准相关的选项,如“BatCal”,即可进行电压校准等操作。 | + | 0x2E XOR 0x2E → 0x00 |
| - | + | 0x91 XOR 0x91 → 0x00 | |
| - | + | 0xE8 XOR 0x0D → 0xE5 | |
| - | ===== 相关协议 ===== | + | </ |
| - | + | ||
| - | ==== Protocol for UV-K5/K6/K1 ==== | + | |
| - | + | ||
| - | The programming protocol used by this software has been reverse engineered | + | |
| - | by observing communications between the radio and the original programming | + | |
| - | software. It is not a variation of the typical Baofeng-like protocol. | + | |
| - | + | ||
| - | + | ||
| - | The format of the datagram sent to the radio is: | + | |
| - | + | ||
| - | 0xAB 0xCD len 0x00 <data bytes> <2 bytes CRC> 0xDC 0xBA | + | |
| - | + | ||
| - | The length is the length of the data bytes. | + | |
| - | + | ||
| - | The data is protected by a typical CRC-16 xmodem algorithm. | + | |
| - | The data bytes and the CRC are obfuscated by xor-in it with an 8-byte | + | |
| - | sequence. | + | |
| - | + | ||
| - | Fortunately the EEPROM data contains a lot of 0xFF and 0x00 bytes, so the XOR | + | |
| - | sequence is easy to find by observing the traffic. | + | |
| - | + | ||
| - | + | ||
| - | The datagram sent from the radio is the same, but the CRC field is set to | + | |
| - | 0xFFFF. This shows that the CRC is not for data integrity, but for further | + | |
| - | obfuscation (same as the XOR). | + | |
| - | + | ||
| - | + | ||
| - | I intend to publish a further description of the protocol, and the EEPROM | + | |
| - | contents, meanwhile the sources can be used as documentation. | + | |
| - | + | ||
| - | === 计算机与无线电台之间的指令 === | + | |
| - | * ID 功能描述 | + | |
| - | * 0x0514 会话初始化,关于版本信息和状态的回复 | + | |
| - | * 0x051B EEPROM读出 | + | |
| - | * 0x051D 致EEPROM | + | |
| - | * 0x0527 RSSI值读数 | + | |
| - | * 0x0529 ADC读数,电池信息回复 | + | |
| - | * 0x052D 检查锁状态 | + | |
| - | * 0x052F 会话初始化、回复、详细版本信息和状态 | + | |
| - | * 0x0601 BK4819 寄存器读出 | + | |
| - | * 0x0602 写入BK4819寄存器 | + | |
| - | * 0x0801 按键模拟 | + | |
| - | * 0x0803 将LCD屏幕内存转储到PC | + | |
| - | * 0x0808 扫描 | + | |
| - | * 0x0850 写入多个寄存器 | + | |
| - | * 0x0851 读取多个寄存器 | + | |
| - | * 0x0860 配置GPIO引脚 | + | |
| - | * 0x0861 GPIO 引脚状态读数 | + | |
| - | * 0x0870 启用全控制模式 | + | |
| - | * 0x0888 扫描 | + | |
| - | * 0x9999 | + | |
| - | * 0x8888 | + | |
| - | * 0x7777 | + | |
| - | * 0x6666 | + | |
| - | * 0x5555 | + | |
| - | + | ||
| - | === 计算机与无线电之间通信的实际数据 === | + | |
| - | 以下是您在全盛码头选择[F-0]调频收音机时的序列数据。 | + | |
| - | + | ||
| - | AB CD 06 00 17 64 16 E6 2E 91 E8 EA DC BA | + | |
| - | + | ||
| - | + | ||
| - | - 分组发起 数据包以0xAB 0xCD开头。 | + | |
| - | - 数据长度 接下来的两个字节表示实际的有效载荷数据长度。 | + | |
| - | - 有效载荷 接下来的7字节是经过异或处理的载荷数据中的主要信息部分,包括要发送和接收的命令。 | + | |
| - | - CRC校验和 是一种CRC校验和,用于确保以下1字节有效载荷数据的完整性。 | + | |
| - | - 数据包终止 最后一个0xDC 0xBA表示数据包的结束。 | + | |
| - | + | ||
| - | + | ||
| - | 发送和接收的数据在以下字节列中进行了异或加密: | + | |
| - | + | ||
| - | + | ||
| - | 通过异或处理的数据可以通过异或解锁,每个字节对应的字节{ 0x16, 0x6c, 0x14, 0xe6, 0x2e, 0x91, 0x0d, 0x40, 0x21, 0x35, 0xd5, 0x40, 0x13, 0x03, 0xe9, 0x80 } | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | AB CD 06 00 17 64 16 E6 2E 91 E8 EA DC BA | + | |
| - | + | ||
| - | * 0x17 XOR 0x16 → 0x01 | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | + | ||
| - | 实际数据 → AB CD 06 00 01 08 02 00 00 00 E5 EA DC BA | + | |
| - | + | ||
| - | + | ||
| - | ==== Data for DTrac APP ==== | + | |
| - | + | ||
| - | === for DTrac app CTCSS_CODE === | + | |
| + | 解密后实际数据:< | ||
| + | ==== 8.4 DTrac APP专用数据结构 ==== | ||
| + | === 8.4.1 亚音码控制(CMD_9999_t) === | ||
| + | < | ||
| typedef struct { | typedef struct { | ||
| - | Header_t Header; | + | |
| - | uint8_t CTCSS_CODE; | + | uint8_t CTCSS_CODE; |
| } CMD_9999_t; | } CMD_9999_t; | ||
| - | + | </ | |
| - | === for DTrac app DownFrequency | + | === 8.4.2 下行频率控制(CMD_8888_t) |
| + | < | ||
| typedef struct { | typedef struct { | ||
| - | Header_t Header; | + | |
| - | uint32_t DownFrequency; | + | uint32_t DownFrequency; |
| } CMD_8888_t; | } CMD_8888_t; | ||
| - | + | </ | |
| - | === for DTrac app UpFrequency=== | + | === 8.4.3 上行频率控制(CMD_7777_t) |
| + | < | ||
| typedef struct { | typedef struct { | ||
| - | Header_t Header; | + | |
| - | uint32_t UpFrequency; | + | uint32_t UpFrequency; |
| } CMD_7777_t; | } CMD_7777_t; | ||
| - | + | </ | |
| - | === for DTrac app Mode=== | + | === 8.4.4 通联模式控制(CMD_6666_t) |
| + | < | ||
| typedef struct { | typedef struct { | ||
| - | Header_t Header; | + | |
| - | char Mode; | + | char Mode; |
| } CMD_6666_t; | } CMD_6666_t; | ||
| - | + | </ | |
| - | === for DTrac app MonitorStatus | + | === 8.4.5 监听状态控制(CMD_5555_t) |
| + | < | ||
| typedef struct { | typedef struct { | ||
| - | Header_t Header; | + | |
| - | char MonitorStatus; | + | char MonitorStatus; |
| } CMD_5555_t; | } CMD_5555_t; | ||
| - | + | </ | |
| - | + | ===== 九、相关资源与演示视频 | |
| - | ===== 其他 | + | ==== 9.1 辅助工具与参考链接 ==== |
| - | + | * K5 Viewer工具:http:// | |
| - | http:// | + | * 多机型UV工具:https:// |
| - | + | ==== 9.2 演示视频 ==== | |
| - | https:// | + | * UV-K6演示: |
| - | + | {{: | |
| - | https:// | + | * UV-K1演示:https:// |
| + | ===== 十、免责声明 ===== | ||
| + | * 普通列表项目本指南及相关定制固件、硬件改造方案,仅适用于业余无线电学习和交流,严禁用于非法通信活动,使用者需遵守国家相关法律法规及业余无线电管理规定; | ||
| + | * 硬件改造、固件刷写均存在一定风险,可能导致对讲机损坏(变砖),操作前请充分了解相关步骤,谨慎操作,本文作者及相关开发者不对操作失误造成的损失承担任何责任; | ||
| + | * 定制固件基于开源项目修改,遵循 [[https:// | ||
| + | * 泉盛UV-K系列对讲机版本众多,本文内容仅针对文中提及的MCU型号(DP32G030、PY32F071),若你的机型不符,请勿盲目操作。 | ||
| + | 最后,祝各位业余无线电爱好者通联愉快!GL(Good Luck)! | ||
dtrac_quansheng_uv-k5-k6-k1.1775130140.txt.gz · 最后更改: 由 bg6ud
