Skald, a minimalistic BLE advertising stack.
More...
Skald, a minimalistic BLE advertising stack.
About
Skald is a very minimalistic BLE implementation, implementing the broadcaster
role only. With this focus, the stack allows for setting up different kind of beacons using an extremely low memory footprint.
Design Decisions and Limitations
- support for local addresses only (using
luid
to generate them)
- advertising interval is configured during compile time, override by setting
CFLAGS+=-DCONFIG_SKALD_INTERVAL=xxx
- advertising channels are configured during compile time, override by setting
CFLAGS+=-DSKALD_ADV_CHAN={37,39}
Implementation state
Supported:
- advertising of custom GAP payloads
- iBeacon (full support)
- Eddystone (partly supported)
Limitations:
- currently Skald supports random static addresses only (generated using the
luid
module)
|
file | skald.h |
| Skald's basic interface.
|
|
◆ SKALD_ADV_CHAN
#define SKALD_ADV_CHAN { 37, 38, 39 } |
List of advertising channels.
Definition at line 61 of file skald.h.
◆ skald_adv_start()
Start advertising the given packet.
The packet will be send out each advertising interval (see CONFIG_SKALD_INTERVAL) on each of the defined advertising channels (see SKALD_ADV_CHAN).
- Parameters
-
[in,out] | ctx | start advertising this context |
◆ skald_adv_stop()
Stop the ongoing advertisement.
- Parameters
-
[in,out] | ctx | stop advertising this context |
◆ skald_generate_random_addr()
void skald_generate_random_addr |
( |
uint8_t * |
buf | ) |
|
Generate a random public address.
- Note
buf
must be able to hold BLE_ADDR_LEN (6) bytes
- Parameters
-
[out] | buf | the generated address is written to this buffer |