Interface Poll/Umfrage

Hinweise zu HELI-X / Hints to HELI-X
Grant_Edwards
Posts: 17
Joined: 11 Nov 2012 03:35
Location: Minneapolis, Minnesota, USA

Re: Interface Poll/Umfrage

Post by Grant_Edwards » 23 Oct 2019 22:03

Futaba/Realflight Interlink Elite USB
(bought on ebay for $50 including shipping)

heli-x v8

Linux 64-bit (Gentoo)

Code: Select all

$ java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (IcedTea 3.13.0) (Gentoo icedtea-3.13.0)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
The Interlink Elite is recognized by Linux as a joystick with 6 analog channels/axes and 5 buttons.

It works wonderfully with heli-x. It's fantastic compared to my old 72MHz transmitter with a wall-wart power cable, an FMS serial cable, and a USB-serial adapter cable, and also a lot better than the cheap $15 USB controller I bought a couple years ago and tossed in the trash.

The toggle switches and red "reset" button show up as buttons. The three-position toggle shows up as two buttons. [I map the red "reset" button to "reload model" in the heli-x controller config.]

The five momentary, three-position slide switches for trim and menu up/down map to distinct momentary values on the 6th channel/axis. [Yes, that seems like an odd decision.]

The white oval menu select/cancel buttons don't appear to be recognized by the Linux input subsystem.

By default the Linux joystick layer will configure the 6 analog channels/axes with some center "flat" spots (deadband) and some "fuzz" (ignore small changes). I prefer to disable the deadband and fuzz completely with a command like this:

Code: Select all

jscal -s 6,0,0,0,0,0,0,0,0,0,0,0,0 /dev/input/js0
That will cause all 6 analog channels to output raw values from 0-255 with no dead spots or filtering. The heli-x controller calibration and curves can then be applied as desired.

There doesn't appear to be any way to utilize the momentary slide switches (that show up as various values on channel 6) without a bit of hacking. I'm thinking about writing a "shim" application that reads events from /dev/input/event12 and after a bit of manipulation writes them to /dev/uinput. There would be then be two joystick devices: the "raw" one direct from the Interlink and a "processed" one based on the output from the shim application. The shim would intercept the channel 6 trim/menu presses, accumulate the trim switch presses and apply offsets to the 4 "stick" channels. I'm not sure what I'd do with the menu up/down switches — perhaps translate them to up/down arrow keys? I was also thinking about implementing switchable dual rates or exponential curves in the shim.



Image

Post Reply