Is there a way of running BLE on the network core only on nRF5340?

Hi,

I am trying to optimize a time critical device for lowest possible latency data transmission over BLE on nRF5340 working as peripheral.
Currently my algorithms are implemented completely on the app core side of the device, while I use the original hci_rpmsg on the net core.

When I analyze my HW-signals on both ends of the BLE-transmission with an oscilloscope I mostly find a jitter in the range of the connection interval - as I expected.
Occasionally I do find outliers, though... and I see that bt_gatt_notify on the app core seems to sporadically "get stuck" for a while and "recover" after a delay...

...adding significant latency.

Since I do not understand the reason for this behavior, but need latencies as short as possible and especially as reproducible as possible for transmission and also execution on the app core, I looked into inter-core communication and alternative networking options on the nrf5340 and found, that there could also be a reduction of the connection interval with llpm-service and ESB as alternative lowest latency options.

If I could implement a very small inter core communication (in my application the size of the data to be exchanged would be very small) and a "single core" BLE implementation on the network core, I would hope to be able to achieve:

1) least overhead and uncertainty of "notify-duration" for radio communication on the app core side, which is time critical

2) a complete logical split between the radio relevant part and my time critical algorithms with least interferences to be expected

3) I could implement different options on the network side, to be used with different centrals (like llpm, if possible, BLE standard etc...)

Therefore I would like to ask for advice before I go on a mission impossible...

a) Is it possible to have a BLE-implementation 100% on the network-core side of the nrf5340? (I do not see any technical reason against this, because the net core should be fast enough - if nrf52840 can run BLE stack and controller on one core) - What would be reasons against this way of splitting?

b) Why does llpm not work for nrf5340 according to the documentation - is that related to the split core architecture?

c) Would llpm and ESB work on a single core (net core only) implementation on nrf5340?

Im am looking forward to your advice!

Regards,

Jens

Related