zephyr/samples/bluetooth/README
Szymon Janc fb5424392b Bluetooth: Use unified kernel build for tests and samples
This makes all Bluetooth samples and tests being build with unified
kernel. main() is now executed from init thread and specifying task
for it in mdef file is no longer needed. By default main stack is
1024 bytes and this should be enough for BT samples.

Change-Id: I6674eea2c028b78ada5190acef72937186738af2
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-10-28 08:30:57 +02:00

110 lines
3.6 KiB
Plaintext

Bluetooth subsystem
= Building =
Build samples
$ make -C samples/bluetooth/<app>
= Bluetooth Sample application =
Host Bluetooth controller is connected to the second qemu serial line
through a UNIX socket (qemu option -serial unix:/tmp/bt-server-bredr).
This option is already added to qemu through QEMU_EXTRA_FLAGS in Makefile.
On the host side BlueZ allows to "connect" Bluetooth controller through
a so-called user channel. Use the btproxy tool for that:
$ sudo tools/btproxy -u
Listening on /tmp/bt-server-bredr
Note that before calling btproxy make sure that Bluetooth controller is down.
Now running qemu result connecting second serial line to 'bt-server-bredr'
UNIX socket. When Bluetooth (CONFIG_BLUETOOTH) and Bluetooth HCI UART driver
(CONFIG_BLUETOOTH_H4) are enabled, Bluetooth driver registers to the system.
From now on Bluetooth might be used by the application. To run application in
the qemu run:
$ make qemu
= Bluetooth sanity check =
There is smoke test application in tests directory which gets run in sanity
check script:
$ scripts/sanity_chk/sanitycheck [-P <platform>]
To only run Bluetooth tests use the -t bluetooth switch:
$ scripts/sanity_chk/sanitycheck -t bluetooth
= Summary of available applications =
beacon:
A simple application demonstrating the BLE Broadcaster role
functionality by advertising an Eddystone URL (the Zephyr
website).
central:
Application demonstrating very basic BLE Central role
functionality by scanning for other BLE devices and establishing
a connection to the first one with a strong enough signal.
central_hr:
Similar to 'central', except that this application specifically
looks for heart-rate monitors and reports the heart-rate
readings once connected.
eddystone:
Application demostrating Eddystone Configuration Service:
https://github.com/google/eddystone/tree/master/configuration-service
gatt:
Not an application, but a set of reusable modules for common
GATT profiles & services.
hci-uart:
Expose Zephyr Bluetooth Controller support over UART to another
device/CPU using the H:4 HCI transport protocol (requires HW
flow control from the UART).
hci-usb:
Make a USB Bluetooth dongle out of Zephyr. Requires USB device
support from the board it runs on (e.g. Arduino 101 has this).
ipsp:
Application demonstrating the IPSP (Internet Protocol Support
Profile) Node role. IPSP is the Bluetooth profile that
underneath utilizes 6LoWPAN, i.e. gives you IPv6 connectivity
over BLE.
peripheral:
Application demonstrating the BLE Peripheral role. It has
several well-known and vendor-specific GATT services that it
exposes.
peripheral_csc:
Similar to 'peripheral', except that this application
specifically exposes the CSC (Cycling Speed and Cadence)
GATT Service.
peripheral_dis:
Similar to 'peripheral', except that this application
specifically exposes the DIS (Device Information) GATT Service.
peripheral_esp:
Similar to 'peripheral', except that this application
specifically exposes the ESP (Environmental Sensing Profile)
GATT Service.
peripheral_hr:
Similar to 'peripheral', except that this application
specifically exposes the HR (Heart Rate) GATT Service. Once a
device connects it will generate dummy heart-rate values.
peripheral_hids:
Similar to 'peripheral', except that this application
specifically exposes the HID GATT Service. The report map used
is for a generic mouse.