diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b46bfd6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,34 @@ +# === PlatformIO === +.pio/ +.pioenvs/ +.piolibdeps/ + +# === Arduino IDE === +build/ +*.elf +*.bin +*.hex +*.map + +# === Python === +__pycache__/ +*.py[cod] +*$py.class +*.egg-info/ +dist/ +venv/ +.venv/ +env/ + +# === IDE / Editor === +.vscode/ +.idea/ +*.swp +*.swo +*~ +.DS_Store +Thumbs.db + +# === Fusion 360 recovery === +*.f3z.bak +*.f3z.tmp diff --git a/Firmware/Calibration & Test Code/Fin Calibration.txt b/Firmware/Calibration & Test Code/fin_calibration.ino similarity index 100% rename from Firmware/Calibration & Test Code/Fin Calibration.txt rename to Firmware/Calibration & Test Code/fin_calibration.ino diff --git a/Firmware/Calibration & Test Code/I2Cworks.txt b/Firmware/Calibration & Test Code/i2c_scanner.ino similarity index 100% rename from Firmware/Calibration & Test Code/I2Cworks.txt rename to Firmware/Calibration & Test Code/i2c_scanner.ino diff --git a/Firmware/Calibration & Test Code/ROLLstabilization.txt b/Firmware/Calibration & Test Code/roll_stabilization.ino similarity index 100% rename from Firmware/Calibration & Test Code/ROLLstabilization.txt rename to Firmware/Calibration & Test Code/roll_stabilization.ino diff --git a/Firmware/Launcher/platformio.ini b/Firmware/Launcher/platformio.ini new file mode 100644 index 0000000..92fed47 --- /dev/null +++ b/Firmware/Launcher/platformio.ini @@ -0,0 +1,20 @@ +; PlatformIO Project Configuration - Launcher Ground Station +; +; Build & upload: +; pio run -e launcher -t upload +; +; Monitor serial: +; pio device monitor -b 115200 + +[env:launcher] +platform = espressif32 +board = esp32dev +framework = arduino +monitor_speed = 115200 +lib_deps = + adafruit/Adafruit BMP085 Library@^1.2.4 + mprograms/QMC5883LCompass@^1.2.3 + mikalhart/TinyGPSPlus@^1.1.0 + madhephaestus/ESP32Servo@^3.0.5 + Wire +upload_speed = 921600 diff --git a/Firmware/launcher.txt b/Firmware/Launcher/src/main.cpp similarity index 100% rename from Firmware/launcher.txt rename to Firmware/Launcher/src/main.cpp diff --git a/Firmware/Rocket/platformio.ini b/Firmware/Rocket/platformio.ini new file mode 100644 index 0000000..7e12027 --- /dev/null +++ b/Firmware/Rocket/platformio.ini @@ -0,0 +1,19 @@ +; PlatformIO Project Configuration - Rocket Flight Computer +; +; Build & upload: +; pio run -e rocket -t upload +; +; Monitor serial: +; pio device monitor -b 115200 + +[env:rocket] +platform = espressif32 +board = esp32dev +framework = arduino +monitor_speed = 115200 +lib_deps = + adafruit/Adafruit MPU6050@^2.2.6 + adafruit/Adafruit Unified Sensor@^1.1.14 + madhephaestus/ESP32Servo@^3.0.5 + Wire +upload_speed = 921600 diff --git a/Firmware/rocket.txt b/Firmware/Rocket/src/main.cpp similarity index 100% rename from Firmware/rocket.txt rename to Firmware/Rocket/src/main.cpp diff --git a/Firmware/DASHBOARDpython.txt b/Firmware/dashboard.py similarity index 100% rename from Firmware/DASHBOARDpython.txt rename to Firmware/dashboard.py diff --git a/Firmware/requirements.txt b/Firmware/requirements.txt new file mode 100644 index 0000000..b8f615c --- /dev/null +++ b/Firmware/requirements.txt @@ -0,0 +1,8 @@ +# Rocket Telemetry Dashboard - Python Dependencies +# Install with: pip install -r requirements.txt +# +# Note: tkinter is included with most Python installations. +# On Debian/Ubuntu, install it via: sudo apt install python3-tk + +matplotlib>=3.5.0 +numpy>=1.21.0 diff --git a/Simulation/fdsdf.png b/Simulation/OpenRocket_3D_View.png similarity index 100% rename from Simulation/fdsdf.png rename to Simulation/OpenRocket_3D_View.png diff --git a/docs/WIRING.md b/docs/WIRING.md new file mode 100644 index 0000000..1dc61bb --- /dev/null +++ b/docs/WIRING.md @@ -0,0 +1,106 @@ +# Wiring Reference + +Pin assignments reverse-engineered from the firmware source code. + +--- + +## Rocket Flight Computer (ESP32 DevKit V1) + +### Servo Connections +| Function | GPIO Pin | Servo Position | +|----------------|----------|----------------| +| Left Canard | 26 | Left side | +| Right Canard | 25 | Right side | +| Up Canard | 27 | Top | +| Down Canard | 14 | Bottom | +| Ignition Servo | 13 | Motor bay | + +### Servo Center Calibration (from firmware defaults) +| Servo | Center Angle | Max Deflection | +|-------|-------------|----------------| +| Left | 115° | ±15° | +| Right | 80° | ±15° | +| Up | 80° | ±15° | +| Down | 115° | ±15° | + +### I2C Bus (MPU6050) +| Signal | GPIO Pin | +|--------|----------| +| SDA | 21 | +| SCL | 22 | + +### UART to Launcher +| Signal | GPIO Pin | Baud Rate | +|--------|----------|-----------| +| TX2 | 17 | 115200 | +| RX2 | 16 | 115200 | + +--- + +## Launcher Ground Station (ESP32 DevKit V1) + +### I2C Bus (shared by MPU6050, QMC5883L, BMP180) +| Signal | GPIO Pin | +|--------|----------| +| SDA | 21 | +| SCL | 22 | + +### I2C Device Addresses +| Device | Address | +|-----------|---------| +| MPU6050 | 0x68 | +| QMC5883L | 0x0D | +| BMP180 | 0x77 | + +### GPS Module (Serial1) +| Signal | GPIO Pin | Baud Rate | +|--------|----------|-----------| +| RX1 | 34 | 9600 | + +> Note: GPS TX connects to ESP32 RX1 (pin 34). Pin 34 is input-only on ESP32. + +### UART to Rocket (Serial2) +| Signal | GPIO Pin | Baud Rate | +|--------|----------|-----------| +| TX2 | 17 | 115200 | +| RX2 | 16 | 115200 | + +### Control Switches & Indicators +| Function | GPIO Pin | Type | Notes | +|---------------|----------|-------------------|------------------------| +| Arm Switch | 15 | Toggle Switch | HIGH = armed | +| Launch Button | 4 | Momentary (N.O.) | INPUT_PULLUP, active LOW | +| Status LED | 2 | LED (5mm) | Onboard or external | +| Buzzer | 5 | Active Buzzer | LOW-trigger | +| Ignition Servo| 13 | SG90 Micro Servo | Launcher-side ignition | + +### WiFi Configuration +| Parameter | Value | +|------------|--------------------| +| Mode | SoftAP (Access Point) | +| SSID | `ROCKET_LAUNCHER` | +| Password | `launchpad1` | +| IP Address | 192.168.4.1 | +| UDP Port | 4444 | + +--- + +## Dashboard (Python) + +Connects to the launcher's WiFi AP and communicates via UDP. + +| Parameter | Value | +|--------------|---------------| +| Listen IP | 0.0.0.0 | +| Listen Port | 4444 | +| Launcher IP | 192.168.4.1 | + +### Telemetry Protocol (UDP ASCII) +| Direction | Format | Example | +|-----------------|-------------------------------------|----------------------------| +| Rocket → PC | `T,,,,` | `T,1234,5.2,-3.1,4` | +| Rocket → PC | `STATUS:,,,` | `STATUS:FLIGHT,0.5,0.2,1.3` | +| Launcher → PC | `ENV,,,,` | `ENV,34.1467,-118.3885,200.5,2` | +| PC → Rocket | `PID,,` | `PID,0.8,0.3` | +| PC → Rocket | `launch` | `launch` | +| PC → Rocket | `calibrate` | `calibrate` |