Jump to content
The simFlight Network Forums

How to program 288 buttons with exp. board of 747 MCP


Recommended Posts

Hi Pete,

I try to use Aerosoft MCP´s expansion board to program 288 buttons in FSUIPC.

According to Nico Kaan the varaibles.txt in MCP user data should be extended with following lines:

Green,13120,1,1,0,1,0,0,JS64: but 0

Green,13120,1,2,0,1,0,0,JS64: but 1

Green,13120,1,4,0,1,0,0,JS64: but 2

Green,13120,1,8,0,1,0,0,JS64: but 3

Green,13120,1,16,0,1,0,0,JS64: but 4

Green,13120,1,32,0,1,0,0,JS64: but 5

Green,13120,1,64,0,1,0,0,JS64: but 6

Green,13120,1,128,0,1,0,0,JS64: but 7

Green,0,0,0,0,0,0,0,

Yellow,13121,1,1,0,1,0,0,JS64: but 8

Yellow,13121,1,2,0,1,0,0,JS64: but 9

.....

Green,13155,1,128,0,1,0,0,JS64: but 7

Which in fact represents 288 buttons.

Sofar all is clear, but when pushing buttons it happens that FSUIPC wouldn´t recognize them all, except using Nico´s variables.txt which looks like this:

Green,13120,1,1,0,1,0,0,JS64: but 0

Green,13121,1,1,0,1,0,0,JS64: but 8

Green,13122,1,1,0,1,0,0,JS64: but 16

Green,13123,1,1,0,1,0,0,JS64: but 24

Green,0,0,0,0,0,0,0,

Green,13124,1,1,0,1,0,0,JS65: but 0

Green,13125,1,1,0,1,0,0,JS65: but 8

This however is far less than 288 buttons.

What´s wrong with my variables.txt that FSUIPC wouldn´t recognize a button other than 0;8;16;24

MCP however recognizes all buttons flawlessly.

It seems FSUIPC only accepts 1 Bit per used Byte.

Hope it is clear what I meant.

Any hint highly appreciated.

Thank you

Best rgds

Peter

Link to comment
Share on other sites

What´s wrong with my variables.txt that FSUIPC wouldn´t recognize a button other than 0;8;16;24

I don't know any of these parameters you are showing me, but it sounds like whatever program it is does not use bit numbers or button numbers, but bit masks.

FSUIPC offers 9 virtual joysticks (numbered 64-72) each with 32 buttons, numbered 0-31.

The virtual joysticks are represented as 9 32-bit words, at offsets 3340, 3344, etc (these are in hexadecimal -- FSUIPC represents all offsets in hexadecimal, following the original FS6IPC tradition).

3340 in decimal is 13120, so it seems that the program you are using insists on using decimal instead.

Additionally it may well want to refer to individual bytes, i.e. groups of 8 bits, instead of the conventional 32-bit words. So you will have 8 bits in each of 4x9 or 36 bytes, addresses 13120-13155 in decimal.

In a byte you have 8 bits, numbered 0-7. But, again, you seem to need the VALUE of the bit, not its number or position. The value of bit 0 is 1, bit 1 is 2 and so on, up to 128 for bit 7. (2 to the power of the bit number).

I would have thought that whatever program it is you were using would come with instructions which explained all this, and at least some examples. Did you check?

Regards,

Pete

Link to comment
Share on other sites

Hi Pantu,

Your example code is not correct, I'm afraid... You forgot the mask...

If you use these lines instead, you will notice that you can program 288 buttons, that will be recognised by FSUIPC! (.. don't blame Pete .. ;-) )

Green,13120,1,1,0,1,0,0,JS64: but 0

Green,13120,1,2,0,2,0,0,JS64: but 1

Green,13120,1,4,0,4,0,0,JS64: but 2

Green,13120,1,8,0,8,0,0,JS64: but 3

Green,13120,1,16,0,16,0,0,JS64: but 4

Green,13120,1,32,0,32,0,0,JS64: but 5

Green,13120,1,64,0,64,0,0,JS64: but 6

Green,13120,1,128,0,128,0,0,JS64: but 7

Green,0,0,0,0,0,0,0,

and so on...

Regards,

Nico Kaan

Link to comment
Share on other sites

Hi Pete and Kiko,

thank you both very much for your help.

Of course I would never blame Pete or his FSUIPC. We all have to be very, very thankful to Pete for his excellent work and support.

Unfortunately the Aerosoft 747MCP does not bring too much of a description with it. It´s obviously enough for programmers but simply not for mainly Hardware oriented guys like me.

Again thank you so much for your help.

Best regards

Peter

Link to comment
Share on other sites

Hi Nico,

infact I forgot the mask, but it still didn´t do what it was expected to.

So I experimented a bit and read Pete´s chapter about MCP747 button programming again and again and there he stated that there are 32bits per address.

So I changed the value "No. of bytes in address" from 1 to 4 and voila the switches are nicely recognized by FSUIPC.

Now all works like it should.

Again thank you very much for your prompt and kind help.

Best rgds

Peter

Link to comment
Share on other sites

Hi Pantu,

There are several ways that lead to Rome...

Indeed a joystick has 32 bits. But you can either reach a bit by:

addressing its BYTE boundary and then mask one of the 8 bits in that byte,

OR

you can address its 32 bits WORD boundary and mask one of the 32 bits in that word!

Both ways are valid.

I find it easier to address each byte, because then the masks are not bigger the 128.

Hope this makes things clear.

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.