Hey everybody,
I wanted to ask if anybody had managed or considered to interface gear with the arduino using the ant+ protocols? I know that ANT is proprietary but this is what they had to say regarding being open:
"Some argue that a big drawback of proprietary technology is lack of interoperability. However, that’s not a
problem for ANT because of the introduction of the ANT+ managed networks. An example is ANT+ Sport.
This hybrid model offers the benefits of the ANT protocol combined with an open, interoperable managed
network (featuring pre-defined device types and data formats) while preventing ANT from becoming
entrenched by the standards setting process and allowing the manufacturers to continue optimising ANT’s
ultra-low power attributes."
Any thoughts?
"Some argue that a big drawback of proprietary technology is lack of interoperability. However, that’s not a
problem for ANT because of the introduction of the ANT+ managed networks. An example is ANT+ Sport.
This hybrid model offers the benefits of the ANT protocol combined with an open, interoperable managed
network (featuring pre-defined device types and data formats) while preventing ANT from becoming
entrenched by the standards setting process and allowing the manufacturers to continue optimising ANT’s
ultra-low power attributes."
Sounds like a bunch of crap to me. Standards are a good thing. Justifying not having standards is plain stupid.
I have played with ANT a bit for my forthcoming micropower-Arduino project. I posted some very quick & dirty interface code here and an EAGLE breakout board for the pre-assembled modules, but got busy with some other stuff and haven't got around to making it into a library yet. That code does work though
If you don't want to decode it on the device end, there is source code around for PC clients (such as libfitbit) that can probably serve as a starting point to interfacing a specific device. If you have a specific device in mind, check around in case someone has already done the work to reverse-engineer its protocol; may save you a lot of time!
So far I have only used ANT radios to talk between my own microcontroller boards (or microcontroller board to ANT USB radio stick); I haven't tried talking to an ANT+ (or any other 3rd-party) gadget. I also haven't looked much at the "+" standards, but I remember them being pretty well-defined for the published ANT+ profiles. If you can, dig up documentation for ".FIT file format" and "ANT-FS"; two related standards a given ANT+ device might use. You might have to sign up an account on their Web site or buy a development kit (or use google-fu...) to download those standards though.
As implied by the "not-quite-a-standard" rhetoric, if the device does not conform to one of the published ANT+ profiles (of which there are just a handful), including having vendor-defined fields you want to access, you will probably have to do some amount of device-specific coding for the particular ANT+ (sport, etc.) device you want to talk to. I don't know the rules on what gets to be marked as an "ANT+" device, but my understanding is that the data for any published profile device will be accessible by any ANT receiver using the 8-byte key defined by the profile. (Some ANT (non-"+") devices are on so-called private networks; to get anything from them you have to know - or reverse engineer - a secret 8-byte key. Fortunately these keys are a somewhat poorly-kept secret (google is your friend) for most of the well-known manufacturers, and many of those devices' protocols are reverse-engineered already.)
Hi Drmn4ea,
Thank you so much for your thorough reply. I will have a look at it now and see if I can get anything working. With all the sports gear manufacturers switching to this standard including Sony mobile phones it will be the only way to interact with them. I´m working on building some data loggers, hopefully being able to fuse the outputs of two different systems to one microprocessor. As soon as I have something to show I will be posting here.
Thanks!
Just an fyi for anyone reading this thread, I'm in the process of developing a high level ANT driver based off the popular XBee driver xbee-arduino by Andrew Rapp. See GitHub - cujomalainey/ant-arduino: An implementation of a ANT driver for Arduino, Mbed and ESP-IDF