How slowly everything proceeds! I’m just banging away at getting the right/minimal combination of BLE features into our footprint.
The challenge is to be able to have BLE do three things at the same time:
- On some condition (TBD) broadcast a BLE command to peers asking them to to turn on their DW chip for subsequent ranging;
- Listen out for instructions from peers to turn on theDW chip and respond to their subsequent range request;
- Respond to operator commands to set various parameters on the peer. Don’t quite know what they will be, but probably some short UID, role(anchor, wearable, gateway…).
Being both a broadcaster/advertiser (aka service), and a listener(aka central/application/scanner) is not the standard behavior for Nordic chips.
Recently Nordic created a new soft machine called the S130 which is able to be a broadcaster/advertiser and a listener/scanner simultaneously – albeit in a limited way. The soft-machine is basically an operating system.
TS06 requirements are actually quite modest, but unusual and I’m trying to build them atop the S130, and shoe-horn them into the nRF51822 along with the DW libraries. I think the code will fit OK, but the challenge is likely to be the limited RAM size for buffers.
Since this is a show-stopper until we get the 32K chips (and maybe even then) it’s a priority to see if this can all be done.
So far I have managed to get some trivial programs that generate zero radio traffic, but blink LEDs running atop the S130. This turned out to be more of a configuration nightmare than I thought because there was an errors in Nordic’s “.ld” file they published for the S130. That was several days wasted.
Yesterday I managed to get an advertiser running atop the S130, and I was able to observe it’s adverts were correct using my phone. It’s a simple and almost trivial accomplishment, but a relief to have made a bit of progress.
The next step is see if I can get the scanner side working in parallel with the advertiser.