Skip to content

speedy4all/AfterburnerControl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

27 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ESP32 C3 Afterburner Project

A complete LED afterburner effect system for RC models, featuring real-time throttle input, customizable LED effects, Bluetooth control, OLED status display, and enhanced mobile app control.

ESP32 C3 Afterburner Platform License

๐Ÿš€ Project Overview

This project creates a realistic afterburner effect for RC jet models using an ESP32 C3 OLED development board. The system features:

  • Real-time throttle input processing from RC receivers or potentiometers
  • Enhanced throttle calibration with multiple position validation and stability checks
  • Dynamic LED effects with WS2812B strips simulating jet engine afterburner
  • Speed-controlled animations (100-5000ms) for customizable effect timing
  • Bluetooth remote control via BLE for real-time configuration and monitoring
  • OLED status display with three-page interface and navigation
  • Multiple effect modes (Linear, Ease, Pulse) for different engine characteristics
  • Settings persistence with flash memory storage
  • Advanced mobile app with theme persistence and real-time calibration monitoring

๐Ÿ“ Project Structure

ESP32-C3-Afterburner/
โ”œโ”€โ”€ firmware/                          # ESP32 C3 firmware
โ”‚   โ”œโ”€โ”€ src/                          # Source code
โ”‚   โ”‚   โ”œโ”€โ”€ main.cpp                  # Main application
โ”‚   โ”‚   โ”œโ”€โ”€ settings.h/cpp            # Settings management & flash storage
โ”‚   โ”‚   โ”œโ”€โ”€ throttle.h/cpp            # PWM input processing & calibration
โ”‚   โ”‚   โ”œโ”€โ”€ led_effects.h/cpp         # LED animation system with speed control
โ”‚   โ”‚   โ”œโ”€โ”€ ble_service.h/cpp         # Bluetooth communication & notifications
โ”‚   โ”‚   โ”œโ”€โ”€ constants.h                # System constants & calibration parameters
โ”‚   โ”‚   โ””โ”€โ”€ oled_display.h/cpp        # OLED display interface
โ”‚   โ”œโ”€โ”€ platformio.ini                # PlatformIO configuration
โ”‚   โ”œโ”€โ”€ README.md                     # Firmware documentation
โ”‚   โ”œโ”€โ”€ SPEED_SETTING_IMPLEMENTATION.md # Speed control documentation
โ”‚   โ”œโ”€โ”€ ESP32_AFTERBURNER_COMPLETE_WIRING.md
โ”‚   โ”œโ”€โ”€ OLED_DISPLAY_README.md
โ”‚   โ”œโ”€โ”€ NAVIGATION_BUTTON_WIRING.md
โ”‚   โ””โ”€โ”€ PROJECT_VERIFICATION.md
โ”œโ”€โ”€ AfterburnerControl/               # React Native mobile app
โ”‚   โ”œโ”€โ”€ src/                          # App source code
โ”‚   โ”‚   โ”œโ”€โ”€ screens/                  # App screens
โ”‚   โ”‚   โ”œโ”€โ”€ components/               # Reusable components
โ”‚   โ”‚   โ””โ”€โ”€ ble/                      # Bluetooth communication layer
โ”‚   โ”œโ”€โ”€ android/                      # Android specific files
โ”‚   โ”œโ”€โ”€ ios/                          # iOS specific files
โ”‚   โ””โ”€โ”€ package.json                  # Dependencies
โ”œโ”€โ”€ docs/                             # Additional documentation
โ”œโ”€โ”€ .gitignore                        # Git ignore rules
โ””โ”€โ”€ README.md                         # This file

๐Ÿ› ๏ธ Hardware Requirements

Required Components

  • ESP32 C3 OLED Development Board (main controller)
  • WS2812B LED Strip (afterburner effect display)
  • Navigation Button (momentary push button)
  • Throttle Input (RC receiver or potentiometer)
  • Power Supply (5V for LED strip, 3.3V for logic)

Optional Components

  • External 5V Power Supply (for large LED strips)
  • Capacitors (for LED strip stability)
  • Heat Shrink/Electrical Tape (for insulation)

๐Ÿ”ง Pin Configuration

Pin Function Direction Component
GPIO0 BOOT Button Input Programming
GPIO1 UART TX Output Serial Communication
GPIO2 Navigation Button Input OLED Page Control
GPIO3 UART RX Input Serial Communication
GPIO4 I2C SDA Bidirectional OLED Display
GPIO5 I2C SCL Output OLED Display
GPIO18 LED Data Output WS2812B Strip
GPIO34 Throttle Input Input PWM Signal

๐Ÿ“š Documentation

Setup Guides

Project Documentation

Firmware Documentation

  • Firmware README - Detailed firmware documentation
  • Code Structure - Modular design with separate classes for each component
  • API Reference - Function descriptions and parameters

๐Ÿš€ Quick Start

1. Hardware Setup

# Follow the complete wiring guide
# Connect components according to pin configuration
# Ensure proper power supply for LED count

2. Software Setup

# Install PlatformIO
pip install platformio

# Clone this repository
git clone https://github.com/speedy4all/AfterburnerControl.git
cd AfterburnerControl

# Install dependencies
cd firmware
pio lib install

3. Configuration

// Edit firmware/src/main.cpp to configure:
oledDisplay.begin(2);  // Navigation button pin
// LED count in settings
// Throttle input pin (default: GPIO34)

4. Upload and Verify

# Upload to ESP32 C3 via USB-C
pio run --target upload

# Monitor Serial output (115200 baud)
pio device monitor

๐ŸŽฎ Features

Enhanced Throttle Calibration

  • Multi-position validation: Requires multiple visits to min/max positions
  • Stability checking: Ensures readings are consistent before saving
  • Time-based validation: Prevents immediate saving for better accuracy
  • Real-time progress: Mobile app shows calibration progress with visit counts
  • Automatic completion detection: App automatically detects when calibration is done

LED Effects with Speed Control

  • Core Effect: Simulates jet engine core with color gradients
  • Afterburner Overlay: Dynamic flame effect based on throttle
  • Flicker Simulation: Realistic engine flickering with adjustable speed
  • Sparkle Effects: Random sparkles for authenticity with speed control
  • Color Customization: Full RGB control for start/end colors
  • Speed Settings: 100-5000ms range for animation timing control

Advanced Mobile App Features

  • Theme Persistence: Dark/light theme saved to device storage
  • Real-time Calibration Monitoring: Live updates during calibration process
  • Enhanced UI: Better visibility in both light and dark themes
  • Calibration Progress: Visual feedback showing min/max visit counts
  • Automatic Status Updates: Real-time throttle and mode monitoring

User Interface

  • Three-Page OLED Display:
    • Main Status (mode, throttle, connection)
    • Settings (speed, brightness, LED count, threshold)
    • Detailed Status (colors, connection details)
  • Navigation Button: Manual page control with debouncing
  • Serial Monitor: Essential debug information (cleaned up)
  • BLE App: Remote control, monitoring, and calibration

Effect Modes

  • Linear: Direct throttle-to-brightness mapping
  • Ease: Smooth acceleration curve
  • Pulse: Pulsing effect at high throttle with speed control

๐Ÿ“Š Performance

Power Requirements

  • ESP32 C3: ~100-200mA at 5V
  • LED Strip: ~60mA per LED at full brightness
  • 45 LEDs: ~2.7A at 5V (13.5W)
  • 100 LEDs: ~6A at 5V (30W)

Timing

  • Main Loop: 50 FPS (20ms delay)
  • OLED Update: 500ms intervals
  • BLE Status: 200ms notifications
  • LED Effects: Real-time rendering with speed control
  • Calibration: Multi-position validation with stability checks

๐Ÿ” Troubleshooting

Common Issues

  1. OLED Display Issues

    • Check I2C connections (GPIO4/5)
    • Verify power supply (3.3V)
    • Ensure correct screen type (128x64, starting at 13,14)
  2. LED Strip Problems

    • Verify data connection (GPIO18)
    • Check power supply adequacy
    • Ensure correct data flow direction
  3. Throttle Input Issues

    • Check PWM signal on GPIO34
    • Verify signal range (1-2ms typical)
    • Verify with potentiometer
    • Ensure proper calibration with multiple position visits
  4. BLE Connection Problems

    • Check antenna connection
    • Verify power supply stability
    • Look for "ABurner" device in app
    • Ensure proper permissions on mobile device
  5. Calibration Issues

    • Move throttle to min/max positions multiple times
    • Ensure stable readings before saving
    • Check mobile app for calibration progress
    • Verify flash memory is working properly

Debug Information

  • Serial Monitor: Essential system status (cleaned up)
  • OLED Display: Current settings and throttle
  • LED Patterns: Visual system state indication
  • BLE App: Remote monitoring, control, and calibration
  • Mobile App Logs: Critical error information only

๐Ÿค Contributing

We welcome contributions! Please feel free to submit pull requests or open issues for bugs and feature requests.

Development Setup

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Code Style

  • Follow existing code formatting
  • Add comments for complex logic
  • Update documentation for new features
  • Include verification when possible
  • Keep debug logs minimal and essential

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • ESP32 Community for excellent documentation and support
  • FastLED Library for powerful LED control capabilities
  • NimBLE Library for efficient Bluetooth communication
  • U8g2 Library for OLED display support
  • PlatformIO for excellent development environment
  • React Native Community for mobile app development tools

๐Ÿ“ž Support

For support and questions:

  1. Check the troubleshooting section
  2. Review the wiring diagrams
  3. Monitor Serial output for debug information
  4. Check mobile app for calibration status
  5. Open an issue with detailed problem description

๐Ÿ”ฎ Future Enhancements

Planned Features

  • WiFi Connectivity: Web interface for configuration
  • Multiple LED Strips: Support for multiple afterburner zones
  • Sound Effects: Audio simulation via buzzer
  • Temperature Monitoring: Thermal protection
  • Preset Management: Save/load effect configurations
  • Advanced Effects: More realistic engine simulations
  • Calibration Profiles: Multiple calibration presets

Hardware Expansions

  • Additional Sensors: Temperature, vibration, pressure
  • External Displays: Larger status displays
  • Audio Output: Engine sound simulation
  • Power Management: Battery monitoring and protection

Happy Flying! ๐Ÿ›ฉ๏ธ


ESP32 C3 Afterburner Project - Bringing realistic afterburner effects to RC models

GitHub stars GitHub forks GitHub issues GitHub license

About

A complete LED afterburner effect system for RC models, featuring real-time throttle input, customizable LED effects, Bluetooth control, and OLED status display.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors