xref: /btstack/port/posix-h4-zephyr/README.md (revision 34fd36da1820bede7fdeb1f09f53c180688c8c25)
1*34fd36daSMatthias Ringwald# BTstack Port for POSIX Systems with Zephyr-based Controller
26807484cSMatthias Ringwald
3*34fd36daSMatthias RingwaldThe main difference to the regular posix-h4 port is that that the Zephyr Controller uses 1000000 as baud rate.
4410be61aSMatthias RingwaldIn addition, the port defaults to use the fixed static address stored during production.
56807484cSMatthias Ringwald
6410be61aSMatthias Ringwald## Prepare Zephyr Controller
7410be61aSMatthias Ringwald
8410be61aSMatthias RingwaldPlease follow [this](https://devzone.nordicsemi.com/blogs/1059/nrf5x-support-within-the-zephyr-project-rtos/) blog post about how to compile and flash `samples/bluetooth/hci_uart` to a connected nRF5 dev kit.
9410be61aSMatthias Ringwald
10410be61aSMatthias RingwaldIn short: you need to install an arm-none-eabi gcc toolchain and the nRF5x Command Line Tools incl. the J-Link drivers, checkout the Zephyr project, and flash an example project onto the chipset:
11410be61aSMatthias Ringwald
12410be61aSMatthias Ringwald  * Install [J-Link Software and documentation pack](https://www.segger.com/jlink-software.html).
13410be61aSMatthias Ringwald  * Get nrfjprog as part of the [nRFx-Command-Line-Tools](http://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF52-DK). Click on Downloads tab on the top and look for your OS.
14410be61aSMatthias Ringwald  * [Checkout Zephyr and install toolchain](https://www.zephyrproject.org/doc/getting_started/getting_started.html). We recommend using the [arm-non-eabi gcc binaries](https://launchpad.net/gcc-arm-embedded) instead of compiling it yourself. At least on OS X, this failed for us.
15410be61aSMatthias Ringwald
16410be61aSMatthias Ringwald  * In *samples/bluetooth/hci_uart*, compile the firmware for nRF52 Dev Kit
17410be61aSMatthias Ringwald
18410be61aSMatthias Ringwald      $ make BOARD=nrf52_pca10040
19410be61aSMatthias Ringwald
20410be61aSMatthias Ringwald   * Upload the firmware
21410be61aSMatthias Ringwald
22410be61aSMatthias Ringwald      $ make flash
23410be61aSMatthias Ringwald
24410be61aSMatthias Ringwald   * For the nRF51 Dev Kit, use `make BOARD=nrf51_pca10028`.
25410be61aSMatthias Ringwald
26410be61aSMatthias Ringwald## Configure serial port
27410be61aSMatthias Ringwald
28410be61aSMatthias RingwaldTo set the serial port of your Zephyr Controller, you can either update config.device_name in main.c or
29410be61aSMatthias Ringwaldalways start the examples with the `-u /path/to/serialport` option.
30410be61aSMatthias Ringwald
31410be61aSMatthias Ringwald## Compile Examples
326807484cSMatthias Ringwald
336807484cSMatthias Ringwald    $ make
346807484cSMatthias Ringwald
35410be61aSMatthias Ringwald## Run example
366807484cSMatthias Ringwald
37410be61aSMatthias RingwaldJust run any of the created binaries, e.g.
38410be61aSMatthias Ringwald
39410be61aSMatthias Ringwald    $ ./le_counter
40410be61aSMatthias Ringwald
41410be61aSMatthias RingwaldThe packet log will be written to /tmp/hci_dump.pklg
42410be61aSMatthias Ringwald
43