RC Joystick NG^2

for those who are interested in our little project of an RC to USB interface...

- from firmware version 3.2.0 the interface become a full speed USB device to get around constraints on speed and report size imposed for low speed devices by USB specifications; this means that at last we can have more proportional axes per joystick without loss in resolution: the current version implement two joysticks with 8 proportional axes each (up to about 5000 points resolution each) and 8 buttons for a total of 16 proportional axes and 16 buttons (32 controls). Anyway the traditional low speed interface firmware binary with 4 axes per joystick is still available inside the software package and is compilable by just setting a define; polling interval for interrupt transfer is now set to 5 ms (and could also be set to 1ms) to minimize input latency. The new version does NOT need any hardware mod... only firmware changes.

a summary of the other features:

- smd (4x2cm) or through hole (6.5x2.5cm) PCB and very few components

- uses the new chips from microchip 18f2455/2550 that have a flash program and data eeprom and then are programmable more than once (useful for programming firmware updates available on our site)

- assignments of channels and joystick controls are configurable by editing a txt file configuration and programming it directly via usb with a simple utility; assignments configuration remain stored inside PIC non volatile data eeprom so there is no need to reprogram it after disconnecting

- it should be compatible with virtually all radios equipped with a PPM output, and it's also able to decodify some type of PCM signal (for now Futaba PCM1024 and Sanwa/Airtronics PCM1/2)

- it should be compatible with virtually any RC or flight simulator that can make use of the system joystick

- the firmware work also under linux (and the assignments utility should be quite easily ported on linux linking against libusb instead of LibUSB-Win32) and as an HID peripheral should work under every OS with HID USB support

- an extensive manual is provided on our site, with hardware, software, assignments, and also modulations description

- the source is extensively commented for the ones who need to personalize it

- the project is totally free and suggestions and reports about it are very appreciated

the firmware now also implement ADC mode: if someone has a radio not equipped with PPM/PCM or has old unused or malfunctioning radio, now has the possibility to directly connect its potentiometers/switches to PIC analog inputs AN0..AN11 (JP4 and JP5 on the new through hole PCB); firmware uses the PIC internal ADC to sample these inputs (voltage in the range 0-5V) with a resolution of 10 bits (1024 levels); up to 9 channels can be read in this way with 28 pins PIC18F2455/2550 (up to 12 channels could be read using 40/44 pins PIC18F4455/4550). See manual on our site for details.

news on the project: set_assignments and get_assignments ported on linux with very little modifications to the source: the same source work now on windows (linked against LibUSB-Win32) and on linux (linked against libusb). Linking them against libusb they should be smoothly ported on all OS supported by this: FreeBSD, NetBSD, OpenBSD and Darwin/MacOSX. Also corrected a bug with usb error messages...

P.S. for linux there are at least two programs that deserve a try in my opinion... FlightGear (a flight simulator) and CRRCsim (an RC simulator... thanks again Flieslikeabeagle for make me know this little pearl and the beauty of flying gliders )... both available for windows too.... about CRRCsim try also the latest beta for windows you can download from:http://crrcsim.sourceforge.net/wiki/...RCsim.TaskList

I plan to power the radio from Vdd and Vss and I just want to make sure that the total current draw is under 500mA

The interface will draw next to nothing on its own, however I don't think its possible to power a radio from the USB's limited 5v supply, you will still need to have the transmitters 9.6v battery charged and installed.

As I've already told Malc C, and just to inform the rest, you can power the radio from USB.

Some considerations:
5V is going to be able to power up the radio, but seems that it isn't enough for it to transmit through the antenna.
USB's amperage rating is 500mA, check how much your radio draws.

I've seen the two layer PCB design, but I wanted it to be a single layer PCB, so after a little bit of time, and after getting rid of the ADC pins I got this.

I think that it can be a little bit smaller, but I'm waiting for my 18F2550 to check if everything fits.
If anybody wants the Eagle file of this PCB, just PM me.

Yes it is possible to shring it down a bit. This was the layout we came up with for our interface detailed in the sticky post in the main section. The only changes you need to make it compatible with Alessio's interface is to remove the Jumper to pins 10 - 13 and re-route the LED as Alessio uses a different pin.

The sticky post contains all the eagle files should you want to play about with the layout further. Personally I have my reservations about powering a tranny from the interface using the USB port, especially if you include the transmission module or xtal. I find that if you remove these its a long time before you need to re-charge the TX batteries - However I'll agree to disagree on this occasion

Images

- PCB completely redesigned: both the through hole and smd PCBs are now single layer... removed two resistors (R4 and R2 in the old design)... the USB plug can be soldered directly to PCB like in a dongle... both have also ADC connectors... dimensions are slightly reduced

- qpicprog: this is a software (bootloader and programmer) that can be used for programming the pic directly through USB so also RC Joystick NG^2 is now programmable directly via USB