In a recent article, Eric touched upon auto incline within Zwift and at the end of the article touched up how getting incline simulation was possible using a 3rd party app called QZ.
The incline simulation topic using QZ has caused a fair amount of confusion with some misinformation being published, so I thought I would clear up any confusion with an in-depth piece on QZ and all you can do with it within the running arena of Zwift.
What is QZ?
QZ is a 3rd party app developed by Roberto Viola (download in the Apple Store for $4.99 or Google Play for $5.99). Frustrated after purchasing a treadmill only to find it wouldn’t connect to Zwift, Roberto designed an app that would bridge the BT signal being transmitted by his treadmill and send it to Zwift.
For an in-depth interview with Roberto, click here to listen to his interview with Ian Hannah where he shares his background and the history of QZ, including where the name comes from.
QZ has evolved massively over the years. From its humble beginnings of connecting Roberto’s treadmill, it now covers a range of exercise equipment including turbo trainers, x-trainers, and rowing machines to name but a few. Recent innovations include Virtual Gearing, which has caused excitement in the cycling world since it opens up this feature to many indoor trainers not capable of doing it natively in game (such as the entire Garmin/Tacx range).
But let’s get back to running and look at the main features that QZ can bring to your running.
Auto Incline
Going by many other names such as gradient simulation, incline control, etc, the ability to have the treadmill adjust the incline to match the in-game course was and still is to some extent the number 1 requested feature. Until the release of the Wahoo Kickr Run this was a feature that couldn’t be done natively. However, it’s a little-known fact that every time the gradient changes whilst running in game, that gradient is transmitted via Bluetooth! This is where QZ is able to capture that data and send it to your treadmill for it to adjust its incline.
There are two ways to do this and which method you use depends on your equipment and whether you have an active Zwift subscription.
Method 1
To use this method, you need an Android device and an active Zwift subscription. There’s no difference between a running or cycling subscription, it’s simply a Zwift subscription. So if you currently have a subscription that you use for cycling, you’re good to go.
Currently this version only works on Android, and has to be a different device to what you are running Zwift on. The device on which you run Zwift can be Apple, Android, Windows, etc, but QZ must be run on an Android device. I’m sure this will change over time but Roberto spins multiple plates and receives over 400 emails daily for support and prioritises helping users over development of new features.
What this method does is simulate your treadmill being the Wahoo Kickr Run, fooling Zwift into thinking your treadmill has the ability to be controlled natively. This opens up a new box on the pairing screen to pair gradient control. Using this method, you get the popup gradient display under the central HUD which displays the current gradient and you can see how far you’ve progressed up that hill!
The full user guide can be seen here. Skip to the line in bold titled only on Android with version 2.18.4 and above.
Method 2
Other than the cost of the QZ app, this method is free, as you don’t need an active Zwift subscription. And if you are an iOS user only, then you’re in luck as you can run QZ on your device for this method. This method also runs on Windows and Mac. In fact, you don’t need a spare device as using this method you can run QZ on the same device on which you are running Zwift. (You’ll probably want to run it on a separate device however so you can see both QZ and Zwift at the same time.) This method requires you to enter your username and password into QZ so that the app can access the API’s of Zwift in order to gather the incline data. Rest assured, however, that this login information along with every piece of data collected by QZ is only stored locally. No user data is sent to a server or anywhere in fact.
This version of auto incline comes with a couple of minor issues, the first being that it can only poll for the current gradient every 5 seconds. Any less and it causes major issues. What this means is that as you hit the base of a hill there’s a slight delay before the treadmill reacts. Likewise, when you crest the hill you get up to 5 seconds longer before it turns downwards. This means it’s slightly less accurate than method 1, but it’s barely noticeable.
Another minor issue is that because Zwift doesn’t know you have auto incline, you don’t get the gradient display in the HUD.
Heart Rate Controlled Speed
A little known and vastly underused feature of QZ is the ability for it to control your treadmill speed and incline based on your heart rate. Many of you will use zones for your training, often running to keep your heart rate in a specific zone. QZ can do this for you. By telling the app your max HR you can then ask the app to control the speed and elevation so that you stay in this zone. You can adjust the % of your heart rate max so that the QZ zones match the coloured zones of Zwift, too.
When testing this feature with Roberto many months ago I found that when I hit a decent gradient my HR would rocket through the zones quicker than QZ could slow the speed and instead of keeping me in Zone 2 I would sail through to Zone 4. The net effect would be QZ would then slow the treadmill down to almost a walk to compensate so it felt like I was forever speeding up and slowing down. Roberto then developed the app so that it responds much quicker and now when you hit a gradient it slows the treadmill down before waiting for your HR to go outside of your zone. And then as you crest the hill it speeds back up again. This feels not too dissimilar to how the Wahoo Kickr Run controls speed based on your position on the treadmill.
This gives a far more stable experience where your HR remains fairly constant throughout. You can of course turn auto incline off so that your treadmill doesn’t simulate hills, in which case QZ will control the speed only. Perfect for those who need to do that long zone 2 run.
Workout Simulation
Another hotly requested feature is the ability to have Zwift control speed and incline based on a workout you are doing. Currently it doesn’t do this as when Zwift displays the target speed and incline on screen it doesn’t actually transmit this information, it displays it only.
However, you can ask QZ to do this for you. As Zwift has no run workout editor, you’ll need to create a workout using a workout editor. Here is a link to one which gives you instructions on creating a workout and how to import it to Zwift.
If you import this workout to Zwift and also upload it to QZ you can then simultaneously start both. Your workout is then running on Zwift with displays for speed and incline, but when each block changes QZ will adjust the speed and/or incline to match. Obviously things such as pausing, skipping a block and adjusting the bias of the workout add a layer of complication.
But in the absence of a native workout editor this is as good as it gets.
Wrapping It Up
So that is all things QZ and running. I’ve been using QZ since 2021, having had the same issue as Roberto in that I bought a treadmill that would only talk to its own app. I’ve also used auto incline since then, back when it was so hard to get working. After knowing Roberto for 4 years, I know how hard he works and how much time he dedicates to helping users get their equipment working. You will not get this level of support from any other developer, and the app costs the price of a coffee!
But please please consider a monthly subscription or a one-off donation. It all helps to support Roberto in developing the app and supporting end users. He isn’t the head of a multi-person team of app developers working on QZ, it’s him alone.
Lastly: there is a very active Facebook group here where you can ask questions, get support and even thank Roberto personally.
Questions or Comments?
Do you use the QZ app? Got questions or comments? Share below!