Skip to the content
PCBKitNew board
2 layers150 × 100 mmAXION, the printed circuit board in 3D

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

1

README

README.md

Project: 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 Rigidbody component for believable movement.
  • Modular Codebase: Clean and well-documented code in both C (ESP32) and C# (Unity).
  • Integrated 3D Workflow: Includes .blend files 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:

HardwareFirmwareSimulationDocumentation
  • ESP32 DevKitC
  • MPU-6050 Gyro/Accel
  • Analog Joystick
  • Push Buttons
  • Buzzer
  • LED's RGB
  • Motor
  • BJT transistor
  • C Language
  • ESP-IDF Framework
  • FreeRTOS
  • UART Communication
  • Unity Engine
  • C# Language
  • Blender (for 3D models)
  • Markdown
  • KiCad (for Schematics/PCB)

🚀 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.Xf1 recommended).
    • ESP-IDF (version vX.X recommended).

Installation & Setup

  1. Clone the Repository

    sh
    git clone https://github.com/jose803196/ESP32-Unity-Drone-Controller
  2. Flash the Firmware

    • Navigate to the Firmware_ESP32 and FIRMWARE_ESP32BRIDGE directories.
    • Connect your assembled controller to your computer.
    • Run idf.py flash monitor to build, upload, and view the serial output.
  3. Run the Unity Simulation

    • Open Unity Hub and select "Add project from disk".
    • Choose the Unity_Project folder from this repository.
    • Once the project is open, navigate to the main scene in Assets/_Project_DroneSim/Scenes/.
    • In the DroneController script component, set the Port Name to 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.


This project was created as part of Project Laboratory.

Parts

25
QtyValueFootprintReferences
4200 ΩResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1, R2, R3, R6
4MountingHole_2.2mm_M2_ISO7380_PadMountingHole:MountingHole_2.2mm_M2_ISO7380_PadH1, H2, H3, H4
21 kΩResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR4, R5
21N4007Diode_THT:D_DO-41_SOD81_P10.16mm_HorizontalD2, D3
2BC237Package_TO_SOT_THT:TO-92_InlineQ1, Q2
2Conn_01x20Connector_PinSocket_2.54mm:PinSocket_1x20_P2.54mm_VerticalJ2, J3
1AvanzarButton_Switch_THT:SW_PUSH-12mmSW1
1BuzzerBuzzer_Beeper:Buzzer_15x7.5RM7.6BZ1
1Conn_01x05Connector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_HorizontalJoystick1
1Conn_01x08TerminalBlock:TerminalBlock_Xinya_XY308-2.54-8P_1x08_P2.54mm_HorizontalMPU6050
1DerechaButton_Switch_THT:SW_PUSH-12mmSW4
1IzquierdaButton_Switch_THT:SW_PUSH-12mmSW3
1LED_RGBKLED_THT:LED_D5.0mm-4_RGBD1
1Motor_DCLibrary:XDCR_PS1240P02BTM1
1RetrocederButton_Switch_THT:SW_PUSH-12mmSW2

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 layersBotCortex, the printed circuit board in 3D

    BotCortex

    jochenalt/Walter

    6DOF Industrial Robot, vintage style

    61 parts162
  • 2 layers160 × 74.9 mmGPSDO, the printed circuit board in 3D

    GPSDO

    szigix/YATPGPSDO

    Yet Another TruePosition GPSDO

    38 parts15GPL-3.0
  • 2 layers100.1 × 100.5 mmSDR Reciever, the printed circuit board in 3D

    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 mmTagger production, the printed circuit board in 3D

    Tagger production

    lucullusTheOnly/OpenLaserTag

    Open Source System for the game Lasertag

    42 parts7
  • 2 layers47 × 81.5 mmExploere202, the printed circuit board in 3D

    Exploere202

    ambraglow/VLF-receiver

    ExplorerE202-based design

    60 parts3CERN-OHL-P-2.0
  • 2 layers70 × 30 mmStrober board, the printed circuit board in 3D

    Strober board

    Ardenryst/pinball-led-strober

    Device to trigger mods via existing lights.

    25 parts3MIT
  • 2 layers99.1 × 98.1 mmDoorbot Panel, the printed circuit board in 3D

    Doorbot Panel

    DoESLiverpool/doorbot-setup

    Scripts to install the software required to deploy the Raspberry Pi DoorBots

    26 parts2
  • 2 layers58.4 × 84.8 mmC64NIKI2, the printed circuit board in 3D

    C64NIKI2

    ibaldachini/C64NIKI2

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

    27 parts2