My Greatest Engineering Accomplishment: The Scout Flight Controller

Tim Hanewich
3 min readJul 17, 2023

--

The Scout Flight Controller running on a quadcopter

Over the course of the past six years, I have dedicated my professional focus to various software development disciplines — back-end development, database design, software architecture, front-end frameworks, DevOps, API integration, and more. These domains have become my passion and I consider myself incredibly fortunate to have a career that allows me to focus on these in my daily work.

In April 2023, I embarked on an ambitious project that demanded the extension of my skills into the hardware realm: the development of a custom flight controller for a quadcopter drone. Quadcopters have always fascinated me as I’ve marveled at the simultaneous elegance and sophistication of these machines that is often overlooked. I recognized that creating my own flight controller would be a significant undertaking, likely my most challenging project yet. It presented an interesting opportunity to translate my software expertise into a tangible, real-world application.

What is a Flight Controller?

In contrast to airplanes, which possess various active aerodynamic elements such as wings, rudders, stabilizers, and ailerons that allow them to control their attitude while in flight, quadcopters have a distinct lack of any aerodynamic elements. Given this lack of active aerodynamics, quadcopters are inherently unstable. To stay airborne and make attitude adjustments (e.g., pitch forward, roll right, yaw left), a quadcopter must meticulously make minute adjustments to the thrust applied to each of its four motors. This intricate process of adjusting the thrust of each motor occurs rapidly, often several thousand times per second!

This is the role of the flight controller — a vital component of a quadcopter drone that acts as its “brain”. The flight controller is responsible for controlling and stabilizing the flight of the quadcopter while it is airborne. More specifically, it is responsible for ensuring that the quadcopter manages stable flight at all times and complies with the attitude “requests” of it’s pilot.

Introducing “Scout”

Quadcopter flight controllers are very complex; consumer drones like those made by DJI run proprietary flight controller software that engineers spend years developing and perfecting. Hobbyists that assemble drones for activities like FPV flying often choose an off-the-shelf flight controller from large companies with heavy R&D funding like the Speedybee F405, Speedybee F7, or KK2, among others.

Rather than relying on an off-the-shelf solution, I took on the challenge of developing my own flight controller from scratch. While commercial alternatives can easily cost well over $100, my flight controller runs on nothing more than a $4 Raspberry Pi Pico.

I named my flight controller Scout. Just as a scout ventures into uncharted territories to gather knowledge and pave the way for future success and innovation, this flight controller represents my entry into a new domain of expertise, one of which I knew very little about when beginning this project.

Scout Demo Flight

Scout’s Development

Scout was not easy to develop. I started the project on April 29, 2023. 70 days and 1,194 code commits later, on July 7, 2023, Scout achieved its first successful flight:

Scout’s First Flight

This was a very tedious and challenging task — one that I contemplated giving up numerous times during its lengthy development. Despite the countless failed tests, injuries, crashes, fires, and more, I remained steadfast in my efforts. Now with a fully functioning and stable-flying flight controller, I’m thankful I persevered. When Scout made its first successful flight, I was filled with mixture of relief, excitement, and partial embarrassment that is took me so long!

How I made Scout

In the following weeks, I will release a series of chapters detailing how I created the Scout Flight Controller. These chapters will delve into the technical concepts required for a quadcopter flight controller and will cover the basics of quadcopter flight dynamics.

Each week, a new chapter will be published and I will update this article accordingly with the corresponding link. The chapters are below:

  1. Quadcopter Flight Dynamics
  2. Capturing Telemetry with a Gyroscope
  3. Receiving Pilot Input with an RC Receiver
  4. Stabilizing Flight with PID Controllers
  5. Controlling Brushless Motors with ESC’s and PWM
  6. Setting up the Quadcopter Hardware
  7. Full Flight Controller Code & Explanation
  8. Taking Flight
  9. A Lesson in Persistence
  10. Potential Future Improvements
  11. Bonus Code

--

--

Tim Hanewich
Tim Hanewich

Written by Tim Hanewich

Technical Specialist @ Microsoft

Responses (4)