DWM1001C Shell commands `udi` does not show anything in bridge

Hi. I have a tag and a gateway node with default firmware.

I wish to send data from tag to the gateway using the backhaul. When I read it from the gateway, using the uart shell udi command, I cannot read it. However, when I use the raspberry pi DRTLS Web Manager, I can see the backhaul message just fine.

I was expecting to be able to read it through the gateway using udi command or tlv. Both seems to not working. Anyone knows why?

Note:

  1. Raspberry pi + DWM1001C is set as bridge
  2. UDI responded in “show on”, which from the documentation says it should prints out whenever it gets a new message

Hi @arama
the udi command does not work on gateway. You need to have the whole chain (DWM1001 + RPI) to have it working. The bridge just forward the data from UWB network to RPI and in the RPI is running SW that take care about packets decoding, timestamping and etc.

Cheers
JK

Just to make sure, so I cannot take the backhaul data from TLV, but I need dwm-daemon to do that?

If I want to make my tag node communicate with the gateway, how can I do that? For example when I add an I2C sensors in the tag node (TN) and I want to report back to gateway using backhaul, and process the data using python in RPI. How can I extract this data?

Hi @arama
in theory you can get the data from TLV (see the 5.4 Backhaul API functions in DWM1001-API-Guide.pdf). But it is very complex to handle this correctly so we are not supporting it and I dont recommend you to go this way. So at the end - yes you need DWM daemon to do that. There is also loaded kernel module who take care about proper timing on SPI bus and this is the reason why newer RPI are not supporter - newer RPIs have more cores, faster CPU but if you need to do something really deterministic it is actually slower (mostly because GMAC spams cpu with tons of IRQ).

Regarding the IoT)
You can witrr your own miniap into the DWM1001. Check this samples DWM1001\Source_Code\DWM1001_on_board_package\DWM1001_on_board_package_R2.0.zip\dwm\examples\ there are some guidance how to control external peripheral and how to send IoT package over UWB.

Or you can connect external MCU and just send/receive mesages over SPI/UART with binary API.

Cheers
JK

Hi JK, thanks for speedy response!

In case that I didn’t explain it clearly enough, my idea is: having a tag send data to the bridge (in this case the data is battery percentage, a float 32-bit data). I wish to use UWB backhaul to send it to the bridge (a raspberry pi) and let it process the data.

I have looked at the code you mentioned. I have a general idea on how we can send IoT data from Tag Node to Bridge Node.

Now, my question is: how can I receive it on the Bridge Node? Is it possible without the complexity in handling backhaul that you just mentioned? Is there a way for me to ask the daemon for the data?

Hi @arama
on the bridge without RPI you can use the mentioned API commands - but I have warned you will get no support from us. With RPi you can simply use the MQTT broker to get the data form the node.

Cheers
JK

Hi JK, I’m interested with the RPi option since its easier. Is the backhaul data supposed to come at MQTT topic dwm/node/<node_id>/uplink/data ?

Hi @arama
yes, that topic should be correct.

Cheers
JK

Thanks JK for your assistance