Hello everyone,
TL;DR: Seeking advice on advertising on arbitrary channels + usage of
btvirt specifically function "send_adv_pkt".
I am currently working on my bachelor thesis and have the following
problem with I would like to request some advice:
I want to test several algorithms that try to improve the time it takes
to find an advertisement packet of another device. For this I not only
want to change the method of advertising, on channels 37-39 in
sequential order, to something else, but also send advertisement packets
on other channels.
My main difficulty currently is composed of trying to find out where the
actual advertisement packets are sent. Currently my best guess is, that
is is controlled by the firmware of my raspberry pi that I am using
(specific model below), because I could not find anything within the
bluez stack. Maybe one of you has more knowledge on where I have to search.
What I was able to find was the btvirt tool, which could help with my
problem. There I found in the file "le.c" in function
"adv_timeout_callback" another function called "send_adv_pkt". Sadly
while trying out btvirt and clever usage of some print statements I
could not see the function be executed. Maybe someone can give me some
advice on that, because this function should do exactly what I am
looking for. It could be that I was just using the tool incorrectly in
which case it would be great if somebody could tell me how to use it. My
methodology was: 1. "sudo ./btvirt -L -l2 -d" to create 2 new local LE
controller. 2. Start advertisement using hcitool "sudo hcitool -i hci2
cmd 0x08 0x000a 01". The advertisement is correct and the other local
controller can connect to the first one.
My current equipment is:
Device: Raspberry Pi 3 Model B+
Kernel + OS: Linux raspberrypi 5.15.61-v7+ #1579 SMP Fri Aug 26
11:10:59 BST 2022 armv7l GNU/Linux
Bluez version: 5.65
Kind regards
Marvin Sinnwell
Hi Marvin,
On Fri, Nov 18, 2022 at 8:24 AM Marvin Sinnwell <[email protected]> wrote:
>
> Hello everyone,
>
> TL;DR: Seeking advice on advertising on arbitrary channels + usage of
> btvirt specifically function "send_adv_pkt".
>
> I am currently working on my bachelor thesis and have the following
> problem with I would like to request some advice:
>
> I want to test several algorithms that try to improve the time it takes
> to find an advertisement packet of another device. For this I not only
> want to change the method of advertising, on channels 37-39 in
> sequential order, to something else, but also send advertisement packets
> on other channels.
>
> My main difficulty currently is composed of trying to find out where the
> actual advertisement packets are sent. Currently my best guess is, that
> is is controlled by the firmware of my raspberry pi that I am using
> (specific model below), because I could not find anything within the
> bluez stack. Maybe one of you has more knowledge on where I have to search.
>
> What I was able to find was the btvirt tool, which could help with my
> problem. There I found in the file "le.c" in function
> "adv_timeout_callback" another function called "send_adv_pkt". Sadly
> while trying out btvirt and clever usage of some print statements I
> could not see the function be executed. Maybe someone can give me some
> advice on that, because this function should do exactly what I am
> looking for. It could be that I was just using the tool incorrectly in
> which case it would be great if somebody could tell me how to use it. My
> methodology was: 1. "sudo ./btvirt -L -l2 -d" to create 2 new local LE
> controller. 2. Start advertisement using hcitool "sudo hcitool -i hci2
> cmd 0x08 0x000a 01". The advertisement is correct and the other local
> controller can connect to the first one.
I don't think vhci will help you given it only emulates HCI layer and
the channels are actually controlled by the so called Link Layer which
happens to be under HCI, you might have control over the Link Layer
using Zephyr though.
> My current equipment is:
>
> Device: Raspberry Pi 3 Model B+
>
> Kernel + OS: Linux raspberrypi 5.15.61-v7+ #1579 SMP Fri Aug 26
> 11:10:59 BST 2022 armv7l GNU/Linux
>
> Bluez version: 5.65
>
>
> Kind regards
>
> Marvin Sinnwell
>
>
>
--
Luiz Augusto von Dentz