Saturday, December 29, 2012

er9x Tutorial: Mixing (good for Turnigy 9xr)

Here's some notes to go along with the tutorial/video for er9x mixing.  Some people have said that they thought er9x was more complicated than traditional Tx software, but in many ways I think it's simpler.

Here's a few examples that should cover most of what you need to know to make good use of the mix screen, with accompanying video tutorial. (longer version to be uploaded later)

Mixing a Stick to a Channel

This is the simplest mix you can make.  Here's Channel 1, mapped 100% from the rudder (the "source").  The "+" is just a redundant note that  it's positive 100%; all percentages are shown with the sign.
  • CH01 +100%RUD 
Set this up, and you'll see the servo attached to channel 1 moves with the rudder stick.

The default 4-channel model definition is nothing more than the four sticks mixed to the first four channels.:
  • CH01 +100%RUD 
  • CH02 +100%ELE 
  • CH03 +100%THR 
  • CH04 +100%AIL

Mixing a Stick to Two Channels

Now let's do something that's not especially useful in a practical sense, but will be handy for this tutorial.  We'll map the rudder stick to two output channels.
  • CH01 +100%RUD
  • CH02 +100%RUD 
Moving the rudder stick now moves the two servos attached to channels 1 and 2.  In some of the following examples, we'll modify channel 2 and leave channel 1 unmodified as a reference.


There's a reversing option on the Limits menu, but it's not really necessary.  We'll reverse channel 2 by changing the +100% to -100%.
  • CH01 +100%RUD
  • CH02 -100%RUD 
Now the two servos move in opposite motion.

Reducing Rates

Change channel 2 to +50%.
  • CH01 +100%RUD
  • CH02  +50%RUD 
Now the two servos move in the same direction again, with channel 2 at 50%.  Of course, you could have a reversed lower rate throw by making the percentage negative.

HALF and FULL: Confusing yet Powerful Switch Controls

In order to do anything with switches, we'll use the HALF and FULL inputs.  By themselves, they don't do much of anything.  Let's channels 1 and 2 to to the sources HALF and FULL, respectively:
  • CH01 +100%HALF
  • CH02 +100%FULL 
This results in both channels 1 and 2 being output at a value of 100%.  Not particularly useful, so let's mix in the GEAR switch to both of these.  Keep the default Multiplex setting of ADD.

  • CH01 +100%HALF Switch(GEA)
  • CH02 +100%FULL Switch(GEA)

Now we see the channels acting like switches.  As we toggle the GEAR switch, we see channel 1 switching between 0% and 100%; channel 2 switches between -100% and 100% (just as we typically want most switches to behave for real).

So, what's happening?  Unlike a stick which varies smoothly from -100% to 100%, HALF returns either 0% or +100%, depending on the switch.  Likewise, FULL returns either -100% or 100% (the exact value can be modified by the Weight: parameter, but we'll just use 100% to keep things simple).

So, with the GEAR switch specified, the channels output -100% and 0% respectively when the switch is off, and both output 100% when the switch is on.  To reverse any of the switches, just select the switch name that starts with "!", such as "!GEA".

Setting up a Switch

So, the standard way to set a simple on/off toggle switch is to use the FULL input.  For example, to map the GEAR switch to channel 5, we would do this:
  • CH05  +100%FULL Switch(GEA) 
Note that you can specify a delay and a speed in seconds.  The speed is especially nice for things such as flaps and landing gear, since you can get a smooth scale operation.

Mixing a Stick and a Switch ("throttle enable")

Now let's mix a stick and a switch.  As a practical example, we'll set up the THR switch to enable the throttle stick.  If the THR switch is off, the throttle stick is ignored. This is a good safety feature; when you're plugging in your batteries or carrying the model before you've unplugged your batteries, you won't have to worry that the radio will bump your chest and spin up the prop.

To do this:
  • Map the throttle stick to the output channel, as covered above.
  • Specify the THR switch.
  • Set the Multiplex parameter to REPLACE
The Multiplex parameter can be one of ADD, MULTIPLY, or REPLACE.  We specify REPLACE so that when the THR switch is off the output value which would normally be specified by the stick position is replaced by -100%.  So, no matter what the stick position, the throttle can't be activated.
  • CH03   +100%THR
  •      R -100%FULL Switch(!THR)
Combining Multiple Mixes ("dual rates")

Finally, let's look at what we need to do to set up dual rates.  This is pretty simple.  You can add multiple mixes to the same channel.  The switch specifies which mix takes effect (it can actually be a lot more sophisticated, but we'll cover that later).  So, this mix:
  • CH01 +100%AIL Switch(AIL)
  •       +80%AIL Switch(!AIL)
follows this logic:
  • If the AIL switch is in the normal position, map the AIL stick at 100% to channel 1.
  • If the AIL switch is in the toggled position, map the AIL stick at 80% to channel 1.
The nice thing about er9x is that you can use a single dual rate switch to manage multiple channels.  You could repeat the above lines for the elevator and rudder channels, both of them specifying the AIL switch.

But Wait, There's More!

There's quite a bit more that can be done with er9x mixing, but this covers most of what you need to know.  If you're interested in seeing some more, drop me a line!


Lynxmotion sells Aurora 9 gimbals.  "these gimbals feature high sensitivity, 8 ball-bearings, and adjustable tension. You can enable or disable self centering on both axis and enable ratcheting on the Y axis."  Somebody mentioned they can be fit onto a 9x by removing a pair of tabs and soldering the wires.

Servo City has pin crimpers at a pretty good price.

FMS Simulator Universal USB Cable.

Sunday, December 16, 2012

Flying in the Rain

I've been chatting with Sean Headrick of and he brought over his latest thinshell model, the Hugo to fly.  It was pouring down rain, but no problem!  Everything but the props are enclosed in the body, including the motors.  There's an interior shelf that holds 2 3S 2750 batteries.  Sean gets about 20 minutes of flying around (not just hovering) with this.

The units look really nice, and are pretty light.  The frame is 440 grams.  It's two halves are permanently bonded together, and each arm has a hatch for accessing the motors and ESCs. There's a top shelf in the center for the flight controller, receiver, and any other electronics.  I'll be helping him with some testing and flight controller selection/tuning.

As a bonus, we did some crash tests.  Quite sturdy!  The last crash took a prop off and pulled a motor loose; Sean's got a new double-cup design that will strengthen up the motor mount.

Here's some videos... flying around in the rain, and then crashing the unit to see how much of a hit it could take.  To best see the rain, watch in HD!

Tuesday, December 11, 2012

Monday, December 10, 2012

APM2.5 Case on Thingiverse

Designer barneyj notes:
The mounting tabs were designed to fit on a Gaui 330x frame. I used micro servo mounting screws to screw the shell together. I made a cutout for the "ABC" status LEDs but I missed the "TX/RX" LEDs. I might incorporate it in the next iteration.

Friday, December 7, 2012

Weekly Miscellania is a highly regarded source for Walkera parts. $5 worldwide shipping.  Link is to the LB page.

Lightweight foam canopy replacements for nanoquads.  Cuts weight in half, made from 1/2in foam.

ServoCity has 2-axis spring-loaded joysticks... just the thing if your're thinking of making a tank-like controller!

Wednesday, December 5, 2012

It's a 3D world, and we're just printing in it!

Or rather we will be...  getting access to a Makerbot when it's delivered in January, so I'm going to stash some notes here.

  • Past experience:  Z Corp color printer, used to print the maquettes for our Zoetrope.
  • Thingiverse id: marhar.
  • Makerware here.  This takes your STL files and generates gcode which is sent to the printer.
  • What modelling software to use?  Around here everybody has of course experience with Maya.
  • Makerbot has a guide  that lists lots of options.  Chris Anderson uses 123D, so I guess I'll start with that.  If my stuff looks bad blame him!

Tuesday, December 4, 2012

EzFly R3 Released!

Motorhead has released a new version ("R3") of the EzFly.  It moves the motor forward and has an extended nose, both features which make it easier to get the CG forward.

EzFly Thread, check out the R3 plans in post 1.

FancyFoam has kits:
    Original - P51 - Spitfire
update: dead links... just go to!

blogodex = {"toc" : "EZFly", "idx" : ["motorhead", "Fancy Foam"]};

Thursday, November 29, 2012

Got the ar.drone node.js stuff running!

More details to follow, but some quick notes on what we needed to do to get things up and running.  Got up to the suggested first steps, having an application capture video from the ar.drone front camera and do facial recognition.  Images were fed out through a node.js server, which I thought was a pretty clever idea. I'm so happy in the picture coz it took about an hour to figure out how to get the image displayed.  If you're in node.js, serve it up in a browser!

In case you can't puzzle it out, the circled object is Andreas' face, as detected by Open CV. Detection parameters were set to "boyish good looks" of course!

So, we're on track for the droneolympics on Saturday!  Andreas is working on a PID package which looks pretty good so far. I was pretty happy with our progress... we basically started on Wed and last night was the first time we had an ar.drone to work with.

Here's a video of the first test flight, running the example ardrone program.

Following is some blabbage on what I did to get the software installed and running on a mac.  After spending 30-40 minutes trying to figure out how node.js packages work, I ended up hardcoding paths to everything... I'll try and fix that later.

    configure --prefix=/Users/mh/nodejs
    make; make install
    export PATH=/Users/mh/nodejs/bin:$PATH

  OpenCV-2.3.1a.tar.bz2, as per nodejs opencv docs
  edit CMakeLists.txt
  ## change /usr/local to /Users/mh/nodejs
  cmake -G "Unix Makefiles"; make; make install
  export DYLD_LIBRARY_PATH=/Users/mh/nodejs/lib

  npm install git:// -g


  ## requires OpenCV 2.3.1
  npm install opencv -g
  ?? export PKG_CONFIG_PATH=/Users/mh/nodejs/lib/pkgconfig

Wednesday, November 28, 2012

Weekly Miscellanea

In which we close out browser windows which have been naggingly left open...

Sunsky has good prices on LEDs.  In particular, they carry ropes with 60 and 120 LEDs/m.  They've also got an LED controller for under $3.

Nifty swappable joysticks on a small Tx.  I've been wanting to fiddle with a tank-like controller for an arduino ground unit, but keep getting stuck on the asymmetric sticks.  I keep hoping to find a supplier of 9x sticks!

Banggood has some stranded 32 gauge wire in short lengths for $1, including shipping.

Lemon Rx (what a name!) has a DSM2 compatible Rx that has a UART and looks pretty nice for hooking up to projects with a real CPU.  Connection is 9600/8N1, and provides stick positions at 50 Hz with a string like this:


where each value is an octet between 100-200.  More details at the link.

There's a PPM port too!

A nice idea for homemade nanoquad motor mounting.  And check out the handmade MultiWii FC!

Servo Magazine looks interesting and is recommend by Chris.

Prince of Dubai's Impressive RC Hangar

Literally, a hangar.  Jim Smith of 3D Hobby Shop sold him a plane, and as part of the deal was flown over for some lessons and a demo.  FedEx 2nd Day Air shipping cost? A cool $5k.  Lots of nifty pics and the rest of the story over at Giant Scale Forums.

My favorite bit?  Besides a foamy wing with (presumably) one's self-portrait, the fact that even a prince with his own hangar has to charge his batteries on some overloaded power strip!

blogodex = {"idx" : ["Dubai", "3D Hobby Shop", "Jim Smith"]};

Tuesday, November 27, 2012

Things To Try: the Nifty

The Nifty, by Dave Reap.  32'' with 6mm depron, 24'' with 3mm.

"The nutball is one of the best fun designs Ive found, I think suitable for beginers and great fun for more advanced fliers...I always plug the big ones, and have more than a few now..A 36" KFm4 is my latest build and I love it.. This plank will fly steady ..check the circuits in the middle part of the video.. but it will not self right itself like the nutball does, and it does not have the fantastic slow speed harier like stability. The plank will stay in the attitude you put it, which means you have to fly it all the time, but it does not give you any problems because its so smooth in what it does..vTo fly this you need to be ok with flying ailerons and elevator, and past the need to have the stability that a nutball gives you.."

Things To Try: the Albatross

The 48'' Albatross and smaller 36'' Pelican are both designs of the ever-awesome Lee of  Check out the videos on the RCG thread.

"The Albatross offer many possibilities for newer flyers or advanced flyers who want light weight FPV, night flying, indoor flying, slope soaring, aerial photography, and flying in small parks where low noise levels are needed. No one is going to complain if they don't know you are flying."

Friday, November 23, 2012

Nice MultiWii Boards

Ready To Fly Quads has some nice MultiWii boards for sale.  Follow the links under FC boards.
Here's the connection diagrams, just for convenience.
RCTimer also carries MultiWii boards.

Thursday, November 22, 2012

Binding Spektrum DSM and Turnigy OrangeRX Receivers

Here's how to bind a DSM{2,X} transmitter and receiver.  This applies to both Spektrum and OrangeRX units.

Safety First: Remove your props.  If you screw something up, your motor could unexpectedly spin up at 100% power.  That's an uninteresting problem to resolve.

  • Remove props.
  • Power off Rx, Tx.
  • Make sure ESC is plugged into the THR port of the Rx.
  • Plug bind plug into Rx bind port.  Polarity does not matter.
  • Power up plane.  The Rx LED should fast blink.
  • Move Tx sticks into desired failsafe position.  Most importantly, make sure THR stick is at lowest position.
  • Press and hold Tx bind button.
  • While keeping Tx bind button depressed, power on Tx.
  • While keeping Tx bind button depressed, wait for Rx LED to go solid.
  • Release Tx bind button.
  • Power off  Rx.
  • Power off Tx.
  • Remove bind plug from Rx.
  • Power on Tx.
  • Power on Rx.
  • Controls should be operational Fiddle with sticks and adjust Tx settings appropriately.
Testing Failsafe
  • Adjust throttle so that motor is spinning.
  • Move sticks so that control surfaces are deflected.
  • Power off transmitter.
  • Motor should stop spinning.  Depending on your Rx model, the control surfaces will either stay in place or return to the failsafe positions set while binding.
  • Power on transmitter.  Stick control should resume.
Range Testing
  • Attach the model to the ground.
  • Move away 90 feet.
  • Press and hold the Tx Bind button.  This puts your Tx into reduced power range test mode.
  • Ensure all controls work as expected.

Monday, November 19, 2012

Source: FS-TH9X-B-Module +Antenna

I've been looking for this for a while... just the FlySky module for the 9x.  $21.50 at the time of posting. At

Saturday, November 17, 2012

Ladybird Repairs

 Here's the before picture.  The mainframe was cracked, and more importantly the motherboard wouldn't bind.
 Here's the unit with the motherboard removed.  The four screws come out pretty nicely.
 Here's the repaired frame.  It took a bit of jiggling to get the arms to seat properly.
 And all put back together!  It flies as nicely as it did before on my desktop testing.  I replaced my V1 board (which has an accelerometer) with a V2 board (which doesn't).  I'll see how well it flied in real life and see if I want to get a V1 replacement board.  They're more expensive because of the accelerometer.
Here's the wiring diagram for future use.

SMD LED Notes and Tester

 Here's some more information on SMD LEDs.  First, they are small. really really small.  And impossible to tell apart regarding the color.  To sort out the colors I received in a package, I put together this LED tester.  It's got two servo pins to pick up and power the LED, and a 120 ohm resistor so that it can be powered by a 1S lipo.  So far it's working well, and the tips don't touch when the tweezer is squeezed together.  Everything's assembled with shrink tube.  Be careful, because if the LED slips (as I learned by hard experience) it will shoot out of the grip of the pins and be long gone.

Here's the resistor values I'm using, based on the LED data card from the ebay vendor.  Two nice resistance calculators are here (with color codes) and here (with parallel and series calculations).

Friday, November 16, 2012

3D-printed Micro Quad

My friend who helped me out with the prop rings brought a 3D printed quad frame he had made with his high resolution 3D printer.  It seems pretty nice, and the arms are definitely sturdy enough.
There's 4 arms, a top plate, a base plate, and 4 feet.  After printing everything out you can glue them together with CA.  We had lightly glued everything together at the conference so people could see the results. Two of the feet came loose and got lost on the way back home.  I may have access to another 3D printer soon; if not, I'll just cut out a duplicate from 1/8'' ply.
You can see a bit of the striations left over as an artifact of the printing process.  I'm not sure if that could be eliminated by proper tuning or if it's a limitation of some part of the printing process.
I'm not sure of the materials cost of this piece.  It may be high enough, or the printed frame may be heavy enough that there's not a distinct advantage over buying a frame kit (for this size about 12-15 dollars) or using a material such as 3/4'' basswood.  I certainly intend to explore this further in any case!

More info on the quad design by Adam Polak here:

3D-printed blade guards

I recently attended a conference where one of the conferees had a makerbot and was offering to 3d-print items for people.  I was pretty excited about this -- in addition to being my first real-life experience with a 3d-printer, I had just seen the ladybird prop guards that had been uploaded to thingiverse and really wanted a set.
So, just as has been described, we downloaded the STL file and brought it into the CAD package.  We flipped the blade guard over so the arm attachment part would be on the bottom, and duplicated it so that we would print 4 in one go.  All of that would pretty straightforward.  We then fiddled with some parameters regarding plastic thickness, print speed, etc.
You can drive the makerbot directly from USB, or you can generate and download (via memory card) the "tool paths" which are in "G code" (not sure about the details here, we were going pretty quickly).  The advantage of downloading (as it was explained to me) is that you're free to use the software to continue working, and that sometimes the printer will stall waiting for data.  Here you can see the print started by laying down a lattice that will make it easy to remove the pieces from the tape.
I'm not sure why we had the pieces of tape.  I'm assuming it made it easier to pop completed items off cleanly.

Here you can see the prop guards starting to take shape.  As you can see in the video below, the unit runs quietly, and it's rather hypnotic watching it  work.
This is a couple of minutes into the printing. The entire print took about 22 minutes.  Always put your product logo in a  prominent spot!
Here's what came out, after trimming off the substrate.
But there was a problem... one of the parameters was a bit off (I didn't hear which one), so the rings printed with a hollow void between the two sides.  I think if you glued the rings together with thin CA it would be strong enough to work pretty well.
But not necessary... because we have a 3D printer!  We bumped up whatever parameter and printed a new set with fully formed rings.

The ladybird is sadly waiting for a new motherboard, but as soon as I get it I'll put the rings on and follow up as to how well it works.

But for now, I have to say my first sip of the 3D printer koolade was pretty tasty and I'm looking forward to trying some more!