I am searching for a Low Power Wireless communication protocol to send files over a short distance once a day. The data is about 50 MBytes.
I came across UWB and DWS1000. Therefore I was wondering if it is suitable for our application or it will be worth trying.
Could it do it? Yes.
Are there better options out there? Almost certainly.
The DW1000 is designed for ranging and positioning type applications rather than for bulk data transfer. It can be used to transfer data, you need to be able to send information to make the ranging work, but transferring a lot of data wasn’t a key design consideration and so not something it does well.
If nothing else using the DW1000 would require a lot more firmware overhead packetizing the data and driving the chip, it’s not like most radio chips where you can configure it and then treat it almost like a serial cable. You could create an extra driver layer of firmware to make it act like this but that isn’t available out of the box.
As Andy mentioned, UWB is capable of measuring time of flight for positioning, but beyond that, it is also an rf protocol. The first question is if you think that a running uwb uC communication is going to be significantly lower power than Thread or BT. What are your low power requirements ?
UWB is designed for 802.15.4 and the dw1000 transceiver is even supported by the 802.15.4 Zephyr driver which as I explained in the review of the first link below, does not even has positioning so maybe suitable for your use case.
Now once you achieve phy packets transfers, you have the choice of either using a network stack, a real one, then talk with tcp and sockets same as you do it with a server. Zephyr is a low power friendly os, I already achieved with it ultra low power comm with Thread over udp socket but with 2.4 ghz not uwb, see thread sensortag below.
Integrating Thread over dw1000 might be a challenge though.
Then you have the hacking way, where you create your own file transfer protocol and transfer any size you want. I did that, on the dwm1001 nRF52 but for the 2.4ghz channel nor uwb, adapting it should be easy though. I used c++ and json for the header, then the bulk of the data with ack on every packet. It’s working fine, tested with 4kb, you might have to extend some vars from 16 to 32 bits, I never thought someone would talk megabytes on dmw1001, but why not. If you go that path and need further support let me know.