Skip to content

About

MOZA dashboards for wheels such as KS Pro

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Pixelsonly Racing — Moza Dashboards

CI Downloads SimHub + AZOM Conventional Commits Code: GPL-3.0 Dashboards: CC BY-NC-SA 4.0

Custom wheel-screen dashboards for Moza sim racing hardware, designed and built by Pixelsonly Racing. Each dashboard is released on its own, and every release has a ready-to-install .zip on the Releases page.

Dashboards

KSP01 Dark running on a Moza KS Pro wheel

Dashboard Wheel Version Preview Download
Pixelsonly Racing KSP01 Dark Moza KS Pro KSP01 Dark version KSP01 Dark preview Latest KSP01 Dark release
Pixelsonly Racing KSP01 Light Moza KS Pro KSP01 Light version KSP01 Light preview Latest KSP01 Light release
Pixelsonly Racing KSP01 (switchable, experimental) Moza KS Pro KSP01 version KSP01 preview Latest KSP01 release

Which KSP01? KSP01 Dark and KSP01 Light each have a single screen. KSP01 (switchable) has both, Dark first, meant to be switched with a control on the wheel. Switching hasn't worked on our test setup yet, so if it doesn't switch for you, use Dark or Light instead. If you get it working, please open an issue and tell us your setup.

Each download is named pixelsonly-racing-<slug>-v<version>.zip, where the slug names the wheel it is for, for example pixelsonly-racing-Moza-KS-PRO-v0.1.0.zip. It holds one folder named after the dashboard, which contains the .mzdash file, a Resource/ folder and the preview images.

Install: SimHub + AZOM (recommended)

AZOM is an open-source SimHub plugin that drives Moza hardware, including the wheel's LCD dashboard.

  1. Install SimHub 9.12.0 or newer.
  2. Install AZOM by following its install guide.
  3. Fully close Moza Pit House (don't just minimize it). Pit House and SimHub share the same serial port, so they can't both be connected.
  4. Download the dashboard's .zip from Releases and extract it.
  5. Upload the extracted .mzdash file to your wheel by following AZOM's Wheel Files & Dashboard Upload guide.

Install: Moza Pit House

  1. Download the dashboard's .zip from Releases and extract it.
  2. In Pit House's dashboard editor, import the extracted folder (e.g. Pixelsonly Racing KSP01/). Pit House imports the whole folder, which is how it picks up the preview images.

Building from source

Requirements: Python 3.9+ (standard library only) and Node.js, which the tests use to evaluate the dashboards' JavaScript bindings.

python3 dashboards/ksp01/build.py           # writes dist/Pixelsonly Racing KSP01/
python3 scripts/package.py ksp01 0.1.0      # writes dist/pixelsonly-racing-Moza-KS-PRO-v0.1.0.zip
scripts/check.sh                            # every test suite + build and package every dashboard (what CI runs)
scripts/check.sh ksp01                      # the same, for one dashboard (what a release runs)

Layout:

  • generator/: the shared .mzdash writer, value formatters and widget templates.
  • dashboards/<id>/: one folder per dashboard: dashboard.json, build.py, test_build.py, previews/.
  • scripts/: packaging and the check script used by CI.

Adding a dashboard

  1. Create dashboards/<id>/ with a build.py (see dashboards/ksp01/build.py), its tests (including a pinned OUTPUT_SHA256), previews/, and a dashboard.json:

    {
      "name": "Pixelsonly Racing KSP01",
      "slug": "Moza-KS-PRO",
      "wheel": "Moza KS Pro",
      "previews": ["previews/1.png", "previews/2.png"]
    }

    slug goes in the download's file name and must be unique across dashboards. CI enforces this.

  2. Register it with release-please. Add "dashboards/<id>": { "component": "<id>" } to packages in release-please-config.json, and "dashboards/<id>": "0.0.0" to .release-please-manifest.json. scripts/check.sh fails if a dashboard folder and the release config disagree.

  3. Add a row to the table above. For its version badge, copy KSP01's and replace ksp01 in the badge's query and label.

How releases work

  • PRs are squash-merged, and the PR title must be a Conventional Commit with the dashboard id as the scope, e.g. feat(ksp01): add fuel readout or fix(ksp01): correct delta colour.
  • Each dashboard is its own release-please package. Only commits that touch dashboards/<id>/ count toward that dashboard's next release. If a change outside that folder (to generator/, or to a design another dashboard imports) alters a dashboard's output, the same PR must also change something under dashboards/<id>/. Otherwise, no release is cut. Each dashboard's test_build.py pins a hash of its output (OUTPUT_SHA256), so such a change fails CI until the hash is updated, and that update is what releases it. A Release-As: footer on a generator-only commit is ignored.
  • release-please keeps one release PR open that covers every dashboard with pending changes. Merging it creates a separate release per dashboard, tagged <id>-v<version> (e.g. ksp01-v0.1.0). Each starts as a draft because the repo uses GitHub's immutable releases: once a release is published, assets can't be added or replaced. The release-assets workflow builds each dashboard from its tag, attaches the .zip to the draft, then publishes it. If that fails, fix the cause and run release-assets manually with the tag. A published release can't be rebuilt; ship a new patch release instead.

Contributing

Bug reports, dashboard requests and pull requests are welcome. See CONTRIBUTING.md, and please follow the Code of Conduct. To report a security issue, see SECURITY.md.

License

This repository uses two licenses:

  • Code (generator/, scripts/, workflows): the GNU General Public License v3.0. You may use, modify and redistribute it, but redistributed versions must stay open source under the GPL.
  • Dashboards (everything under dashboards/, including each dashboard's build.py, its previews and the .mzdash files in the release downloads): Creative Commons BY-NC-SA 4.0. You may share and adapt them with credit to Pixelsonly Racing, for non-commercial purposes only, under the same license. Selling these dashboards, or anything derived from them, is not permitted.

As an additional permission under section 7 of the GPL-3.0, Pixelsonly Racing permits dashboard definitions under other licenses to import and use the generator. The GPL does not cover the dashboards the generator produces.

Copyright (c) 2026 Pixelsonly Racing.

Trademarks

"Pixelsonly Racing" and the Pixelsonly Racing logo are trademarks of Pixelsonly Racing and are not licensed under the GPL-3.0 or CC BY-NC-SA 4.0. Forks and derivative dashboards must not use the name or logo in a way that suggests they come from, or are endorsed by, Pixelsonly Racing.

MOZA is a registered trademark of Gudsen Technology Co., Ltd. This project is not affiliated with, endorsed by, or sponsored by MOZA.

About

MOZA dashboards for wheels such as KS Pro

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages