Joystick replacement

I’m not totally happy with the Logitech joystick mentioned in the Mission Planner documentation. I don’t think many others like it either. It would be so much easier if you could use an ordinary, handheld controller.
I think most people would like using their own controller - the one they are familiar with. I
I believe I have a way that could be accomplished, but it would require support in MP.

I would design and build a small PCB that would connect to a standard “trainer” controller output and to the USB port of a computer running MP.

I have a proposed protocol (if you want to call it that), explained below that may be easy for MP to digest. If not, I am totally open to suggestions. I think it is a worthwhile project. So if any MP developers want to work with me to make this a reality, or even tell me there is a better way - please respond.

My proposed method would convert the joystick positions into a string of 10-bit values in the range of 1000-2000 (sent as 16 bits, riight shifted). A “sync” word (16 bits, all “1”) could precede the channel output (ex. “0xFF”, Chan1, Chan2, Chan3…Chan10). The data would be sent as RS-232 over USB at 115Kbaud. I could repeat the sequence every 10mSec.

there are several device on the market already that do this.

they plug into the trainer port/ or even connect to a receiver, and appear as a standard joystick to windows. which MP can then use.

eg https://github.com/patolin/rc-receiver-joystick
https://hackaday.com/2018/07/24/simple-rc-to-usb-interface/

some simulator cables do this as well

https://hobbyking.com/en_us/usb-simulator-cable-xtr-aerofly-fms.html

Or equivalent. I have a similar dongle and it’s recognized by mission planner and works fine hooked up to trainer port.

Some radios, like the FrSky Taranis have a joystick mode, when connected to the PC via USB.

I have a couple of the devices that hook to the trainer port, but NOT ONE supports more than 4 analog channels. All these devices have switches that set them up differently (XTR,G5,G6,G7,AeroFly,PhoenixRC). I need the usual 4, plus MODE and a couple more for camera and light control. My ideal would be 7 analog and one digital channel. By ‘analog’, I mean that it will output the full range of 1000-2000 uSec pulses (equivalent) and by ‘digital’ , I mean that it would output either 1000 OR 2000 uSec (equivalent)

If I buy a Taranis, will it send ALL channels to MP? Is there any other device that I can connect to my trainer port that will send all channels? My oscilloscope confirms that my controller is sending out 9 channels of information from the trainer port.

This is quite old now, but you connect you 2.5mm trainer port to the mic input of your PC. Works OK but is not as good a USB. Takes a few clicks to get it setup each time.

Taranis sends as far a i know all its channels over USB. I have used 8 at once, not used more but i have no reason to think it wouldn’t work.

This is one application where I don’t want any ‘glitches’. I’ll buy a Taranis if I have to, but it would be a lot cheaper if I could simply find a little device that would give me all the channels.

Can confirm with Taranis, at least 12 channels I’ve tried. One neat thing about it too is you can get this gizmo and be wire free.
Plug and play, and once you’ve used it you wonder how you could live without it. :wink:

Thank you. That bit of information convinces me that I need to spend the money to buy a Taranis. I have 5 “flyers” so unfortunately I’ll also need to get 5 receivers.

Don’t know what kind of receivers you currently have, but depending on what they are you might also be able to get a transmitter module for Taranis or other that would work with them. DSM2/DSMx, Futaba, …

I use a cheap F4 board running Betaflight which can be configured with a simple CLI command to look like a game controller in Windows. Any RC system will work, I use an XSR and my Taranis. Google “Betaflight game controller” if interested This one works:

1 Like

I’ve been using my Taranis as a joystick for flight practice in SITL. One problem is that I can’t set up Ch5 for mode switching properly. The Joystick screen in MP detects the switch, but flipping the switch while flying doesn’t change the flight mode.

If anyone is down to help me troubleshoot I’ll provide more info.

Back to the project again. I can find all sorts of documentation on how to configure Betaflight as a FC, but I can’t find the CLI options you mention. Could you please tell me what to do, or where I can find the information for myself? And — I’m used to some lesser-used functions disappearing from later builds. Is there a certain version that I need?

Hi Charles-I 1st heard of this from the YouTube guy Joshua Bardwell. This video has an explanation.

Thanks, I found this later. My board has version 3.1 fw, so the command doesn’t work. So I tried to update the firmware. That involved loading 3 more files. Then I am told to push the pushbutton to put the board into the bootloader mode. But my board has no switch, no jumper, no silkscreen writing! The board I’m using is a tiny 20X20 board labeled F4+OSD, which was suggested by another person on this thread. I guess I’ll try to find some instructions somewhere.

I bought the board, but the fw is too old (3.1). I tried to upgrade the fw, but it says I have to push the “pushbutton switch”. Of course, this board doesn’t have a pushbutton switch, and I can’t figure out if I need to short some pins - or what. Please advise.

If it’s the same board I linked to short the boot pin to 3.3v. I just checked my board and BF 3.4.0 is installed. I’m sure if the latest BF Rev supports this but I assume it would. Features like these tend to be included in future Rev’s. Or you could just install 3.4 if it’s only purpose like mine is for use as a game controller.

My board has no “boot pin” marked - anywhere. I ordered the same board but it says it contains version 3.1.5
If you can tell me which pin is the “boot pin” , I could update it.

This is my board. No BOOT pin exists, at least that I can find.

It does it’s just not labeled!

F4%20mini%20boot