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

does nrf51 softdevice can connect with specific channel?

As I know, BLE Advertising on 37, 38 ,39 channel and I can select which channel to advertise by masking them.

But, Is it possible to make an data connection to a channel as I want (from 1~38)?

Easily, can I choose which channel to communicate with Peripheral or Central?

I really tried to search for it, but I can't found such thing like that.

I think which channel to connected is all softdevice's desire.

Can I manage or choose which channel to data connection?

If I can, then How can I achive it?

  • You could try sd_ble_opt_set with the option ble_gap_opt_ch_map_t and set a one-channel channel map. I really don't know why you'd want to do that however as any interference will probably result in loss of connection. There's a reason bluetooth uses 37 channels.

  • thanks! actually, I'm trying to use lot's of BLE Connections, maybe more than 37 Channels + and also, It could be interrupted with other 2.4Ghz Channel such as Wireless Keyboard, Wi-Fi or Etc.

    In this situation, I'm really worried that my BLE Packet would drop. So I was trying to find out that I can manually scan how many other device use specific channel, and trying to connect it dynamically.

    does nrf sd_ble_gap_connect automatically scan all 37 channel and it select's the most smooth channel? or it just use any channel that nrf just wants to (or random channel)? (I call this dynamic scan and connect to most appropriate channel as an active scanning. does this have official terms for this?)

  • well you shouldn't be worried because bluetooth is designed exactly to figure out what good and bad channels there are and adjust the channel map dynamically on a constant basis to keep communications up. As things change, the channels change, the packet timings have a slight random element also which helps them to stay out of each others way.

    I suggest instead of worrying about it and trying to work around a problem you probably don't actually have, you just assume the BT SIG knows how to design communications channels and let the softdevice work it out for you in accordance with the spec. Trying to do it manually is going to give you worse results, period.

  • Oh. Thanks! actually, I was worried about it too. even if i could manually select channel, does I can have better result?... I was thinking it as an No..

    And It's just my curious question, while Using specific channel, If lot's of devices are connected to that specific channel, and if it's too crowded, does nordic recognize it, and change to other channel?

    (+ can I get any other indicator not only RSSI, such as SNR (signal noise ratio), COI, or CNR or TX Ratio? with NRF51?)

  • Daniel, BLE is designed to use all 37 channels with hopping in time so real throughput is typically much more then 37, probably thousands of connections (depends on connection interval, if multiple PDUs are sent, if PDU extension is used etc.) However thinking that by "manual" management of channels you will get "smarter" and achieve better bandwidth/scalability is false.

Related