I recently received the uBlox XPLR-AOA-3 Dev Kit. It’s an easy way to do direction finding. I’ll be using this to implement a “follow me” robot. (Note that the image above is for the AOA-1/2 kits, and that the antenna is different in the AOA-3 kit.)
It took a bit to get it up and running, as there are some details that are easy to miss. This article deals with installing the firmware on the tag that comes with the kit, a necessary step as it does not come pre-flashed. As a bonus, I show how to do it from macOS.
Install nrfutil
The tool used to flash the tag is nrfutil
(I don’t know why a uBlox product uses a Nordic Semiconductor flashing tool).
Install that on macOS via Brew:
% brew install nrfutil
nrfutil
has a ton of sub-commands that have to be installed separately. In particular, you need the dfu
sub-command, which comes from the nrf5sdk-tools
package. I found this by Googling, and I don’t know how to find other packages:
% nrfutil install nrf5sdk-tools
You can see installed commands with nrfutil list
:
% nrfutil list
Command Version Description
nrf5sdk-tools 1.0.1 nRF5 SDK tools that were available in nRF Util 6
dfu
keys
pkg
settings
zigbee
Found 1 installed command(s)
Download the C209 Firmware
The C209 firmware is available on GitHub. You can download pre-built releases from here.
Unzip the file (in my case it was c209_aoa_tag_2_0_1-001.zip
), and you’ll get a few versions:
% ls -l c209_aoa_tag_2_0_1-001
total 0
drwxrwxr-x@ 7 rmann staff 224B May 4 2023 debug_c209_aoa_tag_for_dfu_boot/
drwxrwxr-x@ 7 rmann staff 224B May 4 2023 debug_c209_aoa_tag_no_boot_required/
drwxrwxr-x@ 7 rmann staff 224B May 4 2023 release_c209_aoa_tag_for_dfu_boot/
drwxrwxr-x@ 7 rmann staff 224B May 4 2023 release_c209_aoa_tag_no_boot_required/
You will need to install one of the for_dfu
versions.
Flash the Tag
The tag must be placed into DFU mode. Hold down S2 (the lower-left button) while pressing the reset button (the lower-right). You won’t see any evidence it’s in DFU mode (the USB device does not re-enumerate).
When using nrfutil
, it wants a zip file. A successful invocation looks like this (replace the path and port as appropriate):
% nrfutil dfu serial -pkg /path/to/c209/firmware/release/c209_aoa_tag_2_0_1-001/release_c209_aoa_tag_for_dfu_boot/NINA-B4-DF-TAG-SW-2.0.1-001.zip -p /dev/cu.usbserial-DP04O6V2 -b 115200 -fc 1
[####################################] 100%
Device programmed.
That’s it for the tag. You can open it up and install a CR2032 battery to power it.
As to using it, that’s for another article. One thing to note, it’s not strictly necessary to get the full AOA-3 dev kit. The antenna (ANT-B10) alone is all you need, but it’s slightly more challenging to connect to it. And so far, there’s no way I’ve found to get just an ANT-B10 and a tag, or to buy a tag separately.