Re: Zephyr Low Level BLE Radio question
Chettimada, Vinayak Kariappa
> I still do not see any parameter where I can set my own frequency… This is the main part that I have been working on for a while now. Does this mean I DO have to use the ll_sw files?
There are no standard HCI interface to set application defined radio frequency, this will be against the Bluetooth specifications.
Refer to Bluetooth Specification V5.2, Vol 6, Part B, section 4.4.2.1 Advertising channel index selection:
Advertising events use three predefined primary advertising physical channels. Primary advertising channel indices are either used or unused. For AUX_ADV_IND and AUX_CHAIN_IND PDUs, the secondary advertising channel index used in the Channel Index subfield of the AuxPtr field is implementation specific. It is recommended that sufficient channel diversity is used to avoid collisions.
In the Zephyr BLE controller, advertising extensions is experimental, and the function that fills the advertising channel can be found here:
>Bit 10 telling to make use of the extended advertising (which I assume are the 255 byte payload messages). It usually sends a smaller header packet first on the primary channels that points to the actual data packet.
Correct.
>Bit 15-17 disable the advertising on the normal advertising channels. Does this mean that the previous process behaves differently? Or just skip the first ‘small header’ part?
These bits decide the `advertising event` on the primary channels, to use channel 37, 38, and 39. The `small header` is repeated in these channels inside a standard `advertising event`, and that is what is selected by these bits. For further details please refer to Bluetooth specifications.
-Vinayak
From: steven ghekiere <stevenghekiere@...>
Hey Vinayak,
Thanks for the reply!
I had a quick look at the extended advertising links you mentioned.
I assumed the general GAP protocol does similar stuff (as you showed) but doubted that it could just set data on a set channel. I still do not see any parameter where I can set my own frequency… This is the main part that I have been working on for a while now. Does this mean I DO have to use the ll_sw files?
(Wrote this as I was reading through your provided documentation) As I understand, the ‘bt_le_adv_param parameter of the create method’ has a 32 bit options field (0-17 actually used?). In these options we have:
Thanks!
Steven
From: Chettimada, Vinayak
Hi,
If you are building a Bluetooth Low Energy application using Zephyr, then you should use the public APIs, not call internal subsystem functions unless you know what you are doing.
I think you are looking for the below mentioned options when calling bt_le_ext_adv_create (https://docs.zephyrproject.org/latest/reference/bluetooth/gap.html#c.bt_le_ext_adv_create) https://docs.zephyrproject.org/latest/reference/bluetooth/gap.html#c.@... https://docs.zephyrproject.org/latest/reference/bluetooth/gap.html#c.@... https://docs.zephyrproject.org/latest/reference/bluetooth/gap.html#c.@...
These are for the primary advertising channels, auxiliary PDU channels selection is controller implementation specific.
If you are not using Bluetooth Low Energy stack, then you should refer to nRF52840 product specification for implementing your proprietary radio protocol.
>The low-level bluetooth controller is tragic. I’m sure it’s incredibly useful, but the use of nicknames and acronyms at every corner are not useful. Perhaps if there were comments that could help too
Contributions to improve the code, comments and add new features are always welcome.
Regards, Vinayak
From:
users@... <users@...>
On Behalf Of steven ghekiere via lists.zephyrproject.org
Hey Marciano,
Thanks for the quick reply! I’d have to agree on the acronyms and such.
What do you mean that ‘somebody can help us’?
Thanks
Steven
From: Marciano Preciado
Hey Steven!
I’d have to agree! The low-level bluetooth controller is tragic. I’m sure it’s incredibly useful, but the use of nicknames and acronyms at every corner are not useful. Perhaps if there were comments that could help too, but there aren’t. 😭
I hope somebody can help us out.
Best, Marciano Preciado
|
|