Unlike a decade ago, quadcopter is no longer some high-end technology only seen in military or university research. Along with the setup of various companies including DJI, 3DR, Parrot, quadcopter or drones are quickly becoming a part of consumer's daily life. Along with it, the core technology behind quadcopter, the flight controller board, is also becoming one of the essential or even basic knowledge that an aspiring robotic engineer should know. Yang Shuo, the engineer from DJI Innovation, suggested designing custom flight controller as an undergraduate year 3 project to test the knowledge accumulated from the first two years of university study as well as prepare student to embrace more difficult challenge faced by robots such as machine learning, localization and mapping.
In this series of posts, I will write my experience of designing a custom flight controller from scratch. I understand that there are few existing articles or blogs that have achieved the same thing, For example, Dr Gareth Owensen's blog is extremely helpful. For me, I will try to include as many details as I can in this blog, covering some part that other articles may have omitted such as Extended Kalman Filter, computer simulation or even PCB design. I hope this blog will serve as a good compilation of all relevant knowledges and skills and complement amazing resources that are already there.
Lastly, as an undergraduate students, it would be inevitable for me to make mistakes. I would try my best to be accurate, but if you find any mistakes or have any questions, please leave a comment so that we can improve together.