Download Hyperborea

Free and open source — no account required. The download is a small ZIP containing the Hyperborea APK and an installer script you run from your computer.

Latest release: v1.2.25 · build 10225

- **V2 treadmills: another step toward reliable belt start on the controllers that were refusing it.** On the treadmill controllers that don't self-start (the iFIT-LargeX / NordicTrack T Series 9, firmware 1.19.x), the console is put into its required locked idle state at connect — but it has to be released from that state *before* the workout is commanded, which the app wasn't doing; it drove the belt to running while the console was still idle-locked, and the controller rejects that. The start sequence now releases the idle lock first, then sends the pre-workout settings, then starts the belt — matching the order the equipment's own software uses. Controllers that self-start are unaffected.
- **Speed on treadmills that report their actual belt speed is now shown directly.** If a treadmill reports its real belt speed, that reading is now authoritative; the commanded target speed is only used as a stand-in for controllers that don't report actual speed. Previously the two could alternate, making the speed shown in Zwift jitter between the real and target values on any console that reported both.
- **Correct data on gear-equipped bikes.** Bikes that report a gear value send it as a wider field than the app accounted for, which shifted every reading after it onto the wrong bytes — so power averages, elevation, rower stroke/split figures, and other later fields could read as garbage on those machines. The field is now decoded at its correct width, fixing the alignment.
- **Resistance targets now match the console exactly.** The level→hardware conversion used slightly different rounding than the equipment's own software, so a commanded resistance could land a step or two higher than intended on machines whose maximum doesn't divide evenly. It now matches the console's own conversion.

**Install:** unzip `Hyperborea-v1.2.25.zip` and run `deploy.sh` (Linux/macOS), `deploy.ps1` (Windows PowerShell), or `deploy.cmd` (Windows) with the console reachable over ADB — no root required. The bare `Hyperborea-1.2.25.apk` is for manual `adb install -r -g`.

SHA-256 (`Hyperborea-1.2.25.apk`): `e6b47acddf1a8ec1623a4a5d8d715fa93d8b4a3d82b39566262a75ae8b2509e7`

New to this? Follow the setup guide →