Now, for reasons that I'll explain below (if you're interested) patching this error is complicated. Still, I've released a new version of my apps (Sportablet 7.0, Uploader for Garmin 6.1) which contains what seems to be a robust and consistent fix, at least in all the cases I've tested. However, since the app is working as it is for quite a few of you, at this stage the fix is initially disabled and you have to enable it manually. It's likely that the next version of the apps will activate this as a default, also depending on your feedback.
To enable the patch, open the options, scroll down to ANT+ and then to the last option, which should read "Force Claim Interface". Turn that on. That's it. The purpose of this option is to force the dynastream driver to proceed with the initialization as before. It has no effect on the data transfer, because that part was not impacted. However, remember: if you have reinstalled the app, messed around with the options, etc, you have to bring the options back to what was working for you (file chunk size, delay ack, etc).
Recommendations: I've said this in my previous post, but it's worth saying it again:
- I would suggest that you disable automatic updates for the TWO dynastream services, unless you have strong reasons not to.
- Follow Sportablet on facebook or twitter. If you don't, please, next time you have a problem check the blog first.
Let me know if this patch works for you, thanks.
Details for the technically minded: Dynastream (which is a property of Garmin, by the way) provides developers with a so-called SDK to interface with their services. I was one of the early adopters of their SDK, and over time I've not only written a lot of code around it to support all the ANT+ Garmin devices, but also to work around various problems and issues. I now have a few thousand lines of code built around their SDK. Now, when they released the new service, they also released a new SDK, which is completely incompatible with the one I used. The classes I used are no longer there, the hierarchy is completely different, methods are gone. As usual, it's not just that I have to adapt my code. It's also that I've tuned the existing code over a couple of years, and if I move it to the new SDK, most of that tuning is gone. Also, a couple of things I'm doing to speed up the transfer (which Garmin is also doing on Windows) does not seem to be possible anymore with the new SDK. That said, the old SDK is still working, sort of. Most of the functions work, probably because the underlying functions in the service are still the same. However, the new driver won't start up correctly, and if you force (like it was necessary with their very first version) a reset or an enable/disable cycle, you get an interface error. So, it's a bit of a mess. Still, the patch I've come up with seems quite robust (I'll know more once you guys start using it). The future is a bit less certain. I currently lack the time to rewrite the entire ANT+ code using their new SDK, test it on a number of devices (android + garmin), tune it, etc. The apps are nowhere near the profitability required to allocate this kind of effort. It's also pretty obvious that Dynastream is moving in a direction where apps have less and less control, which is exactly the opposite of what I need. We'll see. Meanwhile, as I said, it would be better to turn of automatic update of their services.