Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Keiser M3i and Garmin and Rolla World #1

Open
rayhooker opened this issue Jun 18, 2024 · 1 comment
Open

Keiser M3i and Garmin and Rolla World #1

rayhooker opened this issue Jun 18, 2024 · 1 comment

Comments

@rayhooker
Copy link

rayhooker commented Jun 18, 2024

I have a Keiser M3i bike with a converter that has been unreliable and flaky. So I am glad to have a better option. I did setup a raspberry pi zero and loaded Keiser2ANT. Did edit it slightly to disable the ANT code as I have not found a good ANT doggle that works with my raspberry pi. The BLE portion of the code does work. My Apple Watch 7 does connect and sees the cadence, speed and power as I recall, but my Garmin 265 only sees the power service so misses the cadence and speed. I really want the CSC service. I recently switched from Zwift to Rolla One, and it is also only seeing power so my bike goes on the virtual ride but has no cadence.

BTW I setup the code creating a virtual env and added a service that activates the virtual env and starts main as python main.py 0.

Is this a known gap and are there ways to fix it? The readme talks about a dummy SC endpoint but I am not sure how that would work or whether you code is written to incorporate that approach.

Thanks,

Ray Hooker

@tao-j
Copy link
Owner

tao-j commented Jul 11, 2024

Hi, thanks for your interest for this project and test it out.

Yes, the apple watch is easier to connect and get data through.

I have lots of troubles with Garmin regarding BLE, mainly because their BLE implementation is pretty old and they advocate ANT. That's the reason that I implemented the ANT function, as it works better. And I am unable to make Garmin work with both CP and CSC on simultaneously. The SC dummy point is implemented here

@characteristic(SC_CONTROL_POINT_UUID, CharFlags.WRITE | CharFlags.INDICATE)
. Maybe you can try to comment out the CP profile and send CSC only.

Another possible thing is that the bluez-peripheral package I used it not calling the dbus correctly so the two profiles (CP and CSC) cannot work at the same time with Rolla One or Garmin.

If you have an actual device that works fine using BLE with Rolla or Garmin, then a dump using nRF tools can help us to debug what's the difference of the payload between the simulation code and the actual working device, and we can improve from there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants