Android remote for a MultiWii drone

A side project that turns an Android phone into a remote for a MultiWii quadcopter, using an Arduino and an NRF24L01 radio instead of a hobby RC transmitter.

Role
Side project
Year
2022
Stack
Android, Kotlin, Arduino, C++, NRF24L01, MultiWii
Links
Build write-up, Source on GitHub

The problem

A hobby RC transmitter is two sticks, a few switches and a 2.4 GHz radio. A phone already has the touchscreen and a USB port; it only lacked the radio link to the flight controller.

What I did

  • Built a Kotlin app with throttle and yaw sliders, a pitch/roll joystick and two AUX channels, all mapped to the standard 1000–2000 RC range.
  • Connected the phone over USB OTG to an Arduino ground station (CH34x serial at 115200 baud) that relays each frame through an NRF24L01 radio.
  • Adapted an NRF24 transmitter sketch so the Arduino reports the radio round-trip time, or a failure code, which the app shows as live link status.
  • Configured MultiWii 2.4.2’s NRF24 receiver on the drone with a one-second failsafe that cuts throttle when packets stop.

Outcome

  • A working phone-to-flight-controller link showing round trips of a couple of milliseconds in the app.
  • Open-sourced on GitHub, with the full build written up on this site.