Tuesday, November 12, 2013

First look at the Blade 350QX

Introduction

My Blade 350QX arrived yesterday. I'm impressed. Ok, it's my first large (as in not micro or smaller) 'copter, but still. Here's my impressions after a couple of batteries, including one night flight.

But first, a warning

Note that Horizon has issued recall on the rotor blades on the early releases. They are fragile, tend to crack and then fall apart in flight - just search youtube for 350 qx prop fail. If you get one, check the blades to make sure they have a B on the hub. You'll be able to see it on the mounted blades. Mine showed up with the B blades on it, so it ought to be ok.

Size

After flying mostly micros, this thing just seems big. I feel like I could land a Nano QX on top of it.

It uses a 3S battery. While it's no bigger than the 2S batteries I've used before, it's still the first 3S battery I've run into. Unfortunately, I need more of them.

Quality

Meh. Not bad, but it still feels like cheap plastic. The GoPro camera mount strikes a low point, though.

In particular, the landing skids worry me. That hard plastic doesn't seem like it'll stand up to many rough landings. Possibly I should just punt, and always land with Return To Home or Smart mode.

It does have nice, bright LEDs. LEDs are always good, and these make it reasonable to fly the 350QX at night.

Flight

Stability & Agility modes

It flies very nicely. Stability mode is like flying most six-axis stabilized quads, but much more stable than I'm used to. I suspect that's just the size.

Agility mode gets you somewhere between an FP heli and an entry level CP heli. Very responsive, and you get the entire flight envelope to play with. It'll do acrobatics - flips, rolls and loops - but not 3D flight. Still a lot of fun.

Return To Home

One of the interesting features made possible by having a GPS system and a smart quad is the Return To Home switch. Flip it on, and the quad will take over and fly itself back to home. At least, it will if it's had a good GPS lock since taking off. If it's low to the ground, it'll ascend to above tree-top height, then fly back to over where it took off from, and land itself. Gently, even. Useful if you ever get confused about orientation or lose sight of the quad. I tried this a number of times, just to see what it did. It works quite well, and is kind of cool to watch.

Smart mode

Smart mode is just weird. The manual warns you that going from Smart to Stability mode will take some adjustment. However, going the other way also takes some adjustment.

The throttle stick doesn't controls lift, but altitude - from ground level with the throttle full down, to a claimed 45 meters with the throttle full up. The rudder control is pretty much normal.

The right stick - it's not cyclic controls, and it doesn't control pitch & roll like it does on a heli or the other modes on this quad - is motion relative to you. Pushing it up will make the quad move away from you - no matter which direction it is facing, and no matter where it is in relation to you. Down is back to you, left and right are - well, you know. This is confusing enough that I bailed and hit Return To Home while getting used to it.

If you aren't moving the right stick, the quad will use GPS to lock itself into position. Not like a six-axis system, as those will move a little with the wind and the like - but pretty much rock solid. This works in winds much higher than I'd even think about flying anything else I own.

That said - I can see a real use for this. I've had camera-carrying quads before, and have to agree with a comment on an early blog: they are novelty items, and not really all that interesting on most quads. Flying the things is difficult enough that you can't really pay attention to the camera to get a good shot or video, so all you can really do is run video to record a flight.

Smart mode changes that. Well, the position lock with GPS does. You can position the quad where you want it, and it really will stay put well enough that you can pay attention to the camera, and get a good shot. I didn't order a camera with the 350 QX because I thought they wouldn't be interesting. Now I'm not so sure1, and will probably order a Hero 3 soon.

Oddities

You have to manually initialize things after the quad initializes itself and binds to the radio. Among other things, this establishes the home position for the Return To Home feature, and what ground level is for Smart mode.

The initialization starts the rotors spinning, and they do not stop even with no throttle input. You have to shut the quad down to do that, and then initialize it again. This makes a throttle hold pretty much useless. I might use the shutdown procedure to replace it, but for now what's normally Hold on my controller is Return To Home.

The normal initialization sequence is to throw the rudder to the two extremes with no changes in elevator, aileron or throttle with the throttle at zero. Since I'm using deviationTx - see my blog on open source controller firmware - I can configure it so one switch initializes things when thrown on, and then shuts the throttles down when thrown off. Much more convenient, if you ask me.

Minuses

The balancing charger they shipped with it requires a 12 volt input, and comes with alligator clips. Seriously. I can understand why they did it, but ugh.


  1. While charging people money to take videos & pictures of things for them from a quad is tempting, it's a violation of FAA regulations unless you have a commercial pilots license. Hopefully that will change in 2014, but for now it's a nono. 

Friday, November 8, 2013

Devo 6s vs. Devo 7E

Introduction

The Devo 7E and 6S controllers are unique - at least to my knowledge - in being fully computerized rc controllers in a toy controller form factor. As such, a comparison of them seems to be worthwhile.

I got a 7E about a year ago to check out deviationTx, and have been using it regularly for all my Blade & Walkera copters. While I expected to be pleased with deviation, what I didn't expect was how much I'd like that form factor. It's great for flying micro helis indoors.

I got a 6S earlier this week, and have converted and flown everything I was flying with the 7E. I thought I'd go over the pluses and minuses for those who are contemplating this.

First and foremost, I'm not going to disagree with the assertion that the 10 - at the same price point as the 6S - is the better buy. Unless you want the small form factor (hence the comparison with the 7E) or a color screen (save a bit extra and get the 8S!), go with the 10.

Pluses

Better hardware

The 6S has noticeably better hardware. My first reaction on picking up a 7E was "yuch", because of those black plastic sticks. In fact, that's my only mod to the 7E - replacing those things. The gimbals in the 6S are also smoother than the 7E, making it easier to fly with.

The microcontroller in the 7E is cheaper than the rest of the line, that it has less memory being the crucial point here. This means installation is a little harder to deal with code that is loaded on demand, that there is at least one missing feature in the current (3.0.0) release of deviation, and more in the current nightly builds. The things that have been removed were excellent choices, and really amount to no more than inconveniences, not even being annoying. This could get better, as I don't know how much effort has been spent on refactoring the code to make it smaller. However, I'd expect it to get worse first.

Switches

The 6S has two extra three-position switches. There is a mod for the 7E that can add either one 3-position switch, or two 2-position switches, neither of which bring it up to the 6S. All the craft where I had sacrificed controls I'd like, or deformed things in some way to fit on the 7E, work much better on the 6S. Just adding one 3-position switch would do it, so a modded 7E would be up to what I'm doing now. However, I'm also considering moving some craft that I couldn't fly at all on the 7E over to it.

The nightly builds on the 7E or 6S will let you use the navigation buttons as control switches, which adds a lot of capabilities to the 7E. However, even this works better on the 6S. It has the touch screen for navigation, and a way to enabled and disable the navigation buttons for navigation. Presumably, that will also toggle those buttons as switches, but even if it doesn't, you still get to use them all until you toggle it.

Display

Ok, the display isn't that big a deal when flying. After all, you're paying attention to what you're flying, not the transmitter! So, except to sneak an occasional glance at whatever I'm measuring to determine the end of the flight, I ignore it. Even the deviation toggles I've so carefully configured never really get looked at.

But the 6S display is twice the size of the 7E. On the 7E, I could never get everything I wanted to look at during the configuration process on the display, even for the 4-channel craft. The 6S I can get everything of interest on the display, even for the 6-channel CP helis! This makes the configuration process a lot more convenient.

That it's a color screen also means it's prettier, but again, I don't look at it when flying. Maybe it's a little easier on the eyes during the config, but who really cares?

Range

The 6S doesn't have the range-limiting diode in it. Easily removed from the 7E, but you still have to do it.

Undecided

I'm not sold on the touch-screen UI yet. While you can use the navigation buttons, you have to enable that every time you want to use it, and it's not quite as smooth as it is on the 7E. The touch screen should be easier to use, but the elements are a bit small for my big fingers. Maybe it just takes some getting used to, or a stylus.

Minuses

Not clear how readable the color display will be in bright sunlight.

The 6S costs twice as much. Sort of hard to ignore.

Conclusion

So the question is, is it worth the cost? I think for my uses - flying mini 'copters indoors, the answer is yes. The 7E modded with a three-position switch plus the new momentary buttons would be enough for everything I plan to fly with the 6S, but just barely. All the benefits together - not having to mod it, fewer steps in updating and configuring deviation, the better gimbals, and room to grow add up to that yes, but just barely. If I were planning on flying outdoors a lot and that screen were hard to read, it might not make the cut.

Sunday, November 3, 2013

Open Source Servo Tester

Inspiration

I was watching a Radio Control (RC) review podcast, where they showed off a neat little servo tester. You could plug in power, then plug a servo into it, and switch between three modes: go to neutral (so you can adjust your servo so whatever it controlled was at neutral), sweep back and forth (for testing to make sure it's not going to die an early death), and follow the knob on the the tester. Add a button to change modes and a couple of LEDs to indicate mode, and you're done.

My first thought was "Cool. And handy. I should buy one of those." The one being reviewed was about $9, but you can get similar items on Amazon (and presumably eBay) shipped to you for as little as $3. Options include multiple outputs and some ESC test modes if you want to spend more money.

While contemplating which one to order, I looked down at the stack of Arduino hardware on my desk, and realized that 1) I had all the hardware I needed to make a servo tester, 2) the hardware and code would be an evening's worth of work and 3) it would be mildly interesting. Furthermore, since I had the source, I could add more options and have as many as six servo outputs as needed.

The hardware

The hardware for the tester side is pretty straightforward: A potentiometer of some sort, a button, and a couple of LEDs. Since my protoshields have a spare button, a pair of LEDs, and a breadboard to hold the potentiometer, dropping one of those on a spare Uno and plugging in the potentionmeter was most of the hardware setup.

Potentiometer

As always, the potentiometer is wired to power and ground on two sides. The signal goes to analog pin 0, which is defined as POT in the source code.

Button

The button on a protoshield just shorts to ground, so all that's required for it is to plug into pin 8, defined in the source as BUTTON.

LEDs

The two LEDs on the protoshield are connected to pins 12 and 13, defined as LED1 and LED2 in the source. Since there's already an LED on pin 13 on most Arduinos, that might save you an LED if you decide not to use a protoshield.

The Servo

The servo must also be connected to both power and ground. The signal line is tied to pin 9, defined as SERVO in the source. Any PWM-capable digital pin can be used.

Connect the servo signals up to three adjacent rows on the breadboard, then connect the male header pins on the same three rows. You then just plug your servo into the header pins. You can even plug in more than one set of header pins to drive multiple servos.

The software

I think there are only three things of note in the software:

  1. The BUTTON pin mode is INPUT_PULLUP, as required by the protoshield button shorting to ground.
  2. The funcs array is a list of pointers to int func(void), and is how the operating mode is selected. To add a new operating mode, write an int func(void) that returns the appropriate value, and add it to the funcs array. THe LED display will be odd, though.
  3. setLeds is called to set the display mode of the LEDs. The value it's passed starts at one, and should have at least one LED on if the device is getting power.
#include <Servo.h> 

#define POT 0
#define BUTTON  8

#define SERVO   9
#define LED1    12
#define LED2    13

#define DELAY   50

Servo myservo; 

void setup() { 
  myservo.attach(SERVO) ;
  pinMode(BUTTON, INPUT_PULLUP) ;
  pinMode(LED1, OUTPUT) ;
  pinMode(LED2, OUTPUT) ;
} 

int neutral() {
  return 90 ;
}

int readPot() {
  return map(analogRead(POT), 0, 1023, 0, 180) ;
}

int sweep() {
  static int pos = 0 ;
  static int dir = 1 ;

  pos = pos + dir ;
  if (dir == 1 && pos > 180) {
    pos = 179 ;
    dir = -1 ;
  } else if (dir == -1 && pos < 0) {
    pos = 1 ;
    dir = 1 ;
  }
  return pos ;
}

int (*funcs[])(void) = { neutral, readPot, sweep } ;


void
setLeds(int value) {
  value += 1 ;
  digitalWrite(LED1, value & 1) ;
  digitalWrite(LED2, value & 2) ;
}

void loop() {
  static int buttonValue = 0 ;
  static int oldState = HIGH ;
  static int state ;

  if ((state = digitalRead(BUTTON)) == LOW && oldState != LOW) {
    buttonValue = (buttonValue + 1) % (sizeof funcs / sizeof *funcs) ;
    setLeds(buttonValue) ;
  }
  oldState = state ;

  myservo.write(funcs[buttonValue]()) ;
  delay(DELAY) ;
}

Usage

Apply power to the Arduino, and it resets, turns on the first LED, and sets the servo to neutral.

Click the button once, and the second LED goes on and the first one off, and the servo will now follow the potentiometer.

Click the button a second time, both LEDs go on, and the Arduino will start sweeping the servo from 0 to 180 and back.

Click a third time, you go back to neutral and only the first LED on.

Conclusion

To be fair, this is probably only useful to people at the extremes of the hobby. Even the least expensive Arduino board costs more than a cheap tester, and it's probably harder to use an inexpensive home-built tester than a proprietary one. If you don't need a servo tester very often - which puts you at one extreme - and tend to have spare Arduino boards around so throwing a servo tester together occasionally isn't a problem, this could be a win. If you are a heavy-duty user of servos, and can really use the ability to test six (or more, with a larger Arduino) servo outputs and create custom test modes - which to me puts you at the other extreme - then this could also be a win. Being at the first extreme, I'll count this as a win since I've already used it to test a couple of servos.