[riot-notifications] [RIOT-OS/RIOT] net: add Skald, a BLE advertising stack (#8884)

Hauke Petersen notifications at github.com
Thu Apr 5 11:58:20 CEST 2018


### Contribution description
This PR adds `Skald` to RIOT, a BLE advertising stack written from scratch. `Skald` is focused on the BLE broadcaster role only, but for this he is extremely small, allowing for very memory efficient implementation of all kind of BLE beacons (e.g. a iBeacon takes ~5k ROM with everything).

Currently, `Skald` supports Apple's `iBeacons`, Google's `Eddystone` beacons, and sending out custom `GAP` payloads.

This PR also contains a `netdev` tailoring for using BLE radios, as well as a BLE radio driver implementation for the `nrf5x` family of devices.

Note: currently only the `nrf52dk` is supported (and tested), other platforms will be added step-by-step

### Testing

1. flash the included `iBeacon` or the `Eddystone` example on a `nrf52dk`
2. use any iOS or Android app that can scan for BLE devices to verify the beacon, e.g. Nordic's `nRF Connect` App (for [Android](https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp) or [iOS](https://itunes.apple.com/us/app/nrf-connect/id1054362403?mt=8)). Alternatively you can use a Bluetooth 4.0 capable Linux and use Bluez `hcitools`... Or something else...


### Issues/PRs references
`Skald` is a spin-off of my current BLE implementation efforts, a full BLE stack will follow soon...
You can view, comment on, or merge this pull request online at:

  https://github.com/RIOT-OS/RIOT/pull/8884

-- Commit Summary --

  * drivers/netdev: added BLE adaption for netdev
  * cpu/nrf5x: added nrfble radio driver
  * boards/nrf52xxxdk: added BLE radio features
  * sys/net: added generic BLE defines
  * sys/net: added generic Eddystone defines
  * sys/net: added Skald
  * sys/auto_init: added initialization for Skald
  * examples: added Skald iBeacon example
  * examples: added Skald Eddystone example
  * boards/nrf52xxxdk: add Skald dependencies

-- File Changes --

    M Makefile.dep (9)
    M boards/common/nrf52xxxdk/Makefile.dep (4)
    M boards/common/nrf52xxxdk/Makefile.features (2)
    M cpu/nrf5x_common/Makefile (4)
    A cpu/nrf5x_common/include/nrfble.h (73)
    A cpu/nrf5x_common/radio/nrfble/Makefile (3)
    A cpu/nrf5x_common/radio/nrfble/nrfble.c (357)
    A drivers/include/net/netdev/ble.h (199)
    A examples/skald_eddystone/Makefile (22)
    A examples/skald_eddystone/main.c (55)
    A examples/skald_ibeacon/Makefile (22)
    A examples/skald_ibeacon/main.c (44)
    M makefiles/pseudomodules.inc.mk (5)
    M sys/Makefile (3)
    M sys/auto_init/Makefile (6)
    M sys/auto_init/auto_init.c (5)
    A sys/auto_init/auto_init_skald.c (43)
    A sys/include/net/ble.h (406)
    A sys/include/net/eddystone.h (63)
    M sys/include/net/netopt.h (2)
    A sys/include/net/skald.h (129)
    A sys/include/net/skald/eddystone.h (83)
    A sys/include/net/skald/ibeacon.h (54)
    A sys/net/skald/Makefile (11)
    A sys/net/skald/skald.c (141)
    A sys/net/skald/skald_eddystone.c (109)
    A sys/net/skald/skald_ibeacon.c (63)

-- Patch Links --

https://github.com/RIOT-OS/RIOT/pull/8884.patch
https://github.com/RIOT-OS/RIOT/pull/8884.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/RIOT-OS/RIOT/pull/8884
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/notifications/attachments/20180405/bb969cc0/attachment-0001.html>


More information about the notifications mailing list