ITADN
ELynx/ddf-350-modding
ELynx/ddf-350-modding · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

DumboRC DDF-350 发射机固件修改

ℹ️ 当前支持的固件版本 - 1.1.9 ℹ️

ℹ️ 当前修改版本 - 0.8.1 ℹ️

Hits

版本 0.8.x 目标为长期固件版本 1.1.9

版本 0.8.1

锁定 CH1 至 CH4

当主屏幕上的“锁定”功能启用时,CH1、CH2、CH3 和 CH4 将被“冻结”,即不受影响它们的控制操作的影响。“冻结”值为锁定激活前该通道上的最后一个值。

同时,它们仍可通过(例如)ProgMIX 影响其他通道。

示例:

  • CH2 油门通过 ProgMIX 混合至 CH5,且 CH5 驱动模拟引擎声音模块。
  • 油门扳机处于中立位置,CH2 为 0%。
  • 锁定被激活。
  • 按下油门扳机,但 CH2 值保持在 0%
  • CH5 混合仍然生效,CH5 值上升,模拟引擎声音模块发出轰鸣声。

示例:

  • 配备绞盘的 4WS 车辆。
  • 使用标准功能进行配置。
    • 绞盘通过 Winch Mix 连接至 CH3。
    • 后轴舵机通过 4WS Mix 连接至 CH4。
  • CH1 在中立位置时微调设置为 5%。
  • CH2 在中立位置时为 0%。
  • CH3 在中立位置时为 0%。
  • CH4 在中立位置时微调设置为 -7%。
  • 锁定被激活。
  • 转向、油门和绞盘输入被忽略,值保持在 5% / 0% / 0% / -7%

我特别为冻结值这一想法感到自豪,它使得微调等设置在锁定状态下依然有效,以及我为实现该功能所采用的技巧。

版本 0.8.0

巡航控制 - 油门扳机覆盖

当巡航控制启用时(支持模式 1 和模式 2),且巡航控制油门大于 0% 时,正向拉动油门扳机可使油门值更高。

  • 巡航控制已设置为模式 2(预设值),且预设源为 VR-6。
  • 您启用 CC,并使用 VR-6 将油门设置为 60%。
  • 如果您拉动油门扳机,且超过 60%,油门将相应增加。
  • 如果您松开油门扳机,油门将回到 CC 设置值,即 60%。

在我驾驶过的所有实际车辆中,我发现这种行为非常自然,并且在遥控模型中与现实生活中具有相同的使用场景。这是一种在不改变整体速度的情况下,超越一辆车辆或追赶一辆车辆的方法。

移植自早期版本

EN 和 DE 的改进翻译:

  • 无滚动。
  • 减少歧义。

四节 NiMH 电池的发射机电池显示选项:

  • 范围:4.0 伏特时为 0%,5.6 伏特时为 100%。
  • 将发射机电压报警设置下限降低至 4.1 伏特。

参考表 电压 -> 显示百分比

类型0%100%
4AA4.06.0
2SLP6.08.4
3SLP9.012.6
4NiMh4.05.6
早期版本

版本 0.7.0 从未在较大范围内公开发布。

Version 0.6.0

Version 0.0.4

如何安装

⚠️ 重要提示:发射器对 USB 数据线非常挑剔。即使某根 USB 线能作为手机、电脑等设备的数据线使用,它也可能无法与发射器配合工作。⚠️

症状包括出现“USB 设备错误”或设备的 U 盘未显示。请逐一尝试不同的数据线,直到找到一根可用的为止。

⚠️ 在执行升级之前,请从发射器中取出电池。⚠️

⚠️ 从低于 1.1.5 的固件版本(原版或修改版)升级 ⚠️

如果您的当前固件版本低于 1.1.5(原版或修改版),您需要首先更新到原版 1.1.5 版本。

具体流程取决于您当前的版本。请参阅官方视频和网站以获取详细操作说明:

Official 1.1.5 Installation Guide on YouTube

官方 DumboRC 网站,提供 DDF-350 的固件

一旦成功更新到 1.1.5,请返回此处。您无需再次经历完整的启动更新流程。

升级 1.1.9 原厂 <-> 修改版或升级修改版版本

⚠️ 重要提示:始终使用干净的原始 1.1.9 固件文件开始打补丁,DDF.bin。请勿重用被先前修改版发布所修改的文件。⚠️

  1. 从 1.1.9 固件文件开始,DDF.bin
    • ⚠️ 始终将补丁应用于干净的原始二进制文件。⚠️
      • 将补丁应用于之前已打过补丁的二进制文件_会_导致故障。
    • 此模组适用于 1.1.9 下载版本。
  2. 备份官方 1.1.9 文件:
    • DumboRC 会从他们的网站上移除旧版本的固件。如果您想恢复到特定版本,或者我未能及时支持新版本,您获取原始文件的唯一可靠来源就是您的备份。
  3. 从这里](https://fusoya.eludevisibility.org/lips)下载工具 LunarIPS:
  4. 下载最新的 .ips 文件:
    • 访问最新发行版
    • 在“Assets”下,找到并下载 .ips 文件。
  5. 使用 LunarIPS 将我的“Romhack”应用于干净的原始 1.1.9 二进制文件:
    • LunarIPS 会“就地”修改二进制文件。请确保您的备份保持完整。
    • 确保您将其应用于 .bin 文件,而不是 .zip
    • 确保您将其应用于固件文件,而不是任何 boot 文件。
    • 如果您在 LunarIPS 中看不到 .bin 文件,请将过滤器更改为 all files / *.*
  6. 按照官方说明刷入修改后的二进制文件。为了方便起见:
    • ⚠️ 从您的发射机中取出电池。⚠️
    • 使用_具有数据传输功能_的 USB 线将发射机连接到计算机:
  • ⚠️ 发射器非常挑剔;并非所有线缆都能正常工作。请尝试多条线缆直到找到可用的一条。
    • 按住 CH3 和 CH4 按钮,然后使用电源按钮打开发射器。
    • 屏幕会闪烁“黑色”,你会听到一声提示音。松开按钮。
    • 在您的计算机上,会出现一个新的 USB 闪存盘。
    • 运行官方 .bat 文件以刷写镜像:
      • 手动复制_不_起作用,因为 Windows 会创建“System Volume Information”,从而干扰该过程。官方脚本会处理此问题。
    • .bat 文件完成后,“安全弹出”闪存盘。
    • 拔掉发射器。
    • 重新连接发射器或插入电池。
    • 打开发射器。新固件将自动刷写,您应该能看到变化。
  1. 享受吧!请给此仓库点个星或“关注”以获取更新。这些数字对我意义重大,并让我知道我的工作得到了社区的认可。
  2. 如果您觉得这有用,请考虑通过 Ko-Fi 或 GitHub Sponsorship(一次性或每月)进行支持。

已知限制

  1. 四节镍氢电池 0% 阈值为 4.0V 并不理想:
    • 它与四节 AA 电池及最低报警电压一致。
    • 发射机在低于 4.0 伏特时可能无法完全正常工作。
    • 最低电压设置似乎为 4.1 伏特,由引导加载程序控制。我不会修改引导加载程序(初始化发射机的部分)。

安全、保修与责任

我不提供安全保证,并对任何损坏不承担责任。

我在自己的发射机上测试所有内容,因此我有“切身利益”。然而,我无法预测所有情况。

避免在重要活动的前一天进行升级。

开发详情

翻译

在 ChatGPT 的帮助下,我开发了用于导出和插入 UTF-8 字符串的 Python 脚本。虽然某些字符串过短、无法识别或偏移量不正确,但该过程相对顺利。

我建议创建或修改“翻译”文件,而不是直接编辑原始二进制文件。在原始二进制文件中跟踪更改很快就会变得混乱。

当前的 EN 翻译有 98% 令人满意。DE 翻译移除了滚动;欢迎提出建议。我推测 CN 翻译是好的。如果您想改进 FR,请创建一个 issue,我们将协作。

逻辑

从版本 1.1.3 开始,我开始公开发布我的 Ghidra 项目。这些项目允许您跟踪我的更改或协作进行自己的更改。

它仍然不是基于 Git 的,因为 Git 取代了常见的服务器存储。因此,如果你想做某些事情,请在 issues 中告诉我,我会确保上传我的最新更改,并暂停以允许你的更改通过。

你需要 Ghidra。我使用 Ghidra 11.3.2 Public

项目是在较早版本的 Ghidra 上启动的,将无法打开较新版本的 Ghidra。请相应地更新。

你需要将此仓库的 ./ghidra_repositories 文件夹设置为 server/server.conf 中的 ghidra.repositories.dir

你需要在 server/server.conf 中禁用身份验证。

  • 找到 wrapper.app.parameter.1=-a0,注释包含 # 的行,将下一个参数中的 .2 更改为 .1

  • 对我来说,它现在看起来像

#wrapper.app.parameter.1=-a0
wrapper.app.parameter.1=${ghidra.repositories.dir}

你可以在 support/launch.properties 中将用户名设置为 user.name / VMARGS=-Duser.name=。或者默认情况下,你的用户名是操作系统用户名。

将你的用户名添加到此仓库的 ghidra_repositories/users 中,例如 YourName:*:*。我很荣幸能在那里不孤单。

我在 console 模式下运行服务器,因为我并不打算将其用作实际的网络服务器。

服务器运行后,启动 Ghidra 工具本身。

点击 "File","New project","Shared Project",服务器名称 "127.0.0.1"(我假设你在控制台中本地运行服务器),"Existing Repository","ddf-350-113"。

选择用于本地存储文件的文件夹。

要开始编辑,右键点击 .bin 文件并执行 "Check Out"。

当你进行了一些更改并希望保存时,执行 "Check In..."。

当你完成并希望共享更改时,执行 "Undo Checkout"。然后关闭 Ghidra,然后用 Ctrl-C 停止 Ghidra 服务器。

之后,在 git 中提交所有文件,推送。

要测试更改,请将 .bin 文件以“Raw Binary”格式导出到 translation 文件夹。如果你需要翻译,请使用 input.bin,否则只需使用 DDF.bin

要为 input.bin 添加翻译,请运行 import_strings.py

运行 update.bat,这只是一个带有详细翻译的官方更新脚本。流程与往常一样。

如果你刷入了错误的数据,只需再次刷入正常版本即可。

Ghidra scripts

./ghidra_scripts 添加到 Ghidra 脚本管理器中,以从本仓库获取脚本。

rgb888_to_rgb565_color_visualizer.py - 根据传入的值设置对 RGB888_to_RGB565 的调用背景颜色。函数名称必须手动设置,应在 1.1.9 二进制文件中设置。

Feedback and Suggestions

如果你发现翻译问题或更好的措辞选择,请告诉我。我的主要目标是消除滚动,这曾导致我眼睛疲劳和头痛,并更新过时的术语。

对于反馈,请创建一个 issue 并附上图片和你建议的文本。

我与 DUMBORC、RadioLink 或任何相关公司没有关联,也未获得其认可。

所有固件和硬件均为其财产。我只分发我的修改,这符合衍生作品的概念。