Giter Site home page Giter Site logo

usb_ppm_joystick's Introduction

USB PPM Joystick

An Arduino adapter for RC remote control PPM signals to USB HID Joystick.

Many (semi) professionl remote controls can output their control signal via a connector. Usualy the signal is PPM modulated.

If you want to train your steering skills before lifting off your RC helicopter you should consider using a RC simulator first. With this adapter-sketch you can use your original remote control as an joystick.

This sketch uses a slightly modified version of the vusb library in order to work with the Arduino framework, added some const before PROGMEM and changed the typedef of byte to uchar. The sketch is based on the UsbJoystick demo from Michel Gutlich (example included in library).

Requirements

Arduino IDE >1.0

Installation

You need to move the folder UsbJoystick to your sketchbook's libraries folder!

Hardware

This has only been tested with boards based on the Atmega168 MCU (Arduino Duemilanove). It should work with Atmega328 boards (Arduino Uno) as well.

The electric scheme included does not show all the Arduino connections and additions. It just shows a kind of bare minimum required. The voltage regulator is only required because USB signals are 3.3 V based while the USB power is 5 V.

Connections

Arduino D2 -> USB D+ (fixed)
Arduino D3 -> USB D- (fixed)
Arduino D4 -> 1.5 kOhm -> USB D- (optional)
Arduino D8 -> PPM input (changeable in code)

usb_ppm_joystick's People

Contributors

normbxl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

usb_ppm_joystick's Issues

Working after inverting my PPM signal

My config: Radiolink T8S transmitter and R8EF receiver, in PPM mode (blue LED means SBUS on ch1, PPM on ch2). Receiver powered from 5v USB, but its signal outputs are natively 3.3v, so that's nice.

I'm using an Arduino Uno, which is a mega328p. It enumerates on USB just fine, but I coudn't get any change in the readings when I moved the sticks.

Finally, I compared the oscilloscope trace of my PPM signal with some other images I found online, and... it appears to be inverted? So I grabbed the first NPN transistor I could find, a big ol' TIP31, and made a simple inverter. Et voila, suddenly it works! Joysticks wiggle, simulators simulate!

I'm pretty sure I could swap a bunch of HIGHs and LOWs in the code and do the same thing, but I'm more confident with transistors than code. ;)

I'm getting Unrecognized Device

I'm using a 5V, 16mHz Arduino Pro Mini with Atmel 328p powered by 3.3V through an AMS1117 voltage converter. I uploaded the sketch using a CP2102 USB to UART converter without errors.
When I connect the device to my Win7 laptop USB slot, I get "Unrecognized Device". I tried changing D+ with D- but that was not the problem. Your help would be very much appreciated.
whatsapp image 2018-06-27 at 21 46 22

positive or negative PPM supported?

Hi,

I tried to use this adapter on an old Graupner mc15. The HID device is recocnized properly at the PC but no axis is giving any movement. A PPM sigfnal is present at pin8.
Is a positive or negative signal required at pin8 or is there any software possibility to "invert" the signal?

Thanks for this nice project anyway.

Onki

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.