Welcome Guest,Register Now
Log In

ANT Forum

Welcome guest, please Login or Register

   

Communicating with Suunto belt device with Android but no API support for network key

Rank

Total Posts: 1

Joined 0

PM

Hi,

We're developing an Android app that currently supports Garmin HRM1G-Heart Rate Monitor belt. The app communicates with the belt on a public ANT+ network, and it works pretty well.
However, right now we're currently trying to develop support for Suunto Dual HRM belt, which uses ANT. They provided us with a network key, but the Android API doesn't seem to have any method of using the key.
Is there a way to use a network key in Android?      
Avatar
RankRank

Total Posts: 39

Joined 2011-06-29

PM

Android uses a 128-bit key to set the network key. This is done to prevent listening in and stealing the private key.

The format the set network message is [size][msgID][network#][16 bytes key (128-bit)] where message ID is 0x76 and network# is 0, 1, or 2. NOTE: that this will overwrite the Public, ANT+, and ANT-FS default network keys until either a Reset command is sent, or the chip power cycles.

eg. ANTTxMessage( [17][0x76][0][...] );

If Suunto gave you their standard 8-byte (64-bit) ANT network key you will have to get the 128-bit one.

This feature is included with firmware AOV-1.06B05 or later.

-Maurits      
Rank

Total Posts: 1

Joined 0

PM

Thank you very much.

Now we got 128 bit network key and the specification is clear, but do you know if there is some list of mobile phones and models which have firmware AOV-1.06B05 or later?

Especially we are interested in SonyEricsson Xperia X8. We have downloaded the latest Android OS version (2.1 update 1) for that, but it does contain only AOV-1.06 which is not enough. Is it somehow possible to update firmware AOV for that model?      
Avatar
RankRank

Total Posts: 39

Joined 2011-06-29

PM

The firmware included in each system image is vendor specific. I checked around and a Rogers Xperia Arc (Android 2.3.3), and Xperia Active both have AOV1.08. Our HTC Rhyme has AOV1.07, and our Arc (with Android 2.3.2) and X8s have AOV1.06.      
Avatar
RankRankRankRank

Total Posts: 129

Joined 2010-11-30

PM

Sony Ericsson have not included the Xperia X8, X10 mini and X10 mini pro in the list of phones they plan to update with the latest Android system, and as you can not manually update the firmware these look to be limited to ANT Version AOV1.06.

Other phones have either been initially released with newer ANT firmware, or updates have been released (ie the Xperia Arc runs ANT firmware with private network support, but only since the update to Android 2.3.3).      
RankRankRankRank

Total Posts: 523

Joined 2012-11-15

PM

Yes, X10 mini, X10 mini pro och X8 will never have support for Suunto ANT (not the standard network key). All 2011 product will have support for it after firmware update.      
Avatar
Rank

Total Posts: 6

Joined 0

PM

Hi Maurits,

I am also trying to figure out whether I can use our Android bicycling app with the Suunto Dual HRM band. From what I read in your mail, I understand the ANT+ chip has to be set to the Suunto specific network key. Will this mean the ANT chip in our Sony Ericcson Xperia Active mobiles will no longer read the messages from the SRM power sensors, the Garmin speed cadence sensor, the CycleOps power sensors at the same time? If so: This makes combining a Suunto HRM band with other equipment useless. Or .... can an ANT chip have 2 or more network keys?

Best regards

Peter Bruinink
Plusot Biketech      
Avatar
RankRank

Total Posts: 39

Joined 2011-06-29

PM

The Xperia Active (and most other ANT hardware) supports 3 different network keys at a time. You can query the capabilities of the ANT chip to see exactly how many it supports.

The default network keys are Public, ANT+, and ANT-FS. So if you would like to have ANT+ and Suunto channels going at the same time then override network #0 or #2 with the Suunto key, then when you assign your channels use network #1 for ANT+ communication, and #0/#2 (whichever you overwrote with Suunto) for the Dual HRM Band.      
Avatar
Rank

Total Posts: 6

Joined 0

PM

Hi Maurits

Thanks. Now I am waiting for an answer from Suunto about the 128 bit network key. Any idea who to contact at Suunto?

Regards

Peter Bruinink      
RankRankRankRank

Total Posts: 122

Joined 2010-10-25

PM

I would also be interested if anyone has a suitable developer contact at Sunnto as I have failed to make one. I have had a couple of end user queries about supporting them in my app.      
Rank

Total Posts: 5

Joined 0

PM

maurits.vanderhoorn - 22 November 2011 06:54 PM
Android uses a 128-bit key to set the network key. This is done to prevent listening in and stealing the private key.

The format the set network message is [size][msgID][network#][16 bytes key (128-bit)] where message ID is 0x76 and network# is 0, 1, or 2. NOTE: that this will overwrite the Public, ANT+, and ANT-FS default network keys until either a Reset command is sent, or the chip power cycles.

This feature is included with firmware AOV-1.06B05 or later.

-Maurits


Dear Maurits,

I have 4 points that are confusing me. I will make it simple and hope that you can help me, please:

1) The message protocol document (rev 5.0) refers to set the network key using message id 0x46 (with only 8 bytes of the key) and doesn't make any reference for the id 0x76 as you said before. Is that a hidden message id? Where can I find more info about that?

2) Is it possible to set only one channel to a private network while the other channels still using the public ANT+ network key? (I am asking that because I've noticed that SRM Power Control 7 can be paired with Sunnto belt and at the same time with other sensors using ANT+ public network).

3) I have tried to simulate a private network with AntWare II, but I can only set 8 bytes of the network key, so I couldn't find any difference. Does ANT+ provide any software to simlate that?

4) How do I know the AOV firmware version of my Xperia Live Walkman and Xperia Arc? Is it possible to know using your API?

Thank you in advance,
DW      
Avatar
RankRankRankRank

Total Posts: 129

Joined 2010-11-30

PM

1) The message protocol document (rev 5.0) refers to set the network key using message id 0x46 (with only 8 bytes of the key) and doesn't make any reference for the id 0x76 as you said before. Is that a hidden message id? Where can I find more info about that?

The ANT chips typically found inside mobile phones support 128 bit/16 byte network keys (0x76 message), while all other ANT chips generally only support 64 bit/8 byte keys (0x46 message). It isn't hidden, but only applicable to Android, so you will find details in the "Creating ANT Android Applications" document in the SDK. Note that the new "channel" API does not yet support private networks, so there are no details on this in the current version of the document.

2) Is it possible to set only one channel to a private network while the other channels still using the public ANT+ network key? (I am asking that because I've noticed that SRM Power Control 7 can be paired with Sunnto belt and at the same time with other sensors using ANT+ public network).

Yes, each channel is individually allocated to the network it requests. Most ANT chips support 3 concurrent networks, while some newer parts (like the USB-m stick) support 8.
Again, note that the new "channel" API does not yet support private networks.

3) I have tried to simulate a private network with AntWare II, but I can only set 8 bytes of the network key, so I couldn't find any difference. Does ANT+ provide any software to simlate that?

There is a 8 byte and 16 byte network key for each network. There are no ANT chips you can connect to ANTware II which use a 16 byte key, so you will always use the 8 byte key in that case. If you use the matching 16 byte key on an Android device, it would connect to the same network.

4) How do I know the AOV firmware version of my Xperia Live Walkman and Xperia Arc? Is it possible to know using your API?

This is provided through the ANT Version requested response message. Note that with the new "channel" API you do not need to check specific version strings, as this is provided through the channel Capabilities.