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.
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
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
- 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)
- External 5V Power Supply (for large LED strips)
- Capacitors (for LED strip stability)
- Heat Shrink/Electrical Tape (for insulation)
| 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 |
- Complete Wiring Diagram - Full hardware setup
- OLED Display Guide - Display functionality
- Navigation Button Guide - Button setup
- Project Verification - Complete verification checklist
- Speed Setting Implementation - Animation speed control
- CHANGELOG.md - Complete history of changes and improvements
- Firmware README - Detailed firmware documentation
- Mobile App README - Mobile application documentation
- Firmware README - Detailed firmware documentation
- Code Structure - Modular design with separate classes for each component
- API Reference - Function descriptions and parameters
# Follow the complete wiring guide
# Connect components according to pin configuration
# Ensure proper power supply for LED count# 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// Edit firmware/src/main.cpp to configure:
oledDisplay.begin(2); // Navigation button pin
// LED count in settings
// Throttle input pin (default: GPIO34)# Upload to ESP32 C3 via USB-C
pio run --target upload
# Monitor Serial output (115200 baud)
pio device monitor- 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
- 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
- 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
- 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
- Linear: Direct throttle-to-brightness mapping
- Ease: Smooth acceleration curve
- Pulse: Pulsing effect at high throttle with speed control
- 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)
- 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
-
OLED Display Issues
- Check I2C connections (GPIO4/5)
- Verify power supply (3.3V)
- Ensure correct screen type (128x64, starting at 13,14)
-
LED Strip Problems
- Verify data connection (GPIO18)
- Check power supply adequacy
- Ensure correct data flow direction
-
Throttle Input Issues
- Check PWM signal on GPIO34
- Verify signal range (1-2ms typical)
- Verify with potentiometer
- Ensure proper calibration with multiple position visits
-
BLE Connection Problems
- Check antenna connection
- Verify power supply stability
- Look for "ABurner" device in app
- Ensure proper permissions on mobile device
-
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
- 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
We welcome contributions! Please feel free to submit pull requests or open issues for bugs and feature requests.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow existing code formatting
- Add comments for complex logic
- Update documentation for new features
- Include verification when possible
- Keep debug logs minimal and essential
This project is licensed under the MIT License - see the LICENSE file for details.
- 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
For support and questions:
- Check the troubleshooting section
- Review the wiring diagrams
- Monitor Serial output for debug information
- Check mobile app for calibration status
- Open an issue with detailed problem description
- 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
- Additional Sensors: Temperature, vibration, pressure
- External Displays: Larger status displays
- Audio Output: Engine sound simulation
- Power Management: Battery monitoring and protection
Happy Flying! ๐ฉ๏ธ