Under the Hood
The Aurora system is comprised of a few different components. The main firmware running on the MCU is broken into 3 distinct images stored at different address locations within Aurora's memory:
Bootstrap Image (0x08000000)
The bootstrap image stores the code that gets executed the moment Aurora boots up. It's main job is to decide what to do next depending on the system state, special register values, hardware jumpers, etc.
Bootloader Image (0x08004000)
The bootloader image is used to flash the main application firmware in a safe way. It is also responsible for flashing the Aurora's BLE module. When a flashing command is received, Aurora reboots to this section of memory, flashes the specified application or BLE firmware file, and then restarts normally.
Main Application Image (0x08020000)
The main application image contains the bulk of the code that powers Aurora. Under normal conditions, this is the section of memory the bootstrap image jumps to.
Aurora contains a separate Bluetooth LE module that contains its own low-power microcontroller. This is what allows Aurora to communicate wirelessly without disrupting normal operation. The BLE firmware can only be flashed by the bootloader by using the CLI command ble-flash.