This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

How does the nRF5 Linux driver work?

Based on this question I've assumed that it's possible to use nRF52832 for providing Bluetooth connectivity to an embedded Linux platform.

A quote from the github repo states:

pc-ble-driver is a static and shared library that provides serial port communication

From that I've assumed that the driver is a userspace library, meaning is just a wrapper for proprietary messages that are passed to a Linux serial device. In other words, the driver isn't a kernel module.

My questions are:

  • Are the above assumptions correct?
  • In a above scenario, how should the nRF52832 communicate with boards main CPU? UART?
  • What firmware needs to be loaded to the nRF52832 so it behaves as a slave device that just provides the connectivity? As opposed when I'm writing custom firmware on the nRF52832 to turn on LEDs.
Parents
  • I think it would be best to use the hci-uart project in the zephyr project to provide the HCI implementation and then use BlueZ on linux to use the HCI implementation.

    github.com/.../hci-uart .

    Any further question should also be done in that community.

    The pc-ble-driver provides the softdevice API over UART and does not provide the HCI interface needed for Linux.

    You can use the pc-ble-driver in Linux as long as you build all the code necessary to use the pc-ble-driver

    [Edited]

Reply
  • I think it would be best to use the hci-uart project in the zephyr project to provide the HCI implementation and then use BlueZ on linux to use the HCI implementation.

    github.com/.../hci-uart .

    Any further question should also be done in that community.

    The pc-ble-driver provides the softdevice API over UART and does not provide the HCI interface needed for Linux.

    You can use the pc-ble-driver in Linux as long as you build all the code necessary to use the pc-ble-driver

    [Edited]

Children
Related