# Multi-Functional 2.4 GHz RC Controller (ESP32-S3) An ESP32-S3 based handheld 2.4 GHz wireless transmitter built for controlling robotic vehicles and embedded hardware platforms. The project includes the ESP-IDF C firmware (`firmware/main/mmcontroller.c`), the KiCad schematic (`hardware/mfc-1.kicad_sch`), and prototype build photos. ## Hardware Overview - **MCU:** ESP32-S3 (`ESP-IDF v5.2.2`, FreeRTOS) - **Primary Controls:** Dual 2-axis Hall-effect analog gimbals read via `ADC1` - **Channel Expansion:** 16-channel `CD74HC4067` analog/digital multiplexer (`S0..S3` on `GPIO 4, 5, 6, 7`, `SIG` on `GPIO 15`) - **Rotary Input:** Quadrature rotary encoder tracked with the ESP32 hardware Pulse Counter (`PCNT`) peripheral (`GPIO 16`, `GPIO 17`, switch on `GPIO 18`) - **RF Transceiver:** `nRF24L01+ PA+LNA` 2.4 GHz SPI module (`CSN: GPIO 10`, `CE: GPIO 9`, `SCK: GPIO 12`, `MOSI: GPIO 11`, `MISO: GPIO 13`) - **Display:** 0.96" `SSD1306` I2C OLED (`SDA: GPIO 8`, `SCL: GPIO 14`) ## Repository Structure - `firmware/` — ESP-IDF C source code and CMake configuration - `hardware/mfc-1.kicad_sch` — KiCad schematic file - `images/` — Breadboard prototype, schematic export, and wiring diagrams ## Building the Firmware Requires ESP-IDF v5.2.2 on Linux: ```bash source ~/esp/esp-idf/export.sh cd firmware idf.py set-target esp32s3 idf.py build idf.py -p /dev/ttyACM0 flash monitor ``` ## License MIT