Joystick RC with Spektrum DXe transmitter


This article shows how a Spectrum DXe remote control transmitter can be used with the help of a USB2PPM adapter and a notebook to fly a quadcopter with a joystick. This application is particularly interesting in that it allows you to check the almost delay-free command processing.

The project includes the following steps:

  • Preparation of the remote control transmitter
  • Building of the USB2PPM Adapter
  • Download the Joystick2PPM program
  • Settings and commissioning

In addition to the remote control transmitter, PC or notebook with Windows 10, USB2PPM adapter and joystick, a trainer cable is required to connect the remote control transmitter to the USB2PMM as well as a USB cable.

Preparation of the remote control transmitter

The spectrum DXe remote control transmitter is controlled by the teacher/student jack on the back of the transmitter. An external PPM signal can be fed into this jack – usually from a second transmitter, the student transmitter. The jack is a 3.5 mm standard jack and the cable connection is made via a corresponding mono-aux cable.

In order for the teacher to be able to take control quickly at any time, the student’s signal is only transmitted as long as the teacher pushes the bind / panic button. This practical implementation of the teacher-student operation naturally makes it difficult to take over the transmitter permanently, since you probably cannot or do not want to manually push the button down while flying.

Therefore, I have installed an additional switch in my Spectrum DXe in order to be able to permanently switch the remote control transmitter to student operation. Although the installation is simple, you should only consider it if you accept the likely loss of the warranty.

Installation of the additional switch for permanent student operation

The housing is opened as described in the manual. In the back half of the transmitter housing there is already a hole at the ideal position, which is covered from the outside by a sticker (see red arrow in the picture).

Expose the hole and insert the additional switch (see details).

The wiring is done in such a way that the Bind/Panik/Trainerbutton is shunted (see picture). For this purpose, a short piece of wire is soldered to the small printed circuit board.

I then attached a small arrow on the outside so that I always know in which mode the transmitter would be currently (see picture).

Building of the USB2PPM Adapter

The USB2PPM is built according to the construction instructions, but the last step (soldering the three-pole PIN header for the PPM signal) is omitted. Instead, a 3.5 mm jack is placed in the experimental field of the printed circuit board (see picture) to connect to the Spectrum DXe.

Adaption USB2PPM for Spektrum DXe

With this, all hardware bits and pieces for setting up the remote control are ready.

Download the Joystick2PPM program

The Joystick2PPM program takes over the evaluation of the joystick positions and the conversion into corresponding commands to the USB2PPM. This in turn generates the PPM pulse frame as an input signal for the remote control transmitter.

The Joystick2PPM program is open source and can be downloaded from the USB2PPM controller page. It is a Java program that only needs to be unzipped; an installation is not required. However, in some cases, the Java runtime may still need to be installed.

Settings and commissioning

Now connect the USB2PPM adapter and joystick to your PC. When connected for the first time, Windows 10 will automatically install drivers and associate the adapter with a COM port. After completing the driver installation, start the program Joystick2PPM by calling the Start-Windows Batch File (start x64.bat for a 64 bit system or start x86.bat at 32 bit).

Next, you would configure the joystick and assign channels of the remote control to the individual controls. To do this, switch to the tab labeled with the designator of your joystick.

First, you would assign “Throttle” to the “Slider”. To do this, click on the “+ button” in front of “Slider” and a selection window will pop up. Please confirm the assignment.

The assignment of the other channels is then analogous by selecting the + button. In my case, I placed the Y axis on channel 2, the X axis on channel 3, and the rotation on channel 4.

Select the COM port of the USB2PMM under “Port Settings” and click on the “Connect” button. If you still have the command window open, you will see the commands that are transmitted cyclically to the USB2PPM adapter.

Now turn on your transmitter and make sure that the transmitter is “paired” with the remote control model (trainer switch to “off”). Now, without turning off the remote control transmitter, connect the USB2PPM adapter using the training cable with the remote control transmitter. After turning on the trainer switch, you can remotely control your model with the joystick. If necessary, you can perform the trimming for the individual channels and a possible servo direction reversal on the PC.


Control your Ardupilot Mega Rover with your Android Smartphone (III)


The Ardupilot Mega (APM) and other flight controllers are frequently controlled by a PPM stream rather than the parallel input per channel which I described in part 1 of this blog. The new PiKoder/PPM wRX receiver with its PPM frame output brings this capability to you. The connection between the receiver and the flight controller is reduced to a single 3 strand cable as shown in the featured image.


The PiKoder/PPM wRX receiver will be controlled by the udpRC4UGV App as described in part 2 of this blog.

The feature set of the app has been extended to allow you to freely determine the position of the direction and throttle channel within the PPM frame through the app preferences.

To change the channel setting please select the respective preference and enter the channel number (1 .. 8). E.g. the APM Rover configuration features direction on channel 1 and throttle on channel 3.

Please note that setting the APM’s input mode from parallel to PPM requires a jumper between channel 2 and channel 3 input as shown below.

Control your Ardupilot Mega Rover with your Android Smartphone (II)


As already indicated in the previous blog on the topic “Ardupilot Mega Rover with the smartphone remote control“, now, after some further work on the topic, a new Android(TM) app “udpRC4UGV” with rover-specific functions is available. The most important enhancements are the selection of the flight mode and the toggling of channel 7 making a number of APM special functions available.


As outlined in the previous blog a PiKoder/SSC wRX receiver replaces the standard RC receiver in the rover. The smartphone RC uses WLAN for command transmission: the PiKoder does offer an access point (AP) to which the smartphone will connect.

The remote control app offers a variety of user interfaces: from simple key control to a virtual joystick to an accelerometer-based option.

In addition to the general controls for remote control, each user interface also offers the possibility to choose the flight mode. In addition, channel 7 can be triggered via the “CH7” button (for example, in LEARNING mode, the current position is saved as a waypoint).

The app is available free of charge from the Google Play Store. The User Manual can be downloaded from the PiKoder website; it describes not only the program operation in detail, but also the hardware setup.

Arduino WLAN RC Transmitter

The Open Source Arduino sketch arduinodtx implements a feature rich state-of-the-art RC transmitter with a serial command output (PiKoder/SSC resp. PiKoder/PPM compatible). The transmitter commands would be sent via a transparent serial channel.

Therefore, a wifi communication module such as an ESP8266-01 can be used in concert with a PiKoder/SSC wRX wifi based receiver to easily build a feature rich radio control.

In addition to the components for the basic setup of the arduinodtx you would need a logic level converter, a dc-dc converter, two jumpers as UART multiplexer and the wifi module as shown in the image above. The wiring of these building blocks is shown below (you would have connect all signals with identical names):

The setup is fairly simple and can be easily done on a prototype board. Please note that Arduino signals are shown in blue.

Then you would have to configure the transmitter’s wifi radio to establish a transparent link to your receiver radio – similar to binding a transmitter and receiver in a standard rc environment. This would be done by setting the jumpers as shown above to connect the radio directly to your computer. Please refer to ESP8266-01 Sketch for the PiKoder/SSC wRX for more information. If you would want to program the ESP8266-01 while in place you would have to add the additional components for the programmer to the prototype board.

Please note also the setting of the jumpers for D0/D1. Please make sure that the Arduino would not interfere with any direct communication with the ESP8266-01 by connecting the Arduino´s RESET signal to GND.

After completing the programming of the ESP8266-01, the adjusting of the jumpers, restarting of the Arduino and rebooting your RC would be fully operational.