Automate TWR setup with OoB

I’m trying to upgrade a One-To-Many scenario where I have multiple DW3001CDK anchors, some running on Python scripts derived from Qorvo-Tools library (in particular run_fira_twr), set as initiators. They cannot interfere with each other for now, so they can operate independently.
I plan to use several DW3001CDK as tags, set as responders, up to 8 running concurrently, according to the FiRa stack.

I need to automate the UWB TWR setup process, such that, by relying on BLE in OoB:

  1. Each DW3001CDK tag uses its BLE to pair and exchange its MAC address, session ID, and UWB parameters with the DW3001CDK anchor;
  2. Once set, the anchor initiates the UWB TWR, I suppose exploiting UCI commands;
  3. The DWM3001CDK sends via BLE OoB additional information (suppose a battery status for simplicity) to the anchor, which simply prints both UWB and received BLE info.

The two counterparts need to know a priori the UWB parameters (dest MAC and device MAC) to start TWR.
To do so, considering the last DW3_QM33_SDK_1.1.1, I would need to understand:

  • Can the QANI project on the firmware be customized to let DWM3001CDK communicate with each other OoB via BLE, and not with iOS?
  • If so, can you provide a brief tutorial on how to do it?
  • If not, and so if I need to customize the UCI firmware to perform this, which are the main QANI operations that need to be ported (like niq_init, CreateQaniTask, ble_init)?

I’m struggling to understand how to change the firmware, so any help is mega appreciated.