Video: Hacking quadcopters with Arduino

A Maker by the name of Dzl recently reverse engineered the communication protocol of an inexpensive quadcopter to work with an Atmel-powered Arduino board.

According to the HackADayCrew, Dzl kicked off his hack by cracking open the quadcopter’s accompanying control handset to determine which transceiver it used.

“[He] then found the relevant datasheet and worked out all the pin configuration involved in the SPI communication. Flying data is transmitted as 8 byte packets sent every 20 mS, controlling the throttle, yaw, pitch and roll,” wrote HackADay’s John Marsh.

“[Dzl] took the build a step further, writing an Arduino library (direct Dropbox download link) that should catch you up to speed and allow you to skip straight to the fun part: hacking and experimenting.”

Dzl offers additional quadcopter hack details on his blog. More specifically, he used an Atmel-powered Arduino UNO (ATmega328) to eavesdrop on the communication between the handset and ‘copter. The annotated list of the initialization sequence is as follows:

* Quadcopter activated.
* Handset broadcast a unique network address or ID.
* Quadcopter receives broadcast, acknowledges, starts listening to data from specific ID.
* Transmitting flying data packet every 20 mS.

“Multible Quadcopters can be controlled simultaneously by assigning them different addresses,” Dzl confirmed. “The passing of ID is done on one fixed radio channel and flying data is sent on one of about 12 random radio channels. The quadrotors seem to auto scan the radio channels until they find data.”

Interested in learning more? You can check out Dzl’s official project page here.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s