This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nrf52832 and AFH

Hello,

I have an Android application that sends and receive data from a nrf52832 peripheral.

During a test for our device using a nrf52932 chip, 2.4GHZ noise is emitted near the source to see how nrf will behave and change channels.

 After researches on this forum, It seems there is no AFH implemented and no metadata to be used from the application level to monitor channel status, as said in this post:

https://devzone.nordicsemi.com/f/nordic-q-a/37945/about-adaptive-frequency-hopping-afh

And this one:

https://devzone.nordicsemi.com/f/nordic-q-a/47862/nrf52-afh

I know it is possible to not used specific channel using struct ble_gap_opt_ch_map_t but this is more in the use case to make BLE and Wifi coexist for example, in the case we know precisely which frequency channels we have to avoid. But in my case, the perturbations will be tested on multiple channels.

Is there any way to detect at runtime that a channel should no longer be used and switch to a less noisy one ?

In my case, how can I handle such perturbation? 

Thanks

Parents
  • Hi,

    The BLE peripheral cannot choose which channel to use. It has to use the channel map set by the master device. If the master detects that a channel has interference, it would typically remove those from the channel map and send a channel map update request to the slave.

  • Thank you for your response.

    But among all available channels specified by the master, the chip could perform AFH if needed... What is the point then to send a channels maps to the peripheral if he can't switch to the best channels ? It will always stay on the same channel ? I am confused about the role of this channel map.

  • The Master and slave follows a specific channel hopping algorithm so it will change channel for each connection event, the channel map is there to tell the peripheral which channels are good to use and not so the master and slave uses the same channels for it's hopping algorithm.

    If you want to take a closer look at this you could try to sniff the ble traffic using the nRF sniffer and you can see how the channel changes from one connection event to the next.

Reply
  • The Master and slave follows a specific channel hopping algorithm so it will change channel for each connection event, the channel map is there to tell the peripheral which channels are good to use and not so the master and slave uses the same channels for it's hopping algorithm.

    If you want to take a closer look at this you could try to sniff the ble traffic using the nRF sniffer and you can see how the channel changes from one connection event to the next.

Children
Related