Quad Fever!


Quadcopter fever has blown through SparkFun. I’m not sure where it started, but suddenly, it seems like everybody is flying around a cheap little quadcopter.

The most popular model around here is the Estes Proto-X, a mere snip at $35-45US. It’s small size makes it nice for goofing off around the office, but it definitely leaves something to be desired in the hacking arena. It can’t carry much weight, of course.

alt text
The Ares QX130, without the kinda dopey faring it normally wears

Jeff Branson, over in the Department of Education, found this sweet little beast: the Ares Ethos QX130. It’s a bit pricier, but still quite reasonable at $99US. It has a couple of advantages, though: for one thing, it’s just far enough up in the price/quality matrix to warrant replacement parts. Pretty much all the parts, from the rotors on down to control board and battery, can be purchased at reasonable prices from my local hobby shop. It’s also pretty durable, as the terrible scuffs on the propellers above show.

alt text
The controller that comes with the QX130, showing the auxiliary control buttons.

What really attracted me to it is that it has a sort of inherent hackability which lies in its built in accessories. Since it’s closer to a toy than a serious machine for hobbyist fliers, Ares felt it necessary to provide a number of cute accessories: a bubble machine, a squirt gun, a rocket launcher, a winch, and a small camera. To control these devices, there are two “auxiliary” buttons on the controller.

The accessories themselves connect to the control board on the quad via some 1.5mm pitch shrouded connectors: two 4-pin headers and two 2-pin headers. So, of course, I have to ask: what do those connectors do, exactly? What’s the pinout? What happens when I push the button on the controller?

Let’s Hack!

To find out, I affixed my QX130 to a finely engineered test stand taped my QX130 to a peanut butter jar and powered it with a bench supply. Side note: at 3.9V, it draws 60mA before it’s been paired with a transmitter and 120mA after pairing. The extra 60mA is due to the four LEDs mounted at the end of each a At 70% throttle, it’s pulling about 2.8A; I didn’t go higher than that because my bench supply has a 3A limit.

alt text
Close up of the controller board, showing my arbitrary pin 1 selections. Note the header names on the labels.

I decided to start with the rocket launcher port, for no discernible reason save a gut feeling that it might be a good idea. In the absence of any visible orientation marking on the connector or board, I’m going to declare that the pin closest to the camera header is pin 1.

A quick ohm-out with the meter suggests that pins 1 and 2 are connected to ground and pin 3 is connected directly to the positive rail of the battery.

Pin 4 is weird, though. When power is connected, it’s low, but not stable. It starts about 200mV and decays downward as I observe the voltage. I’m going to guess that makes it a data pin, and probably not a push-pull drive. A 4.7k pullup to the supply pin causes it to idle high; when I press button ‘A’ on the controller (nominally the “fire one missile” button), I get a train of pulses. Button ‘C’ gives me a fairly long low pulse. In either case, I see a pretty wicked RC curve as the signal returns to VCC, and the pulse or train lasts as long as the button is held down.

The other connector I’m interested in is the camera connector. Maintaining the same pinout numbering as we did for the rocket launcher connector, we can see that pin 3 is ground, but none of the other pins ohm out to ground or the positive rail of the battery!

When powered, all three pins have a voltage present. Pin 4 is at 5.3V(!), and pins 1 and 2 are both at 3.3V. This is kind of weird; none of those is the voltage coming in from the battery, and one of them is, in fact, higher than the battery voltage! There’s a nice big (relative to the rest of the board, anyway) inductor on the control board; I’m going to assume that it’s a step-up regulator to power the camera from 5-ish volts. That leaves me interested in pins 1 and 2…what do they do when I push the buttons on the controller?

When you press button ‘A’ on the controller, pin 2 goes low for as long as the button is held down.. Button ‘C’ will cause pin 1 to go low. It looks as though the shortest period one can hope for is about 100ms, and the signal is very nice: I saw no bounces at the transitions.

Finally, let’s look at the “Winch” connector. This one is really quite cool; neither pin connects to ground or VCC. However, an observation with the scope shows that the pins are, in fact, tied to an H-bridge! As long as the button on the remote is being held down, one of the pins will be high and the other will be a ~50% duty cycle 14kHz PWM. Keeping the same pin numbering, pin 1 becomes the PWM signal when button ‘A’ is held, and pin 2 when button ‘C’ is held.

I did look at the “Water/Bubble” header, but when I didn’t immediately see anything interesting I moved on, since the other connectors provide more than enough interesting stuff to look at.

What’s Next?

I’m not sure. A couple more people have indicated that they’re planning to buy a QX130, so whatever I come up with, I’ll have some local beta testers.

I’ve been thinking of a simple laser tag game that uses an IR receiver (or several of them, probably) to record “hits” from other quadcopters, and then cuts the battery power after some number of hits. If it happens, we’ll certainly post about it!


Comments 24 comments

  • Mike and I attempted to lift a GoPro camera with the Ares….checkout the amusing results:

    http://www.youtube.com/watch?v=SCNxkK4VAP4&feature=youtu.be

  • What are the plans of Sparkfun about selling RC transmitters and receivers

  • Hacking the Syma X1 would be better, it is MUCH cheaper ($35) and uses almost the exact same components, I believe they are both manufactured by the same company.

    • We’ve got an X1 incoming; we’ll see how hackable that is. If it’s got the same remote trigger modes, we’ll do something with it.

      • I’ve got a Syma X1 - It’s a great quad for $35. However, it is NOT hackable like the Ares. See a photo of the internals here: http://quadcopterhq.com/wp-content/uploads/2013/12/IMG_4652.jpg Notice that there are no “accessory” ports like on the Ares. Additionally, the controller is vastly inferior to the Ares - the “accessory buttons” on the bottom are just molded plastic - they aren’t real buttons >_< So, for hackability, I definitely still recommend the Ares.

  • I like it. Sparkfun should make a full tutorial on hacking cheap Quadcopters with all the images and videos.

  • I am the Director of Electrical Engineering at Ares, and I was thrilled to come across this project. I collaborated a bit with Sparkfun during my post-doctoral research, and I routinely order breakout boards and supplies from Sparkfun. I think it’s one of the truly great resources for those of us who like to tinker. If interest in this project continues, I may be able to provide some refurbished QX130s. Not sure how this forum works, but, SFUptownMaker, please get in touch with me if there would be interest. No promises, but I’ll see what I can do. Of course, I’d also be happy to answer any questions you all might have, although I didn’t work much on this particular project. Let me know if I can help!

    • Would be nice to know if the transmitter uses a AC107 or a standard nRF24L01; the goal is to be able to reuse the transmitter for other projects.

  • Hey,

    Some of the cheap quads (Walkera) use NRF2401: http://www.massiverc.com/PrestaShop/en/214-hisky-hmx120-micro-quad-rtf-with-cy400-transmitter.html

    The massiverc.com site can also sell a flashed controller ready for mods.

    More info on using the nRF24L01 transceiver module.

    http://www.rcgroups.com/forums/showthread.php?t=1918045

    If you want WLToys' new v2xx protocol, HiSky protocol, Tactic SLT and Nine Eagles General Link. Which allows you to fly your WLToys v202, v212 and v222 or HiSky FBL70 (HFP80), FBL80 (HCP80), FBL90 (HFP100), FBL100 (HCP100), WLToys v922, FF120 quad as well as the HobbyKing Qbot Micro.

    Any TX-R aircraft are compatible since the introduction of Tactic SLT support. This means HeliMax Axe 100 CP, Axe 100SS and SSL, as well as any Nine Eagles General Link compatible helis.

    And also the YD717 and SkyBotz quads.

    Again, you can harvest from the WLToys stock TX or purchase the module from Ebay for $11.

    Here’s the HacksMods page detailing the nRF24L01 module solder points. 7 connection points

    Also, this guy has an Arduino Uno interfacing the system: http://www.deviationtx.com/forum/6-general-discussions/1829-v949-interface-to-arduino-avr

    Here is what the code looks like:

    for (i=0;i<8;i++){ word_temp=(packet[5+(2i)]+256packet[6+(2*i)]);

    if ((word_temp>900) && (word_temp<2200)) Servo_data=word_temp; }

    rcData[ROLL] = Servo_data[0]; //aileron rcData[PITCH] = Servo_data[1]; //elevator rcData[THROTTLE] = Servo_data[2]; //throtle rcData[YAW] = Servo_data[3]; //rudder rcData[AUX1] = Servo_data[4]; //aux1 rcData[AUX2] = Servo_data[5]; //aux2 rcData[AUX3] = Servo_data[6]; //aux3 rcData[AUX4] = Servo_data[7]; //aux4 }

    There is a google code project, rc-ppm-2-spi:

    Converts a RC ppm signal to something understood by SPI transceiver IC’s https://code.google.com/p/rc-ppm-2-spi/ https://code.google.com/p/rc-ppm-2-spi/wiki/HardwareSymaX1Tx

    Some source code for controlling the micro quad from WL-Toys (model v202) with an arduino: https://bitbucket.org/rivig/v202/src/c2142a790c46/V202_arduino/

    Another quad being controlled by an Arduino: http://www.instructables.com/id/Easy-Android-controllable-PC-Interfaceable-Relati/step5/Building-the-Arduino-driven-radio/

    Chipset database: https://docs.google.com/spreadsheet/ccc?key=0Any72n5Y9u-kdGFDeXhBY0I0ek1raTdEN21VTlBzTkE&usp=sharing

    How to flash the quad brain: https://github.com/hackocopter/JD385_Documentation/tree/master/Quad%20Firmware%20Flashing

    https://github.com/hackocopter/JD385_Documentation/tree/master/Quad%20Hardware

    To add more brains to one of these toy quads may require the tinydino: http://jaanus.tech-thing.org/small-projects/tinydino-ready-and-in-stock/

    Would also be nice to add NavSpark RTK-GPS with cm-level accuracy:

    NavSpark is a small, powerful, breadboard-friendly, 32bit development board that is Arduino compatible, with a world class GPS receiver as on-board peripheral, and under $15.

    http://www.indiegogo.com/projects/navspark-arduino-compatible-with-gps-gnss-receiver

  • i am really enjoying my qx 130 here is a 3d printable canopy i made for them check it out. http://www.thingiverse.com/thing:233338

  • I just got one of these and would love to do some modding on it. knowing the weight limitation on it is going to be a must.

  • I got one from amazon for a few bucks. I intend to completely replace the control board with a multiwii board, will see if it works.

    Thanks for the tip !

  • I am thinking about replacing the stock batteries on my RC helicopter with Sparkfun batteries of higher capacity for two reasons: 1. You can charge them with a USB charger. 2. They give more flight time. (First I have to measure the current draw on my heli and make sure I don’t exceed the c-rating.)

    • You may want to look into the Blade nano QX. It has “SAFE” technology which is supposed to allow it to right itself if it flips over. I don’t actually know if this works because I don’t have $99 to spend on it. Supposedly you can kick it into tha air, turn it on, and it will right itself. It is quite small though and may not be the best for carrying stuff.

    • Also, Is this quad large enough to fly outdoors?

      • The single-cell LiPo batteries that we sell aren’t well suited for this. The first hack I attempted was to make an adapter harness (using this connector) and hanging a few of our batteries from it. They just won’t provide the current the quad needs–they go into overcurrent well before you get airborne. You might be able to parallel a couple of them and have some success; I haven’t tried.

        It will fly outdoors in light wind.

        • Ok thanks. I might get one of these quads.

          • I’ve flown this to about 200" in 8-10mph winds with a Fly Cam camera. They are pretty remarkable for the price/payload. I’ve also flown an Arduino Fio, extra LiPo battery and a couple different instrument packages on them. I just shelled out the 35$ for an X1 on Amazon and we’ll see how it shakes out. Thanks for the post Mike, nice.

  • Pretty cool… the quad itself looks identical to the Syma X1, which has been a very robust (and cheap at $35) micro quad in my limited experience (survived repeated tree-ings, so that’s something). The X1’s controller is visually similar to the QX130’s, except that the “aux” buttons are fake and do nothing.

    • It would be interesting to look at the PCB inside, and see if AUX buttons are there, but not populated.

      • Worth a check.

        I did (of course) pull apart the QX130 remote, and find that the radio module inside has an SPI interface. It wouldn’t be too hard to sniff and reverse engineer the protocol, I bet.

        • The Syma X1 controller has 2 “extra” buttons: one switches between high and low rates and the other triggers aerobatic flips. The other buttons on the controller are fake. There are no unpopulated buttons on the PCB or even any obvious headers to connect to. The radio module is an A7105 transceiver with a PCB antenna (the external antenna on the controller is a fake). I was unable to determine the microcontroller, but there was one 24 pin chip that was marked “TG65182 1321”.

          The board on the copter has one unpopulated 4 pin connector. I don’t know what it is.

          • Yep…I’ll confirm that there’s nothing unpopulated inside the remote control. It’s possible that the control IC would accept a couple more inputs, but I doubt it. The header on the receiver PCB is interesting but not sure if it is relevant.


This Week

This Month

Heartbleed

Happy Arduino Day!

SXSW Create 2014