

A complete project for controlling a 3D drone in Unity using a custom physical controller based on ESP32, MPU6050, and a joystick. Includes hardware, firmware, and simulation.
- Size
- 150 × 100 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 25
- Nets
- 49
- Pads
- 103
- Tracks, vias
- 160, 0
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 11 Jul 2025
- Updated
- 24 Oct 2025
Overview
AXION is an open-source printed circuit board by jose803196, from the jose803196/ESP32-Unity-Drone-Controller repository on GitHub. It is a 2-layer board of 150 × 100 mm with 25 parts on 49 nets, routed with 160 tracks and 0 vias.
It is built around the BC237. Its parts include 6 resistors, 4 switches, 3 diodes, 2 transistors and 2 connectors. It belongs with the robots and motor control boards of this library.
Main components
1README
README.mdProject: DroneLink Simulator
A real-time 3D drone simulator controlled by a custom-built physical interface based on the ESP32 microcontroller.
About · Features · Tech Stack · Getting Started · Structure · Author
📋 About The Project
DroneLink Simulator is a comprehensive hardware-in-the-loop project that bridges the gap between physical electronics and virtual simulation. The core idea is to provide an immersive and realistic control experience by flying a 3D drone in a Unity environment using a dedicated hardware controller.
This repository contains everything from the ground up:
- Hardware Design: Custom schematics and PCB layouts for the controller.
- Embedded Firmware: Robust C code for the ESP32 to read sensors and communicate data.
- 3D Simulation: A fully functional Unity project that receives and interprets the hardware data to manipulate the drone.
- Complete Documentation: In-depth reports explaining the design and implementation process.
✨ Features
- Real-time Control: Low-latency communication between the ESP32 and Unity via UART.
- Intuitive Physical Interface: Control using a joystick for movement, buttons for altitude and lateral movement.
- Realistic Physics: The drone in Unity is powered by a
Rigidbodycomponent for believable movement. - Modular Codebase: Clean and well-documented code in both C (ESP32) and C# (Unity).
- Integrated 3D Workflow: Includes
.blendfiles directly within the Unity project for seamless model editing. - Open Source: Fully documented and ready to be forked, modified, and improved.
🛠️ Tech Stack
This project is built with a combination of hardware and software technologies:
| Hardware | Firmware | Simulation | Documentation |
|
|
|
|
🚀 Getting Started
Follow these steps to get the project up and running on your local machine.
Prerequisites
- Hardware: All components listed in
Hardware. - Software:
- Unity Hub & Unity Editor (version
202X.X.Xf1recommended). - ESP-IDF (version
vX.Xrecommended).
- Unity Hub & Unity Editor (version
Installation & Setup
-
Clone the Repository
sh git clone https://github.com/jose803196/ESP32-Unity-Drone-Controller -
Flash the Firmware
- Navigate to the
Firmware_ESP32andFIRMWARE_ESP32BRIDGEdirectories. - Connect your assembled controller to your computer.
- Run
idf.py flash monitorto build, upload, and view the serial output.
- Navigate to the
-
Run the Unity Simulation
- Open Unity Hub and select "Add project from disk".
- Choose the
Unity_Projectfolder from this repository. - Once the project is open, navigate to the main scene in
Assets/_Project_DroneSim/Scenes/. - In the
DroneControllerscript component, set thePort Nameto match the one used by your ESP32. - Press Play!
📂 Repository Structure
The repository is organized into four main sections for clarity and modularity:
👤 Author
Jose G. Lopez B.
Parts
25| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 200 Ω | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1, R2, R3, R6 |
| 4 | MountingHole_2.2mm_M2_ISO7380_Pad | MountingHole:MountingHole_2.2mm_M2_ISO7380_Pad | H1, H2, H3, H4 |
| 2 | 1 kΩ | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R4, R5 |
| 2 | 1N4007 | Diode_THT:D_DO-41_SOD81_P10.16mm_Horizontal | D2, D3 |
| 2 | BC237 | Package_TO_SOT_THT:TO-92_Inline | Q1, Q2 |
| 2 | Conn_01x20 | Connector_PinSocket_2.54mm:PinSocket_1x20_P2.54mm_Vertical | J2, J3 |
| 1 | Avanzar | Button_Switch_THT:SW_PUSH-12mm | SW1 |
| 1 | Buzzer | Buzzer_Beeper:Buzzer_15x7.5RM7.6 | BZ1 |
| 1 | Conn_01x05 | Connector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_Horizontal | Joystick1 |
| 1 | Conn_01x08 | TerminalBlock:TerminalBlock_Xinya_XY308-2.54-8P_1x08_P2.54mm_Horizontal | MPU6050 |
| 1 | Derecha | Button_Switch_THT:SW_PUSH-12mm | SW4 |
| 1 | Izquierda | Button_Switch_THT:SW_PUSH-12mm | SW3 |
| 1 | LED_RGBK | LED_THT:LED_D5.0mm-4_RGB | D1 |
| 1 | Motor_DC | Library:XDCR_PS1240P02BT | M1 |
| 1 | Retroceder | Button_Switch_THT:SW_PUSH-12mm | SW2 |
Questions
How big is the AXION PCB?
It measures 150 × 100 mm and has 2 copper layers, 1.6 mm thick.
What parts does the AXION use?
25 parts, built around the BC237. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the AXION KiCad files?
From the jose803196/ESP32-Unity-Drone-Controller repository on GitHub, at the commit this page was made from: the board is Hardware/KiCad_Project/AXION.kicad_pcb and its schematic Hardware/KiCad_Project/AXION.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the AXION design in my own project?
Its repository states no licence, so its author keeps all rights: ask jose803196 before reusing the design.
Similar boards
- 2 layers

- 2 layers160 × 74.9 mm

- 2 layers100.1 × 100.5 mm

SDR Reciever
greenjacketgirl/SDR_Receiver
This project is an attempt at designing and building a Software Defined Radio receiver that has the capabilities of listening to frequencies ranging from 500kHz to 50MHz utlizing the board designed, a sound card, and…
176 parts8 - 2 layers50.8 × 74.9 mm

- 2 layers47 × 81.5 mm

- 2 layers70 × 30 mm

- 2 layers99.1 × 98.1 mm

Doorbot Panel
DoESLiverpool/doorbot-setup
Scripts to install the software required to deploy the Raspberry Pi DoorBots
26 parts2 - 2 layers58.4 × 84.8 mm

C64NIKI2
ibaldachini/C64NIKI2
This work is licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License][cc-by-nc-sa].
27 parts2