{"id":30891175,"url":"https://github.com/speedy4all/afterburnercontrol","last_synced_at":"2026-05-06T02:36:16.086Z","repository":{"id":311969684,"uuid":"1045816670","full_name":"speedy4all/AfterburnerControl","owner":"speedy4all","description":"A complete LED afterburner effect system for RC models, featuring real-time throttle input, customizable LED effects, Bluetooth control, and OLED status display.","archived":false,"fork":false,"pushed_at":"2025-09-04T21:39:36.000Z","size":590,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-09-04T23:32:23.889Z","etag":null,"topics":["arduino","esp32","hobby-project","rc-planes","react-native","ws2812"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/speedy4all.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-27T18:51:04.000Z","updated_at":"2025-09-04T21:39:41.000Z","dependencies_parsed_at":"2025-08-28T04:13:03.123Z","dependency_job_id":null,"html_url":"https://github.com/speedy4all/AfterburnerControl","commit_stats":null,"previous_names":["speedy4all/afterburnercontrol"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/speedy4all/AfterburnerControl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/speedy4all%2FAfterburnerControl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/speedy4all%2FAfterburnerControl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/speedy4all%2FAfterburnerControl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/speedy4all%2FAfterburnerControl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/speedy4all","download_url":"https://codeload.github.com/speedy4all/AfterburnerControl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/speedy4all%2FAfterburnerControl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279017766,"owners_count":26086144,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","esp32","hobby-project","rc-planes","react-native","ws2812"],"created_at":"2025-09-08T18:03:40.571Z","updated_at":"2025-10-14T03:28:29.329Z","avatar_url":"https://github.com/speedy4all.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESP32 C3 Afterburner Project\n\nA 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.\n\n![ESP32 C3 Afterburner](https://img.shields.io/badge/ESP32%20C3%20Afterburner-Project-blue)\n![Platform](https://img.shields.io/badge/Platform-ESP32%20C3-green)\n![License](https://img.shields.io/badge/License-MIT-yellow)\n\n## 🚀 Project Overview\n\nThis project creates a realistic afterburner effect for RC jet models using an ESP32 C3 OLED development board. The system features:\n\n- **Real-time throttle input processing** from RC receivers or potentiometers\n- **Enhanced throttle calibration** with multiple position validation and stability checks\n- **Dynamic LED effects** with WS2812B strips simulating jet engine afterburner\n- **Speed-controlled animations** (100-5000ms) for customizable effect timing\n- **Bluetooth remote control** via BLE for real-time configuration and monitoring\n- **OLED status display** with three-page interface and navigation\n- **Multiple effect modes** (Linear, Ease, Pulse) for different engine characteristics\n- **Settings persistence** with flash memory storage\n- **Advanced mobile app** with theme persistence and real-time calibration monitoring\n\n## 📁 Project Structure\n\n```\nESP32-C3-Afterburner/\n├── firmware/                          # ESP32 C3 firmware\n│   ├── src/                          # Source code\n│   │   ├── main.cpp                  # Main application\n│   │   ├── settings.h/cpp            # Settings management \u0026 flash storage\n│   │   ├── throttle.h/cpp            # PWM input processing \u0026 calibration\n│   │   ├── led_effects.h/cpp         # LED animation system with speed control\n│   │   ├── ble_service.h/cpp         # Bluetooth communication \u0026 notifications\n│   │   ├── constants.h                # System constants \u0026 calibration parameters\n│   │   └── oled_display.h/cpp        # OLED display interface\n│   ├── platformio.ini                # PlatformIO configuration\n│   ├── README.md                     # Firmware documentation\n│   ├── SPEED_SETTING_IMPLEMENTATION.md # Speed control documentation\n│   ├── ESP32_AFTERBURNER_COMPLETE_WIRING.md\n│   ├── OLED_DISPLAY_README.md\n│   ├── NAVIGATION_BUTTON_WIRING.md\n│   └── PROJECT_VERIFICATION.md\n├── AfterburnerControl/               # React Native mobile app\n│   ├── src/                          # App source code\n│   │   ├── screens/                  # App screens\n│   │   ├── components/               # Reusable components\n│   │   └── ble/                      # Bluetooth communication layer\n│   ├── android/                      # Android specific files\n│   ├── ios/                          # iOS specific files\n│   └── package.json                  # Dependencies\n├── docs/                             # Additional documentation\n├── .gitignore                        # Git ignore rules\n└── README.md                         # This file\n```\n\n## 🛠️ Hardware Requirements\n\n### Required Components\n\n- **ESP32 C3 OLED Development Board** (main controller)\n- **WS2812B LED Strip** (afterburner effect display)\n- **Navigation Button** (momentary push button)\n- **Throttle Input** (RC receiver or potentiometer)\n- **Power Supply** (5V for LED strip, 3.3V for logic)\n\n### Optional Components\n\n- **External 5V Power Supply** (for large LED strips)\n- **Capacitors** (for LED strip stability)\n- **Heat Shrink/Electrical Tape** (for insulation)\n\n## 🔧 Pin Configuration\n\n| Pin    | Function          | Direction     | Component            |\n| ------ | ----------------- | ------------- | -------------------- |\n| GPIO0  | BOOT Button       | Input         | Programming          |\n| GPIO1  | UART TX           | Output        | Serial Communication |\n| GPIO2  | Navigation Button | Input         | OLED Page Control    |\n| GPIO3  | UART RX           | Input         | Serial Communication |\n| GPIO4  | I2C SDA           | Bidirectional | OLED Display         |\n| GPIO5  | I2C SCL           | Output        | OLED Display         |\n| GPIO18 | LED Data          | Output        | WS2812B Strip        |\n| GPIO34 | Throttle Input    | Input         | PWM Signal           |\n\n## 📚 Documentation\n\n### Setup Guides\n\n- **[Complete Wiring Diagram](firmware/ESP32_AFTERBURNER_COMPLETE_WIRING.md)** - Full hardware setup\n- **[OLED Display Guide](firmware/OLED_DISPLAY_README.md)** - Display functionality\n- **[Navigation Button Guide](firmware/NAVIGATION_BUTTON_WIRING.md)** - Button setup\n- **[Project Verification](firmware/PROJECT_VERIFICATION.md)** - Complete verification checklist\n- **[Speed Setting Implementation](firmware/SPEED_SETTING_IMPLEMENTATION.md)** - Animation speed control\n\n### Project Documentation\n\n- **[CHANGELOG.md](CHANGELOG.md)** - Complete history of changes and improvements\n- **[Firmware README](firmware/README.md)** - Detailed firmware documentation\n- **[Mobile App README](AfterburnerControl/README.md)** - Mobile application documentation\n\n### Firmware Documentation\n\n- **[Firmware README](firmware/README.md)** - Detailed firmware documentation\n- **Code Structure** - Modular design with separate classes for each component\n- **API Reference** - Function descriptions and parameters\n\n## 🚀 Quick Start\n\n### 1. Hardware Setup\n\n```bash\n# Follow the complete wiring guide\n# Connect components according to pin configuration\n# Ensure proper power supply for LED count\n```\n\n### 2. Software Setup\n\n```bash\n# Install PlatformIO\npip install platformio\n\n# Clone this repository\ngit clone https://github.com/speedy4all/AfterburnerControl.git\ncd AfterburnerControl\n\n# Install dependencies\ncd firmware\npio lib install\n```\n\n### 3. Configuration\n\n```cpp\n// Edit firmware/src/main.cpp to configure:\noledDisplay.begin(2);  // Navigation button pin\n// LED count in settings\n// Throttle input pin (default: GPIO34)\n```\n\n### 4. Upload and Verify\n\n```bash\n# Upload to ESP32 C3 via USB-C\npio run --target upload\n\n# Monitor Serial output (115200 baud)\npio device monitor\n```\n\n## 🎮 Features\n\n### Enhanced Throttle Calibration\n\n- **Multi-position validation**: Requires multiple visits to min/max positions\n- **Stability checking**: Ensures readings are consistent before saving\n- **Time-based validation**: Prevents immediate saving for better accuracy\n- **Real-time progress**: Mobile app shows calibration progress with visit counts\n- **Automatic completion detection**: App automatically detects when calibration is done\n\n### LED Effects with Speed Control\n\n- **Core Effect**: Simulates jet engine core with color gradients\n- **Afterburner Overlay**: Dynamic flame effect based on throttle\n- **Flicker Simulation**: Realistic engine flickering with adjustable speed\n- **Sparkle Effects**: Random sparkles for authenticity with speed control\n- **Color Customization**: Full RGB control for start/end colors\n- **Speed Settings**: 100-5000ms range for animation timing control\n\n### Advanced Mobile App Features\n\n- **Theme Persistence**: Dark/light theme saved to device storage\n- **Real-time Calibration Monitoring**: Live updates during calibration process\n- **Enhanced UI**: Better visibility in both light and dark themes\n- **Calibration Progress**: Visual feedback showing min/max visit counts\n- **Automatic Status Updates**: Real-time throttle and mode monitoring\n\n### User Interface\n\n- **Three-Page OLED Display**:\n  - Main Status (mode, throttle, connection)\n  - Settings (speed, brightness, LED count, threshold)\n  - Detailed Status (colors, connection details)\n- **Navigation Button**: Manual page control with debouncing\n- **Serial Monitor**: Essential debug information (cleaned up)\n- **BLE App**: Remote control, monitoring, and calibration\n\n### Effect Modes\n\n- **Linear**: Direct throttle-to-brightness mapping\n- **Ease**: Smooth acceleration curve\n- **Pulse**: Pulsing effect at high throttle with speed control\n\n## 📊 Performance\n\n### Power Requirements\n\n- **ESP32 C3**: ~100-200mA at 5V\n- **LED Strip**: ~60mA per LED at full brightness\n- **45 LEDs**: ~2.7A at 5V (13.5W)\n- **100 LEDs**: ~6A at 5V (30W)\n\n### Timing\n\n- **Main Loop**: 50 FPS (20ms delay)\n- **OLED Update**: 500ms intervals\n- **BLE Status**: 200ms notifications\n- **LED Effects**: Real-time rendering with speed control\n- **Calibration**: Multi-position validation with stability checks\n\n## 🔍 Troubleshooting\n\n### Common Issues\n\n1. **OLED Display Issues**\n\n   - Check I2C connections (GPIO4/5)\n   - Verify power supply (3.3V)\n   - Ensure correct screen type (128x64, starting at 13,14)\n\n2. **LED Strip Problems**\n\n   - Verify data connection (GPIO18)\n   - Check power supply adequacy\n   - Ensure correct data flow direction\n\n3. **Throttle Input Issues**\n\n   - Check PWM signal on GPIO34\n   - Verify signal range (1-2ms typical)\n   - Verify with potentiometer\n   - Ensure proper calibration with multiple position visits\n\n4. **BLE Connection Problems**\n\n   - Check antenna connection\n   - Verify power supply stability\n   - Look for \"ABurner\" device in app\n   - Ensure proper permissions on mobile device\n\n5. **Calibration Issues**\n   - Move throttle to min/max positions multiple times\n   - Ensure stable readings before saving\n   - Check mobile app for calibration progress\n   - Verify flash memory is working properly\n\n### Debug Information\n\n- **Serial Monitor**: Essential system status (cleaned up)\n- **OLED Display**: Current settings and throttle\n- **LED Patterns**: Visual system state indication\n- **BLE App**: Remote monitoring, control, and calibration\n- **Mobile App Logs**: Critical error information only\n\n## 🤝 Contributing\n\nWe welcome contributions! Please feel free to submit pull requests or open issues for bugs and feature requests.\n\n### Development Setup\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n### Code Style\n\n- Follow existing code formatting\n- Add comments for complex logic\n- Update documentation for new features\n- Include verification when possible\n- Keep debug logs minimal and essential\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- **ESP32 Community** for excellent documentation and support\n- **FastLED Library** for powerful LED control capabilities\n- **NimBLE Library** for efficient Bluetooth communication\n- **U8g2 Library** for OLED display support\n- **PlatformIO** for excellent development environment\n- **React Native Community** for mobile app development tools\n\n## 📞 Support\n\nFor support and questions:\n\n1. Check the troubleshooting section\n2. Review the wiring diagrams\n3. Monitor Serial output for debug information\n4. Check mobile app for calibration status\n5. Open an issue with detailed problem description\n\n## 🔮 Future Enhancements\n\n### Planned Features\n\n- **WiFi Connectivity**: Web interface for configuration\n- **Multiple LED Strips**: Support for multiple afterburner zones\n- **Sound Effects**: Audio simulation via buzzer\n- **Temperature Monitoring**: Thermal protection\n- **Preset Management**: Save/load effect configurations\n- **Advanced Effects**: More realistic engine simulations\n- **Calibration Profiles**: Multiple calibration presets\n\n### Hardware Expansions\n\n- **Additional Sensors**: Temperature, vibration, pressure\n- **External Displays**: Larger status displays\n- **Audio Output**: Engine sound simulation\n- **Power Management**: Battery monitoring and protection\n\n---\n\n**Happy Flying! 🛩️**\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**ESP32 C3 Afterburner Project** - Bringing realistic afterburner effects to RC models\n\n[![GitHub stars](https://img.shields.io/github/stars/speedy4all/AfterburnerControl?style=social)](https://github.com/speedy4all/AfterburnerControl/stargazers)\n[![GitHub forks](https://img.shields.io/github/forks/speedy4all/AfterburnerControl?style=social)](https://github.com/speedy4all/AfterburnerControl/network/members)\n[![GitHub issues](https://img.shields.io/github/issues/speedy4all/AfterburnerControl)](https://github.com/speedy4all/AfterburnerControl/issues)\n[![GitHub license](https://img.shields.io/github/license/speedy4all/AfterburnerControl)](https://github.com/speedy4all/AfterburnerControl/blob/master/LICENSE)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspeedy4all%2Fafterburnercontrol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspeedy4all%2Fafterburnercontrol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspeedy4all%2Fafterburnercontrol/lists"}