Deep Dive Session 2 (CuteCopter): Reverse Engineering a tiny drone


Details
Wanna get a grip on no_std Rust, I2C and it's friends, reverse engineering hardware without a data sheet or schematic, or drone firmware basics?
In this session, we'll follow my journey to create my "Cute Copter" firmware: https://github.com/barafael/cute-copter (you can find info on the hardware in the readme).
Related repos for completeness sake: https://github.com/barafael/cute-copter-remote
Apart from finding out how our components are wired on the board, we'll observe the original vanilla firmware during it's operation using an oscilloscope and protocol analyzer, then step-by-step recreate our own firmware. We'll see the IMU, radio and PWM generation in action, as well as bare-metal logging and other tooling. If all goes really well, we'll also see how PID control can stabilize our cute little copter according to our transmitter inputs.
At this point, I have confirmed my reverse engineered firmware for transmitter and drone does basically work, but she ain't flyin' yet! So, depending on how slowly/quickly we progress, we may or may not get to a flying drone in one session. After this one, we can decide if we should follow up. Let's see :)
Looking forward to do this together!
Rafael

Deep Dive Session 2 (CuteCopter): Reverse Engineering a tiny drone