[REQ] Nordic Track Grand Tour (not Pro) bike - half working but need help #2357
Andrew-Opitune posted onGitHub
Hi there
I've got a Nordic Track Grand Tour (not Pro) bike and I'm trying to connect it via QZ. It's half working but I think it needs a little tweaking to get it to fully work. I originally started by compiling/installing on Raspberry Pi but that didn't work out so I bought the iOS version which half works with the bike.
My aim is simple. I used to use the bike with the iFit paid service which gave me Google Street View on the bike. iFit unilaterally cut off the paid service to me as my bike is old (2016?) and I was left with a completely dumb (but completely mechanically sound) bike. I found https://drumuri.bike which is simple and provides me with everything I need (is there anything like this but better out there? - I like the Google Earth mode for anywhere where this isn't Street View - I like to cycle in real places in the world) and connected it all together.
I've tried all of the Proform/Nordic Track bike types and options but the results have been mixed. At best I get:
Watts: Reads OK Cadence: Reads OK Incline Set: Sets OK, but sometimes stops working after a while Resistance Set: Nothing
The Grand Tour bike has no gears. I can manually adjust the resistance on the controls on the bike, but it would be good if the resistance on the bike was automatically set to simulate automatic gears based on a target power or cadence (??).
Is this bike one that could be supported? What info would you need to do this? I've provided some basic info on the bike and the web sockets messages at the end.
There is always the chance that it does work and I just haven't tried a particular setting. Or else drumuri.bike could be dodgy. I don't know.
Anything you are able to do to help me would be much appreciated.
Thanks Andrew
Key bits of the bike info: Websocket Version 2.1 Model EBNT71015 Machine Type Bike Equipment Key B7 Part Number 375551 Version 3.4.0324.0.0.5.2.7 Machine UUID 00000000-0000-0000-0000-000000000000 Features Fan, Speakers, Capacitive Touchscreen, Audio Line In, Chest Pulse Receiver Minimum Incline -10.0 Maximum Incline 10.0 Maximum MPH 0.0 Maximum KPH 0.0 Commercial False Default Units English Minimum Resistance 1 Maximum Resistance 24 MPH 0.0 KPH 0.0 Resistance 0 RPM 0 Incline -10.0 Actual Incline 10.0 Target Torque 0 Current Torque 0 Target Watts 0 Current Watts 0 Current Watts per Kg 0.00 BLE Status 0 Calibrate Incline 0 Workout Type NONE Calibrate Watts 0 Resistance Offset 0 Cal Watts RPM 80 Torque Offset -1 User Weight 83 Weight Override 0 Power Override 0 Error Request 0 Power Dev ID -1 Ant Power Status 0 ANT HR Status 0 BLE HR Status 0 BLE HR Index 0
Web Sockets Messages (I manually sent the Tx ones using a stub and they worked correctly to adjust the bike, the Rx ones were sent from the bike - I cycled for 30 seconds or so):
Tx => {"Resistance":"15" },"type":"set" } Rx => { "Resistance":"15" } }
Tx => {"Incline":"4" },"type":"set" } Rx => { "Incline":"4.0" } } Rx => { "Actual Incline":"9.5" } } Rx => { "Actual Incline":"9.0" } } Rx => { "Actual Incline":"8.5" } } Rx => { "Actual Incline":"8.0" } } Rx => { "Actual Incline":"7.5" } } Rx => { "Actual Incline":"7.0" } } Rx => { "Actual Incline":"6.5" } } Rx => { "Actual Incline":"6.0" } } Rx => { "Actual Incline":"5.5" } } Rx => { "Actual Incline":"5.0" } } Rx => { "Actual Incline":"4.5" } } Rx => { "Actual Incline":"4.0" } }
Rx => { "Workout Type":"MANUAL" } }
Rx => { "Resistance":"1", "Incline":"0.0" } } Rx => { "Actual Incline":"3.5" } } Rx => { "Actual Incline":"3.0" } } Rx => { "Actual Incline":"2.5" } } Rx => { "Actual Incline":"2.0" } } Rx => { "Actual Incline":"1.5" } } Rx => { "Actual Incline":"1.0" } } Rx => { "Actual Incline":"0.5" } } Rx => { "Actual Incline":"0.0" } }
Rx => { "RPM":"11", "Current Watts":"4" } } Rx => { "Current MPH":"3.0", "Current KPH":"4.8", "RPM":"28" } } Rx => { "RPM":"49", "Current Watts":"13" } } Rx => { "Current Watts":"32" } } Rx => { "RPM":"72" } } Rx => { "Current Watts":"62" } } Rx => { "Total Time":"234:03:07" } } Rx => { "RPM":"87" } } Rx => { "Current Watts":"85" } } Rx => { "RPM":"97" } } Rx => { "Current Watts":"96" } } Rx => { "RPM":"106" } } Rx => { "Current Watts":"102", "Total Miles":"3194" } } Rx => { "RPM":"112" } } Rx => { "Current Watts":"106" } } Rx => { "RPM":"118", "Total Time":"234:03:08" } } Rx => { "RPM":"123", "Current Watts":"108" } } Rx => { "Current MPH":"23.4", "Current KPH":"37.6", "Miles":"0.004", "Kilometers":"0.006", "Current Watts":"110" } } Rx => { "RPM":"127" } } Rx => { "Current Watts":"111" } } Rx => { "RPM":"129" } } Rx => { "Current Watts":"112", "Total Miles":"3194" } } Rx => { "RPM":"130" } } Rx => { "Total Time":"234:03:09" } } Rx => { "RPM":"129" } } Rx => { "Total Miles":"3194" } } Rx => { "Total Time":"234:03:10" } } Rx => { "Total Miles":"3194" } } Rx => { "RPM":"130" } } Rx => { "Total Time":"234:03:11" } } Rx => { "Total Miles":"3194" } } Rx => { "Current MPH":"26.0", "Current KPH":"41.8", "Miles":"0.034", "Kilometers":"0.054" } } Rx => { "Total Time":"234:03:12" } } Rx => { "RPM":"129" } } Rx => { "Total Miles":"3194" } } Rx => { "Total Time":"234:03:13" } } Rx => { "Total Miles":"3194" } } Rx => { "RPM":"0" } } Rx => { "Current Watts":"0" } } Rx => { "Total Time":"234:03:14" } } Rx => { "Total Miles":"3194" } } Rx => { "Current MPH":"0.0", "Current KPH":"0.0", "Miles":"0.052", "Kilometers":"0.083" } }
Rx => { "Workout Type":"NONE" } } Rx => { "Miles":"0.000", "Kilometers":"0.000" } }