Welcome Guest,Register Now
Log In

ANT Forum

Welcome guest, please Login or Register

You are here: Forum Home → ANT+ Forums → Miscellaneous → Thread

   

Common Data Pages - not completely ignored by Garmin Forerunner 410

Rank

Total Posts: 3

Joined 2013-08-07

PM

Hi,

I am trying to extract information from my Garmin FR410 using the ANT+ request data page mechanism. I am interested in the date/time from my GPS device. I originally wanted to try and get GPS location info but that seems impossible according to the ANT+ specs.

I am seeing some behaviour that makes me think the FR410 is getting the message but then does not behave as the specification requires. This makes me uncertain as to whether I am doing something just a little wrong and confusing the Garmin or if this will just not work.

I followed the Request Data Page Example (6.2.4 of ANT+ Common Data Pages). Sending a Request Data Page (page number 70) as an acknowledged message with a request for page 80 (manufacturer's info) [See RequestDataPage in log for specifics]. The FR410 gets the message and sends back a response and I get a EVENT_TRANSFER_TX_COMPLETED. However it never sends the requested data page. It does send an ANT-FS Beacon just when I would have expected the first transmission of the requested page though.

I have also tested requesting pages 81, 82, 83 with the same result.

My Garmin Soft Heart Rate monitor ignores the Requests and I get a timeout. This is the behaviour I would expect if the FR410 didn't support this feature at all.

Now, the ANT+ spec seems clear on behaviour -- a device is to send the page if it decodes/acks the message. Otherwise ignore. The FR410 seems to go on to do something else entirely though. Relevant spec:

"Not all [devices] will support the ability to respond to a Request Data Page. In this case, the [device] will not respond at all and will continue to send data according to its device profile."

"Any device that is able to decode a request page must be able to support all requested transmission response types."

"Once the request has been received, the [device] will transmit the requested data page ā€˜N’ times and then return to the standard broadcast rotation."


My gut is that the FR410 has a fault in implementation and responds to all RequestDataPages as if they were an ANT-FS LINK beacon request (they are very similar messages after all).

What I am interested to know is if this is a (known) bug or if there is something I might be able to do to get the FR410 to emit the page I (think) I am requesting.
Any thoughts?

I have attached a log of my script's (based on python-ant-dowloade) output so you can see the steps and the transmissions and receptions.

I am using a 2.20 firmware Garmin Foreunner 410 and a Garmin (AP2) USB stick running on Linux.

42,240 CommandSET_NETWORK_KEY(network=0network_key=0xa8a423b9f55e63c1)
42,240 SENDa4094600a8a423b9f55e63c174
42
,241 RECVa40340004600a1
42
,241 ReplyCHANNEL_EVENT(chan=0id=NETWORK_KEY_ID[70]code=RESPONSE_NO_ERROR[0])
42,242 CommandASSIGN_CHANNEL(type=0chan=1network=0)
42,242 SENDa40342010000e4
42
,243 RECVa40340014200a4
42
,243 ReplyCHANNEL_EVENT(chan=1id=ASSIGN_CHANNEL_ID[66]code=RESPONSE_NO_ERROR[0])
42,244 CommandSET_CHANNEL_ID(chan=1device_number=0device_type_id=0trans_type=0)
42,244 SENDa405510100000000f1
42
,245 RECVa40340015100b7
42
,245 ReplyCHANNEL_EVENT(chan=1id=CHANNEL_ID_ID[81]code=RESPONSE_NO_ERROR[0])
42,246 CommandSET_CHANNEL_PERIOD(chan=1messaging_period=16384)
42,246 SENDa40343010040a5
42
,246 RECVa40340014300a5
42
,246 ReplyCHANNEL_EVENT(chan=1id=CHANNEL_PERIOD_ID[67]code=RESPONSE_NO_ERROR[0])
42,247 CommandSET_CHANNEL_SEARCH_TIMEOUT(chan=1search_timeout=20)
42,247 SENDa402440114f7
42
,248 RECVa40340014400a2
42
,248 ReplyCHANNEL_EVENT(chan=1id=CHANNEL_SEARCH_TIMEOUT_ID[68]code=RESPONSE_NO_ERROR[0])
42,249 CommandSET_CHANNEL_RF_FREQ(chan=1rf_freq=50)
42,249 SENDa402450132d0
42
,250 RECVa40340014500a3
42
,250 ReplyCHANNEL_EVENT(chan=1id=CHANNEL_RADIO_FREQ_ID[69]code=RESPONSE_NO_ERROR[0])
42,251 CommandSET_SEARCH_WAVEFORM(chan=1waveform=83)
42,251 SENDa40349015300bc
42
,252 RECVa40340014900af
42
,252 ReplyCHANNEL_EVENT(chan=1id=SEARCH_WAVEFORM_ID[73]code=RESPONSE_NO_ERROR[0])
42,253 CommandOPEN_CHANNEL(chan=1)
42,253 SENDa4014b01ef
42
,253 RECVa40340014b00ad
42
,254 ReplyCHANNEL_EVENT(chan=1id=OPEN_CHANNEL_ID[75]code=RESPONSE_NO_ERROR[0])
42,254 INFO Wait on a broadcast Beacon to match period....
42,254 CommandReadData(chan=1)
42,254 SENDa4024d0152b8
42
,255 RECVa402520102f7
42
,256 ReplyCHANNEL_STATUS(chan=1channel_status=SEARCHING[2])
46,718 RECVa4094e014301000301000200a0
46
,719 ReplyRECV_BROADCAST_DATA(chan=1data=0x4301000301000200)
ANT-FS Beacon Beacon{'auth_type'3'pairing_enabled'0'data_available'0'device_state'0'period'1'descriptor'131073'upload_enabled'0'data_page_id'67'data''''status_2'0'status_1'1}
46
,721 CommandSET_CHANNEL_PERIOD(chan=1messaging_period=32768)
46,721 SENDa4034301008065
46
,722 RECVa40340014300a5
46
,722 ReplyCHANNEL_EVENT(chan=1id=CHANNEL_PERIOD_ID[67]code=RESPONSE_NO_ERROR[0])

----- 
Send CDP Request Page 80 ---------
47,475 CommandSEND_ACKNOWLEDGED_DATA(chan=1data=0x46ffff0000805001 -> RequestDataPage(data_page_number=70reserved1=255reserved2=255descriptor_byte1=0descriptor_byte2=0requested_transmission_response=128requested_page_number=80command_id=1))
47,475 SENDa4094f0146ffff000080500174
47
,718 RECVa4094e014301000301000200a0
47
,718 ReplyRECV_BROADCAST_DATA(chan=1data=0x4301000301000200 -> Beacon{'auth_type'3'pairing_enabled'0'data_available'0'device_state'0'period'1'descriptor'131073'upload_enabled'0'data_page_id'67'data''''status_2'0'status_1'1})
47,721 RECVa40340010105e2
47
,721 ReplyCHANNEL_EVENT(chan=1id=EVENT_ID[1]code=EVENT_TRANSFER_TX_COMPLETED[5])
--  
Received Ack --

..... 
Nothing else..... 


Let me know if I have missed something that might help you on providing some assistance also -- any thoughts/suggestions greatly appreciated!

Cheers,
Brody      
Avatar
RankRankRankRank

Total Posts: 235

Joined 2012-08-31

PM

Hi Brody,

It sounds like there are a few pieces of information that will help your understanding here:

1. When an acknowledged message is sent to an ANT device, the receiving device will automatically respond with an acknowledgement. This response is managed at the protocol level and is always sent when an acknowledged message is recieved - no conditions.

2. Therefore this acknowledgement is assumed to occur in all cases when an acknowledged message is sent (unless RF interference prevented the message reaching the device). So "not respond at all" means not send the requested data page, and in no other way affect normal operation of the device.

"Not all [devices] will support the ability to respond to a Request Data Page. In this case, the [device] will not respond at all and will continue to send data according to its device profile."

"Any device that is able to decode a request page must be able to support all requested transmission response types." - receiving an acknowledgement only indicates that an acknowledged message was received, not that a page was successfully decoded by the application layer.

If you don't receive the page that you requested in response, then you should assume that the device does not support requests for that data page.

Given that the channel you are connecting to is designed purely for uploading FIT files from the device, I'm not surprised that it doesn't support requests for ANT+ Common Pages. You may be able to enter the ANT-FS session and use the command pipe to read the Time from the device. If you want to explore this option then take a look at the ANT-FS Technical Spec in particular section 13.

Hopefully that's helpful,

Kat


     
Rank

Total Posts: 3

Joined 2013-08-07

PM

Hi Kat,

Thanks for the quick response. It is much appreciated. I shall dig into the ANT-FS command pipe and see what I can find to suit my purposes.


>>the receiving device will automatically respond with an acknowledgement.
OK, that explains the behaviour then. On a re-read I can see that in the spec but it could do with some edits to be a bit more clear.

>>Given that the channel you are connecting to is designed purely for uploading FIT files from the device, I'm not surprised that it doesn't support requests for ANT+ Common Pages.

How is this channel characteristic defined? Is this just because it is a 'watch' and that is all it does or is there something else that defines this?

Regards,
Brody      
Avatar
RankRankRankRank

Total Posts: 235

Joined 2012-08-31

PM

Hi Brody,

The meaning of all the connection parameters is explained in the ANT Message Protocol and Usage document, as are all the available message types. The device type parameter generally indicates the data that will be transmitted over the channel (e.g. each ANT+ device profile has a defined device type).

We try and avoid repeating too many of the ANT protocol basics in the ANT+ documents to keep them concise and readable; although we do mention things that people trip over too often, so thanks for the feedback. It's strongly recommended that you are familiar with the ANT basics before tackling ANT+ (or ANT-FS).

But for this device it was an educated guess based on the device being a forerunner watch - as far as I know the only master channel that watches usually open is for ANT-FS channel. I looked up the device on the ANT+ product directory (http://www.thisisant.com/directory/) and saw that the ANT+ profiles it supports are HR, S&C, SPD, STP and these would all be opened as slave channels on the watch, so you couldn't have been connecting to any of those.      
Rank

Total Posts: 3

Joined 2013-08-07

PM

Great - Thanks for the extra information!      
Avatar
RankRankRankRank

Total Posts: 235

Joined 2012-08-31

PM

You're welcome - have a good weekend!