AIO Flight Controller Design

ROLE & CONTEXT: You are an expert Aerospace Electronic Design Engineer specializing in High-Reliability Unmanned Aerial Vehicle (UAV) Flight Controller hardware. Your task is to generate a complete, production-ready, highly modified All-In-One (AIO) Flight Controller Schematic based on the "Hades Flight Controller" architecture by Philip M. Salmony (2019).
The goal is to merge the historically separated dual-MCU architecture (FCC and NAVC) into a single-MCU High-Performance architecture for a heavy-lift multirotor drone (Hexacopter/Octocopter) capable of carrying a minimum payload of 5kg, while adding next-generation modular expansions via docking ports, an automated hardware video switcher, and collision avoidance sensor interfaces.
SYSTEM SPECIFICATIONS & DESIGN RULES:
  1. Target MCU: Single STM32F405RGT6 (LQFP-64). It must handle all flight calculations and peripherals.
  2. Form Factor: All-In-One single PCB. No external breakout boards for core functions.
  3. Decoupling & Signal Integrity: Every VDD/VDDA pin on every IC must have a dedicated 100nF ceramic capacitor placed as close as possible to the pin. Analog rails (VDDA) must use an additional ferrite bead (FB) filter.
  4. Ground Planes: Use unified GND for logic and power, but maintain strict isolation between high-current ESC paths and sensitive analog sensor traces.
=========================================================================== MODULE 1: HIGH-POWER MANAGEMENT & REGULATION (UPDATED FOR HEAVY DUTY)
  • Input Power Connection:
    • Add an XT60-M battery input connector (Designator: BAT1). Target voltage: up to 6S LiPo (25.2V max).
    • Add a high-capacity TVS Diode (Transient Voltage Suppressor, e.g., 5.0SMDJ26A) directly parallel to the battery input pins to absorb high-voltage switching spikes from the large heavy-lift motors.
    • Add a parallel electrolytic bulk capacitor array: 1x 470uF/35V Low-ESR and 1x 10uF/50V 1206 MLCC for input ripple filtration.
  • Current & Voltage Sensing (Based on Hades INA219 implementation):
    • Insert a 10mOhm (0.01 Ohm, 1%, 3W, 2512) high-side current shunt resistor (R_SHUNT1) inline with VBAT.
    • Connect an INA219AIDCNR Current/Power Monitor IC (U_SENSE1) across R_SHUNT1.
    • Connect U_SENSE1 VDD to +3.3V. Filter VDD with 100nF to GND.
    • Connect U_SENSE1 SDA and SCL to the STM32 I2C2 bus via 4.7kOhm pull-up resistors to +3.3V.
  • Main 5V Power Generation (Heavy-Lift Upgrade):
    • Phil Salmony's design used a Micrel buck regulator. Implement the MIC26903YJL (REG1) synchronous buck regulator capable of providing 5V at up to 9A continuous output. This high current is explicitly required to power the internal logic, an external VR Video Transmitter system, and an external mechanical robotic arm module.
    • Connect REG1 PVIN to the filtered VBAT rail.
    • Place 2x 10uF/50V MLCC capacitors at the PVIN pins.
    • Connect REG1 SW pin to a high-current 15uH power inductor (L_BUCK1, rated for >10A saturation current).
    • Connect the output of L_BUCK1 to the +5V power rail. Filter the +5V rail with an output capacitor matrix: 1x 47uF/10V tantalum capacitor and 2x 10uF/10V ceramic capacitors.
    • Connect the REG1 Feedback network to maintain exactly 5.0V output.
  • 3.3V Microcontroller Power Generation:
    • Implement a low-noise, low-dropout linear regulator (LDO) MIC5205-3.3YM5 (REG2) to generate the clean +3.3V sensor and MCU rail.
    • Connect REG2 IN to the stable +5V rail. Filter IN with a 10uF ceramic capacitor.
    • Connect REG2 OUT to the +3.3V rail. Filter OUT with a 10uF low-ESR ceramic capacitor and a 10nF bypass capacitor.
=========================================================================== MODULE 2: CORE PROCESSOR & MINIMAL WORKING CIRCUITRY (STM32F405RGT6)
  • Connect all VSS pins (Pins 12, 18, 31, 47, 63, 60) directly to the main GND plane.
  • Connect all VDD/VDD_1/VDD_2/VDD_3 pins (Pins 13, 19, 32, 48, 64) to the +3.3V rail. Each must have its own 100nF capacitor against GND.
  • Connect VDDA (Pin 13) to +3.3V through a Ferrite Bead (e.g., BLM18HE601SN1D) and decouple with 1x 10nF and 1x 1uF ceramic capacitors in parallel to GND.
  • Connect VCAP_1 (Pin 31) and VCAP_2 (Pin 47) to independent 2.2uF/10V ceramic stabilization capacitors connected to GND.
  • External Clock (OSCILLATOR):
    • Connect an 8MHz miniature crystal oscillator (X1) across Pin 5 (OSC_IN) and Pin 6 (OSC_OUT).
    • Add 22pF load capacitors from Pin 5 to GND and from Pin 6 to GND.
    • Add a 1MOhm damping resistor parallel to the crystal across OSC_IN and OSC_OUT.
  • Reset & Boot Circuitry:
    • Connect Pin 7 (NRST) to +3.3V through a 10kOhm pull-up resistor. Add a 100nF capacitor from NRST to GND. Add a small tactile push-button parallel to the capacitor for manual hardware resets.
    • Connect Pin 60 (BOOT0) to GND via a 10kOhm pull-down resistor to ensure standard booting from flash memory. Add a 3-pin header (BOOT0 to Jumper selecting +3.3V or GND) for DFU flashing mode.
  • USB VCP Programming Interface (Based on HadesMicro.sch):
    • Connect a Micro-USB or USB-C female port connector (USB1).
    • Connect USB_VBUS through a 10kOhm/20kOhm voltage divider to an STM32 VBUS detection pin (PA9) if required, or directly to ensure safe processing.
    • Insert 22 Ohm inline dampening series resistors into the USB_D+ (PA12) and USB_D- (PA11) data lines.
    • Add an ESD protection diode array (e.g., USBLC6-2SC6) across the USB data lines directly at the port entry.
=========================================================================== MODULE 3: PRIMARY FLUG-STABILISIERUNGS-SENSORIK (UPGRADED)
  • Phil Salmony's design used the legacy BMI088. Upgrade this module to a modern, high-vibration resistant IMU: ICM-42688-P (U_IMU1).
  • Connect U_IMU1 VDD to +3.3V, decoupled with a 100nF and a 1uF capacitor. Connect VDDIO to +3.3V, decoupled with 100nF.
  • Communication Bus: Connect via High-Speed SPI1 Bus to the STM32F405:
    • U_IMU1 SCLK (Pin 1) to STM32 Pin 21 (PA5/SPI1_SCK)
    • U_IMU1 MISO/SDO (Pin 3) to STM32 Pin 22 (PA6/SPI1_MISO)
    • U_IMU1 MOSI/SDIO (Pin 2) to STM32 Pin 23 (PA7/SPI1_MOSI)
    • U_IMU1 CS (Pin 4) to STM32 Pin 20 (PA4/SPI1_NSS as Hardware Chip Select). Add a 10kOhm pull-up resistor on the CS line to +3.3V to prevent accidental initialization.
=========================================================================== MODULE 4: MOTOR OUTPUTS & RADIO RECEIVER INTERFACES (HEAVY LIFTER)
  • ESC Control Outputs (Expanded for Multirotor Redundancy):
    • Create an 8-channel pin header block (J_MOTORS) to support Hexacopter or Octocopter configurations (critical for 5kg payload safety).
    • Route the following hardware timer pins from the STM32 to the ESC signal pins via 220 Ohm inline current-limiting protection resistors:
      • Motor 1: Pin 24 (PA1/TIM2_CH2)
      • Motor 2: Pin 25 (PA2/TIM2_CH3)
      • Motor 3: Pin 26 (PA3/TIM2_CH4)
      • Motor 4: Pin 37 (PC6/TIM3_CH1)
      • Motor 5: Pin 38 (PC7/TIM3_CH2)
      • Motor 6: Pin 39 (PC8/TIM3_CH3)
      • Motor 7: Pin 40 (PC9/TIM3_CH4)
      • Motor 8: Pin 56 (PB10/TIM2_CH3 alternative or TIM5)
  • Primary RC Radio Link (ExpressLRS Upgrade):
    • Replace old FrSky inversion telemetry circuits with a pure, high-speed, non-inverted duplex UART connection for modern ExpressLRS (ELRS) 2.4GHz receivers.
    • Connect a 4-pin ultra-secure connector (J_ELRS1, pins: +5V, GND, TX, RX).
    • Route J_ELRS1 RX to STM32 Pin 42 (USART1_TX / PA9).
    • Route J_ELRS1 TX to STM32 Pin 43 (USART1_RX / PA10).
=========================================================================== MODULE 5: HIGH-SPEED HARDWARE VIDEO SWITCHER (CUSTOM VR FEATURE)
  • To support safe payload operations during public events (e.g., weddings), implement a sub-millisecond hardware video switcher circuit. This lets the pilot toggle between a fixed flight camera and an auxiliary modular 360-degree payload camera.
  • IC Component: Implement a Fairchild/Onsemi FSA3157 (U_SWITCH1) low-on-resistance SPDT analog switch.
  • Connect U_SWITCH1 VCC to +5V, decouple with a 100nF ceramic capacitor.
  • Video Input 0 (Default FPV Camera): Connect to a 3-pin header (J_CAM1: +5V, GND, VIDEO_IN_FPV). Route VIDEO_IN_FPV to U_SWITCH1 Pin 1 (S1).
  • Video Input 1 (Auxiliary Payload/360 Camera): Route the incoming video line from the bottom docking port (Net: VIDEO_IN_DOCK) to U_SWITCH1 Pin 2 (S2).
  • Video Output (To VR Transmitter): Connect U_SWITCH1 Pin 3 (D / Common Output) to a 3-pin output header dedicated to the external VR video transmitter system (J_VTX1: +5V, GND, VIDEO_OUT_TO_VR).
  • Control Logic: Connect U_SWITCH1 Pin 4 (Select / IN) to STM32 Pin 56 (PB5/GPIO).
    • Add a 10kOhm pull-down resistor to this line. When PB5 is driven LOW by software, the video feed default to the FPV camera. When PB5 is driven HIGH, it instantly forces a seamless switch to the payload camera feed. If the payload breaks, a software fail-safe returns the line to LOW.
=========================================================================== MODULE 6: MODULAR PAYLOAD DOCKING PORT & COLLISION AVOIDANCE
  • Ultrasonic Distance Sensor Ports (Front and Downward Collision Prevention):
    • Add two 4-pin connectors for HC-SR04 or industrial MaxBotix ultrasonic sensors (J_US_FRONT, J_US_DOWN). Pins: +5V, GND, TRIGGER, ECHO.
    • Front Sensor: Route TRIGGER to STM32 Pin 41 (PA8). Route ECHO to STM32 Pin 44 (PA11 or discrete GPIO).
    • Downward Sensor: Route TRIGGER to STM32 Pin 27 (PC4). Route ECHO to STM32 Pin 28 (PC5).
    • Add 4.7kOhm pull-up resistors on both ECHO lines to +3.3V to prevent floating inputs when sensors are initializing.
  • Magnetic Pogo-Pin Bottom Docking Interface:
    • To securely mount and control heavy attachments (like a motorized robotic arm or a 360-degree wedding ring delivery system) without exposed wiring risks, implement a 6-pin spring-loaded magnetic Pogo-Pin connector array (J_DOCK1) on the bottom edge of the board.
    • Pin 1: VBAT_DOCK (Power source for heavy servo motors). Connect directly to the main VBAT rail through a 5A self-resettable PPTC Polyfuse (F_DOCK1) to protect the main board from mechanical shorts or actuator jams in the payload arm.
    • Pin 2: GND (Common Power and Signal Ground).
    • Pin 3: +5V_DOCK (Logic power for the payload internal microcontroller). Connect to the main +5V rail.
    • Pin 4: DOCK_TX. Route from STM32 Pin 51 (PC10/UART4_TX) to pass commands down to the robotic arm controller.
    • Pin 5: DOCK_RX. Route to STM32 Pin 52 (PC11/UART4_RX) to receive diagnostic/docking data.
    • Pin 6: VIDEO_IN_DOCK. Route directly to Input 2 (S2) of the FSA3157 Video Switcher IC in Module 5.
OUTPUT EXPECTATION: Please execute this precise architectural specification. Render the full schematic connectivity tree, establishing all implicit net labels, protection resistors, filtration networks, and power-rail decouplings explicitly, matching the high-efficiency engineering intent.
I’m blocked from executing the schematic generation because this account currently has no available ACUs, so AI project-editing features are unavailable right now. No components or nets have been added to the project yet; it remains an empty draft project: Identical Aqua Battle Mech.
What remains to be done:
  • Create the full STM32F405RGT6 AIO UAV flight-controller schematic from your specification.
  • Resolve pin conflicts in the spec before implementation, notably PA9 is assigned to both USB VBUS detect and ELRS USART1_TX, PA11 is assigned to USB D− and ultrasonic echo, PB10/PB5 conflict around Motor 8 vs video switch control wording, and several STM32F405 pin-number mappings appear inconsistent.
  • Select or verify exact component symbols/footprints for XT60-M, MIC26903YJL, MIC5205-3.3YM5, INA219AIDCNR, ICM-42688-P, FSA3157, USB connector, ESD protection, pogo connector, and high-current passives.
  • Build the schematic, then run ERC/design review and create bring-up/firmware/regulatory documentation.
Once ACUs are available, I can proceed by first turning this into a corrected pin-assignment/spec document, then generating the schematic connectivity and verification artifacts.
Create pin spec
Resolve pin conflicts
Find exact parts
Save project note


  • Generic Inductor
    A generic fixed inductor suitable for rapid circuit topology development. The footprint automatically adapts based on the selected package, supporting standard SMD sizes (e.g., 0402, 0603, 0805) as well as well-known inductor packages such as SDR1806, PA4320, SRN6028, and SRR1260. Standard inductor values: 1.0 nH, 10 nH, 100 nH, 1.0 µH, 10 µH, 100 µH, 1.0 mH 1.2 nH, 12 nH, 120 nH, 1.2 µH, 12 µH, 120 µH, 1.2 mH 1.5 nH, 15 nH, 150 nH, 1.5 µH, 15 µH, 150 µH, 1.5 mH 1.8 nH, 18 nH, 180 nH, 1.8 µH, 18 µH, 180 µH, 1.8 mH 2.2 nH, 22 nH, 220 nH, 2.2 µH, 22 µH, 220 µH, 2.2 mH 2.7 nH, 27 nH, 270 nH, 2.7 µH, 27 µH, 270 µH, 2.7 mH 3.3 nH, 33 nH, 330 nH, 3.3 µH, 33 µH, 330 µH, 3.3 mH 3.9 nH, 39 nH, 390 nH, 3.9 µH, 39 µH, 390 µH, 3.9 mH 4.7 nH, 47 nH, 470 nH, 4.7 µH, 47 µH, 470 µH, 4.7 mH 5.6 nH, 56 nH, 560 nH, 5.6 µH, 56 µH, 560 µH, 5.6 mH 6.8 nH, 68 nH, 680 nH, 6.8 µH, 68 µH, 680 µH, 6.8 mH 8.2 nH, 82 nH, 820 nH, 8.2 µH, 82 µH, 820 µH, 8.2 mH #generics #CommonPartsLibrary
  • Generic Capacitor
    A generic fixed capacitor ideal for rapid circuit topology development. You can choose between polarized and non-polarized types, its symbol and the footprint will automatically adapt based on your selection. Supported options include standard SMD sizes for ceramic capacitors (e.g., 0402, 0603, 0805), SMD sizes for aluminum electrolytic capacitors, and through-hole footprints for polarized capacitors. Save precious design time by seamlessly add more information to this part (value, footprint, etc.) as it becomes available. Standard capacitor values: 1.0pF, 10pF, 100pF, 1000pF, 0.01uF, 0.1uF, 1.0uF, 10uF, 100uF, 1000uF, 10000uF 1.1pF, 11pF, 110pF, 1100pF 1.2pF, 12pF, 120pF, 1200pF 1.3pF, 13pF, 130pF, 1300pF 1.5pF, 15pF, 150pF, 1500pF, 0.015uF, 0.15uF, 1.5uF, 15uF, 150uF, 1500uF 1.6pF, 16pF, 160pF, 1600pF 1.8pF, 18pF, 180pF, 1800pF 2.0pF, 20pF, 200pF, 2000pF 2.2pF, 22pF, 220pF, 2200pF, 0.022uF, 0.22uF, 2.2uF, 22uF, 220uF, 2200uF 2.4pF, 24pF, 240pF, 2400pF 2.7pF, 27pF, 270pF, 2700pF 3.0pF, 30pF, 300pF, 3000pF 3.3pF, 33pF, 330pF, 3300pF, 0.033uF, 0.33uF, 3.3uF, 33uF, 330uF, 3300uF 3.6pF, 36pF, 360pF, 3600pF 3.9pF, 39pF, 390pF, 3900pF 4.3pF, 43pF, 430pF, 4300pF 4.7pF, 47pF, 470pF, 4700pF, 0.047uF, 0.47uF, 4.7uF, 47uF, 470uF, 4700uF 5.1pF, 51pF, 510pF, 5100pF 5.6pF, 56pF, 560pF, 5600pF 6.2pF, 62pF, 620pF, 6200pF 6.8pF, 68pF, 680pF, 6800pF, 0.068uF, 0.68uF, 6.8uF, 68uF, 680uF, 6800uF 7.5pF, 75pF, 750pF, 7500pF 8.2pF, 82pF, 820pF, 8200pF 9.1pF, 91pF, 910pF, 9100pF #generics #CommonPartsLibrary
  • Generic Resistor
    A generic fixed resistor ideal for rapid circuit topology development. Its footprint automatically adapts based on the selected package case code—supporting 0402, 0603, 0805, 1203, and many other standard SMD packages, as well as axial horizontal and vertical configurations. Save precious design time by seamlessly add more information to this part (value, footprint, etc.) as it becomes available. Standard resistor values: 1.0 ohm, 10 ohm, 100 ohm, 1.0k ohm, 10k ohm, 100k ohm, 1.0M ohm 1.1 ohm, 11 ohm, 110 ohm, 1.1k ohm, 11k ohm, 110k ohm, 1.1M ohm 1.2 ohm, 12 ohm, 120 ohm, 1.2k ohm, 12k ohm, 120k ohm, 1.2M ohm 1.3 ohm, 13 ohm, 130 ohm, 1.3k ohm, 13k ohm, 130k ohm, 1.3M ohm 1.5 ohm, 15 ohm, 150 ohm, 1.5k ohm, 15k ohm, 150k ohm, 1.5M ohm 1.6 ohm, 16 ohm, 160 ohm, 1.6k ohm, 16k ohm, 160k ohm, 1.6M ohm 1.8 ohm, 18 ohm, 180 ohm, 1.8K ohm, 18k ohm, 180k ohm, 1.8M ohm 2.0 ohm, 20 ohm, 200 ohm, 2.0k ohm, 20k ohm, 200k ohm, 2.0M ohm 2.2 ohm, 22 ohm, 220 ohm, 2.2k ohm, 22k ohm, 220k ohm, 2.2M ohm 2.4 ohm, 24 ohm, 240 ohm, 2.4k ohm, 24k ohm, 240k ohm, 2.4M ohm 2.7 ohm, 27 ohm, 270 ohm, 2.7k ohm, 27k ohm, 270k ohm, 2.7M ohm 3.0 ohm, 30 ohm, 300 ohm, 3.0K ohm, 30K ohm, 300K ohm, 3.0M ohm 3.3 ohm, 33 ohm, 330 ohm, 3.3k ohm, 33k ohm, 330k ohm, 3.3M ohm 3.6 ohm, 36 ohm, 360 ohm, 3.6k ohm, 36k ohm, 360k ohm, 3.6M ohm 3.9 ohm, 39 ohm, 390 ohm, 3.9k ohm, 39k ohm, 390k ohm, 3.9M ohm 4.3 ohm, 43 ohm, 430 ohm, 4.3k ohm, 43K ohm, 430K ohm, 4.3M ohm 4.7 ohm, 47 ohm, 470 ohm, 4.7k ohm, 47k ohm, 470k ohm, 4.7M ohm 5.1 ohm, 51 ohm, 510 ohm, 5.1k ohm, 51k ohm, 510k ohm, 5.1M ohm 5.6 ohm, 56 ohm, 560 ohm, 5.6k ohm, 56k ohm, 560k ohm, 5.6M ohm 6.2 ohm, 62 ohm, 620 ohm, 6.2k ohm, 62K ohm, 620K ohm, 6.2M ohm 6.8 ohm, 68 ohm, 680 ohm, 6.8k ohm, 68k ohm, 680k ohm, 6.8M ohm 7.5 ohm, 75 ohm, 750 ohm, 7.5k ohm, 75k ohm, 750k ohm, 7.5M ohm 8.2 ohm, 82 ohm, 820 ohm, 8.2k ohm, 82k ohm, 820k ohm, 8.2M ohm 9.1 ohm, 91 ohm, 910 ohm, 9.1k ohm, 91k ohm, 910k ohm, 9.1M ohm #generics #CommonPartsLibrary
  • Ground
    A common return path for electric current. Commonly known as ground.
  • Terminal
    Terminal
    An electrical connector acting as reusable interface to a conductor and creating a point where external circuits can be connected.
  • Net Portal
    Wirelessly connects nets on schematic. Used to organize schematics and separate functional blocks. To wirelessly connect net portals, give them same designator. #portal
  • RMCF0805JT47K0
    General Purpose Thick Film Standard Power and High-Power Chip Resistor 47 kOhms ±5% 0.125W, 1/8W Chip Resistor 0805 (2012 Metric) Automotive AEC-Q200 Thick Film Features: - RMCF – standard power ratings - RMCP – high power ratings - Nickel barrier terminations standard - Power derating from 100% at 70ºC to zero at +155ºC - RoHS compliant, REACH compliant, and halogen free - AEC-Q200 compliant
  • 875105359001
    10 µF 16 V Aluminum - Polymer Capacitors Radial, Can - SMD 30mOhm 2000 Hrs @ 105°C #commonpartslibrary #capacitor #aluminumpolymer #radialcan
  • CTL1206FYW1T
    Yellow 595nm LED Indication - Discrete 1.7V 1206 (3216 Metric)
  • 1070TR
    Battery Holder (Open) Coin, 20.0mm 1 Cell SMD (SMT) Tab bate or batt #forLedBlink