Rocket Dual-Deploy Flight Computer (I2C)
Wire an LIS2DS12 accelerometer over I2C and drive two pyro channels from it: payload separation at apogee, then a timed parachute deploy. Accelerometer telemetry and both output pins are checked.
- Board
- STM32 · HAL
- Difficulty
- Hard
- Topic
- Applied Integration
- Access
- Full plan
The task
Rocket Dual-Deploy Flight Computer
You are the avionics lead on Altair Rocketry Club, a fictional student team preparing a single-stage sounding rocket for a national technology competition. The airframe carries two pyrotechnic charges: the first separates the payload bay, the second deploys the main parachute a moment later. Once the rocket leaves the pad it cannot be sent commands (the ground station only receives telemetry), so firmware alone decides both events, from the accelerometer and a millisecond timer. This revision shipped without a working barometric altimeter.
Hardware
- STM32F407 flight controller; startup initializes
I2C1andUART4(TX only) before callinguserCode(). - LIS2DS12 3-axis accelerometer on
I2C1. Address, register map, conversion: Datasheet tab. - Charge 1 (payload separation) on
PD4, charge 2 (parachute) onPD12; startup does not configure port D. Both idle low; firing a charge means driving its line high and leaving it high. - Telemetry goes out on
UART4. This board reaches the accelerometer only overI2C1; SPI transmit/receive calls are not available on this hardware and are rejected before the submission builds. - The breakout ships loose: connecting it is part of the job (see Wiring below).
This is the opening of the task. Sign in with the full plan to read the rest and solve it.
What you get
- Your firmware is built and run on an emulated board and checked by hardware-level tests.
- No development board or local toolchain needed.
New to embedded? Start with the roadmap: How to learn embedded systems