All usual disclaimers apply. No warranty of any kind provided. follow these advices at your own risk and expense.
All those nice R/C simulators and no hardware to control them. I do have a hitec prism 7 though. This project will propose an interface to connect the prism 7 to the PC's USB port. This will let you use prism 7 (and probably any other) ppm/pcm based transmitter with software such as FMS, probably also ms flight simulator, if you so wish.
Use with commercial simulators
This interface will not work with Phoenix, Reflex XTR, Realflight, Aerofly etc.
Those sims are typically shipped with a custom joystick with some specific id's and doing some authentication back and forth between the simulator and the input device.
Such protocols and codes are not revealed here. If you known them, this is all hardware you'll need. (I've even heard some of them are customers of Atmel)
three piece hardware mod (don't mind the red wires in upper left corner - they are left overs from ps3guitar)
- usb capable microcontroller: Atmel ATmega usb (i guess almost any one would do. the code we're going to fit on it is almost nothing)
- Nice transistor and two resistors to reduce transmitter pulses (9-12V) to uC friendly 5V.
For prototyping the Atmel USB key (AT90USBKey) is great. The one and only additional, but important part, is level conversion so we don't burn the uC: One transistor and two resistors with about the right resistance, not to large to miss edges, not to small to avoid oscillation.
Signal & ground pins for prism7
The transmitter signal is tapped of the Prism 7 in the rf-module socket.
For the schematics, please note that the power module is optional and not really tested - it will also depend on your transmitter, although ~9-10 V is usually a safe assumtion.
In addition only option2 for level conversion is tested, as seen in figure1. (I didn't have any free npn transistor laying around)
PPM signal example
The ppm signal from the transmitter is a puls-train with varying distance(time) from the previous edge (nominal to 1.5ms if I recall correctly). n-number of channels are transmitted and then there is a short pause until it all repeats.
A nice way of capturing this is to setup a timer and pin-level-change interrupt. Reset the timer on every positive or negative edge (depending on your transmitter) and convert that time to a 8-bit value for the USB HID report. We sync by letting the timer run out.
The software depends on the usb stack provided by atmel with the AVR usb key. the stack can also be found in AVR328 USB Generic HID Implementation on megaAVR devicescode