Unclear BLE channel map definition

Dear,

We would like to comply to FCC regulations and need to restrict the used BLE channels from channel 1 to channel 11.

We think that this should be possible by using the following code:

uint8_t chan_map_fcc[5] = { 0x7f, 0xf0, 0x00, 0x00, 0x00 };
bt_le_set_chan_map(chan_map_fcc);

We have the following questions:

1) Is this correct?

2) Can you indicate with an logic "1" bit in the channel map corresponds to an active channel,

or is the channel map using negative logic ( logic "0" bit is an active channel)

3) Can you point us to the documentation where the definition of the channel map is described?

4)  From the following source: point 6):

Set new channel map - Nordic Q&A - Nordic DevZone - Nordic DevZone (nordicsemi.com)

The default channel map where all channels are used seems to be:

uint8_t chan_map_all_channels_active[5] = { 0xff0xff0xff0xff0x1f };

Can you please explain where this 0x1f in the channel map comes from, why not 0xff?

5) From the following source: point 5):

Set new channel map - Nordic Q&A - Nordic DevZone - Nordic DevZone (nordicsemi.com)

It seems that the channel map uses negative logic. Can you please explain?

6) Can you please confirm that bit 0 in the channel map corresponds to channel 0,

so the mapping is starting with 0 and ending with 39 (40 bits) and is not following

the picture below that starts with channel 37.

 

Thanks for your help,

Arno

  • Hello,

    You are mixing Wifi channels with BLE channels, you are right that for Wifi (that have much higher bandwith of 20/40MHz that only 11 channels are allowed), but for BLE that have a bandwidth of 1-2MHz you can fit all 39 channels legally within all radio regulations in the world. 

    The default channel map where all channels are used seems to be:

    uint8_t chan_map_all_channels_active[5] = { 0xff0xff0xff0xff0x1f };

    This channel map control the 37 channels that are used when a link is established, since [5]bytes are 40bit, the top 3bits are 0 for the fifth byte of the channel map (thereby it's 0x1f). For advertisment all 3 channels are used.

    Honestly speaking there is no need for you to change this, use all channels is overall the safest bet (unless you are a making a phone and have an internal WiFi chipset and thereby may want to avoid some of the channels). This is illustrated with the yellow (Wifi) vs. the blue (BLE) in the figure. The dark green in the figure is advertisment channels.

    Likely I didn't answer all your questions here, but hopefully the above make sense.

    Kenneth

Related