Jump to content
The simFlight Network Forums

FSUIPC / MJoy16 input card compatibility


Recommended Posts

Hello everyone.

I have my own custom built cockpit console based on the MJoy16 input card, including pushbuttons, toggles, rotaries, trim thumbwheels, etc., to control all the FSX switching. It works perfectly, although I need some extra software like key mappers (I gotta use two!), and a simconnect module I put together myself for that "left out of FS user interface" commands.

I recently bought FSUIPC4 and finnaly understand the huge capabilities of this module, so I'm trying to get to do all the "interfacing" to get read of all the key mappers and get a few extras like ailleron and rudder trim (these, I got them are already working :wink: ).

As I passed my eyes through thr documentation I realized it can only recognize up to 32 buttons + plus POV, even if it isn't using direct X.

My cockpit solution doesn't rely on multiple cards with up to 32 buttons; instead, its a one card solution with up to 112 buttons! That's my main problem here, cause I'm using something like 70 buttons.

My question is: is there a way to get FSUIPC to recognize more than 32 buttons per joystick card?

Thanks in advance.

Link to comment
Share on other sites

As I passed my eyes through thr documentation I realized it can only recognize up to 32 buttons + plus POV, even if it isn't using direct X.

That's 32 buttons on each of up to 16 joysticks.

My cockpit solution doesn't rely on multiple cards with up to 32 buttons; instead, its a one card solution with up to 112 buttons! That's my main problem here, cause I'm using something like 70 buttons.

Neither the Windows joystick interface nor DirectInput can cope with that, so how are you reading them in Windows? If you have your own driver it must have a non-standard API, so how on Earth could FSUIPC handle it? It only knows DirectInput and the main joy API.

My question is: is there a way to get FSUIPC to recognize more than 32 buttons per joystick card?

The EPIC card had up to 512 buttons. It looked like 16 joysticks to Windows. 16 x 32 = 512.

How are you currently getting 70 buttons read on one joystick via a standard Windows interface??

Regards

Pete

Link to comment
Share on other sites

My cockpit solution doesn't rely on multiple cards with up to 32 buttons; instead, its a one card solution with up to 112 buttons! That's my main problem here, cause I'm using something like 70 buttons.

Neither the Windows joystick interface nor DirectInput can cope with that, so how are you reading them in Windows? If you have your own driver it must have a non-standard API, so how on Earth could FSUIPC handle it? It only knows DirectInput and the main joy API.

The only way I can read the 70 buttons is by using MJoy Mapper, which is a mapping software developed specially for the MJoy16 card. Now if it uses a non standard API, I don't know. I just thought, if it can handle more than 32 buttons, why shouldn't FSUIPC be up to it?

My question is: is there a way to get FSUIPC to recognize more than 32 buttons per joystick card?

The EPIC card had up to 512 buttons. It looked like 16 joysticks to Windows. 16 x 32 = 512.

How are you currently getting 70 buttons read on one joystick via a standard Windows interface??

Same answer as above - by the MJoy Mapper.

Is there a way I can use a similar solution like the Epic to get may 112 buttons to be recognized by FSUIPC?

Link to comment
Share on other sites

The only way I can read the 70 buttons is by using MJoy Mapper, which is a mapping software developed specially for the MJoy16 card. Now if it uses a non standard API, I don't know. I just thought, if it can handle more than 32 buttons, why shouldn't FSUIPC be up to it?

FSUIPC uses interfaces it knows. I cannot use interfaces it doesn't know -- you figure it out!

You say "the only way you can read" these 70 buttons is by using this mapper -- how do YOU read them? What known standard interface are YOU using?

I can design my own hardware with any amount of switch capability and write my own driver for it, but unless that presents itself to Windows in a standard way, the only way anyone else can ever use them is by using some SDK or interface I tell them about, for my specific design.

Same answer as above - by the MJoy Mapper.

That doesn't answer any question at all, it simply avoids it. how are YOU reading the buttons??? Saying "by MJoy Mapper" means nothing to me, that isn't a standard Windows interface, is it now?

Is there a way I can use a similar solution like the Epic to get may 112 buttons to be recognized by FSUIPC?

Yes, write a standard Windows HID driver (HID = Human Interface Device) to present the device to Windows as a number of standard joysticks, exactly as the EPIC driver does.

Regards

Pete

Link to comment
Share on other sites

FSUIPC uses interfaces it knows. I cannot use interfaces it doesn't know -- you figure it out!

You say "the only way you can read" these 70 buttons is by using this mapper -- how do YOU read them? What known standard interface are YOU using?

I can design my own hardware with any amount of switch capability and write my own driver for it, but unless that presents itself to Windows in a standard way, the only way anyone else can ever use them is by using some SDK or interface I tell them about, for my specific design.

The MJoy Mapper just translates joystick button presses to keyboard key presses, and reads all the 112 buttons provided by the MJoy16 card. That's all I know about it.

That doesn't answer any question at all, it simply avoids it. how are YOU reading the buttons??? Saying "by MJoy Mapper" means nothing to me, that isn't a standard Windows interface, is it now?

Let's clear out this first: I'm not complaining about FSUIPC capablilities; I'm just asking for help to get advantage of all my card potential, so, I do not avoid to answer questions - I answer them the better I can, I'm not a pc hardware buider nor a software programmer and I have very limited knoledge on pc operating systems. I'm the one interested on this subject, so I'd appreciate your help.

Yes, write a standard Windows HID driver (HID = Human Interface Device) to present the device to Windows as a number of standard joysticks, exactly as the EPIC driver does.

I would do so, but I'm afraid I'm unable to do that. I don't know how to write such driver.

Thanks for the advice.

Link to comment
Share on other sites

The MJoy Mapper just translates joystick button presses to keyboard key presses, and reads all the 112 buttons provided by the MJoy16 card. That's all I know about it.

Ah. There you are then. FSUIPC can handle 70 keyboad presses, no troubles. ;-)

Let's clear out this first: I'm not complaining about FSUIPC capablilities; I'm just asking for help to get advantage of all my card potential, so, I do not avoid to answer questions - I answer them the better I can, I'm not a pc hardware buider nor a software programmer and I have very limited knoledge on pc operating systems. I'm the one interested on this subject, so I'd appreciate your help.

No, I understand, but your question was why can't FSUIPC see the 70 buttons on your device, and the answer is now made clear -- because they don't look like buttons, but keypresses. Use the "Keys" tab in FSUIPC, not the Buttons one.

I assume that this "Mjoy Mapper" is the driver provided with your hardware, so it knows how to read the buttons. It converts them to keypresses, so, effectively, that's what you have to use. You have no choice. If you want anything to recognise the buttons as buttons instead you'd have to go back to the makers and ask for an appropriate driver for their hardware which does such things.

I would do so, but I'm afraid I'm unable to do that. I don't know how to write such driver.

Not you, perhaps, but whoever designed and built the hardware. Who else could do it? Who else knows the hardware?

FSUIPC can only handle hardware it understands, or which Windows understands and handles for it. There are defined interfaces for this, and FSUIPC uses them. If a hardware manufacturer wants maximum flexibility for their product they need to consider what interfaces to support, and then provide the appropriate drivers for them. Evidently, for your hardware, they thought providing a keypress capability was sufficient?

Regards

Pete

Link to comment
Share on other sites

No, I understand, but your question was why can't FSUIPC see the 70 buttons on your device, and the answer is now made clear -- because they don't look like buttons, but keypresses. Use the "Keys" tab in FSUIPC, not the Buttons one.

I'm afraid that is not the case.

The MJoy Mapper does exactly the same as the "Buttons" tab on the FSUIPC, except that it can read up to 112 buttons from any device (not only the MJoy16 card), and translate it to keyboard strokes, and with advanced features like key action hold, repeat, press, release, and also macro key sequences (like we can with FSUIPC but only by editing the config file manualy).

I don't know how MJoy mapper does the button state reading, and I'm afraid I won't get support for it anymore.

Anyway, I'll keep using it as I've been doing in the past. The only drawback is I can't assign buttons higher than 32 directly to commands; instead I map them to keyboard keys on the MJoy mapper and then assign those keys to commands using FSUIPC.

Regards.

Link to comment
Share on other sites

[

The MJoy Mapper does exactly the same as the "Buttons" tab on the FSUIPC, except that it can read up to 112 buttons from any device (not only the MJoy16 card)

"Any device" is far to broad a description. What you say cannot be true. I could go and build a device now, with any sort of parallel or serial interface, and unless I told the clever program how it worked, how to read it, how to interpret the signals, it could not read any buttons I connect to it. As a case in point, take the EPIC USB card -- it would most certainly not be able to read 112 of its 512 possible buttons unless it had specific code in to deal with the EPIC protocol.

Perhaps you mean any standard xxxx interface device, where "xxxx" would need to be specified?

Just a quick browse for "Mjoy16" in Google reveals comments like

"Has anyone used the MJoy16 and the assiciated keyboard devices for their cockpit. I know I will need more than this (mainly for displays) but it looks like a great product at a great price combining 8 axis, 64 buttons, 16 toggles and 4 rotories in one USB device (and you can connect up to 4)."

Now 8 axes, 64 buttons and so on is what I know as the DirectInput limit for a HID deviceare you perhaps getting to 112 by somehow adding up all these separate aspects? Even then, counting rotaries possibly as 2 each, I can only see 96 "things", not 112.

Another site lists the capabilities of the MJoy16 application as follows:

Main features of this MJoy16 Application C1 are:

- 64 pushbuttons support

- 16 double-action toggle switches support

- 4 double-action rotary switches support for convenient frequency control

- 1 8-position hatswitch

- 2 controls mapping modes

- Axes centering disabling possibility

- Auto calibration

- Additional support options for multiple MJoy16-C1 controllers on one computer

Again, the 64 is the DirectInput limit I'm aware of.

FSUIPC, of course, currently uses the standard Windows API where the limit is 32. It is possible, of course, that since I looked at DirectInput (DX8 times, for FS2004), the limits have been changed or even abolished. I really don't know. If this MJoy16 program states a specific need for a particular version that might be a clue.

Regards

Pete

Link to comment
Share on other sites

Perhaps you mean any standard xxxx interface device, where "xxxx" would need to be specified?

Ok, maybe you're right; but it shure reads Logitech, Thrustmaster and Saitek input devices.

Of course the 112 buttons are the sum of all:

64 (pushbuttons) + 32 (16 two way toggles) + 16 (4 four way rotaries, normal and fast operation CW and CCW) = 112 (total)

Plus an 8 way hatswitch and 8 analogue axes.

I'll sent you the manual via pm.

Link to comment
Share on other sites

Of course the 112 buttons are the sum of all:

64 (pushbuttons) + 32 (16 two way toggles) + 16 (four way rotaries, normal and fast operation CW and CCW) = 112 (total)

Plus an 8 way hatswitch and 8 analogue axes.

Ah, right. 64 buttons is the directInput limit i'm aware of, so it is just using directInput I assume.

FSUIPC could manage the same if I re-wrote all the button code to use DirectInput, but I fear most current users would need to reprogram their assignments. (things look different through directInput). And it is a very big job, not trivial, and something so seldom needed (very few devices ever have more than the 32 buttons I support in any case) that I really cannot justify the time involved, let alone the possible consequences in terms of reliability if it were not subjected to many months of alpha and beta testing.

Regards

Pete

Link to comment
Share on other sites

  • 7 years later...
Hello everyone, I use for years mjoy16 with mjoy Mapper and FSUIPC.

It 'simple, FSUIPC to assign key combinations to program MJoyMapper same assignment keys.

Example: on MJoyMapper 1 key, program: "ctrl + shift + L"

In FSUIPC, in Key Pressed program: "ctrl + shift + L" as "Toggle Master Battery".

Now press key 1 on your mjoy16 an see the master battery turn on!

Done, you can now use all of 112 assignments.

;-)

But I now have a problem ...

I installed to test in a separate HD Windows 10, FSX and P3D, all work best with FSUIPC, FSUIPC however not "feel" keyboard combinations sent by MjoyMapper. I do not understand, Windows 10 works well with MJoyMapper and work well with other programs, and P3D manages all 112 Mjoy16 buttons,

but I will only use FSUIPC to program my cockpit.

I think it's Windows 10 that stops in some way MJoyMapper of FSUIPC.

It states that MJoyMapper with Win7 and FSUIPC work perfectly.

Some idea?

Luigi

Link to comment
Share on other sites

It 'simple, FSUIPC to assign key combinations to program MJoyMapper same assignment keys.

Example: on MJoyMapper 1 key, program: "ctrl + shift + L"
In FSUIPC, in Key Pressed program: "ctrl + shift + L" as "Toggle Master Battery".
Now press key 1 on your mjoy16 an see the master battery turn on!
Done, you can now use all of 112 assignments.
;-)
But I now have a problem ...
I installed to test in a separate HD Windows 10, FSX and P3D, all work best with FSUIPC, FSUIPC however not "feel" keyboard combinations sent by MjoyMapper.

 

Sorry, there are conflicting statements there.  You seem to say in one paragraph that you program keystrokes in FSUIPC, but in another that you do this in KeyMapper.

 

If you mean you use keymapper to send keys to FSUIPC and then program those to send FS controls, then I need to ask whether the keypresses from KeyMapper are seen in FS itself. Have you checked?

 

For keypress programming FSUIPC can only interpret what it sees, and if what it sees is not recognised as an assigned keypress, it lets it through to FS. Try using the same keypresses on your keyboard. Maybe your "KeyMapper" is not Win10 compatible?

 

You can of course also use FSUIPC's key/button logging to check into this further yourself.

 

Pete

Link to comment
Share on other sites

Good morning Pete, thanks for fast response.

I apologize if I misspelled it, I use google translate.  :oops:

Yes, Mjoymapper send FSUIPC keystrokes.

FS can see the same keystrokes, windows too.

You have told me about Mjoymapper not compatible with Win10,

but Mjoymapper works with Win10.

However I tried to send Mjoymapper in WinXP compatibility mode.

Now Mjoymapper works well, FSUIPC see everything ok! Everything works !!

Thank you so much Pete for help !!!!

 

PS. I ask again apologize for my bad English.

 

Luigi

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.