@Erwin_Meermans ,
You really have several options…
KickrBikeInterceptor has an “Open Gears Window” button where it will open a “always on top” window that you can place on top of zwift and you don’t need Sauce4Zwift. Or you can use the more elegant solution of sauce for zwift with my KickrBikeGearsS4ZMod. I highly recommend sauce for zwift.
If you have kickr bike WITHOUT dircon, You MUST use KickrBikeInterceptor and have zwift connect to the “INTR KICKR bike” on the device connection screens. In this scenario, zwift is talking dircon to interceptor and interceptor is talking bluetooth to the bike. You must start interceptor before zwift starts.
If you have a kickr bike WITH dircon, you still need to run KickrBikeInterceptor, but zwift can connect to either bike dircon, or to interceptor dircon.
If you decide not to use the Sauce4Zwift integration, I would change the appsettings.json file (towards the bottom).
“Sauce”: { “url”: “” } (it will make sense when you see it.)
P.S . v1.0.0 of my mod had a typo that has been fixed in v1.0.1 of the KickrBikeGearsS4ZMod at
h**ps://github.com/pwfulghum/KickrBikeGearsS4ZMod
I have updated the “readme” at KickrBikeInterceptor to reflect this FAQ…
h**ps://github.com/pwfulghum/KickrBikeInterceptor-Releases/blob/main/README.md#usage
1 Like
@Pat_Fulghum,
Thanks !! I got it working. Once you run the KickrBikeInterceptor, it wil explain itself.
I have a Kickr Bike Shift with dircon connected. Now i see the gears in Sauce4Zwift.
4 Likes
@Erwin_Meermans … .glad you got it working… pretty cool no?
Goodmorning from Greece,
I tried the Franks files and the screen now look like this
I don’t know what is wrong
The board I ordered is that one
h**ps://www.banggood.com/LILYGO-T-Display-S3-ESP32-S3-1_9-inch-ST7789-LCD-Display-Development-Board-WIFI-Bluetooth5_0-Wireless-Module-170+320-Resolution-p-1993268.html?rmmds=myorder&cur_warehouse=CN&ID=6323924
and it match the boards you recommended
I don’t know if that “ST7789” is something different from your boards.
If it matters i tried the process on my laptop with windows 10
Your board seems to be the right one!
Have you edited the name of your Kickr Bike in the *.ino File to the name of your bike (showing up in the wahoo app)? Only then BLE will find the connection! Simply open the *.ino file in Arduino IDE and check it and edit it to the right name, save it and retry the upload.
Line 86:
// BLE Server name
#define bleServerName “KICKR BIKE SHIFT B8EB”
You should see 4 different digits after the name of the bike!
I already did that, it is the only thing that i am sure i did right every time
okay, try to reset your shift bike then and close the wahoo app on the phone.
Unplug the bike from power for a couple of seconds. maybe pairing is blocked…
Blue LED on the kickr should blink and stop blinking after the lilygo is connected to usb power.
I had this also once. after some tries it got the connection back…
Friend I don’t lnow how but I reupload the sketch, without changing anything and it work!
Thank you for your effort and ofcourse the stareat
I realy thank you from the bottom of my heart!!!
Good job! I think your pairing was simply blocked. Thats all.
Have fun with it, and Kudos to streat for programming the Shift compatibility!
@Pat_Fulghum, Yes cool !!
Today i did test it during a ride. It works like a charm.
But after 2h30 i lost connection to my Wahoo Bike Shift. (dircon)
BT connection for HRM was still working. Also internet was ok (spotify on same pc).
Shift display on Sauce was not working anymore.
So i power cycle the bike and the connection came back. I needed to restart also the KickrBikeInterceptor to see the gear on sauce.
I dont know if this is related to KickrBikeInterceptor or just bad luke. But i these connection lost was a long time ago for me. It was always stable.
Anyway, great work Pat.
Thanks
@Erwin_Meermans There is a log file in.
Users\yourname\appdata\local\kickrbikeinterceptor\logs
That might be interesting to look at
Best to take this off line.
I bet you can find me on messenger
Hi everyone
As soon as I ordered by Kickr Bike Shift I found this project and ordered the Lilygo unit in a case.
Maybe I’m strange, but I found the gear display of 1-7 didn’t mean much to me so I have created a version (yes, another version…), starting with Claus Jensen’s one, that maps this on to the actual gears, so shows 39-23 (for example).
I’ve built into the code standard chainring and cassette types (34/50, 39/53, 12-28T, 11-30T etc) and have set it up so you can switch between them using the buttons (top button cycles through the chainrings and bottom button cycles through the cassettes). The current selected values are shown on the display and persist between restarts (they are stored as preferences in the unit).
If anyone is interested in my code for this version, let me know and I will put it on GitHub.
I figure it may be possible to get the values of the configured gears from the bike itself, but have looked through the Bluetooth data in a scanner but can’t see it anywhere. Does anyone know where I could find this in the Bluetooth data?
@Stephen_Robb_3753 I know the wahoo app you can configure the actual gear values. I’m wondering if we can actually read those values somewhere….
Time to bring out the Bluetooth sniffer
Yes, exactly
I had a look, but haven’t ever used a Bluetooth sniffer before. I found some data, including power, rider weight and bike info (serial number etc), but I couldn’t see the actual gears.
Wow, a lot of activity on this thread since I last checked. Seems like there are actually several topics going now - the PC software to sniff out bluetooth info like gears, programming the ESP32 hardware in general, and the software for the Kickr/Shift - I guess even that could be split in two, since the Shift crowd have no need for the grade info.
Anyhoo… I’ve updated my git page for the Wahoo Kickr Display Dingus:
htt*s://github.com/ejwheeler3/WahooKickrDisplayDingus
This update brings in the following:
- if no bluetooth connection is made within 20 seconds, the dingus will reboot itself and try again. No need to repower or press the boot button.
- adds a power distribution graph to the “coasting” screen
- add a power distribution graph to the main screen that alternates with the max/avg power info every three seconds
- fixed a bug in the eeprom save/restore code so it can tell whether it is reading “noise” on the first usage of the software
- added cadence (thanks to Nikolaus Kirchseige for figuring out how to get crank revolutions out of the power update callback) - tinkered with this for a week or so, and my current averaging logic seems to get with a rev or two of how Zwift/Rouvy calculate RPMs
- added a front crank animation to my gear display, animation responds to the actual cadence
Oversaturated video showing new crank animation here:
htt*s://www.youtube.com/watch?v=L9KCMLRfNyw
As with all links, you’ll need to fix the link since this forum doesn’t allow working links…
1 Like
@Jay_Wheeler - Is there any reason it can’t simply continue trying to connect, rather than rebooting?
I still have to power cycle mine based on your code a few times before it will connect, and I was thinking of trying to make it loop the connection attempt until it does connect.
Hi Dan - I don’t know if a loop would work - I didn’t write the doConnect() code, but it looks like it is intended to return true or false, but I"ve never seen it return false - it just seems to hang when it doesn’t work.
Note that the main loop is already, um, looping, as my approach to reset the hardware after 20 seconds wouldn’t kick in otherwise. But, if you figure out a more elegant way, please do post it. In the meantime, my brute force approach seems to work. Generally by the time I"m done picking a course in Zwift or Rouvy, it has managed to connect without me having to pay attention to it.
Thanks, Jay.
I’ll dig into the connect portion a bit more in a few days.
@Jay_Wheeler @Dan_Kothlow You can take a look at the code I’m using as it does the retry.
Hi, Do you mind telling me where you got the platform attached to the handle bars from? Looks very neat! Thanks