Good Evening!
We are designing a project using BLE; however, it requires quite heavy processing. We are still at a low level with pure C to save power, but the MCUs offered by nRF are too weak for us, and we don't want to change everything. At this moment, we were using the BLE module from STM but decided to switch to the Ublox one because we need a ready-to-go module with full certification, etc., and the STM one is too expensive.
Recently, I got a BMD-360 dev board with nrf52811 as ble MCU and started my investigation. And I am fully disappointed.
First of all, I was reading a little bit about NRF firmware, etc., and had already heard about possibilities for making a connection between the Bluetooth module and the application MCU.
Second, I was 200% sure (even now) that my use case is the most frequent.
But it turns out that there is no "good" way to do so.
I found 3 options on your website:
- Legacy serialization protocol. That sounds nice. I was able to build it and flash it. But next, I realized that there are no standalone libraries. I can attempt to use SDK to build something for an application MCU, but a review of the source code makes me doubt if it is a good solution
- Remote Procedure Calls. Really bad documentation, no libraries, no explanation, no anything to start with.
- HCI Transport protocol. It has Zephyr support, so it can be compiled even for STM, but a) it does not work with nrf52811 because it requires 40+ kB RAM, and b) I don't want to rewrite the whole project to be Zephyr compatible.
- Of course, making your own firmware with your own protocol could be CPU efficient for us and save a little bit of processing power, but we have dev time limits. This is the last resort.
So, every solution is worse than the previous :) I still hope that I don't know the name of the protocol or haven't found information on google. How do you solve this issue?