just a little heads up for everyone working on an implementation of the newer DW3000 chip with arduino: I am currently working on a library for arduino, which features a simple tx and rx example and a ping pong example.
More features and examples are in the making.
With this library I plan to create something that has a little bit more usability and readability than the currently available makerfabs library.
You can find the library here on my github.
I’d be glad for any feedback and I hope this helps for anyone getting started with the DW3000 chip .
One suggestion based on how I ended up implementing a DW1000 driver-
Have a separate DW3000Configuration class that holds the radio configuration of the device.
There are a number of configuration options that can be interdependent, certain preamble patterns are only supposed to be used for certain PRF rates etc…
By having a seperate class you can set each parameter without applying it to the radio. You can also have a validate function that ensures the combination selected is reasonable. And then you have a single function to apply it to the DW3000.
This also provides a simple way to read the current configuration out of the DW3000 class without needing a dozen different functions, one per setting.
I know arduino isn’t big on interrupts but Rx and Tx done interrupts would also be nice.