Skip to content

muki01/RC_Controller

Repository files navigation

🛩️ RC Controller

An ESP32-based RC controller with NRF24, CRSF, and Bluetooth support — fly real drones or practice on PC simulators from a single handheld unit.

The controller features 10 configurable channels and a modular codebase where all pins, mappings, and protocol parameters are centralized in Config.h.

✨ Features

  • 10-Channel Control: Independent control channels suitable for advanced drone configurations and additional peripherals.
  • NRF24 & CRSF Support: Wireless control of real drones using NRF24L01 or CRSF (ExpressLRS) modules.
  • Bluetooth Connectivity: Connect to your PC for use with drone simulators via BLE gamepad.
  • Fully Configurable: All pin assignments, channel mappings, protocol parameters, and feature toggles are managed through a single Config.h file — no need to dig through code.
  • Sound System: MP3-based audio feedback with separate toggles for sound effects and voice announcements.
  • Cross-Platform Compatibility: Works with various flight simulation software that supports Bluetooth controllers.

⚙️ Installation

  • Open the .ino file in Arduino IDE
  • Install the required libraries:
    - RF24 by TMRh20
    - BleGamepad by lemmingDev
    - AlfredoCRSF by AlfredoElectronics
    
  • Configure the hardware in Config.h:
     // Pin assignments
     #define throttle_in          33
     #define yaw_in               4
     #define pitch_in             34
     #define roll_in              39
     #define pot1_in              35
     #define pot2_in              25
     #define toggle1_in           32
     #define toggle2_in           26
     #define toggle3_in           14
     #define toggle4_in           27
     #define switch1_in           22
     #define switch2_in           36
     #define battery_in           13
     #define buttons_analog_in    12
     #define led                  2
     #define BUZZER_PIN           15
    
  • Upload the code to your board
  • Upload the data folder to SPIFFS.
    • Use PlatformIO, or the Arduino ESP32 SPIFFS Upload Tool.
      See this guide for instructions on uploading files to SPIFFS with Arduino IDE.

🎮 Usage

  • NRF24 / CRSF Mode (real drone): Power on the controller with AUX1 HIGH (unpressed).
  • Bluetooth Mode (simulator): Power on the controller with AUX1 LOW (pressed).

🔧 Hardware Used

  • ESP32-WROOM
  • NRF24L01 RF Module
  • 2.8" TFT Display
  • 12 x Push Buttons
  • 2 x MTS-102 Switches
  • 2 x 10K Potentiometers
  • 2 x Joysticks
  • Mini Buck Converter Module
  • Red LED
  • 5V Passive Buzzer

📸 Photos

Below are some photos showcasing the ESP32 RC controller setup, wiring, and its use with both real drones and flight simulators.

  • Schematic:

  • Photos of the controller:

  • Using with Drone Simulator:


☕ Support My Work

If you enjoy my projects and want to support me, you can do so through the links below:

Buy Me A Coffee PayPal GitHub Sponsors

📧 Contact: muksin.muksin04@gmail.com


Releases

No releases published

Sponsor this project

Packages

 
 
 

Contributors