This project remove the dependency on a special version of Zephyr which contained the DWM1001 board definitions. Now the board definition is defined and merged at configuration time with the definitions in the base Zephyr distribution.
Also changed is the BLE support: now uses a custom 128-bit UUID for the service and characteristics. Other changes to the BLE support as well.
A new example addition shows how to configure and access the DWM1001’s embedded accelerometer (LIS2DH). See the board’s Device Tree file (nrf52_dwm1001.dts) for details.
This project should be used as a starting point for other DWM1001 projects.
This work was done on a VirtualBox VM running Ubuntu 18.04 LTS. Little testing was conducted on OSX or Windows. (OSX should be easy though.)
Does this use PANS (Decawave’s stock, closed-source firmware) under the hood, or is it a completely new implementation? Are there any performance deviations or hardware capabilities in the Zephyr version (vs Decawave firmware)?
I love the idea of open source, but I’m just getting involved with DWM1001 and judging my options.
I faced the same issue and solved it, for some reason newer versions of Zephyr allows float support configuration (probably to be more resource efficient for small targets)
I listed the flags in my review here
But it’s simply CONFIG_NEWLIB_LIBC=y CONFIG_NEWLIB_LIBC_FLOAT_PRINTF=y
@foldedtoad I would like to thank you again for your contribution, it allowed me to start this higher level framework over Zephyr, where the deca driver porting done by you was the difficult step.
I mentioned the additions in this forum post. Of course each has his coding style and practices but if what I added is of any use or have a review or suggestions I’d be glad to help.