Architecture

AURORA runs on multiple interconnected PCBs that communicate over CAN bus. The primary application is sensor_board, which manages the IMU, barometric sensor, flight state machine, and pyrotechnic ignition.

Threads

sensor_board uses three Zephyr threads (all priority 5, 2 KB stack):

Thread

Guard

Purpose

imu_task

CONFIG_IMU

Polls IMU at the configured frequency, updates orientation and acceleration globals.

baro_task

CONFIG_BARO

Measures pressure/temperature, computes altitude.

state_machine_task

CONFIG_AURORA_STATE_MACHINE

Runs at 10 Hz. Feeds sensor data into the state machine and fires pyro channels on state transitions.

Flight States

The simple state machine implements the following flight sequence:

IDLE -> ARMED -> BOOST -> BURNOUT -> APOGEE -> MAIN -> REDUNDANT -> LANDED
                                                                 \-> ERROR

State transitions are driven by sensor thresholds configured via Kconfig (boost acceleration, main descent height, apogee timeout, etc.).

Supported Boards

Board

MCU

Notes

rpi_pico

RP2040 (Cortex-M0+)

Primary target

rpi_pico2_hazard3

RP2350 (RISC-V Hazard3)

esp32s3_micrometer

ESP32-S3

Custom Auxspace board