Model rocketry flight computer with thermal tracking, active fin stabilization, and telemetry.
ATOM is an ESP32-based flight computer designed for model rockets. The thermal tracking module uses an MLX90640 infrared camera to detect and lock onto a heat source, then drives four servo-controlled fins to actively stabilize the rocket's trajectory.
| Component | Details |
|---|---|
| Microcontroller | ESP32 |
| Thermal Camera | MLX90640 (32×24, up to 16 Hz) |
| Fins | 4× Servo motors (N/E/S/W) |
| Power | External supply for servos |
Wiring:
| MLX90640 | ESP32 |
|---|---|
| VIN | 3.3V |
| GND | GND |
| SDA | GPIO 21 |
| SCL | GPIO 22 |
| Servo | GPIO |
|---|---|
| North | 25 |
| East | 26 |
| South | 27 |
| West | 32 |
ATOM-Flight-Computer/
├── ATOM/ # Main thermal tracking firmware
├── ESP1/ # ESP1 module code
├── ESP2/ # ESP2 module code
├── Fins/ # Fin servo control
├── Integrate_test/ # Integration tests
├── MLX90640_Test/ # Thermal camera tests
└── NorthFinDebug/ # North fin debug sketch
- The MLX90640 captures a 32×24 thermal frame at 16 Hz.
- The hottest pixel above the temperature threshold (
30°C) is identified as the target. - Smoothed X/Y coordinates are computed to reduce jitter.
- Servo positions for all four fins are calculated from the tracking error relative to frame center.
- If the target stops moving for more than 1.5 seconds, fins return to center.
Key parameters:
| Parameter | Value |
|---|---|
| Refresh rate | 16 Hz |
| Temp threshold | 30.0 °C |
| Smoothing factor | 0.05 |
| Tracking gain | 2.5 |
| Target timeout | 1500 ms |
- Adafruit MLX90640 Library
- ESP32Servo
- Arduino Wire library
- Install dependencies via the Arduino Library Manager.
- Open the sketch in
ATOM/. - Select ESP32 as your board.
- Flash and open Serial Monitor at 115200 baud.
Tisha Patel
- GitHub: @tishap27
- Email: [email protected]