SHIMMER

[ FLIGHT CONTROLLER PCB ]

> OVERVIEW_

Shimmer is a fully custom STM32 based flight controller I designed in KiCad. Rather than using an off the shelf flight controller, I wanted to try and design my own, mainly to learn more about PCB design and embedded systems. I started out with a prototype breadboard, moved to an Arduino Nano PCB baseboard, and then finally created a custom STM32 PCB. I've also built an RC plane from scratch as a testbed for this FC. More on that later...

This project was my first real experience with PCB design, and I'm sure that my design is far from optimal. It was definitely challenging, but I really enjoyed the process.

If you're interested in learning more about PCB design, I highly recommend checking out Phil's Lab tutorials on YouTube. Chess Robot

> DETAILS_

"Shimmer" comes from a type of reverb effect that shares the same name. I think it sounds cool, so I named the FC after it.

> PROTOTYPE DEVELOPMENT_

For an initial prototype, I used an Arduino Nano and an MPU6050 breakout board to measure orientation in degrees (roll, pitch, yaw).

The MPU6050 contains an accelerometer and a gyroscope. Although both of these can measure orientation, they both have downfalls. To correct for this, I used a complementary filter, which fuses the data from both.

> BASEBOARD DESIGN_

Once I had the prototype figured out, I designed a custom PCB "baseboard". This connects the Arduino and other modules together more securely and neatly. This method has many pros and cons.

Pros:
Cons:

> V1.0 PCB DESIGN_

Designing the first PCB was fairly straightforward. Wire everything up on a schematic, just like it was done on the breadboard, and then route the PCB. Schematic

After the schematic was complete, I then layed out all of the components and routed them. v1 pcb

The 3D Render looks like this: v1 pcb

I ordered V1.0 PCBs through PCBWay, and should have them delivered soon.

> V2.0 DESIGN_

After the V1.0 was complete, I then began designing V2.0. Shimmer contains the following components:

> SCHEMATIC DESIGN_

Once I had components selected and criteria defined, I created a schematic. Schematic 1

Schematic 2 Schematic 3 Schematic 4 Schematic 5

> PCB LAYOUT_

Laying out and routing all of the traces for this PCB was super fun and rewarding. After a few iterations, I landed on this: (The pink box in the middle is from my logo on the back silkscreen.) pcb layout The MCU is positioned near the middle, with the decoupling capacitors and crystal oscillator as close as possible. The IMU is right above. I included a switch to put the MCU in boot mode which allows me to program it easily.

Other important features include:

That's all I've got so far for this project! I'm currently working on the firmware and a small plane to use as a test platform. Here's some cool renders of the front and back of the board. PCB Front PCB Back