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

Using softdevice directly without SDK libraries

I'm trying to update my project to use the latest S110 softdevice release. The trouble is that I have written many of my own hardware abstraction layers and they are conflicting with the hardware abstraction layers that have been introduced in the later SDK release. I'm finding it very difficult to resolve these conflicts, as the BLE_Modules in the SDK libraries have dependencies on the nRF_Drivers modules. If I want to use my own hardware abstraction layers, then I can't use any of the BLE_Modules libraries in my project. To be honest, I don't really have a good understanding of what these BLE_Modules libraries actually do.

I am considering not using any of the SDK libraries and instead interfacing directly with the softdevice. Before I head down this path, I was wondering if anyone else is doing the same and was it difficult? Does it require an in-depth understanding of the different layers of the BLE stack (GATT, GAP, L2CAP, etc)?

Parents
  • Hi Nick,

    You can also have a look at the ble_app_template example we have on SDK v8.0 (or v8.1, not v9.0). In that example, we don't use device_manager but handle all the BLE events and control directly from main.c.

    We still use the app_timer, app_gpiote in the example, but you can refer to the template example to know how to handle BLE directly, in your application.

Reply
  • Hi Nick,

    You can also have a look at the ble_app_template example we have on SDK v8.0 (or v8.1, not v9.0). In that example, we don't use device_manager but handle all the BLE events and control directly from main.c.

    We still use the app_timer, app_gpiote in the example, but you can refer to the template example to know how to handle BLE directly, in your application.

Children
Related