Skip to content

Flight controller, high-brain flight planner, PCB and 3D print designs, and documentation for a completely DIY smart racing drone

License

Notifications You must be signed in to change notification settings

derickson2402/UFO-Controller

Repository files navigation

UFO-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 😃. 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:

  1. Install the Arduino VS Code extension
  2. Choose AVR programmer and Arduino Nano board
  3. In c_cpp_properties.json, update compilerPath, includePath, and forcedInclude so your machine's section matches that of the Arduino (basically tell intellisense to use the Arduino's compiler)
  4. Add USBCON to defines in c_cpp_properties.json
  5. If you need 3rd-party libraries, put them in src in the root of this repo and symlink src in your code root folder to it (Arduino compiler should recognize the src folder automatically)

Miscellaneous Resources That Will Be Added Into The Docs Later

About

Flight controller, high-brain flight planner, PCB and 3D print designs, and documentation for a completely DIY smart racing drone

Topics

Resources

License

Stars

Watchers

Forks