HAWK 3 - drone flight controller   banner

HAWK 3 - drone flight controller

43 devlogs
86h 45m 18s

I am building a my own flight control system built around the STM32H743VIT6 (High-speed H7 architecture) , This flight controller is design for modern FPV drones. Designed on a standard 30x30mm footprint, the board focuses on zero-latency flight d…

I am building a my own flight control system built around the STM32H743VIT6 (High-speed H7 architecture) , This flight controller is design for modern FPV drones. Designed on a standard 30x30mm footprint, the board focuses on zero-latency flight dynamics and crystal-clear video transmission. It features the industry-leading ICM-42688-P gyroscope on a dedicated high-speed SPI bus, and a massive 32MB onboard flash memory for flight data logging.

  • STM32H743VIT6 (High-speed H7 architecture) high-performance MCU integrated as the main flight processor.
  • 8MHz external resonator added for stable system timing.
  • ICM-42688-PC 6-axis IMU implemented for high-precision motion tracking.
    *BMP388 High-precision barometric pressure sensor
  • OSD: AT7456E Analog video overlay for real-time telemetry.
  • Power System: Dual, isolated TPS54335A buck converters (5V Logic / 9V Video) with TVS spike protection.
Demo Repository

Loading README...

ego

Finally I have completed the Copper Polygon, I have created a total of 4 zones.

  • zone 1 :- for the VBAT (0 it will carry around 8v to 28v)
  • zone 2 :- for the 9V power
  • zone 3 :- for the 5V power
  • zone 4 :- for the safe side , i also created 3v3 zone

ICM-42688-P gyro and the 32MB Blackbox flash memory chip incredibly fast. We are using SPI (Serial Peripheral Interface) buses for this.

  • Because ash memory chip is on the top layer next to the MCU, routing this was about keeping it short and clean. I ran the Clock (SCK), MOSI, and MISO lines directly between the two chips. More importantly, I made sure there were zero vias on these traces.

  • Because the gyro sits directly on the bottom layer, so these signals did have to drop through vias. The challenge here was making sure the SPI2 traces never crossed over the noisy inductors from our power regulators. I carefully snaked them down through our Internal Signal layer (Layer 3), safely shielded by the solid Ground planes above and below them.

Attachment
0
ego

USB-C: Differential Pair Routing

Let’s start with the USB-C connection. The data lines coming from the USB port (D+ and D-) don’t operate like normal traces. They carry high-frequency signals, and they act as a “differential pair.”
alt text
This means they send inverted versions of the exact same signal down two parallel wires to cancel out electrical noise.

here is the best example how to do this :-
alt text

The D+ and D- traces must be the exact same length down to the millimeter. If one trace is slightly longer, the signals arrive out of sync, and your PC will hit you with the dreaded “USB Device Not Recognized” error. Because this MCU is much faster than the Pico or PI Zero, you won’t notice it in that.

I routed these traces directly from the physical USB port straight into our PRTR5V0U2X ESD protection chip, and then to the MCU.

Attachment
0
ego

This is a continuation of my previous development because I couldn’t put that data there.
There’s one major problem with using large copper joints: they absorb heat. If I connect the main battery pad directly to a solid, unbroken copper plane, the plane will act as a heatsink. When you try to solder your battery wires to the Hawk 3, the copper will absorb heat from your soldering iron, leaving you with cold, weak solder joints.

To fix this, I turned on “thermal relief” on all the power pads. Instead of melting directly into the copper C of the pad, it connects to four small copper “spokes.” This causes a lot of current to flow, but it traps the heat from your soldering iron on the pad for a while so you can actually melt your solder and get a perfect, shiny joint

Attachment
0
ego

Now, it is time to actually connect the power.

But here is the thing: when you are dealing with a flight controller that pulls heavy amps, you don’t draw lines. You pour copper.( or Your tracks need to be thick to carry high current), like in img
alt text
If you try to push 3 Amps of current from our 5V or 9V regulators through a standard 0.1mm routing trace, that trace will instantly heat up and vaporize like a blown fuse.

TPS54335A buck converters are sitting on the bottom of the board (Layer 6). I started there, pouring thick, custom copper shapes to connect the raw VBAT power into the regulators, and then massive shapes to capture the 5V and 9V output from the inductors.
alt text
But that power needs to get to the rest of the board. That is where Layer 4 (our dedicated Internal Power layer) comes in. I sliced Layer 4 into massive copper regions. One huge region carries 5V to the MCU and the UARTs, while a strictly isolated region carries the 9V power straight to the video quadrant.

Attachment
Attachment
Attachment
0
ego

i forget to mention about ground rules for the board

starting with one of the most critical decisions of the entire project: the layer stackup.
Trying to route an STM32H743, two massive power regulators, and a high-speed gyro on just 4 layers would lead to crossed signals, electrical noise, and poor power delivery Because my STM32 alone is 14x14 mm in size And keeping the standard size in mind, I increased the size of the board a bit by keeping the mounting hole at 30.5 mm.
layer stackup :-

  • Layer 1 (Top Signal): the H7 brain, the ICM-42688-P gyro, the USB-C port, and the short, critical high-speed traces connecting them

  • Layer 2 (Internal Ground): Just beneath the surface is a solid, unbroken sheet of copper tied to Ground (GND).

  • Layer 3 (Internal Signal): I will use this to snake the UARTs, motor signals, and general I/O across the board without cluttering the top surface.

  • Layer 4 (Internal Power): This layer is entirely dedicated to power. carry the 3.3V, 5V, and 9V power rails smoothly across the entire board.

  • Layer 5 (Internal Ground): Another solid sheet of Ground copper. This creates a sandwich effect
    alt text
    (That's right, that's what it's called, I read it here ;- https://www.protoexpress.com/blog/prepreg-the-slice-of-cheese-in-your-pcb/), shielding the internal signal layers from the noisy power regulators sitting on the bottom of the board.

  • Layer 6 (Bottom Signal): This layer holds the heavy lifters—the dual TPS54335A buck converters, the 32MB Blackbox flash, and the AT7456E OSD chip.

Attachment
0
ego

I always route the most sensitive stuff first. For the Hawk 3, that means the SPI1 bus for the ICM-42688-P gyro and the SPI2 bus for the 32MB Blackbox flash. it requires keeping traces short, direct, and under a continuous ground plane to manage high-speed signaling (typically >10 MHz) and minimize parasitic capacitance (unavoidable capacitance forming between conductive components)

alt text,
I also made sure to route them away from any power components so we don’t pick up electromagnetic noise.

alt text

I’ve tried my best to route it so that the trace for the gyro is as short and straight as possible, but I don’t know how successful that was.
alt text
I want these data lanes to go in a perfectly straight line into the STM32H743 brain.

Attachment
0
ego

Shipped this project!

Hours: 31.06
Cookies: 🍪 891
Multiplier: 28.68 cookies/hr

This hawk 3 design is heavily influenced by recent shifts in Betaflight’s hardware recommendations, focusing heavily on processing power, latency reduction, and delivering the cleanest possible power for high-end FPV systems.
this is major hardware revision So that it remains compatible with the open source flight controller community and BetaFlight firmware.
I can’t show a direct hardware demo right now because there are only a couple of good PCB fabrication companies in my country and it takes a lot of time to source components, but I have done some simulation tests to insure the design.
you check here :- https://betaflight.com/

ego

Changelog


Using the updated feedback calculation (R1 = 100k Ohm, R2 = 9.76k Ohm), the 9V rail regulates perfectly at 8.99V. Like the 5V rail, it achieves full regulation in 1.80 ms. This fast initialization ensures the VTX receives stable power before attempting to transmit, preventing initial boot-up static or channel drift. The inductor handles the peak inrush current smoothly at 3.85A.

Attachment
Attachment
0
ego

With every component finally in place, my component placement is complete. With all the components finally locked into their exact, millimeter-perfect coordinates, the board is officially ready for the hardest part of the entire project: routing the copper traces.
I made sure to group the 5V and 9V power circuits tightly together in their own corner, creating a strict “quarantine zone.” i mean restricted zone

Attachment
0
ego

The dual TPS54335A buck converters are amazing for power delivery, but the inductors they use generate a lot of invisible magnetic noise.
this is great-resource if you wanna read about noise :- https://files.resources.altium.com/sites/default/files/uberflip_docs/file_731.pd
alt text
one of my friend told me about, so i want share with you all
https://www.connectortips.com/how-to-manage-emi-at-the-harness-to-pcb-interfaces/

0
ego

In the last update, I did the b block-out—getting the MCU, USB port, and major pad clusters to their general neighborhoods.
Today was all about the meticulous “micro-placement” phase.
Here are the rules I had to follow to make sure this board actually work fine ok gabonparrot
The ICM-42688-P gyro is the most sensitive component on the board. I had to ensure it was placed as close to the absolute physical center of the PCB as possible.
If the gyro is rotated even a tiny fraction of a degree off-axis during placement, the flight controller will constantly mix up roll and pitch movements, making it a nightmare to tune.

0
ego

I started dragging parts onto the actual board outline to figure out where everything should live. It is basically a high-stakes game. I dropped the STM32H743 chip dead in the center, since it is the bulky brain and needs to connect to literally everything else. Next, I placed the ICM-42688-P gyro right next to it, ensuring it sits as close to the center of gravity as possible so the quad flies locked-in.

From there, I pushed the USB-C port and all those heavy-duty motor and power pads out to the extreme edges where they will be easy to solder. Finally, I grouped the 5V and 9V power regulators and pushed them into their own isolated corner so their electrical noise stays far away from the sensitive video and gyro lines.

0
ego

after finishing up the schematic and finally importing everything into the PCB layout editor, I immediately realize about: space constrains .
When you pack a giant STM32H743 bulky mind, two separate power regulators, and a massive 32MB flash chip onto a standard flight controller size, real estate disappears fast. I quickly realized that the standard 0603 and 0805 component sizes I had originally picked for my passives were just way too big. If I kept them, the board was going to be an overcrowded mess, and routing the traces would be impossible.
so, I went back through the entire schematic and changed the footprint of every single subcomponent—every capacitor, every resistor, and every inductor—down to the microscopic 0402 size.

Let me tell you, this was not the fun, creative part of designing a flight controller. It took me about an hour and a half of pure, tedious clicking. Going component by component, updating the part numbers, and verifying the new 0402 footprints was a total grind.

Attachment
0
ego

schematic is done finally yaaaaaaay gabonparrot


Finally, I added a few breakout pads for the LED strip and the Buzzer. Because let’s be honest, no build is complete without a loud buzzer to help you find it in the tall grass after a crash.
And with that, the full schematic, power calculations, and pad mapping for the Hawk 3 are officially done! Every pin on that H7 chip has a purpose.

Attachment
0
ego

Power Management Simulation


To make sure my 5 volt and 9 volt rails are working correctly, I used the Ti official simulator for my design and it is really impressive to me that I have designed and calculated the correct values ​​for registers, capacitors, an inductor.

simulation result:-

  • The simulation confirms that with a 6.8uH inductor on both rails, the peak-to-peak ripple is well within tolerances.

  • The next step is to ensure the TPS54335A’s Thermal Pad (Pin 11) is tied to a massive ground plane, because at 3A, those little chips are going to want to shed some heat!

  • With the 100k resistors tied to ground, the internal oscillator is locked in. The primary goal here was to observe the PH (Phase) node switching waveform.

I looked for two specific things in the sim:

  • Dead-time control: Ensuring the synchronous internal MOSFETs aren’t “shooting through” (turning on at the same time).
  • BOOT-PH Voltage: Verifying that the 100nF bootstrap capacitors maintain enough charge to fully drive the high-side gate, even at high duty cycles.

I simulated a “step-load” (suddenly jumping from 1A to 3A). The goal was to ensure the VSENSE pin recovered quickly without ringing.

Attachment
Attachment
Attachment
Attachment
Attachment
0
ego

this is all about making this board talk to the outside world.
Your flight controller needs to constantly chat with :-

  • your radio receiver
  • your video transmitter
  • your GPS
    It does this using hardware communication ports called UARTs. so i map them with JST ports

UART Map

  • UART 1 (TX1 / RX1): I’ve designated this for the primary radio receiver link
  • UART 2 (TX2 / RX2): I mapped this one out specifically for a GPS module
  • UART 3 (TX3 / RX3): This lane is dedicated to the Video Transmitter
  • UART 4 (TX4): I routed out a fourth, easily accessible UART just to have a spare (It’s always good to have an extra set of TX/RX pads for future expansions, like a Bluetooth module for wireless tuning or a compass.)
Attachment
Attachment
0
ego

Motors Spinning and Reading the Amps


With both the 5V and 9V power delivery networks completely routed and calculated. I focused entirely on the motor outputs and the current sensing.

The STM32H743 it needs a direct way to yell instructions at the electronic speed controller (ESC).
I mapped out the signal lines for our four motor outputs—M1, M2, M3, and M4. These traces are the direct communication link that tells the 4-in-1 ESC exactly how fast to spin each motor.

I routed an analog current sensor line (labeled CURR on the schematic) straight from the ESC connector pad to a dedicated Analog-to-Digital Converter (ADC) pin on the H7 chip so i can know how much power they are sucking out of the battery.
This allows the flight controller to read the real-time amp draw from the main battery lead and display your total milliamp-hours (mAh) consumed right on your OSD.

Attachment
Attachment
0
ego

9V Power Delivery Network (PDN)


Moving right along to the second half of the power system: the 9V rail.

You might be wondering, “Why do we need a completely separate 9V regulator if we already have 5V and raw battery power?”

The answer is video quality and raw power is 6S which mean 22.2 V .

If you power them directly from the battery, every time you throttle up, yuo will face mainly two problem according to my exprince :-

  • you will see horizontal static lines across your goggles because the motors make the power dirty.

  • If you power them from the 5V rail, the high current draw of a powerful VTX might starve the MCU and cause a mid-air reboot.

so that why i added a second, entirely separate TPS54335A buck regulator specifically to generate a clean 9V rail just for the VTX and camera.

alt text

Just like the 5V regulator, we have to calculate the feedback resistors to tell this second TPS54335A to output exactly 9V.

  • Again, I use a 10k resistor for R_2 to keep the Bill of Materials (BOM) simple
Attachment
0
ego

5V Power Delivery Network (PDN)


I’ve been working on the Power Delivery Network (PDN), and I decided to split it into two completely separate systems.
Let’s talk about the first one: the 5V rail.:
To step down the raw, high voltage from the LiPo battery (VBAT which is 6s) to a clean usable 5V,
I am using the TPS54335A buck regulator.
alt text
It is highly efficient and can handle the current draw of all our onboard electronics without getting hot.

Before the power even reaches the regulator, it has to survive the motors. When you do a sharp flip and the motors brake, they shoot massive voltage spikes back into the battery line.

alt text

To protect the board, I wired a heavy-duty TVS diode across the VBAT pads. It acts like a shock absorber, clamping down on those spikes before they can fry the regulator.

i have do The Hall of Calculation for the 5V:

  • I selected a standard 1% tolerance 52.3k resistor for R_1, which gives us a rock-solid, incredibly precise 5V ( exactly 4.98, i get this after a lots of calculation according to data sheet ) rail.
  • To get our 5V output, I picked a standard 10k resistor for R_2
Attachment
0
ego

I caught a significant error in my initial instructions regarding the crystal oscillator setup
my originally connecting , the crystal between CLKIN and CLKOUT, but after a deeper dive into the manufacturer’s datasheet,
I realized that would have been a “no-boot” scenario.
alt text

CLKOUT (Pin 7) is actually a buffered logic-level output designed to drive other ICs on the PCB; it isn’t part of the resonant feedback loop for the crystal itself. To get the OSD chip to actually pulse, the crystal must bridge CLKIN (Pin 5) and XFB (Pin 6).
alt text

Attachment
0
ego

With the power sorted, I moved on to the analog video
’ve got the AT7456E OSD chip wired into the schematic and mapped it directly to the SPI4 bus on the STM32H743.

to make absolutely sure the video feed stays crystal clear even when the motors are pulling huge amps,
I’ve also designed a dedicated LC filter into the OSD circuit. Clean power plus filtered video means no more annoying horizontal lines in the goggles!

Attachment
0
ego

I spent a good chunk of time wiring up the STM 32 H7

  • This involved getting all the necessary VCAP capacitors in place to stabilize the internal core voltage
  • hooking up the 3.3V power rails
  • wiring in an 8MHz external crystal so the timing is dead-on

I also finished the BOOT and RESET circuits—super important, because otherwise, we’d have no way to get Betaflight flashed onto this thing in the first place!

As I mentioned in the last log, we are going full USB-C. I got the D+ and D- data lines routed, but more importantly, I made sure to add a PRTR5V0U2X ESD protection chip,
about the ESD protection

Plugging and unplugging a flight controller in the field can easily send a nasty static shock into the board, and this little chip will act as a bodyguard to make sure we don’t accidentally fry the main MCU.

Attachment
0
ego

Lately, I’ve been staring at a screen for way too many hours, moving from the component phase right into the actual schematic

Clean power is probably one of the most essential parts of a good FC design.
so I spent a lot of time on this. I’m using dual TPS54335A buck converters.

This gives me two dedicated, clean power rails:

  • a 5V rail for the standard electronics and receiver
  • 9V rail specifically to run the video transmitter (VTX)
  • 9V rail specifically to run camera without any noise or dropouts.

the component selection and core architecture are pretty much locked in. I’m really happy with how the feature set is coming together.

Here is what I’ve knocked out so far:

  • I put the ICM-42688-P gyro on its own dedicated SPI1 bus. We want the fastest, lowest-latency path possible between the gyro and the MCU for those tight PID loop times.
  • I put the massive (Blackbox)W25Q256JVEIQ 32MB flash memory chip on SPI2. This way, the FC can dump all that heavy tuning and logging data without fighting the gyro for bandwidth.
Attachment
Attachment
0
ego

FC controller project: the Hawk 3. I wanted to put together a quick update to talk about what I’ve been working on and the design choices I’ve locked in so far.


If you’ve followed my older designs, you know I previously used the STM32F405 and F412 chips. They were great, but no longer supported by beta flight in future.

I decided to make the jump to

  • the STM32H743VIT6 microcontroller.
    alt text
  • I went with the ICM-42688-P. It’s super fast, has great noise characteristics (bit expensive(13 usd), but i have made in china version only for 3 usd)
    alt text
  • I added the BMP388
  • I am sticking with the tried-and-true AT7456E chip
  • Tuning is everything, so I wanted to make sure there was plenty of room for Blackbox logging. I’ve routed in a W25Q256JVEIQ flash memory chip,(hell yeah 32 MB)

which gives the board a massive 32MB of onboard storage to capture flight data.

Attachment
Attachment
0
ego

It’s very bad news for my FC that BetaFlight has changed its guidelines.My previous design, which I worked so hard to perfect, is now considered “legacy” hardware. While it may still fly today(still work ,also with INAV ), it is no longer compatible with the vision of Betaflight’s future updates. As performance demands grow, this board will eventually be left behind, unable to support the latest features and optimizations. so I’ll have to create a new one so that it can meet community standard and community can use it easily.


[!WARNING]

Betaflight Hardware Design Policy Update

Betaflight will no longer accept new flight controller designs using STM32 F4 and F7 series microcontrollers for boards requiring more than 4 motor outputs.

Why this change?

We strive to provide the best flight experience across a wide range of hardware. To maintain this standard, we must limit designs using older microcontrollers that suffer from restrictive timer and DMA resource limitations.

Design Recommendations

  • STM32 F4/F7: Should now be reserved strictly for budget freestyle/racing designs and AIOs limited to 4 motor outputs.
  • STM32 H743: With pricing now comparable to the F405, the H743 is the recommended choice for high-performance, high motor output, and high I/O designs.

Legacy Support

  • Existing designs are not affected by this change.
  • Future Note: Features may be restricted on older hardware in future firmware releases if performance overhead becomes a bottleneck.

Now I am making a 4 motor FC using STM H743, I have removed BMI270 so the whole design is almost changed but for the connecting part most of it will remain the same.

Attachment
Attachment
Attachment
0
ego

Shipped this project!

Hours: 26.73
Cookies: 🍪 374
Multiplier: 14.0 cookies/hr

after lot of work Here were the some changes I made:

  • Processor Upgrade: Integrated the STM32F405RGT6 (LQFP-64), increasing the clock speed to 168MHz for faster PID loop execution.
  • Sensor Suite: Implementation of the ICM-42688-P high-precision 6-axis IMU and the DPS310 barometer for superior vibration rejection and altitude hold.
  • Integrated OSD: Added the AT7456E chip to support real-time analog video overlays.
  • High-Speed Logging: Included 128M-bit W25Q128JVSIQ flash memory for comprehensive Blackbox flight data recording.
ego

I’m feeling very frustrated.

I hit a major wall trying to route traces for the STM32F405. With 64 pins and those 34 decoupling capacitors fighting for space, my screen resembled a bowl of digital spaghetti.

No matter how I moved the traces, I would repeatedly run into “collisions” or get stuck in a corner where I couldn’t send signals to the ICM-42688-P or AT7456E OSD chip.

Instead of forcing it and making a mess, I decided to do something tricky: I stopped and started “clearing” things. I deleted a large portion of the pre-arranged traces because I realized my component arrangement was actually working against me.

BELIVE ME hard way that PCB design isn’t just about connecting dots; it’s about traffic management

0
ego

My PCB stack has 4 layers - top, ground, 3.3 power lines, and bottom.

I created “copper pores” or power planes for 3V3 and GND.

the entire layer of the board acts like a massive highway for the ground and 3.3V rails.
This helps keep the power stable for the DPS310 barometer and the MCU, especially since this new version runs so much faster.

I spent nearly thirty minutes just trying to route the traces out from under the LQFP-64 package without creating islands in my ground plane. It’s like a puzzle where every piece you move affects five other things.

0
ego

Moving from the 48-pin chip to the 64-pin STM32F405 meant I had a literal spiderweb of connections to manage.
I focused first on the high-speed TRACE specifically the SPI lines that connect the brain to the

  • ICM-42688-P gyro
  • the AT7456E OSD.
    I learned that these lines need to be as short and direct as possible to prevent signal interference.

After the signal lines, I tackled the power distribution.

Attachment
Attachment
0
ego

finallyyyyyy Component arrangement done

It’s finally starting to look like a real flight controller instead of just a mess of lines. Seeing the “brain( I MEAN STM32)” surrounded by its “nervous system(LOL)” of test points and filters is a huge confidence booster, even if I know the actual routing of all those traces is going to be my next big hurdle!

I also spent a lot of time strategically placing the 51( I know it’s excessive but it’s necessary and it’s also for connection) test points. also I know I’m going to need to troubleshoot, so I made sure to spread those pads out where I can actually reach them with a multimeter probe without shorting anything out.

Attachment
Attachment
0
ego

PCB design

To be honest, seeing all those components scattered across my EasyEDA canvas was a bit intimidating at first. I spent a full hour and a half carefully grouping the parts, making sure the high-speed ICM-42688 gyro was right in the middle for optimal flight performance.

The biggest challenge was definitely those 34 tiny 100nF caps; I had to figure out how to squeeze them right in front of the MCU pins so that the power supply for that 168 MHz clock remained clean.
trying to fit a giant 64-pin brain and a mountain of new parts onto a tiny board.

0
ego

Started PCB design

  • I’m moving from a 7x7 mm QFN to a 10 x 10 mm LQFP-64. This chip will take up significantly more space on my PCB.

  • The F405 has more power pins (VDD and VSS). We’ll need more 100nF capacitors (one for each VDD pin) to keep the power clean at 168MHz.

  • LDO: The RT9193-33GB can still handle the 3.3V rail, but monitor the total current draw as the F405 consumes slightly more power at full speed.

Attachment
0
ego

Finally the SCHEMETIC is complete, now I have to design the PCB and start a peaceful day, I am attaching the img which you can see in full

Attachment
0
ego

Just complete the power supply for STM32.

Depending on the data set, I need to add more than 15 capacitors for decoupling. In my previous design, I used around 6 TO 8, but for this design,

I am using higher clock speed STM32. That’s why I need to add so many capacitors. As shown above, each power supply pair must be isolated with a filtering ceramic capacitor. These capacitors must be placed on or as close to the correct pins as possible on the bottom of the PCB for the device to function properly.

Attachment
Attachment
0
ego

OSD for my flight controller

It essentially overlays flight information onto your FPV video feed.

OSD hardware can exist as an external device in the form of a small PCB board, or it can be integrated into another device, such as your flight controller, PDB, or FPV camera. This allows you to monitor your quadcopter’s status in real-time while flying FPV.

Some OSD allows you to set up alarms, to alert you when critical values are reached, such as the battery voltage level, or RSSI being too low and so on.


Attachment
Attachment
Attachment
0
ego

I’ve considered using an LMR 14030.
The LMR14030 is a 40V, 3.5A, step-down regulator with an integrated high-side MOSFET. With a wide input range of 4V to 40V, this device is designed for a variety of applications, from industrial to automotive BUT I AM using it for drone hehehe, for power conditioning from unregulated sources. The regulator’s quiescent current is 40µA in sleep mode, making it ideal for battery-powered systems. The ultra-low 1µA current in shutdown mode can further extend battery life.

Flight time matters, doesn’t it?

Attachment
Attachment
0
ego

I’m upgrading my flight controller to the STM32F405

which is the most popular chip for analog flight controllers because it has a higher clock speed of 168 MHz and larger flash memory.

I’m also considering adding additional flash memory. Although this will increase the price, the upgrade is worth it. This allows for faster PID loop frequencies and more advanced features in Betaflight or INAV.

I’m also building this for FPV, which will include an ESC camera and video transmission, so a fast MCU is essential.

Attachment
0
ego

Shipped this project!

Hours: 17.31
Cookies: 🍪 389
Multiplier: 22.5 cookies/hr

The hardware design phase has officially concluded, and I have ordered the PCBs! The final board features the STM32F412CEU6 as the main flight processor. Components for the 0603-sized footprints on the board are being sourced from LCSC.


As soon as the boards arrive and assembly is complete, I will provide further details.

ego

PCB Design Completed!

I finally crossed the finish line: the PCB layout for my STM32 flight controller is 100% complete with 0 drc error.
I spent the time making sure all the connections for the STM32F412CEU6 were solid and that my vias were correctly placed to bridge the different layers of the board. It was really satisfying to see the green lines turn into actual copper traces connecting the USB-C port, the test points, and the sensors like the ICM-42688-PC and BMP280.

I also finished the copper pours, which act like a big electrical ground for the whole board. seeing the layout go from a mess of “rat’s nest” lines to a clean, professional-looking circuit board feels like a huge accomplishment. I even did a final Design Rule Check (DRC) to make sure I didn’t have any overlapping traces or short circuits that would ruin the board once it’s manufactured.


Time to order the PCB for my flight controller

Attachment
Attachment
Attachment
Attachment
0
ego

I successfully completed fan-out for STM32F411CEU6.

Since this is a high-density package, I had to be very precise with my vias to ensure that signals could run between the top and bottom layers of the board without interference. Routed USB-C data lines.

I learned that these lines need to be close to each other to maintain signal integrity, which is a bit of a challenge when you’re also trying to fit in the CC1 and CC2 resistors. Also, I have placed and added all 21 test points to the layout. From the BZ+ (buzzer) to the various I/O pins, these pads are now strategically located so I can easily check them after building the board.


I accidentally locked the wire speed, so I had to find a solution for a very long time.


Progress Check
MCU Vias: Complete

USB Routing: Complete

Test Point Placement: Complete
just for self remark

Attachment
0
ego

PCB routing

I have completed the wiring for the RT9193-33GB voltage regulator and the B5819WS Schottky diode. These components will stabilize the power supply and protect the board against accidental reverse-polarity faults.


also I have installed a set of 0402 LEDs (yellow and green) so that I can visually monitor the board’s status—such as when it powers up or if the MCU is signaling an error code.


I realized that the 0402 components—specifically the resistors and capacitors I selected—are truly tiny. Seeing them in the 3D view, situated right next to the 8MHz crystal and the USB-C connector, made me realize just how much precision I would need once I finally began the soldering process. Consequently, I decided to upgrade them to the 0603 package to make soldering significantly easier.

Attachment
Attachment
0
ego

PCB layout start

I’ve just started the PCB layout and spent some time organizing my component list to make sure everything is ready for the PCB layout. My “brain” is the STM32F411CEU6, supported by a high-precision ICM-42688-PC (gyro/accel) and a BMP280 (barometer) for altitude sensing.

I’ve also added 21 test points across the board. As a beginner, I know I’ll need to troubleshoot, so having dedicated pads for BZ+, BZ-, and IO1 will make it much easier to use a multimeter or oscilloscope later.

https://www.lcsc.com/product-detail/C83291.html
https://www.lcsc.com/datasheet/C83291.pdf
https://www.lcsc.com/datasheet/C1337664.pdf

Attachment
Attachment
0
ego

The second session focused on delving deeper into my flight controller’s senses and tuning the basic connectivity. I focused on connecting the ICM-42688-P (a high-precision 6-axis motion tracking (https://www.lcsc.com/datasheet/C48586483.pdf) device) and the BMP280 barometric pressure sensor bosch (https://www.lcsc.com/datasheet/C83291.pdf). Reading the data sheets was a challenge i am not able to understand any thing at first , but I successfully mapped the SPI/I2C pins to ensure the STM32 could talk to them without any lag.

Attachment
0
ego

I started creating my schematics for my flight controller, and I’m using an STM-based MCU, the Stm32F412CUE6. I came to this decision after a lot of research and comparisons of STM32 series processors, such as the STM32 F4/G4/F7/H7. Choosing the right flight controller processor is very important when building a drone flight controller. F1, F3, F4, G4, F7, and H7 are all different types of processors used in flight controllers. So for now, I’m going with the stm32F412CUX.

0