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