Skip to the content
4 layers100.1 × 60.2 mmHades, the printed circuit board in 3D

Complete flight control system designed from scratch. Hardware designed with KiCad.

Size
100.1 × 60.2 mm
Copper layers
4
Thickness
1.6 mm
Parts
215
Nets
251
Pads
867
Tracks, vias
1,978, 382
Pours
14
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
1 Dec 2019
Updated
13 Jul 2020

Overview

Hades is an open-source printed circuit board by pms67, from the pms67/HadesFCS repository on GitHub, published under the BSD-3-Clause licence. It is a 4-layer board of 100.1 × 60.2 mm with 215 parts on 251 nets, routed with 1,978 tracks and 382 vias.

It is built around the MPRLS0025PA00001A, PCA9685PW and TMP100NA, with the W25N01GVZEIGTR, MIC26903YJL-TR and BMI088 among its other parts. Its parts include 71 capacitors, 59 resistors, 19 diodes, 12 ICs and 5 switches. It belongs with the STM32 boards of this library.

Main components

11

README

README.md

HADES Flight Control System

Complete flight control system designed from scratch. The flight control system is primarily designed for fixed-wing, autonomous drones to enable them to perform tasks autonomously, such as take-off, landing, waypoint navigation, payload delivery, etc.

Every part of this system is designed from first principles! This includes the hardware, firmware (using FreeRTOS), Kalman filtering for state estimation, control algorithms, base station, communication protocol, flight simulator, signal processing, and much, much more.

Feel free to send me constructive criticism or things you would like me to implement, or even if you would like to help me develop this system!

Markdown Monster icon

Intro video: https://www.youtube.com/watch?v=rLDqQ2L_mUQ


Broadly, this repository consists of:

  • Hardware designs (developed using KiCAD).
  • Low-level drivers and firmware (FreeRTOS, for the STM32 platform of microcontrollers).
  • Higher-level firmware such as communication protocols, control and navigation algorithms, etc.
  • Kalman filter designs for state estimation.
  • Debugging tools.
  • Flight simulator (both 6-DOF and 3-DOF) to test algorithms.

Current repository folder structure:

  • Calibration: Raw sensor data useful for checking calibration algorithms (e.g. accelerometer bias, scale factor, etc.).
  • Communication: UAVLink data protocol for reliably packing and transferring data and commands between the aircraft and a further device (e.g. base station). This could be via telemetry or direct serial links.
  • Control: Algorithms for dynamic control of the aircraft (e.g. PI, state feedback, etc.).
  • Data: Collection of various datasets that may be useful for offline testing (e.g. raw IMU data).
  • Debug Software: Tools for interfacing with the hardware (e.g. to read navigation data).
  • Documentation: Preliminary documents to detail aspects of the flight control system.
  • Filtering: FIR and IIR filter implementations, as well as FIR filter design tool.
  • Firmware: The core flight control firmware running on the STM32 microcontrollers.
  • Flight Simulator: 6-DOF and 3-DOF fixed-wing flight simulators developed in Unity. Very useful for testing control logic and algorithms. Requires dynamic model of aircraft.
  • GPS: NMEA sentence parser, as well as raw GPS data for testing.
  • Ground Control: Basestations written in C# to send commands to aircraft and receive data via telemetry. Includes moving map, live plots, etc.
  • Hardware: HADES flight control board design files (schematic, layout, assembly). Hardware consists of sensors, microcontrollers, power electronics, etc. This custom hardware is where the firmware runs on.
  • State Estimation: Kalman filters (various types: quaternion, Euler, different states estimated) designed in Matlab and exported to C for estimation of states required for feedback control (e.g. attitude, position, etc.).
  • Tests: Miscallaneous tests go here. For instance, device driver testing, communication protocol tests, etc.

Note: Most subfolders include an additional README that further describes its contents.


Disclaimer: This flight control system is work in progress. Use the files, hardware, and software given in this repository at your own risk - especially when conducting live flight tests.

BSD 3-Clause License - Copyright (c) 2019, Philip Salmony - All rights reserved.

Parts

215
QtyValueFootprintReferences
40100nCapacitor_SMD:C_0402_1005MetricC10, C16, C17, C18, C19, C20, C21, C22, C23, C24, C25, C26, C28, C30, C31, C34 +24
1110Resistor_SMD:R_0402_1005MetricR39, R40, R41, R42, R43, R44, R45, R46, R47, R48, R49
104k7Resistor_SMD:R_0402_1005MetricR9, R10, R11, R12, R13, R14, R28, R29, R30, R31
710kResistor_SMD:R_0402_1005MetricR22, R24, R25, R26, R27, R37, R38
7Conn_01x04Connector_Molex:Molex_PicoBlade_53048-0410_1x04_P1.25mm_HorizontalADC, I2C, I2C, SBUS, TELEM, UART, UART
6330Resistor_SMD:R_0603_1608MetricR15, R16, R17, R33, R34, R35
6Ferrite_Bead_SmallInductor_SMD:L_0402_1005MetricFB1, FB2, FB3, FB4, FB5, FB6
510uCapacitor_SMD:C_0603_1608MetricC11, C12, C15, C39, C62
51uCapacitor_SMD:C_0603_1608MetricC27, C29, C50, C64, C65
5SD103AWSDiode_SMD:D_SOD-323D1, D2, D3, D4, D5
4100Resistor_SMD:R_0603_1608MetricR18, R19, R20, R36
410pCapacitor_SMD:C_0402_1005MetricC32, C33, C52, C53
422Resistor_SMD:R_0402_1005MetricR52, R53, R55, R56
42u2Capacitor_SMD:C_0603_1608MetricC13, C14, C37, C38
4BLED_SMD:LED_0603_1608MetricLED6, LED7, LED8, LED12
4GLED_SMD:LED_0603_1608MetricLED1, LED2, LED13, LED14
4I2C1TestPoint:TestPoint_Pad_D1.5mmTP1, TP2, TP3, TP4
4RLED_SMD:LED_0603_1608MetricLED3, LED4, LED9, LED10
4USB_B_MicroConnector_USB:USB_Micro-B_Wuerth_629105150521_CircularHolesUSB1, USB2, USB3, USB4
3560Resistor_SMD:R_0603_1608MetricR7, R58, R59
3TDD01H0SB1RTDD01H0SB1R:SOT175P420X230-3NSW2, SW3, SW4
3TestPoint_Pad_D1.0mmTestPoint:TestPoint_Pad_D1.0mm5V, 5V, 5V
20Resistor_SMD:R_0603_1608MetricR50, R51
2100nCapacitor_SMD:C_0805_2012MetricC5, C6
2100uCapacitor_SMD:C_Elec_6.3x7.7C1, C8
210kResistor_SMD:R_0805_2012MetricR2, R3
224CW1280T-I_OT24CW1280T-I_OT:SOT95P280X145-5NU3, U9
225MHzCrystal:Crystal_SMD_Abracon_ABM8G-4Pin_3.2x2.5mmHSE1, HSE2
22u2Capacitor_SMD:C_0805_2012MetricC3, C4
247uCapacitor_SMD:C_1210_3225MetricC2, C9
2560Resistor_SMD:R_0402_1005MetricR54, R57
2620Resistor_SMD:R_0603_1608MetricR23, R32
2Conn_02x05_Odd_EvenConnector_PinHeader_1.27mm:PinHeader_2x05_P1.27mm_Vertical_SMDSWDF, SWDN
2SKRPANE010SKRPANE010:SKRPADE010SW1, SW5
2SolderJumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP1, JP2
2YLED_SMD:LED_0603_1608MetricLED5, LED11
2otter:CH330Package_SO:SSOP-8_3.9x5.05mm_P1.27mmU11, U12
10.01Resistor_SMD:R_2512_6332MetricR1
110nCapacitor_SMD:C_0402_1005MetricC67
115uSRP1265A-150M:INDPM135125X650NL1
119k6Resistor_SMD:R_0805_2012MetricR4
11k3Resistor_SMD:R_0805_2012MetricR6
11nCapacitor_SMD:C_0402_1005MetricC57
12.54mmConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalPWM_SIG1
1220nCapacitor_SMD:C_0603_1608MetricC59
122pCapacitor_SMD:C_0402_1005MetricC66
1240Resistor_SMD:R_0603_1608MetricR8
127nInductor_SMD:L_0402_1005MetricL2
147Resistor_SMD:R_0402_1005MetricR21
14n7Capacitor_SMD:C_0805_2012MetricC7
15-1814832-15-1814832-1:TE_5-1814832-1ANT1
16k8Resistor_SMD:R_0805_2012MetricR5
1BMI088BMI088:PQFN50P450X300X100-16NU5
1Conn_01x02Connector_Molex:Molex_PicoBlade_53048-0210_1x02_P1.25mm_HorizontalBAT
1Conn_01x06Connector_Molex:Molex_PicoBlade_53048-0610_1x06_P1.25mm_HorizontalRC
1Conn_01x07Connector_Molex:Molex_PicoBlade_53048-0710_1x07_P1.25mm_HorizontalGPS
1Conn_02x08_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x08_P2.54mm_VerticalPWM_POW1
1IIS2MDCTRIIS2MDCTR:IIS2MDCTRU8
1INA219AIDCNRINA219AIDCNR:SOT65P280X145-8NU1
1Jumper_3_OpenJumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mmJP4
1LD39200PU33RLD39200PU33R:SON95P300X300X100-7N-DREG2
1MIC26903YJL-TRMIC26903YJL-TR:MIC24054YJLTRREG1
1MPRLS0025PA00001AMPRLS0025PA00001A:XDCR_MPRLS0025PA00001AU7
1PCA9685PWPackage_SO:TSSOP-28_4.4x9.7mm_P0.65mmU2
1STM32F405RGTxPackage_QFP:LQFP-64_10x10mm_P0.5mmNAVC
1STM32H753VITxPackage_QFP:LQFP-100_14x14mm_P0.5mmFCC
1SolderJumper_3_OpenJumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mmJP3
1TMP100Package_TO_SOT_SMD:SOT-23-6U6
1W25N01GVZEIG_TRW25N01GVZEIG_TR:SON127P800X600X80-9N-DU4
1XT60-MXT60-M:AMASS_XT60-MBAT1
1u-blox MAX-8QMODULE-GPS-SMD-MAX-7Q-0_18P-9.6X10MM_:GPS18P-SMD-1.1-10X9.6MMU10

The 211 most common of 215 parts.

More from pms67/HadesFCS

3
  • 4 layers80 × 50 mmHadesNT, the printed circuit board in 3D

    HadesNT

    pms67/HadesFCS

    Complete flight control system designed from scratch. Hardware designed with KiCad.

    103 parts1kBSD-3-Clause
  • 4 layers50 × 50 mmHadesMicro, the printed circuit board in 3D

    HadesMicro

    pms67/HadesFCS

    Complete flight control system designed from scratch. Hardware designed with KiCad.

    91 parts1kBSD-3-Clause
  • 4 layers45 × 16.5 mmHadesGPSDongle, the printed circuit board in 3D

    HadesGPSDongle

    pms67/HadesFCS

    Complete flight control system designed from scratch. Hardware designed with KiCad.

    27 parts1kBSD-3-Clause

Similar boards

  • 4 layers50 × 50 mmFC PROTOTYPE, the printed circuit board in 3D

    FC PROTOTYPE

    Harihara0309/Flightcontroller_PCB_design

    88 parts
  • 4 layersStereo heli, the printed circuit board in 3D

    Stereo heli

    Kronos3/stereo-heli

    Stereo Vision Quadcopter

    173 parts1Apache-2.0
  • 4 layers70.8 × 100 mmFlapjack, the printed circuit board in 3D

    Flapjack

    Caleb646/Flapjack

    A custom VTOL drone platform — from airframe to PCB to firmware.

    116 parts4
  • 4 layers53.5 × 53.5 mmMiniTULPAR, the printed circuit board in 3D

    MiniTULPAR

    ErdemHtyl/Tulpar_Mini_FCB

    This project is under active development. The table below shows what is finished and what is still in progress:

    92 partsBSD-3-Clause
  • 4 layers70.8 × 70.8 mmStm32 f4xx minimal, the printed circuit board in 3D

    Stm32 f4xx minimal

    amrithHN/stm32f4xx_minimal_dev

    stm32f4 minimal dev board with few sensors

    79 parts4GPL-3.0
  • 4 layers110 × 90 mmURC, the printed circuit board in 3D

    URC

    spikonado/URC

    Universal Robot Controller

    180 parts2CERN-OHL-W-2.0
  • 2 layers40 × 60 mmMAIN LITE, the printed circuit board in 3D

    MAIN LITE

    isc-fs/IFS08-ES-MainLite

    MainLite: minimal STM32H733ZG module (AMS / ECU / uDV on a backplane) — KiCad design + machine-readable pin model

    80 parts

Questions

How big is the Hades PCB?

It measures 100.1 × 60.2 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Hades use?

215 parts, built around the MPRLS0025PA00001A, PCA9685PW, TMP100NA and W25N01GVZEIGTR. 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 Hades KiCad files?

From the pms67/HadesFCS repository on GitHub, at the commit this page was made from: the board is Hardware/Hades/Hades.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Hades design in my own project?

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