Using extended header flags to include the Advertiser Address for CODED PHY on primary channels

Hello,

When using extended advertising with coded PHY, the advertiser address is included by default in the auxiliary packet (AUX_ADV_IND) on the data channels and not in the primary advertising packet (ADV_EXT_IND) with the flags set as highlighted in the picture below.

To extend battery life, I need to include the advertiser address in the primary advertising packet by setting the Advertiser Address flag to "Present" and the Aux Pointer flag to 'Not present'. Since I'm in control of both sides of the connection and do not have additional data to send, this would reduce the number of bytes to be transmitted by 50%. Is there a low-level way to do this?

Thanks in advance for any hint.

  • I solved it myself. In the Bluetooth 6.0 specification on page 2945 it explains how to do it correctly.

    If bt_le_adv_param .options is just set to BT_LE_ADV_OPT_EXT_ADV | BT_LE_ADV_OPT_CODED it automatically creates extended advertising packets without auxiliary packet.

    Previously, I made the mistake to use the BT_LE_ADV_OPT_SCANNABLE and according to the specification this is only possible with auxiliary advertising packet.

    This case can be closed now.

Related