The BLE stack is based on the ARM Cordio stack. This stack has been developed by a 3rd party and was bought by ARM and open-sourced.
There are many copies of it floating around on the Internet and some are more up to date than others. To keep track here is a list:
- mbed
- mbed has a reasonably up to date version of the stack in their GitHub repository.
- It is scattered below the CORDIO directories in https://github.com/ARMmbed/mbed-os/tree/master/features/FEATURE_BLE/targets
- ble-profiles are not included. mbed has written their own adaptation layer to interface with the stack and implements profiles in C++
- Ambiq Suite SDK
- Can be found here: https://github.com/sparkfun/AmbiqSuiteSDK/tree/master/third_party/exactle
- Patches on top might be here: https://support.ambiqmicro.com/hc/en-us/categories/115000239012-Software
- Reasonably up to date
- Intersting part: has their own FreeRTOS integration (but apparently on older WSF)
- BLE 5.1 (?)
- Packetcraft
- Apparently tasked with maintaining the stack in general
- Most up to date version
- https://github.com/packetcraft-inc/cordio
- Apparently developing (security) fixes, distributing them to customers, but not applying them to master: https://github.com/ARMmbed/mbed-os/commit/c92777311578eb003b4546c4e5e6f2c1f8ba3c84
- BLE 5.1
- Maxim
- Distributed via Maxim Toolchain Installation tool, no repository available
- Contains software implementation of the base band
- ble-host and ble-profiles might be compatible with the one directly from Packetcraft