Nunchuk RC Adapter

Posted on

Introduction

To control my multicopter and the camera, I sometimes was alone, I sometimes had a cameraman with me who wanted to take the control of the camera.
Install a second receiver with an additional radio for the gimbal would remove the possibility to fly and film alone.
So, I had to find a solution which allows switching between 1 or 2 operators, without hardware changes on my copter.
The cameraman doesn’t need all the functionalities of an RC radio, he’s just interested in changing the camera angles and triggering the camera by a button. This can be done with a Nunchuk.

What is a Nunchuk?

Nunchuk is a Nintendo video game controller with integrated accelerometers, an analog stick and buttons:

Nunchuk_back Nunchuk_Front

To connect the nunchuk to the rc radio, I choose to take the trainer port of the radio.
This has several advantages: it’s available on most radios, it can be activated by a switch on the master radio and you can choose which channels to transfer to the cameraman.
The pilot can switch between 1 or 2 operators whenever he wants! 

What can it be used to?

– control a gimbal and camera

– control an rc model

– combine both and control the rc model and the camera

or even play “Mario Kart” 😉

How does it work?

The trainer port signal is composed of 8 channels, which can be configured and selected from the nunchuk signals. These signals are:

  • the analog stick (analog X axis => stick left/right ; analog Y axis => stick forward/backward)
  • accelerations X + Y (X axis acceleration => tilt nunchuk left/right ; Y axis => tilt nunchuk forward/backward)
  • 2 buttons (C and Z)

The analog and acceleration signals can be configured to output a position or speed signal.

What is the difference between speed and position mode?

Speed mode => stick position = output speed;

Position mode => stick position = output position.

In position mode, stick position = output position. This means, when the stick is in the middle, the gimbal tilt angle is also back in the middle. Position mode is required for the main axis as roll, pitch, yaw or throttle.

In speed mode, stick position = output speed:

–       Stick pushed a little bit => go slowly,

–       Stick pushed to the max => go fast.

–       Stick in the middle = Speed = 0 => hold position.

Button modes

For the buttons, 5 different modes with 2 outputs are available:

  • Analog output
  • 2 positions switch without hold and toggled output
  • 2 positions switch without hold and toggled output (= mode 2 inverted)
  • 3 positions switch with hold
  • 3 positions switch without hold

Mode 1: Analog output
Output 1 is increased with C and decreased with Z.
Output 2 = output 1 inverted
Application: Alternative to change the gimbal tilt angle.

Mode 2: 2 positions switch without hold and toggled output
Output 1 = 2 positions switch without hold. C pressed = Maximum output; C not pressed = Minimum output.
Output 2 = toggled output by pressing Z.
Applications: Output 1: Camera trigger; Output 2: retractable landing gear up/down.

Mode 3: 2 positions switch without hold and toggled output (= mode 2 inverted)
Output 1 = 2 positions switch without hold. C pressed = Minimum output; C not pressed = Maximum output.
Output 2 = toggled output by pressing Z.
Applications: Output 1: Camera trigger; Output 2: retractable landing gear up/down.

Mode 4: 3 positions switch with hold
Output 1 = 3 positions switch with hold. C pressed = Maximum output; Z pressed = Minimum output. C+ Z pressed = Output middle.
Output 2 = Output 1 inverted.
Applications: Change the copter control mode (RTH,Poi,…)

Mode 5: 3 positions switch without hold
Output 1 = 3 positions switch without hold. C pressed = Maximum output; Z pressed = Minimum output. No button pressed = Output middle.
Output 2 = Output 1 inverted.

The default configuration:

The default configuration was defined in order to fly with the nunchuk, control a gimbal or combine and do both together.

The combined configuration even gives you the possibility to simulate a third gimbal axis. In fact, for 2 operators, if you transfer the copter yaw control to the cameraman, he can control the camera pan, just by turning the copter. (Like this, you even don’t need a retractable landing gear.)

For most users, this configuration should fit, but as already mentioned, the adapter can be configured individually!

You can choose which button mode to take, on which channel the outputs should be, you can change the axis channels (also have the same signal on multiple channels), change the output minimum/maximum and invert channels.

RunMode

Button mode: 2

Channel 1: “AccelXpos” (X axis – Acceleration tilt nunchuk left/right – Position mode)

Channel 2: “AccelYpos” (Y axis – Acceleration tilt nunchuk forward/backward – Position mode)

Channel 3: “AnalogYpos” (Y axis – Stick forward/backward – Position mode)

Channel 4: “AnalogXpos” (X axis – Stick left/right – Position mode)

Channel 5: “AnalogXspeed” (X axis – Stick left/right – Speed mode)

Channel 6: “AnalogYspeed” (Y axis – Stick forward/backward – Speed mode)

Channel 7: “ButtonOutput2” (Z button, toggled output)

Channel 8: “ButtonOutput1″(C button, 2 position switch, no hold)

In summary, the first 4 channels are configured to output signals to control the main axis (roll, pitch, throttle, yaw). The next 2 channels are set to stick speed modes and can be used to control a gimbal pan or tilt. The remaining channels are set to button outputs which can be used for example for a camera trigger and a retractable landing gear.

PC Connection

The adapter can be connected to a PC via the micro-USB connection and an SSH client as Putty.

This allows to see the configuration and the corresponding signals, what makes the configuration much easier and helps when stepping through it.

Attention: Do not connect the adapter at the same time to a PC and the radio! 

Program mode

In general in program mode:

  • pushing C+Z together = enter/accept.
  • C = next/count up
  • Z = previous/count down.

To save changes and go over to next step, press C+Z with all axes in neutral position.

To enter program mode, push C+Z button during the first 5 seconds after adapter power up.

Led flashes slowly.

Step 1

Adjust minimum-maximum and invert outputs

ProgMode1

To invert an output, bring the corresponding output to the maximum and push C+Z together.

To adjust output limits, bring the output to max (or min) and adjust the value by pressing C to increase or Z to reduce.

(Maximum should not be higher than 2000 and minimum not lower than 1000)

Save changes and go to step 2 by pressing C+Z with all axes in neutral position.

Step 2

Select channel outputs

ProgMode2

Led blinking indicates the selected channel number. To select an output for this channel, bring the corresponding output to max (and hold!) and press C or Z.

Led starts blinking fast, what means that speed mode is selected. To change to position mode, use C or Z. To confirm press C+Z together.

To select a button output for this channel, hold C pressed long for button output 1 or Z pressed long for button output 2.

Configure next channel…

When you have finished, save changes and go to step 3 by pressing C+Z with all axes in neutral position.

Step 3

Configure button modes

ProgMode3

In step 3, when the stick is in neutral position, led indicates the button mode number.

When the stick is at X axis maximum or minimum (stick left or right), led indicates the speed rate value. (This value can be changed if you want faster or slower reaction of speed mode outputs.)

To change the speed rate, bring the stick to X axis maximum (stick left or right) and adjust the speed rate by pressing C to increase or Z to reduce.

To change the button mode, keep the stick in neutral position and change the mode by pressing C or Z.

To adjust the button max/min, push stick to Y max (forward) / min (backward) and adjust the output limits by pressing C to increase and Z to reduce.

Save changes and go to “run mode” by pressing C+Z with all axes in neutral position.

Led switches off.

Adapter configuration is finished.

Next step is RC master trainer port configuration.

Futaba T14SG trainer configuration

 

Graupner MX-16 trainer configuration