The RUNN Wireless Treadmill-to-Zwift Sensor

Do you want to run on Zwift? If so, what your real legs are doing must be mimicked by your avatar’s legs on Zwift. How do you make that happen?

One easy way is for your treadmill to communicate with Zwift. Wirelessly. It would do that by emitting a Bluetooth signal. Does your treadmill emit that signal? Just because your mill has a Bluetooth icon on it, that doesn’t mean it sends a signal. What that icon might mean is that it receives a Bluetooth transmission, from a heart monitor. That said, my treadmill does send a BLE signal and yours might. If it does, you don’t need anything else.

There are devices you can stick into your treadmill. One is called GEM Retro and it’s made and sold by North Pole Engineering, the same company that sells the RUNN that I’m going to review now. Both devices sell for $99. I mention this because if your treadmill does not send a BLE signal already, and you’re going to rig up something to make it send that signal, there’s a case that can be made for buying a GEM Retro instead of a RUNN and I’ll make that case further below.

Just, the GEM Retro only works if your treadmill has a CSAFE port. Before you make a buying decision, make sure your treadmill: 1) Has a CSAFE port, and 2) Isn’t already BLE enabled. Here’s one way to know if your treadmill already sends out a BLE signal: Boot up Zwift and see if it detects a signal. And by the way, the GEM Retro is what was the Wahoo Fitness GymConnect. Wahoo sold this product line to North Pole Engineering a couple of years ago.

Now then, let’s say your treadmill is deaf and dumb, it sends no signal, and has no CSAFE port. The easiest, cheapest way to get your virtual legs to mimic your actual legs is via a footpod. $30 or $40 and you’re gold. Or, spend a little more and the Stryd footpod gives you some extra functionality. Why would you spend more than double the money on a device that does basically what a footpod does?

Two reasons. First, precision. The RUNN is, as well as I can tell, the most precise determinant of the speed and distance you’re actually accomplishing aboard your treadmill. How is it more precise than the treadmill itself, assuming the treadmill has built in BLE? Because treadmills are notoriously imprecise, and because you can’t calibrate a treadmill. (At least I can’t calibrate mine; though I could imagine a pretty easy way for treadmill companies to integrate that functionality.) The RUNN has a pair of optical sensors that measure the time it takes for a light-sensitive sticker, mounted on the treadmill belt, to pass from one sensor to the other.

Above is what you get when you open the box with the contents of your RUNN. In my opinion, the RUNN’s included Quick Start Guide is incomplete and could be written better. I recommend you refer to the online guide, with its textual step-by-step instructions and included video. Installation of the RUNN on your treadmill is quick and easy.

Mostly, you need to make sure that the included stickers, when placed on your treadmill’s belt, pass under the optical sensors, and if stickers on the belt pass under that row of circles on the top of the RUNN unit (below), as it hangs over the belt.

I have a Woodway 4Front, and the RUNN isn’t compatible, out of the box, with the 4Front, in my opinion. It’s fine. It’s usable. But it’s not ideal. Why? Because the belt on a 4Front doesn’t sit below the treadmill's frame. There’s a mandated gap between the sticker and the sensors, which is between ¼” and ½”. There’s a cradle into which the RUNN unit sits, and that cradle has a graduated set of plastic tabs that grab the RUNN unit, and you place the unit higher or lower in the cradle depending on your need.

However, I found that cradle flimsy. If you press down on the RUNN unit with any force at all, that force overcomes the ability of the cradle to hold the RUNN unit. Why would I ever need to touch the RUNN unit? As we’ll see, there’s a button to push to engage the unit, and there’s a battery to charge with a micro USB cable. It wouldn’t be a problem if the unit were sitting flush with the bottom of the cradle, or maybe a short distance up, but with the 4Front I had to have this unit at the very top of the cradle.

I believe the higher in the cradle the unit sits, the less capacity the cradle has to support the unit, and any time you molest the unit, by plugging in a charging cable for example, the unit comes free from the cradle. In the image above you'll see that the unit is sitting as high up in the cradle as the cradle allows, and sensors are still probably not high enough above the 4Front's belt.

No problem. It just calls for a little MacGuyvering. I needed a *thing* that would sit in between the unit and the cradle, basically a solid foundation for the unit. So I rooted around the workshop until I found something, and with some 2-sided tape I affixed everything to everything else. I still didn’t have quite enough of a gap between the belt and the sensors, so I fashioned about another 1/8” worth of rider underneath the cradle and, presto, all good.

The way you activate the unit is to press the button on the back of the unit twice. And then once. This was (and remains) a little confusing to me because, well, here’s what the directions say: “Press the button on the back of the Runn™ two times followed by a single press to turn on the sensor strip indicator.” I don’t know what the difference is between that, and pressing the button 3 times. What is the gap between the first 2 depressions of the button and the… 3rd? Furthermore, the unit actually began to read the sticker after the first 2 button pushes. RUNN's folks say the taps on the button "are meant to be brief but enough to engage the switch. The double tap sequence is used to trigger the special configuration mode of the Runn whereas a single tap is used to toggle on/off the ANT radio." As nobody seems to complain about this but me, I'll assume this is not an issue and is mostly a manifestation of my foggy brain.

How does one know the unit is reading? Because there are blue LEDs on the top, and they alternate as the stickers pass underneath. You can tell when they’re reading just by looking at those LEDs. When those blue lights turn on, or off, when a sticker passes underneath, the unit is reading. At a certain point those blue lights stop that behavior and they simply remain lit. That doesn’t mean the unit is not reading. There is a 60sec timeout for the "strip indication." If there's any question in my mind about whether the unit is sending, I just increase or decrease the speed on my treadmill and, behold, those changes in my treadmill's velocity are noted by Zwift. When I return to my treadmill a day later and commence another Zwift run, I find I don't need to press any button or do anything. The unit reads automatically.

When you kick start Zwift, you’ll be asked to choose a device. Always. Ride or run. Zwift will detect a device automatically. Let’s say the device Zwift detects upon boot is your footpod, and you want to change it out for the new RUNN unit you just installed. You just click on the device, on the screen, and up comes another screen with all the connected devices available to you.

You’ll now choose the device you want. My treadmill has a factory-installed, built-in, BLE transmitter. I have also installed a GEM Retro in the mill’s CSAFE port. Then there’s the RUNN just installed. You can see them all transmitting to Zwift.

You’ll note that there are 3 connectivity types Zwift offers: Run Speed, Cadence, and Heart Rate. You should click the Cadence box too, and you’ll see that the RUNN is an option there. the RUNN optical sensors note belt vibration, and translate that to cadence. I have not found, myself, in my limited use, that the cadence metric is reliable and stable. But I’m early in my use of it. The RUNN unit does also log elevation gain and Zwift does keep a record of the elevation you've gained for every run.

The RUNN device has its own rechargeable battery. It’s recharged with an included micro USB cord. That cord is too short for my purposes because, as you see, I’ve pretty much hard-attached the RUNN to my treadmill via the shims and 2-sided tape. But I have a USB extension cable and I now just have this thing plugged in 24/7. Here below is the the final installation of my RUNN unit, with MacGuyvered shims.

As to the GEM Retro, why and when would this be a better option than the RUNN? First, there’s no charging. You don’t have to worry about stepping on the unit inadvertently. The GEM Retro is hidden inside my treadmill, plugged in. And it has one more function laying in abeyance awaiting the day. The GEM Retro is not a transmitter. It’s a transceiver, that is, the communication is 2-way. If Zwift ever chooses to let the Game control the treadmill, the way the Game controls your smart trainer, the GEM Retro can receive and deploy those commands. Specifically, I’m talking about incline. My hope is that someday Zwift might pitch my treadmill the way Zwift pitches a Wahoo Kickr Bike. What is needed is an algorithm that automatically decelerates the treadmill as the pitch increases. But this is a discussion for another time. The point is, the GEM Retro does have the capacity to manage that.

There is another downside to the RUNN. There’s about a 2 or 2.5 second delay between a change in treadmill speed and the time Zwift displays that behavior. In that way it’s a lot like a smart bike trainer. Have you ever pedaled like crazy to catch a group in Zwift, and you stop pedaling right as you reattach, only to find you’ve ridden right thru the group? And then the group passes you back and drops you again because you’re soft pedaling? That exact lag is what you get with the RUNN. Why? I think part of that is the sampling interval. If you have, say, only 1 sticker on your belt, whatever change you make in the treadmill isn’t known by the RUNN unit until that sticker goes by the sensors. Secondly, it takes the treadmill some time to actually respond, mechanically. When I push the button to increase the treadmill's speed, that increase request is known by the mill immediately, and told by the mill to Zwift immediately, and Zwift displays that immediately. But the RUNN doesn't know that you've pushed a button. It only knows how fast a sticker on a belt passes by a pair of optical sensors. It takes a moment for the motor to get the mill up to speed and that lag, plus time it takes for a sticker to make its way around to the sensors, adds up to about a 2.5sec delay. For this reason, I would recommend placing perhaps 3 stickers equidistant around the belt, to help sync your treadmill commands to the Zwift display as quickly as possible.

Why not choose the GEM Retro? Two reasons. First, if your mill doesn’t have a CSAFE port, you can’t use a GEM Retro. Second, the GEM Retro is a slave to your treadmill’s imprecision. The RUNN is what we used to ensure precise speed during Anthony Famiglietti’s 8:24 two-mile at Endurance Exchange. The RUNN is, first, just more precise, and second, a device you can calibrate.

Now, the calibration is, as well as I can tell, a way to make a misbehaving RUNN conform to whatever the treadmill says. In other words, in a pinch you can “calibrate” your usually precise RUNN to match your imprecise treadmill, so that they’re each equally imprecise. But I believe there’s a workaround, which is, if you have a really accurate measuring wheel you could measure, say, how many feet your treadmill really travels when the measuring wheel has traveled a quarter mile (1320 feet). The way the RUNN calibrates is that you set your treadmill at 5mph, you go through the RUNN’s calibration protocol, and the RUNN basically stipulates that what your treadmill is delivering is really 5mph. However, if you go through your measuring wheel exercise, and you do the math, and you actually run your treadmill at, say, 5.1mph or 4.9mph, because you know this really is 5mph, then you’ll have super-calibrated the RUNN. There would not, as far as I can tell, be a more precise measure of your treadmill’s speed.

There is a firmware upgrade that is not factory installed into the RUNN that you receive. This adds the ability to pair North Pole’s own heartbeatz Apple Watch app to allow the Apple Watch to share HR data through the Runn to apps like Zwift. There was also an issue with the Bluetooth Running speed and cadence service that presented on Suunto watches and some other devices. The update also resolves an issue of data dropouts with Zwift that a small segment of users were experiencing. The firmware is in beta. I will find out more about this, and how you might access that firmware update. (I have not yet updated the RUNN unit that I have.)

It may turn out that I’m dead wrong on some elements that I’m writing above. As a consequence, I may well need to add some edits to what I’m writing above. If I do, I’ll place a note here at the bottom (if not also at the top) of what I’m writing here, telling you what I’ve learned, and of any edits I make post-publication. Also, there is an existing thread on our Reader Forum on the RUNN and I’ll post any updates to that thread.

Here’s more on the RUNN, and you can buy this from the manufacturer, from Zwift, and from other resellers. If you are interested in being a beta tester for the RUNN, where you'd get firmware updates that are in beta, you may email North Pole Engineering at