Flashing

The Crazyradio 2.0 is flashed via USB. When the radio is in bootloader mode it will appear as a USB-drive, flashing is simply done by dragging-and-dropping a new firmware file to the drive.

Bootloader mode

To enter bootloader mode, press and hold the button on the Crazyradio 2.0 while you plug it in. The LED on the Crazyradio 2.0 should turn red and slowly pulsate. The Crazyradio 2.0 will now behave like a USB-drive and new drive named Crazyradio2 should appear in your file browser containing a few files.

The file CURRENT.UF2 contains the current versions of the firmware that is installed. If you want to make a backup before you flash new firmware to the device, you can simply drag-and-drop CURRENT.UF2 to some other location.

Flashing

To flash new firmware to the Crazyradio, just drag-and-drop the new firmware (a .UF2 file) to the Crazyradio2 drive. The new file will be written to the flash memory, and the Crazyradio 2.0 will restart, running the new firmware. Writing the firmware takes a second or two and when the Crazyradio 2.0 restarts, the LED will no longer be red and the USB-drive will disappear.

You may get an error message in your file browser as the Crazyradio 2.0 exited the bootloader mode and the Crazyradio2 drive is no longer available.

Note: if you enter bootloader mode again the current firmware will always be named CURRENT.UF2, regardless of the name of the file you dropped when flashing.

Flasing with USB serial port

The bootloader also contains a (CDC) USB serial port interface. This allows to flash the firmware from command line or from a script which might be helpful during development.

Fashing using the serial port interface requires the adafruit-nrfutil command line tool. This tool can be installed with pip install adafruit-nrfutil.

Then, from within the firmware build folder, a package can be generated and flashed:

adafruit-nrfutil  dfu genpkg --dev-type 0x0052 --application build/zephyr/crazyradio2.hex crazyradio2.zip
adafruit-nrfutil  dfu serial --package crazyradio2.zip -p /dev/ttyACM0 -b 115200

In those commands, /dev/ttyACM0 is the serial port of the Crazyradio bootloader.