[!IMPORTANT] 非官方 MOZA SimHub 插件现已更名为 AZOM。
AZOM
SimHub 的 MOZA 桥接器 — 一款用于 MOZA 模拟赛车硬件的非官方开源 SimHub 插件。
[!NOTE] MOZA 是 Gudsen Technology Co., Ltd. 的注册商标。本项目与 MOZA 或 Gudsen Technology 无关联、未获其认可或赞助。所有商标归其各自所有者所有。

一台运行 ATSR 并配备定制 Sparco 轮圈的 CS Pro
一款为您的 MOZA 硬件提供完整替代软件的 SimHub 插件。
基于 Boxflat 的出色工作,即 Linux MOZA 控制软件。
[!WARNING] 如果您 赞助未来的开发工作,资金将仅用于购买更多 MOZA 硬件。
为什么存在这个项目
MOZA 制造了出色的模拟赛车硬件,但其配套软件 — Pithouse — 仅支持 Windows。Linux 用户没有官方方式来管理 LED 效果或将遥测数据流式传输到方向盘仪表盘。另一方面,SimHub 可在 Linux 上运行(通过 Proton/Wine),为跨平台硬件控制打开了大门,并内置遥测支持。
此插件将 MOZA 硬件向更广泛的 SimHub 世界开放。 使用 ATSR-EVO 插件驱动您的 LED。 将 SimHub 中数千个数据点中的任意一个映射到方向盘仪表盘上进行显示。 其目标是通过提供跨多个平台运行的工具,将 MOZA 设备的功能扩展至更广泛的受众。


[!IMPORTANT] 在使用此插件之前,请关闭 Pithouse。 两个应用程序通过同一串行端口与 MOZA 硬件通信,无法同时打开。SimHub 连接之前,必须完全关闭 Pithouse(而不仅仅是最小化)。
[!CAUTION] 风险自负。 本软件直接与能够产生高扭矩输出的力反馈硬件通信,这可能导致严重的人身伤害或财产损失。本插件按“原样”提供,不提供任何明示或暗示的保证。作者对本软件使用造成的任何硬件损坏、人身伤害或其他损失不承担任何责任或义务。使用本插件即表示您承认通过第三方软件控制力反馈设备的固有风险,并自行承担所有后果。
由 Simhub 管理的自定义效果
https://github.com/user-attachments/assets/f5e77a1b-4b85-438c-957e-18c45d22a216
https://github.com/user-attachments/assets/94ad3e6a-9ae0-46a2-8e2f-4f4343326414
感谢一位慷慨的 alpha 测试者提供了这些自定义特效和仪表盘视频。
安装
- 从 Releases 页面下载最新的
MozaPlugin_<version>.zip。 - 将
MozaPlugin.dll解压到 SimHub 安装目录。
Simhub 默认为
C:\Program Files (x86)\SimHub\
重启 SimHub — 该插件将显示在 Settings > Plugins 下,名称为 "AZOM"。
开发版本。 每个开放的 pull request 都会在 releases page 上发布按 commit 划分的预发布版本。更简单的方法:在插件中打开 About > Updates,并在 release-channel 下拉菜单中选择该 PR 以安装并跟踪它。可能会出现 bug 或功能损坏 — 如果需要可靠的版本,请使用上述稳定版。
设备设置: 连接您的硬件并重启 SimHub。该插件会自动检测已连接的设备(方向盘型号、仪表盘)并部署匹配的设备定义。插件设置面板中的横幅会提示您重启 SimHub,之后设备将出现在 Devices 下,准备添加。需要 SimHub 9.11.8+。
This Plugin is Better With ATSR-EVO
ATSR-Hub EVO 使用自定义 LED 框架,支持高级遥测以及由输入驱动的特效和动画。以极其先进的方式驱动您的方向盘 LED。
Discord
加入 Discord 如果您想讨论此插件的功能或开发。
Videos
|
另一段视频,提供西班牙语和英语配音 |
功能
SimHub 设备集成
MOZA 方向盘和仪表盘作为原生 SimHub 设备注册,显示在 SimHub 的 Devices 部分。这允许通过 SimHub 的效果管道完全控制您的 LED——无需单独的遥测模式。

- 按型号的设备定义 — 每个新连接的轮盘都会获得一个包含 LED 布局的设备定义。定义会在首次检测到时自动部署——只需连接您的硬件,重启 SimHub,然后添加该设备。需要 SimHub 9.11.8+
- LED 特效系统 — 使用 SimHub 完整的按钮和遥测特效配置界面(RPM 指示器、旗帜、限速器动画、脚本特效等)来控制您的轮盘和仪表盘 LED
- 按游戏的设备配置文件 — SimHub 的设备配置文件系统会按游戏保存和恢复 LED 特效配置
- 型号感知连接 — 只有与当前连接的轮盘匹配的设备才会报告为已连接。更换轮盘时,正确的设备会自动激活
- 独立的轮盘与仪表盘设备 — 每个设备独立注册,拥有自己的配置文件和 LED 配置
- 独立 LED 特效 — SimHub 的按 LED 特效在“组合”和“仅独立 LED”(独占)模式下均可到达硬件。虚拟驱动程序将 RPM + 按钮 LED 暴露为一条连续的灯带(先遥测,后按钮),以便按 LED 特效可以针对整个序列;旋钮环 LED 可通过 Extra/编码器通道寻址
- 轮距环境 LED — R21/R25/R27 级轮距注册为独立的 "MOZA Wheel Base" SimHub 设备,暴露 18-LED 环境光环。从 SimHub 的效果管道驱动它,或使用设备页面设置指示状态、亮度、待机动画(Constant/Breath/Cycle/Rainbow/Flow)、睡眠模式 + 超时,以及启动/关闭颜色。R9/R12 底座未配备 LED 灯带,且不暴露此设备
- 每轮空闲与睡眠效果 — 每个轮子的设备页面包含 RPM / Buttons / Knobs / Sleep 选项卡,用于硬件自身的板载空闲动画(Constant, Breathing, Color Cycle, Rainbow, Sand Flow, RGB Pulse)、静态 RPM/旗帜/旋钮颜色,以及睡眠灯模式 + 颜色 + 待机超时。当 SimHub 未驱动效果时(游戏关闭、遥测暂停),这些效果在轮子上本地播放。睡眠设置在轮子级别持久化,而非按游戏设置
- 360hz 和 LFE 支持 — 支持需要原生控制 SDK 的游戏(iRacing)

该插件注入虚拟 LED 驱动程序,使 SimHub 的效果 UI 将每个设备显示为已连接,尽管 MOZA 使用专有的串行协议。计算出的 LED 颜色每帧都会转发到硬件。

SimHub 包含许多可供选择的效果,并且该插件支持任何针对特定设备的自定义效果。
已测试:
- 旧协议方向盘(ES 系列)
- 多个基座
- 新协议方向盘(Vision GS / GS V2P / TSW / KS Pro / CS Pro / FSR V2)
- MOZA 手刹
- Universal Hub(端口枚举 + 子设备路由)
- AB9 主动换挡器(模式 + 手感滑块)
- 仪表盘遥测 + 屏幕更新(已在 Vision GS、CS Pro、KS Pro 和 FSR V2 上确认)
- 独立仪表盘(CM1 和 CM2 Racing Dash,独立 USB 或桥接在方向盘基座之后)
待定:
- 以下列表中未包含的旧款方向盘
仪表盘支持
配备 LCD 仪表盘的方向盘(已确认支持 Vision GS、CS Pro、KS Pro 和 FSR V2;其他型号可能也支持)可以通过 MOZA 的多层二进制遥测协议接收来自 SimHub 的实时遥测数据——包括速度、转速、档位、圈速、燃油、轮胎磨损等。
- 自动检测仪表板文件夹。 该插件会扫描您的 Pithouse 安装目录以查找
.mzdash源文件夹;轮子设备页面上的“自动检测”按钮可一键选取。子文件夹会被递归搜索,因此下拉菜单会显示您在仪表板构建器中创建的所有布局。 - 热重载。 在仪表板下拉菜单中选择不同的布局,插件将重新协商轮子的层级定义并开始流式传输新的通道集,而无需重启 SimHub。如果您选择轮子上已加载的布局,插件会检测到并跳过重新协商。
- 通道映射。 轮子设备页面有一个“通道映射”展开项,用于覆盖驱动每个仪表板通道的 SimHub 属性。输入 3 个或更多字符以搜索实时 SimHub 属性列表(子字符串,不区分大小写)。留空则使用插件内置的默认映射。
- 字符串通道。 支持包含文本字段(车手姓名、会话类型、位置标签等)的仪表板,并编码为 UTF-8。
- 固件时代。 选项卡中有一个“轮子固件时代”覆盖项(自动 / 2024 / 2025 / 2026)。
- 测试图案。 “发送测试图案”按钮会循环遍历所有已映射通道的已知值,以便您在未启动游戏的情况下验证仪表板是否正确连接。
重要注意事项:
- 不支持 SimHub 仪表盘。 MOZA 方向盘通过固件使用 MOZA 专有的仪表盘格式来渲染其 LCD。此插件仅将游戏数据流式传输到该格式——它无法将 SimHub 仪表盘模板、HTML 叠加层或自定义布局推送到屏幕。请继续使用官方 MOZA 仪表盘构建器进行布局工作。
每款游戏的配置文件
所有设置均通过 SimHub 的配置文件系统按游戏存储,并在您启动不同游戏时自动切换。配置文件选择器位于插件面板的顶部。
语言
插件界面已本地化为 English, Deutsch, Ελληνικά, Español, Français, Italiano, 한국어, Norsk bokmål, Русский, Tiếng Việt, and 简体中文(11 种语言)。默认情况下,插件遵循 SimHub 自身的语言设置(SimHub 中的 Settings > General > Culture);如果 SimHub 设置为插件尚未提供的语言,则回退到操作系统 UI 语言,然后是英语。插件选项卡中的 Language 选择器允许您覆盖该自动检测——如果您希望 SimHub 使用一种语言,而 MOZA 面板使用另一种语言,这将非常有用。
所有翻译都直接嵌入到 MozaPlugin.dll 中——没有按文化划分的卫星程序集,也没有额外的文件需要部署。翻译位于 Resources/Strings.<culture>.resx。欢迎提交添加新语言的 PR——请参阅 DEVELOPMENT.md 中的 i18n 部分了解四步配方。
硬件配置
插件面板(设置 > 插件 > AZOM)提供了对轴距、方向盘、手刹、踏板和轮毂设置的读写控制——包括旋转角度、FFB 强度、阻尼、轴距/游戏效果、FFB 均衡器、输出曲线、性能输出模式、拨片/离合器/旋钮/摇杆模式、手刹模式、踏板校准以及轮毂端口枚举——与 Pithouse 提供的功能一致。选项卡会根据连接的设备自动显示或隐藏(Base、Wheel、Handbrake、Pedals、AB9 Shifter、mBooster、Hub、Options、Wheel Files、SDK、About)。About 选项卡会输出实时的方向盘身份信息、仪表盘状态和会话信息,用于故障报告,默认情况下序列号会被隐藏。
Universal Hub 拥有自己的选项卡,列出每个已连接的端口及其连接的设备,每 2 秒轮询一次。
该插件还会在 SimHub 重启之间记住最后使用的轴距和 AB9 COM 端口,在睡眠/恢复后恢复串行连接,并处理方向盘热插拔(在会话中途更换方向盘,一旦新方向盘报告其型号,设备定义会自动切换)。
换挡冲击。 每次 SimHub 报告的换挡时,都会通过方向盘底座触发一个触觉脉冲,让每次换挡时通过方向盘感受到物理上的“咔哒”声。可在 Base 选项卡中配置。 支持可配置的防抖和中立抑制选项。
AB9 主动换挡器
为 MOZA AB9 主动换挡器提供完整的配置支持,当连接该设备时,会在其专属的“AB9 Shifter”选项卡下显示:
- 机械布局 — 5+R、6+R(两种模式)、7+R(两种模式)或 Sequential。
- 手感 — 机械阻力、弹簧、自然阻尼、自然摩擦以及最大输出扭矩限制,每项均配有 0–100 滑块。
- 发动机振动 — 用于发动机驱动振动效果的强度(0–100)和频率(0–200 Hz)。
- 换挡振动 — 每次换挡时的脉冲强度(0–100)。
mBooster 踏板
当连接一个或多个 MOZA mBooster 踏板单元时,其踏板触觉反馈将拥有独立的 mBooster 选项卡。每个单元会被分配一个角色(油门、刹车或离合器),插件会根据实时遥测数据在主机端渲染踏板触觉效果。效果卡片上方的 踏板轨迹 迷你图绘制了踏板在过去 5 秒内的位置,为下方效果的实际触发时机提供视觉参考:
- ABS — 在 ABS 激活时产生脉冲,具有固定的、用户设定的频率(5–30Hz)、强度(0–100%)和平滑度(0–100% — 脉冲调制深度:100% 为平滑的嗡嗡声,0% 为更尖锐、更断续的脉冲)。测试 切换开关用实时刹车位置替代 ABS 激活,以便通过踩下踏板进行预览,并以实时滑块值无限期运行。
- Engine Vibration — 只要发动机转速高于怠速,就以固定的、用户设定的频率(60–200Hz)和强度(0–100%)产生持续振动。与 ABS 相同类型的 测试 切换开关。
- Road Texture — 行驶过程中(游戏运行且车辆实际移动)的路面振动,其强度(0–100%)由路面粗糙度代理值(垂直底盘 G 力 — SimHub 没有通用的悬架行程遥测数据)实时缩放,以跟踪实际的颠簸而不是以恒定水平运行,平滑度(0–100%)直接作为原始百分比传输 — 固件内部对实际噪声信号进行整形,该信号是从真实的 Pit House 捕获中逆向工程得出的。与其他两个相同的 测试 切换开关模式。
- Lockup — 当车轮在重刹车下锁死时逐渐增强,具有固定的、用户设定的频率(10–100Hz)和强度(0–100%)。检测(刹车 + 速度 + 车轮滑移启发式)与之前保持不变;只有频率变成了固定滑块。测试 切换开关用实时刹车位置替代车轮滑移检查,以便通过踩下踏板进行预览。
- Threshold — 制动阈值上的脉冲包络,包含四个滑块:触发输入电平(50–100% — 触发效果的制动位置;释放点固定在其下方 30 个点处)、频率(5–100Hz)、强度(0–100%)以及振动衰减(0–100% — 脉冲在初始爆发后衰减的程度:低衰减保持接近满强度,高衰减则降至短促尖锐的滴答声)。与其他项相同的 Test 切换模式,用实时制动位置替代触发检查 — 测试遵循与真实驾驶相同的触发阈值,因此除非您实际按下超过该阈值,否则不会触发。
所有五个 mBooster 效果现在都在 Effects 部分拥有各自的卡片。
Pedal Feel 部分包含一个 Start/End of Travel 滑块(一个真实的双拇指范围滑块,3.8–49.7mm,两端之间的间隙限制在 3.8–32.1mm — 此滑块向设备写入真实的校准数据,通过逆向工程 Pit House 捕获数据得出),两个 End Stop Stiffness 滑块(Front Limit / End Limit,1–10 — 踏板在行程每端感觉到的硬度,同样是通过逆向工程 Pit House 捕获数据得出的真实硬件写入),一个 Deadzone 滑块(踏板行程起始处的 0–40kg),一个 Max Force 滑块(0–200kg — 设置输入曲线的 100% 点位置,适用于从未被按到理论最大值的踏板),以及第二个可拖动的 5 点曲线 — 一个输入曲线,用于重塑踏板的手感。Deadzone、Max Force 和输入曲线仅在主机端生效,在任何其他组件看到踏板位置之前应用,并且不影响下方的输出曲线。
输入曲线和输出曲线都在样条曲线上显示一个实时圆点(带有指向坐标轴的引导线),以跟踪踏板被按下时的状态。
A Sim Input Mapping 部分(Pit House 风格)包含一个 Sensor Output Ratio 滑块(混合 mBooster 的角度传感器和测力传感器读数)、一个 Max Threshold (kg) 滑块(输出达到 100% 时的测力传感器力值,通过逆向工程从真实的 Pit House USB 捕获数据中得出——未经 Moza 确认),以及一个输出曲线(具有 Linear/S-Curve/Exponential/Parabolic 预设,与 Pedal Feel 相同),用于塑造实际发送到游戏的内容。与插件中的其他所有曲线不同,此曲线的节点也可以水平拖动——将最后一个节点向左拖动,即可在 100% 输入之前达到 100% 输出,而无需使用此曲线不存在的硬件断点命令(插件会在真实线控命令支持的固定断点处重新采样形状)。
每个设备也可用实验性校准部分,包含方向/最小/最大原始范围以及读取/应用按钮。
诊断与串行捕获
“关于”选项卡包含一个用于错误报告的 Serial traffic capture 部分:
- Start capture 在内存中以毫秒级时间戳记录每个 TX/RX 串行帧(轴距 + AB9 管道)。捕获期间不会写入磁盘,且每次 SimHub 重启时缓冲区都会被清空。
- Stop capture 内联显示捕获的帧(十六进制转储,每行一帧)并解锁导出按钮。方向标签(
T/R)和管道标签(wheelbase/ab9)便于与协议文档进行关联。 - Export bundle (ZIP) 写入一个带时间戳的归档文件,包含:
manifest.txt— 捆绑包头部(插件版本、操作系统、捕获摘要)serial-capture.txt— TX/RX 帧日志diagnostics.txt— 关于选项卡诊断报告的快照(身份、仪表板状态、会话信息)moza-log.txt— 插件自启动以来发出的所有[Moza]日志行(从进程内MozaLog环形缓冲区获取,因此刷新频率和 SimHub 日志文件位置无关紧要)
- Copy capture to clipboard 复制帧日志而不导出文件。
在报告协议错误或意外设备行为时使用此功能 — 将 ZIP 附件添加到问题中,维护者将拥有复现所需的一切。
SimHub Properties
该插件公开了这些属性,供在 SimHub 仪表板和叠加层中使用:
| 属性 | 类型 | 描述 |
|---|---|---|
AZOM.BaseConnected | bool | 底盘连接状态 |
AZOM.McuTemp | double | MCU 温度(°C 或 °F,取决于温度单位设置) |
AZOM.MosfetTemp | double | MOSFET 温度(°C 或 °F,取决于温度单位设置) |
AZOM.MotorTemp | double | 电机温度(°C 或 °F,取决于温度单位设置) |
AZOM.BaseState | int | 底盘状态 |
AZOM.FfbStrength | int | FFB 强度(%) |
AZOM.MaxAngle | int | 最大转向角(度) |
AZOM.HidConnected | bool | 是否正在读取设备 HID 表面(实时输入可用) |
AZOM.SteeringAngle | double | 实时转向角(度)(0 = 中心,± = 各锁止方向);在已知最大角度前为 0 |
AZOM.SteeringPosition | double | 实时转向值 0–100(0 = 完全锁止,50 = 中心,100 = 完全锁止);未知时为 -1 |
AZOM.Throttle | int | 油门踏板位置(0–100) |
AZOM.Brake | int | 刹车踏板位置(0–100) |
AZOM.Clutch | int | 离合器踏板位置(0–100) |
AZOM.Handbrake | int | 手刹位置(0–100) |
AZOM.LeftPaddle | int | 左侧模拟拨片位置(0–100) |
AZOM.RightPaddle | int | 右侧模拟拨片位置(0–100) |
AZOM.CombinedPaddle | int | 组合模拟拨片轴位置(0–100) |
AZOM.Ab9Connected | bool | AB9 主动换挡器存在 |
AZOM.Ab9Layout | string | 当前配置文件的 AB9 机械布局:5+R Layout 1、6+R Layout 1、6+R Layout 2、7+R Layout 1、7+R Layout 2 或 Sequential |
这些输入属性直接从设备 HID 表面填充,因此即使没有游戏运行,它们也会实时更新。
SimHub 操作
该插件注册了这些操作,可绑定到 SimHub 的 Controls and events(或仪表板控件)下的方向盘/控制器按钮。它们更改与插件 UI 中滑块/开关相同的设置,立即推送到硬件,并持久化到当前配置文件。
每个 step 设置有四个操作:…Up / …Down 应用精细步进,…UpCoarse / …DownCoarse 应用粗步进。值会限制在滑块范围内。
| 操作 | 范围 | 精细 | 粗 | 效果 |
|---|---|---|---|---|
AZOM.FfbStrengthUp / …Down / …UpCoarse / …DownCoarse | 0–100% | ±5 | ±10 | 方向盘 FFB 强度 |
AZOM.TorqueUp / …Down / …UpCoarse / …DownCoarse | 50–100% | ±5 | ±10 | 方向盘扭矩限制 |
AZOM.RotationUp / …Down / …UpCoarse / …DownCoarse | 90–2700° | ±90° | ±180° | 转向旋转(最大角度) |
AZOM.Ab9EngineIntensityUp / …Down / …UpCoarse / …DownCoarse | 0–100 | ±5 | ±10 | AB9 发动机振动强度 |
AZOM.Ab9EngineFrequencyUp / …Down / …UpCoarse / …DownCoarse | 0–200 Hz | ±10 | ±20 | AB9 发动机振动频率 |
AZOM.Ab9GearShiftIntensityUp / …Down / …UpCoarse / …DownCoarse | 0–100 | ±5 | ±10 | AB9 换挡振动强度 |
AZOM.DisplayBrightnessUp / …Down / …UpCoarse / …DownCoarse | 0–100% | ±5 | ±10 | 方向盘屏幕显示亮度 |
| 操作 | 效果 |
|---|---|
AZOM.DisplayBrightness0 … AZOM.DisplayBrightness100 | 将方向盘屏幕显示亮度设置为固定级别(0–100%,步进为 10) |
AZOM.WorkModeOff | 关闭轮基工作模式(使轮基进入待机状态) |
AZOM.WorkModeOn | 开启轮基工作模式(正常激活状态) |
AZOM.Ab9LayoutNext | 将 AB9 换挡器切换到下一个机械布局(循环切换) |
AZOM.Ab9LayoutPrev | 将 AB9 换挡器切换到上一个机械布局(循环切换) |
AZOM.Ab9Layout5R1 / …6R1 / …6R2 / …7R1 / …7R2 / …Sequential | 直接设置 AB9 机械布局 |
AZOM.DashboardNext | 将方向盘显示的仪表盘切换到下一个已启用的插槽(循环切换) |
AZOM.DashboardPrev | 将方向盘显示的仪表盘切换到上一个已启用的插槽(循环切换) |
AZOM.DashboardTelemetryToggle | 切换当前方向盘页面的仪表盘遥测开/关 |
AZOM.DashboardTelemetryOn | 启用当前方向盘页面的仪表盘遥测 |
AZOM.DashboardTelemetryOff | 禁用当前方向盘页面的仪表盘遥测 |
AZOM.DisplayToggle | 切换方向盘屏幕开/关(记忆开启时的亮度,重新开启时恢复该亮度) |
AZOM.TestModeToggle | 切换当前方向盘页面的遥测测试模式(合成信号扫描) |
AZOM.ClearLeds | 熄灭所有方向盘和仪表盘 LED |
AZOM.CalibrateCenter | 重新校准轮基中心(与“校准中心”按钮相同——触发时请将方向盘保持在物理中心位置) |
从源码构建
请参阅 DEVELOPMENT.md 获取构建说明(Windows 与 Linux 交叉编译)、CI/CD 流水线详情以及完整的架构参考。
协议参考:docs/protocol/。USB 捕获指南:docs/usb-capture.md。SimHub 插件 API 说明:docs/simhub.md。
