Skip to the content
4 layers51 × 45 mmFlight controller atlas, the printed circuit board in 3D

This is a GPS-Denied Autonomous Drone that uses computer vision to fly with radio transmission override. Autonomy is a work in progress.

Size
51 × 45 mm
Copper layers
4
Thickness
1 mm
Parts
66
Nets
79
Pads
272
Tracks, vias
652, 98
Pours
4
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
8 Nov 2025
Updated
6 Nov 2026

Overview

Flight controller atlas is an open-source printed circuit board by williamjroche, from the williamjroche/Drone_Flight_Controller repository on GitHub, published under the MIT licence. It is a 4-layer board of 51 × 45 mm with 66 parts on 79 nets, routed with 652 tracks and 98 vias.

It is built around the BMP384, W25Q128JVSIQ and ICM-20948, with the MIC5504-3.3YM5-TR, ABM8-272-T3 and DMP3099L among its other parts. Its parts include 27 capacitors, 15 resistors, 12 connectors, 6 ICs and 1 diode. It belongs with the robots and motor control and radio and wireless boards and the RP2350 boards of this library.

Main components

8

README

README.md

Drone Flight Controller

This is a Drone project with a custom flight controller and power management solution that hopefully in the future uses computer vision for flight.
The repository contains two main subsystems:

  • Flight Controller
  • Flight Computer

This is an ongoing project, and the flight controller is still in development. A prototype flight controller can be seen in the photo on the bottom. A more refined PCB implementation of this flight controller is in the works, named 'Atlas Flight Controller'. This board uses the rp2350A microcontroller from Raspberry Pi, micro-usb power and data, ICM-20948 IMU chip (9-axis), 16MB flash memory (W25Q128JVS), an automatic power switching circuit for use with both external power and micro-usb power. This board will be powered by 5v input (from PDB) during flight which has voltage regulators for smooth and stable power delivery.

Flight Controller

  • Software:
    • Connects to the IMU and adjusts motor speed for flight stability
    • Goal: implement PID control (a feedback control system that continuously adjusts an output to reach a target value)
    • Runs the main motor-control software
    • Includes a custom transmitter/receiver interface program
  • ATLAS Flight Controller v0.6:

image

This board uses the RP2350A microcontroller from Raspberry Pi, micro-usb power and data, ICM-20948 IMU chip (9-axis), BPM 384 barometer sensor, 16MB flash memory (W25Q128JVS), an automatic power switching circuit for use with both external power and micro-usb power. This board will be powered by 5v input (from PDB) during flight which has voltage regulators for smooth and stable power delivery. This board is still in development and has not been tested yet. The current design sports a 4-layer design, with the top and bottom for routing, second layer for GND copper pour, and the third layer for a 3.3v copper pour.

Flight Computer

  • Uses ROS2 to send commands to the flight controller based on computer-vision input
  • Contains main computer-vision software
  • Interfaces directly with the onboard camera

Dual Power Supply PCB

image

  • Provides regulated power for sensors and radio receiver
  • Uses PDB 12V pins as input
  • Includes both 5V and 3.3V outputs for versatility
    • After testing the manufactured power supply, it works as expected. 12v goes into the input side, can turn each channel on or off using the blue switches.
    • 5v and 3.3v are extremely accurate and stable.
    • Minimal heat produced.
  • KiCad files included for open access
  • Gerber, BOM, and Pick-and-Place files included for quick ordering

Drone Frame

  • Modified STL files sourced online and optimized for 3D printing in PLA
  • All screw holes intended for M3 screws (not pre-threaded — use nuts)
  • Due to 3D-printer tolerances, some holes may require M2 screws with nut and lock washer
  • Ensure all screws are tightened as much as possible to avoid structural weakness

How to Use

This repo is best used as a guide for building your own custom autonomous drone, as the implementation is specific to the materials used.

-Materials: 3D printer, PLA filament, 4 BLDC motors (I'm using 920kv DJI), 3S lipo, 4 ESC's, 1 PDB (power distribution board), radio ELRS controller, radio ELRS to PWM receiver, Raspberry Pi 5, Raspberry Pi Pico, IMU board

  • Upload all files in the Flight Controller folder to a Raspberry Pi Pico running the latest Micropython
  • Follow the GPIO mappings in esc_control.py and controller_input.py, or adjust as needed
  • Ensure BLDC motors adjacent to each other rotate in opposite directions
  • Optional: order dual channel power distribution board for smooth and effecient power
  • Flight Computer instructions are still in progress

My progress so far:

drone

This is a work in progress

MIT License

Parts

66
QtyValueFootprintReferences
14100nCapacitor_SMD:C_0402_1005MetricC9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C20, C21, C26, C27
8Screw_Terminal_01x02custom_footprint:691137710002J4, J5, J6, J7, J8, J9, J10, J11
41kResistor_SMD:R_0402_1005MetricR1, R2, R3, R10
44.7kResistor_SMD:R_0402_1005MetricR5, R8, R9, R15
30.1uFCapacitor_SMD:C_0402_1005MetricC1, C2, C3
34.7uFCapacitor_SMD:C_0402_1005MetricC6, C7, C8
210kResistor_SMD:R_0402_1005MetricR4, R7
215pCapacitor_SMD:C_0402_1005MetricC22, C23
21uFCapacitor_SMD:C_0402_1005MetricC24, C25
227Resistor_SMD:R_0402_1005MetricR11, R12
1.47uFCapacitor_SMD:C_0402_1005MetricC4
1100kResistor_SMD:R_0402_1005MetricR6
13.3uHInductor_SMD:L_Cenker_CKCS201610L1
133Resistor_SMD:R_0402_1005MetricR14
1330Resistor_SMD:R_0402_1005MetricR13
133uFCapacitor_SMD:C_0402_1005MetricC5
14.7uCapacitor_SMD:C_0402_1005MetricC19
1ABM8-272-T3custom_footprint:ABM8-272-T3_ABRX1
1BLM15AX601SN1Dcustom_footprint:BEADC1005X55NFL1
1BMP384custom_footprint:LGA10_2.0X2.0X0.95_BOSU5
1DMP3099LPackage_TO_SOT_SMD:SOT-23Q1
1Ext 5vConnector_Wire:SolderWirePad_1x01_SMD_1x2mmJ2
1GNDConnector_Wire:SolderWirePad_1x01_SMD_1x2mmJ12
1ICM-20948custom_footprint:QFN40P300X300X105-24NU2
1LEDcustom_footprint:LED_CMD15-21_VCCD1
1LM3940IMPX-3.3_NOPBcustom_footprint:SOT230P700X180-4NU3
1MIC5504-3.3YM5-TRcustom_footprint:SOT-23-5_MC_MCHU7
1RP2350A-QFN60custom_footprint:RP2350A_QFN-60_EP_7.75x7.75_Pitch0.4mmU1
1SM03B-SRSS-TBcustom_footprint:CONN_SM03B-SRSS-TB_JSTJ3
1TL3365AF180QGcustom_footprint:SW_TL3365AF180QGS1
1USB_B_Microcustom_footprint:AMPHENOL_10118192-0001LFJ1
1W25Q128JVSPackage_SO:SOIC-8_5.3x5.3mm_P1.27mmU4

More from williamjroche/Drone_Flight_Controller

1
  • 2 layers45.7 × 23.9 mmDual power supply, the printed circuit board in 3D

    Dual power supply

    williamjroche/Drone_Flight_Controller

    This is a GPS-Denied Autonomous Drone that uses computer vision to fly with radio transmission override. Autonomy is a work in progress.

    15 parts1MIT

Similar boards

  • 4 layers51.8 × 20 mmSample target, the printed circuit board in 3D

    Sample target

    alvarop/swd2usbc

    Have you ever wanted to debug your device over USB-C? Sometimes there's not enough room for a JTAG/SWD connector, or even Tag-Connect pads!

    57 parts29CC0-1.0
  • 4 layers40 × 40 mmEnc encoder, the printed circuit board in 3D

    Enc encoder

    ROAR-QUTRC/perseus-v3

    The code base for the QUT Robotics Club ROAR teams rover Perseus starting 2026

    87 parts10
  • 4 layers61 × 79 mmRP2350 80QFN minimal, the printed circuit board in 3D

    RP2350 80QFN minimal

    Sphyrna-029/Pico-Pilot

    A simple auto pilot for land/water based robots based on the Raspberry Pi rp2350B/2354B

    75 parts3
  • 4 layers33.7 × 68.9 mmRP2350B RM2-module, the printed circuit board in 3D

    RP2350B RM2-module

    Pico-Framework/RP2350B-RM2-module

    Single-sided RPi RP2350B compute module with RM2 Wi-Fi and Bluetooth

    63 parts2
  • 4 layers101.6 × 70 mmMicroNES pcb v0.1, the printed circuit board in 3D

    MicroNES pcb v0.1

    bchelf/microNES

    A microcontroller based emulator to play original NES games over composite video (and HDMI)

    109 parts1
  • 4 layers44.3 × 95.9 mmAura mon, the printed circuit board in 3D

    Aura mon

    nrwiersma/aura-mon

    RP-2350 Energy Data Logger

    119 parts1
  • 4 layers51.1 × 40.7 mmKbd nes v2, the printed circuit board in 3D

    Kbd nes v2

    bchelf/keyboard-nes

    Remapping order: Right, Left, Down, Up, A, B, Select, Start

    53 parts

Questions

How big is the Flight controller atlas PCB?

It measures 51 × 45 mm and has 4 copper layers, 1 mm thick.

What parts does the Flight controller atlas use?

66 parts, built around the BMP384, W25Q128JVSIQ, ICM-20948 and MIC5504-3.3YM5-TR. 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 Flight controller atlas KiCad files?

From the williamjroche/Drone_Flight_Controller repository on GitHub, at the commit this page was made from: the board is flight_controller_atlas/flight_controller_atlas.kicad_pcb and its schematic dual_power_supply/bipolar_powersupply_simulation/bipolar_powersupply_simulation.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Flight controller atlas design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).