Hi, I'm trying to get RSSI data using 0x6E libconfig setting. The spec indicates we can only use the data returned when the measurement type is 0x20. Using various ANT dongles I am always seeing 0x10.
I found some documentation that seems to describe the contents when measurement type is 0x10. The header here https://infocenter.nordicsemi.com/index.jsp?topic=/com.nordic.infocenter.s210.api.v5.0.0/group__ant__parameters.html has constants defined for the known measurement type 0x20 (see the _DBM_ values), but also describes measurement type 0x10 (see the _AGC_ values). I was hoping this might point how to interpret the measurement type 0x10 values. It looks like AGC, automatic gain control, is a mechanism used to adjust the radio transmit power. It seems the value reported is relative to the actual transmit strength or gain, such that if I knew the transmit power I could look at the 0x10 to calculate the RSSI. So I wonder if anyone knows how to get the transmit power? Or another way to interpret this data to get an RSSI value?
Some other notes: People observed that when the measurement type is 0x10 the data payload for signal strength data is 4 bytes instead of 3. That is consistent with the defines given in https://infocenter.nordicsemi.com/index.jsp?topic=/com.nordic.infocenter.s210.api.v5.0.0/group__ant__parameters.html So i.f you're using libconfig to get timestamp data after the signal strength data, it looks like you must check for the 0x10 transmit type to know the position of the following timestamp data.
USB-m does not support RSSI and instead returns AGC values, which does not correlate directly to a transmit power but is only enough to indicate if a device is"close" (within a meter to several centimeters.).
A C7 or N5 module could be used as an RSSI capable USB device using a development board, though I cannot recall a commercial stick which uses one of these devices.
We have simple slave/master setup, is there a way a slave can measure ANT RSSI value or master can do the same?
Like in BLE we use sd_ble_gap_rssi_get(m_conn_handle,&rssi;,&channel;); for this purpose.
The ble soft device functions are separate from ANT.
For ANT you will need to enable extended messaging and parse the RSSI from the extended portion of the message. See ANT_LIB_CONFIG_MESG_OUT_INC_RSSI and the usage in the ant/ant_continuous_scanning_controller example. message_rssi in that example shows how to parse the extended data. note: The byte index depends on the which extended features have been configured as per section 7.1.1 of "ANT Message Protocol and Usage" (7.1.1.4 is particularly useful).