to-the-mars team's rocket launcher and probe system
- Feather HUZZAH ESP86
- Arduino UNO
- Documentation: https://www.arduino.cc/en/Guide/ArduinoUno
This system is composed of multiple microcontrollers working together for real-time telemetry and autonomous launch control of a water rocket.
| Codename | Hardware | Role |
|---|---|---|
probe |
ESP8266 | Onboard the water rocket. Collects sensor data and communicates bidirectionally with gateway via ESP-NOW. |
gateway |
ESP8266 | Relay node. Exchanges data with probe via ESP-NOW, and forwards information to horizon via I2C. |
horizon |
ESP8266 | Central controller (master node). Connected to Wi-Fi; acts as an HTTPS client to send data to the control server. Receives Server-Sent Events (SSE) |
pad |
Arduino Uno | Launcher controller. Manages water/air loading and triggers the rocket launch sequence. |
Due to resource constraints, the gateway and horizon features are splitted across two ESP8266 boards. With an ESP32, this could be done in a single board.
[ Rocket ]
┌──────┐
│probe │ ◄───► ESP-NOW ◄───►
└──────┘ ┌────────┐
│gateway │
└────────┘
│
I2C
│
┌────────┐
│horizon │ ──► HTTPS API Client
└────────┘ (death-star-command-center)
│
I2C
│
┌─────┐
│ pad │ ←─── Controls pneumatics, valves, etc.
└─────┘
### TODO
#### Probe
- [ ] Rotate the accelerometer and gyroscope data according to the sensor orientation
- [x] Detect apogee and deploy parachute
- [x] Detect landing
- [ ] Test in the field