

Flight controller, high-brain flight planner, PCB and 3D print designs, and documentation for a completely DIY smart racing drone
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 11
- Nets
- 63
- Pads
- 93
- Tracks, vias
- 0, 0
- Routed
- Not yet
- KiCad
- KiCad 6 (file 20211014)
- Created
- 13 Apr 2022
- Updated
- 4 Mar 2024
Overview
UFO PCB is an open-source printed circuit board by derickson2402, from the derickson2402/UFO-Controller repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board with 11 parts on 63 nets.
It is built around the AMS1117-3.3. It belongs with the robots and motor control boards and the AVR (ATmega, ATtiny) boards of this library.
Main components
1README
README.mdUFO-Controller
When Summer 2022 started, some friends and I decided it would be cool to build our own quadcopter drones. Eventually, we'd like to hook up FPV cameras, GPS units, and some other fun gizmos so that we can do cool stuff like FPV racing, autonomous path following with GPS, and smart object detection and wayfinding using computer vision. Unfortunately we decided to build everything from scratch, and we all work full time and go to school, so progress is verrryyy slow :smiley:. We appreaciate any and all help, and once we get in the air we will make sure to include writeups so others can learn from our mistakes!
Much of the transmitter code is extended from akarsh98 on GitHub and this guide on PPM via Arduino. Thanks akarsh and Pawel!
Project Overview
This repo contains wiring diagrams and PCB designs for physically constructing a quadcopter drone, as well as the code that runs the various components.
For an architectural overview, check out the most recent diagram on Figma or the printout in Diagrams/Architecture.png.
Below are explanations on each of the sub-folders and what they are for, and you can find a README in each folder with more details:
| Folder | Description |
|---|---|
Arduino-ISP | Copied from Arduino IDE built-in example 11. Allows an Uno to program a Nano over ISP |
Wiring-Diagrams | PCB designs and board pinouts for transceiver, flight controller, etc for KiCad 6.0. Includes KiCad files for MPU breakout board. |
Hardware-Tests | Various programs for verifying that individual electronic components are working |
MultiWii | Flight control software from MultiWii.com |
MultiWiiConf | Configuration GUI for MultiWii |
Transceiver | Instructions for using pair of Arduino as radio transmitter to drone |
Here is a list of parts that I am using as well as links to buy them. I bought generic versions of everything but you can find authentic versions by searching online. They will cost more but work much reliably, and also potentially this will fix the hardware issue between Arduino Nano and nRF24 (see #12).
Configuring VS Code IDE
If you are like me, you really hate the default Arduino IDE and you would rather use VS Code. To do this:
- Install the Arduino VS Code extension
- Choose AVR programmer and Arduino Nano board
- In
c_cpp_properties.json, updatecompilerPath,includePath, andforcedIncludeso your machine's section matches that of the Arduino (basically tell intellisense to use the Arduino's compiler) - Add
USBCONtodefinesinc_cpp_properties.json - If you need 3rd-party libraries, put them in
srcin the root of this repo and symlinksrcin your code root folder to it (Arduino compiler should recognize thesrcfolder automatically)
Miscellaneous Resources That Will Be Added Into The Docs Later
- https://create.arduino.cc/projecthub/akarsh98/diy-arduino-based-quadcopter-drone-948153
- https://www.hackster.io/robocircuits/arduino-quadcopter-e618c6
- https://howtomechatronics.com/projects/diy-arduino-rc-transmitter/
- https://www.modelflight.com.au/blog/a-guide-to-understanding-lipo-batteries
- https://www.instructables.com/DJi-F450-Quadcopter-How-to-Build-Home-Built/
- http://www.rctutor.org/the-parts-list.html
- Read-only Amazon link for parts
- PPM communication via Arduino
Parts
11| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | Motor_Servo | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | M1, M2, M3, M4 |
| 2 | Arduino_Nano_v3.x | Module:Arduino_Nano | A1-FC1, A2-TX1 |
| 2 | Conn_01x01_Male | Connector_Wire:SolderWire-1sqmm_1x01_D1.4mm_OD3.9mm | Batt-5V1, Batt-GND1 |
| 1 | AMS1117-3.3 | UFO-KiCad-Lib:AMS1117-3.3 | V-Reg-3.3 |
| 1 | MPU-6050-Breakout | Sensor_Motion:MPU-6050-Breakout | MPU-6050 |
| 1 | NRF24L01_Breakout | RF_Module:nRF24L01_Breakout | nRF24L1 |
Questions
What parts does the UFO PCB use?
11 parts, built around the AMS1117-3.3. 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 UFO PCB KiCad files?
From the derickson2402/UFO-Controller repository on GitHub, at the commit this page was made from: the board is Diagrams/UFO-PCB/UFO-PCB.kicad_pcb and its schematic Diagrams/UFO-PCB/UFO-PCB.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the UFO PCB design in my own project?
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 2 layers290.1 × 130 mm

- 2 layers26.2 × 45.5 mm

PL18 multiprotocol
pascallanger/DIY-Multiprotocol-TX-Module
Multiprotocol TX Module (or MULTI-Module) is a 2.4GHz transmitter module which controls many different receivers and models.
24 parts1.9kGPL-3.0 - 4 layers99 × 53.3 mm

PSLab
fossasia/pslab-hardware
PSLab Hardware Design and Schematics https://pslab.io
199 parts1.7kApache-2.0 - 4 layers85 × 56 mm

- 4 layers100 × 54 mm

32Bit shift register
MaltWhiskey/Mega-Cube
16x16x16 PL9823 Cube with Teensy 4.0 and FlexIO driver
64 parts766 - 2 layers44.2 × 29.3 mm

- 2 layers78 × 60 mm

- 2 layers59.1 × 99.9 mm

Cheap FOCer 2 60mm
shamansystems/Cheap-FOCer-2
Low-Cost Motor Controller based on the VESC 6
193 parts407