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

Changing the transmission power with every set of 3 advertising messages

Hi,

I would like to change the transmission power of the beacon kit so that I can switch back and forth between high and low tx powers for each set of advertising messages (3 messages sent on3 different channels). That is, after sending 3 messages on channels 37,38,39 with low transmission power, I would like to switch to high transmission power for the next three messages and so on.
How should I go about doing that? All I've figured out so far is that I should use sd_ble_gap_tx_power_set() function.

Thanks!

  • Look at the section on radio events in the softdevice manual. You can get a signal at the end of a radio event. So subscribe to the radio events when you start advertising, each time one ends then you change your advertising power. When you go into connection or stop advertising, turn the events off again.

  • Interesting. In section 9 of the manual, they talk about the radio events and say in one radio event many packets can be sent, so that means using the radio event I cannot accomplish setting transmission power after every 3 advertising messsages, no? Also how do I subscribe for radio events? According to this post, I should be using ble_radio_init function, but it's undefined in the sample beacon project. Thank you very much @rols !

  • read it again - including the timings beneath - one radio event covers one advertising event which is one advertising packet sent out on each of the 3 channels so yes you can exactly use it to change power after every 3 packets.

    ..opens documentation, types 'radio' into the search field at the top right corner, clicks the first link and gets..

    this page

    so Nordic has even wrapped the interrupt handling in a module you just have to supply a handler for and call the init function.

  • Thanka @rols. Are you referring to table 15 in the manual by "timings beneath"? In that table, depending on the t_interval and t_ndist, different number of packets can be transmitted. I don't get why you're saying it's 3 for sure. Could you please elaborate?

Related