Fork this with Git

Arduino USB Host CPPM

Controlling quadcopter with USB joystick
Published on July 24, 2016.

Recent activity on GitHub:

This project allows using an AVR-based Arduino with a USB-Host-Shield to be connected to a Saitek X52 (Pro) flight control joystick, generating a CPPM-Signal that can be fed to most common RC transmitters.

Multicopter flight with Saitek X52 Whole Setup Modified RC Transmitter


All Parameters, like the channel count, CPPM specifications, endpoints, trim and invert, can be changed using the Multi-Function-Display on the Saitek Joystick and stored to the Arduino EEPROM.

A modified host telemetry port (D-Port) of an FrSky TX module can be connected to the hardware serial port so the link quality and voltage will be displayed on the Multi-Function-Display. Obviously, you have to remove the RS232 level-converter from the TX module or use an adaptor to bring the UART to 5V level.

Currently the code only supports the Saitek X52 series, but you could easily adapt the code to work with other joysticks or gamepads.

Parameter Menu 1 Parameter Menu 2 Parameter Menu 3 Parameter Menu 4 Parameter Menu 5 Parameter Menu 6


This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.