Zephyr as HCI Host #uart #bluetoothmesh #hci


@abaska
 

Hello,

I am trying to configure Zephyr as a HCI UART host.

My setup:
  • nrf52840_pca10056 nordic dev kit running zephyr/samples/bluetooth/hci_uart. This seems pretty straight forward.
  • stm32f746g_disco dev kit running zephyr/samples/bluetooth/mesh. When selecting the mesh sample the build environment knows to automatically select BT_HCI_HOST.
  • 4 UART lines between the two boards. Rx, Tx, RTS, and CTS.

Is this a valid setup? I really only need zephyr running as the host and then the HCI controller could be any controller that speaks HCI UART, but right now I have both boards running zephyr. I found documentation on zephyr HCI controller, but not much on zephyr being the HCI host.

In running this I would expect to see the mesh sample run. IE to be able to see a configurable mesh device and to be able to provision it. What I am seeing is one UART message in either direction (seen via scope) then nothing. I started divining into the hci code but wanted to reach out to see if anyone has ever ran zephyr as a bluetooth HCI host before.


Johan Hedberg
 

Hi,


On 13 Nov 2018, at 0.38, abaska@... wrote:
I am trying to configure Zephyr as a HCI UART host.

My setup:
• nrf52840_pca10056 nordic dev kit running zephyr/samples/bluetooth/hci_uart. This seems pretty straight forward.
• stm32f746g_disco dev kit running zephyr/samples/bluetooth/mesh. When selecting the mesh sample the build environment knows to automatically select BT_HCI_HOST.
• 4 UART lines between the two boards. Rx, Tx, RTS, and CTS.

Is this a valid setup? I really only need zephyr running as the host and then the HCI controller could be any controller that speaks HCI UART, but right now I have both boards running zephyr. I found documentation on zephyr HCI controller, but not much on zephyr being the HCI host.
This is a valid and quite common set up. The most important thing you'll need to enable is the host-side UART HCI driver using CONFIG_BT_H4=y.

Johan


@abaska
 

Looks like UART flow control is not implemented on stm32f746g_disco. I am going to get that working. Hopefully that makes this setup work.