The Aurora platform is constantly evolving, so making sure Aurora is running the latest software is important to ensure proper interoperability with Aurora apps as well as access to the newest features and stability improvements. The best way to keep Aurora up to date is Aurora Desktop, which will automatically detect when new updates are available and install them with a single click. There are alternative methods listed below if Aurora Desktop is unavailable for whatever reason. Official firmware files can be downloaded from the Releases section.
Aurora's CLI provides commands for flashing all the major image types. The firmware file being flashed must first be present on the SD card. Use Storage Mode or any method of your choosing to first copy the image to the card. See the commands os-flash, os-flash-bootloader, and ble-flash for more details. ble-flash is the only way to update the firmware on Aurora's bluetooth module.
This method involves placing an Aurora firmware file directly on the SD card. This can be useful to downgrade to older firmware versions or for experimenting with custom firmware. Only main application firmware can be flashed using this technique. (i.e. no bootloader or BLE firmware)
- Acquire the desired firmware HEX file.
- Place the Aurora in Storage Mode.
- Rename the firmware file to "aurora-autoflash.hex" and copy it to the root directory of the Aurora drive.
- Exit Storage Mode by ejecting the Aurora drive as you would a USB thumbstick.
- Allow the device 10-15 seconds to complete the flashing process. Aurora will reboot and sound an extended startup chime if the flash was successful.
This low-level method should only be used as a last resort. Use at your own risk.
If any part of the 3-image Aurora firmware becomes corrupted, DFU mode provides an escape hatch for recovery since the DFU firmware exist on a separate and protected portion of memory. When in this mode, a 3rd-party tool, dfu-util, is used to flash binary images directly to Aurora ROM. In order to access this mode:
- Carefully open the Aurora case while Aurora is powered down. Here is a video explaining how to get the case open without damaging anything.
- Place a small conductive wire connecting the two holes immediately to the right of where the battery attaches to the circuit board. See the image below for clarification.
- With a USB cable connecting Aurora to a computer, power on Aurora by pressing the power button once. If done correctly, Aurora will silently boot up without any sound or light indication.
A good way to verify that the above steps were completed successfully is to run the following command using dfu-util:
When successful, the output should look similar to the below image:
Once in DFU mode, dfu-util can be used to flash any of the 3 firmware images on Aurora's main MCU.
dfu-util -d 0483:df11 -s 0x08000000 -a 0 -D "path/to/aurora-bootstrap.bin" //flashes the top bootstrap image dfu-util -d 0483:df11 -s 0x08004000 -a 0 -D "path/to/aurora-bootloader.bin" //flashes the Aurora bootloader image dfu-util -d 0483:df11 -s 0x08020000 -a 0 -D "path/to/aurora-application.bin" //flashes the main Aurora application image
A successful flashing session should look something like this:
It is not necessary to flash all 3 images if you only need to update one, however keep in mind that these images work in tandem so it's possible to flash a combination of images that aren't fully compatible with one another. If you see errors when attempting the above flashing steps, make sure that:
- The DFU jumper wire is conductive and securely connecting the two jumper holes. Aurora must boot up with this wire in place, so if you make adjustments, be sure to power down and power back on Aurora.
- The USB cable you are using is capable of data transfer. Some micro USB cables are only for charging. Try using a different cable if dfu-util is not able to detect a DFU device.
- Aurora has enough battery power to start up. If your unit is totally unresponsive, leaving Aurora plugged in to a power source via USB for 30 minutes should be sufficient.
- The path to the desired firmware files are correct and that you are specifying binary (.bin) files and not HEX files.
- Specified addresses are correct for each image type as flashing an image to the wrong address will create undefined behavior.
Pro Tip: A small piece of rolled up tin foil can work as a wire jumper in a pinch. Paper clips would be an obvious choice, however these days they are generally made out of metals that are not conductive enough to produce a solid electronic connection.