Review Request: Flight Controller Design

Hello Friends

I’m developing a custom flight controller, based on the STM32F765VGT6 (1 MB flash, Cortex-M7) . Before production, I’d greatly appreciate your feedback on my schematic and design to ensure compatibility and reliability. Thank you for your time and expertise

Hardware Overview
MCU: STM32F765VGT6 Sensors:IMUs: BMI088 (SPI3, shared), ICM-42688-P (SPI1) Magnetometers: IST8310 (I2C1, shared), MMC5983MA (SPI2) Barometers: BMP388 (I2C1, shared), BMP390 (I2C2) Storage: FM25V01A-GTR (FRAM, SPI3), MicroSD (SPI4) Connectivity: 8 PWM outputs, 2 CAN buses, UARTs (telemetry, debug, SBUS), TXS0108ERGYR level shifters Schematics and pin assignments are in my GitHub:

GitHub - mkeyno/pixeagle: Flight controller reference design based on the STM32F765VGT6 microcontroller similar to FMUv5

1 Like

Good day, asap I will check your scheme coz require a little bit of time for familiarize it…I can suggest 6 layer stackup..

1 Like

Just one comment. 1 MB flash sounds like a bad idea as it will be a challenge to fit everything that you need in. 2 MB would be my recommendation.

1 Like

Thanks, Dave, looking forward to your comment

The idea is, FC only focuses on the critical stabilization task while the companion computer looks after navigation and removes a lot of burden from the processor, which uses a high-performance MCU, more information at www.keyno-gc.co.nz

I understand but it might still be challenging.

1 Like

So, personally I will opt for a different MCU…more capable in memory, just remove the IC for sbus coz F7 and H7 can handle sbus, are you opting for JTAG or DFU for flash the MCU? I think you don’t need add two magnetometers on the board coz usually the internal on the PCB it’s affected by vibrations and emi. Add to the boot pin a 10k res connected to GND and check the correct value about the resistors for the current and voltage sensing..

No mandatory analog connector.

For flash I can suggest JTAG footprint by tag connect 2030 footprint.

The design it’s a little bit confusing due many connection .

1 Like

Thank you for your valuable feedback on my design. Below are my responses to your comments, along with some follow-up questions for clarification:

1. MCU Selection & SBUS Reliability

I opted for the STM32F765VGT6 (mid-range Cortex-M7) to balance performance and cost, delegating advanced AI/sensor fusion tasks to the companion computer (RPi CM4/ESP32-S3).

You mentioned that SBUS is more reliable on H7/F7 MCUs. Could you elaborate on why? Since SBUS is a simple serial protocol, I assumed compatibility across most STM32 series. Are there timing or hardware peripheral considerations I might have missed?

2. Debugging & Redundancy

  • JTAG/SWD + DFU: These were included to ensure programmability in cases where the MCU lacks a bootloader (e.g., raw chips).

  • Sensor Redundancy:

    • IMUs: BMI088 (SPI3, shared) + ICM-42688-P (SPI1, dedicated).

    • Magnetometers: IST8310 (I2C1, shared) + MMC5983MA (SPI2, dedicated).

    • Barometers: BMP388 (I2C1, shared) + BMP390 (I2C2, dedicated).

You suggested removing one magnetometer since drones often rely on external compasses (e.g., GPS modules). Which one would you recommend keeping?

  • The MMC5983MA (SPI) offers higher resolution, while the IST8310 (I2C) is more common in PX4 ecosystems.

Should I also remove a barometer and add a third IMU instead, or is dual redundancy sufficient?

3. Power Design

  • Dual MIC5332 LDOs: Used to provide clean, low-noise power to sensors and MCU.

  • Battery Voltage Sensing: A 10kΩ/1kΩ divider (11:1 ratio) scales battery voltage (<3.3V) for ADC measurement, with separate analog inputs for voltage and sensors.

4. Footprint Example

You asked for a 2030 footprint example. Did you mean a specific component (e.g., crystal, capacitor) or a PCB dimension standard (e.g., 20mm × 30mm)? Please clarify, and I’ll provide the relevant details.

Looking forward to your insights!

Good day….following your points:

MCU Selection & SBUS Reliability:

STM32F7 and H7 families of microcontrollers have built-in capabilities to handle both inverted and uninverted signals for UART communication.

Debugging:

As mentioned you can use the TC2030 footprint instead of add a connector for the flash bootloader and the firmware, the address for the bootloder its different from the address of the firmware.

here the link: so you can have an idea TC2030-MCP-NL Symbol, Footprint & 3D Model by Tag-Connect | SnapMagic Search (formerly SnapEDA)

Sensor Redundancy:

  • IMUs: BMI088 (SPI3, shared) + ICM-42688-P (SPI1, dedicated) are ok

  • as magnetometer keep the IST8310 and no need in my opinion add another imu, ive never found problems with two imus and one barometer.

  • Power Design: im not using the MIC5332 as LDO but im using XC6220B331ER-G, one for the main MCU and the sedond one for the periphs

Battery Voltage Sensing: in my designs im using for voltage and current sensing 1kΩ/1kΩ

1 Like

I hope you’re having a good day Dave

I’ve reviewed your feedback and made a few changes based on your suggestions. I still have a couple of questions, though.

First, regarding your comment on the STM32F765 series: since I’m using this microcontroller, do I still need a U74LVC1G14G single-line inverter for the SBUS?

Second, I’m having trouble with the pin arrangement for my connectors. Some GPS modules, for example, have a separate I2C port, while others have a single connector that includes both serial and I2C. Is there a standard or recommended way to arrange the pins? For instance, should all serial ports be arranged in the same order (e.g., 5V, TX, RX, and GND)?

I’ve also moved all my buck converters and LDOs to a separate board to improve signal integrity, as I’ve found the ESC power supply to be unreliable and noisy.

I look forward to hearing your thoughts.

I might add that, since STM32H743VIT6 and STM32F765VGT6 have the same pinout and fairly similar price, I can easily replace my F7 series with H7

Good day, you can remove the U74LVC1G14G IC…no needed in F7 and H7 MCU, you can add only a 220R as you are working with a TIM channel. About the connector for GPS, you can do in this way a JST-GH 6 pin…5V-TX-RX-SDA-SCL-GND.

Check also a good pcb stackup…i think due the density you must use 6L.

1 Like

Hi Dave I updated the MCU to the H7 series and other comments that you mentioned. Would you please check my last schematic

pixegle schematic.pdf (908.9 KB)

So.. MCU VDD pins rquire caps like datasheet, all SPI CS pin must have a 10k pull-up resistor, no need analog sensor, ive some concerne about your SBUS design, in can transceiver miss a 120R. The schematic its caotic.

I recommend starting on an easy project.

1 Like