A MacBook watches my right hand through the webcam. When I open my hand with fingers pointing up, the drone climbs. Fingers down, it descends. Fist, it hovers. Under the hood, a Raspberry Pi Pico W is hot-wired into a Holy Stone HS210 remote, feeding voltage straight into the throttle stick's wiper pad like a robot thumb.

The idea

Toy drones like the HS210 don't expose an API — the only way in is the physical remote. But the remote's throttle stick is just a potentiometer: the drone's chip reads a voltage between 0 and 3.3 V off the stick's wiper and translates it to thrust. So instead of reverse-engineering the radio protocol, iDrone impersonates the stick. A digital-to-analog converter is soldered onto the wiper pad and drives whatever voltage the hand-tracking pipeline asks for.

How it works

The whole system is a straight line from the webcam to the drone:

Full schematic: MacBook to Pico W to MCP4728 DAC to HS210 controller PCB to drone
End to end: MacBook → Pico W → MCP4728 DAC → HS210 remote PCB → drone.

Things learned the hard way

Honest limits

It's throttle only — the hand controls altitude while pitch, roll, and yaw stay on the physical sticks. Hover drifts, because there's no closed-loop position control. And it's a $40 toy drone, so it's indoors-only in practice. The next step is four-axis gesture control: pitch, roll, and yaw all on the hand.


The full build guide — bill of materials (~$96 in parts), soldering steps, firmware, and the hand-tracking code — is MIT-licensed at github.com/pattssun/iDrone. The repo is written so you can drop it into an AI coding agent and ask it to walk you through the build — that's how it was built in the first place.