Jump to content
The simFlight Network Forums

Recommended Posts

Posted

Hello Pete this is George again and i need your help now for two things. First i want to assign some buttons assignements of the nd2 of project magenta. I have assign the pilot effis of the airbus through FSUIPC " buttons + swittches " section all the Pm nd section and it is working fine but when i tried to do the same with the Pm nd2 section for the co-pilot none of the buttons is working. I have search as usuall to the "Pm fsuipc offsets" and i have found the following lines:

" 04F4 2 Glass Cockpit ND Modes (Write Only) (*was* Read as well)

Sending 100+(value) controls First Officer Display (e.g. 170 enables weather on Copilot ND)

Only last three digits are used, you can use the thousands to indicate the key has been pressed again (state change), i.e. 2150 and 5150 do the same

Please note, these commands go directly to the Glass Cockpit, if you do not want the MCP or FCU to override them, then please use the MCP commands in 0x4F2 or 0x5520.

(Values, not bits!)

Airbus

1 MAP (Captain Side, 101 F/O side)

2 NAV (Captain Side, 102 F/O side)

3 VOR (Captain Side, 103 F/O side)

4 PLAN (Captain Side, 104 F/O side)

5 ILS Mode

Boeing

'Classic Modes'

1 MAP ARC

2 MAP CTR

3 VOR

4 MAP PLAN

New ND Modes (!)

1 MAP

3 VOR

4 PLN

5 APP

6 CTR Pushbutton

7 Force display to 8 Modes (APP/VOR/MAP/PLN)

8 Show Controls in EICAS/ECAM

9 Hide Controls in EICAS/ECAM

10 PFD/ND -> PFD -> ND (like pressing F4,F1,F2 in GC)

11 PFD/EICAS

70 Show WXR

71 Hide WXR

72 Toggle WXR

73 VORADFL OFF

74 ADFL ON

75 VORL ON

76 VORADFR OFF

77 ADFR ON

78 VORR ON

80 Terrain Display On

81 Terrain Display Off

82 Toggle Terrain Display

83 Terrain Type Change

84 Terrain Colour/Mode Change

85 Terrain Size Change

86 Terrain 3D

90 STA

91 VOR

92 NDB

93 WPT

94 ARPT

95 DATA

96 POS

321 Decrease Synoptic/System Display Page

322 Increase Synoptic/System Display Page

Project Magenta FSUIPC Offsets

http://www.projectmagenta.com/resources/PMOffsets.html[8/11/2009 9:58:51 πμ]

12 EICAS with Standby

13 EICAS without Standby

14 FPV (Boeing)

15 Standby Displays OFF

16 Sets EICAS on ND in F4 and F5 pages

19 Toggle Controls in EICAS/ECAM

20 Incr Engine Page

21 Decr Engine Page

22 Toggle No Smoking

23 Toggle Seatbelts

24 Toggle Overview Page

25 Toggle RMI/HSI display in Boeing-Type ND MAP ARC

26 Metric Toggle

28/29 ND Mode INC/DEC for Airbus

30 Engine Page (Primary) 0

31 Engine Page 1

32 Engine Page 2

..

39 Engine Page 9 (if defined)

40 Range 5 NM (added Aug 27 '03)

41 Range 10 NM

42 Range 20 NM

43 Range 40 NM

44 Range 80 NM

45 Range 160 NM

46 Range 320 NM

47 Range 640 NM

48 Range DEC

49 Range INC

50 TCAS Off

51 TCAS Alt

52 TCAS Callsign

53 TCAS All

54 Toggle TCAS Off/Alt

55 Show MCP Values in EICAS (Boeing) (Special PFC Display)

56 Hide MCP Values in EICAS (Boeing) (Special PFC Display)

57 PLAN mode next waypoint

58 PLAN mode previous waypoint

60 Show Overview Page in ND

61 Hide Overview Page in ND

62 Set/Reset Timer (AB Glass Cockpit)

Boeing 737

331 - 336 Upper Engine page direct selection

340 Increment Upper Engine page by 1

(Airbus)

Secondary EICAS pages and functions AB

301 ENG

302 BLEED

303 PRESS

304 ELEC (A330/340 EL/AC)

305 HYD

306 FUEL

307 APU

308 COND

309 DOOR

310 WHEEL

311 F/CTL

313 ALL

314 CLR

315 STS

316 RCL

317 CLR

318 EL/DC (A330/340)

319 C/B (A330/340)

(Boeing)

Secondary EICAS pages and functions 747

301 ENG

302 STAT

303 ELEC

304 FUEL

305 ECS

306 HYD

307 DRS

308 GEAR

318 CANC

319 RCL

(Boeing)

Secondary EICAS pages and functions 777

301 ENG

302 STAT

303 ELEC

304 HYD

305 FUEL

306 AIR

307 DOORS

308 GEAR

309 FCTL

318 CANC

319 RCL

(Boeing)

401 Caution On (see 0x4FE)

402 Caution Reset

411 Show FuelUsed Toggle

412 ShowFuelUsed On

413 ShowFuelUsed Of

414 Reset FuelUsed = 0

(Both)

421 Toggle No Smoking

422 No Smoking On

423 No Smoking Off

424 Toggle Seatbelts

425 Seatbelts On

426 Seatbelts OfF

Main Boeing-Type Display Unit Captain

Captain Main DU 600 + switch position from 0

Copilot Main DU 610 + switch position from 0

Captain Engine DU 620 + switch position from 0

Copilot Engine DU 630 + switch position from 0

Works on F6 page Expanded

Airbus Page Switch

601 Captain PFD/ND normal

602 Captain PFD/ND switched

621 Copilot PFD/ND normal

622 Copilot PFD/ND switched

If i have understand corect i must put the 04F4 and for the mask the value of 101 for the F/O side? I dont't now how to do this and i have also download the fsuipc sdk but to tell you the truth i didn't understand anything. I am civil engineer in real life but in programing i know less than a kid so can you send me a tutorial based on fsuipc offsets if i have the offset and the size of any button that i want to assign how i will determine the correct mask for this each time? I am asking you this because i don't want to bother you any time i will have the same difficulties.

Posted
First i want to assign some buttons assignements of the nd2 of project magenta. I have assign the pilot effis of the airbus through FSUIPC " buttons + swittches " section all the Pm nd section and it is working fine but when i tried to do the same with the Pm nd2 section for the co-pilot none of the buttons is working. I have search as usuall to the "Pm fsuipc offsets" and i have found the following lines:

Really there is no need to reproduce the whole of the PM stuff here.

The only part you needed to notice was:

Sending 100+(value) controls First Officer Display (e.g. 170 enables weather on Copilot ND)
If i have understand corect i must put the 04F4 and for the mask the value of 101 for the F/O side

What's the "mask"? Where's that mentioned anywhere, and why 101?

Just assign to the FSUIPC control "Offset word set" with offset 04F4 and a parameter of 100 + the value from the list for the switch you want.

can you send me a tutorial based on fsuipc offsets if i have the offset and the size of any button that i want to assign how i will determine the correct mask for this each time? I am asking you this because i don't want to bother you any time i will have the same difficulties.

Sorry, I don't do tutorials, and I cannot undertake to support PM which is not even my program. For FSUIPC offset controls all you need to know is that a BYTE is 8 bits and is 1 byte long, a WORD is 16 bits and is 2 bytes long, a DWORD is 32 bits and is 4 bytes long. If you need to manipulate bits, remember that bit 0 is the lowest bit, worth 1, bit 1 is worth 2 and so on, doubling each time.

I recommend you go to the MyCockpit PM forums for PM assistance. There are lots of cockpit builders there using PM:

http://www.mycockpit.org/forums/forumdi27981&f=99

Regards

Pete

  • 3 weeks later...
Posted

Hi Pete i understand. Nevermind i need your help for another thing i have. I want to change the order of my joysticks in the fsuipc.cfg but when i do this and after i save the file i start the fsx but i still have the joysticks in the order before i change them. Do you know how to do this? Here i have the order of joysticks before and after but i want the second configuration.

[JoyNames]

AutoAssignLetters=No

0=CH PRO PEDALS USB

1=CH THROTTLE QUADRANT

2=Saitek Cyborg Evo

3=Saitek Pro Flight Rudder Pedals

4=Saitek Cyborg Evo

[JoyNames]

AutoAssignLetters=No

0=Saitek Cyborg Evo

1=Saitek Cyborg Evo

2=CH PRO PEDALS USB

3=Saitek Pro Flight Rudder Pedals

4=CH THROTTLE QUADRANT

Posted
I want to change the order of my joysticks in the fsuipc.cfg but when i do this and after i save the file i start the fsx but i still have the joysticks in the order before i change them. Do you know how to do this? Here i have the order of joysticks before and after but i want the second configuration.

The numbers for each joystick are assigned by Windows, not by FSUIPC. The only way to get them changed is to plug them into different USB sockets.

A much better alternative is to use the facilities to letter the joysticks instead. Then they will auto-reconfigure if you move them. FSUIPC matches the names to the letters and uses the numbers assigned by Windows, as it must.

Regards

Pete

Posted

Hi Pete and thanks for your help. I have changed the usb sockects but they still appear in the same order. Then i have applied the lettering and i managed to change the order of joysticks inside of FS but this is not that i want to do. I need to change the order of joysticks inside the windows. I have run the dxdiag and i saw in the inputs tab that the joysticks always they keep a specific id. Do you have any idea how i will modify this?

Posted
Hi Pete and thanks for your help. I have changed the usb sockects but they still appear in the same order.

Hmm. That's unusual. Mine don't. But it may depend whether you swap between one pair of USB sockets and another pair (USB sockets always seem to be paired). Maybe also it needs a ssytem re-boot without them connected in order to clear the assignment tables, possibly made in the BIOS at boot time.

Then i have applied the lettering and i managed to change the order of joysticks inside of FS but this is not that i want to do. I need to change the order of joysticks inside the windows.

Sorry, I don't understand. What windows? And why would the order matter to you?

I have run the dxdiag and i saw in the inputs tab that the joysticks always they keep a specific id. Do you have any idea how i will modify this?

Only by trying what I say above. But I am puzzled as to what the actual number of a device matters if you aren't using it.

Regards

Pete

Posted

Hello Pete and thanks for your try to help. I am using windows xp x86 professional. I need to change the order id of my joysticks because i want to use them with an auto trim utility called "FBW" from "Stall fliers team". The problem with this software is that is only accepts device 0 and 1 and as you see below to attachement the devices i want to use are the devices 0 and 2. I have tried all the above but nothing. Any ideas?

I need your help also for this. I have gather all the project magenta FSUIPC OFFSETS for my cockpit and i need your help for one simple ( i think ) but very basic thing. I have for each fsuipc offset the Offset Read in (hex), the Offset Writing in (hex) and the Offset Size in (Bytes).

How i will determine the parameter each time? Is there any formula or something for if i have the above values each time to estimate the correct parameter for each assignement?

Here i send you an example of some assignements to have an idea.


  • ***************************************
    BTN:ALT Push
    Offset Read (hex) 0
    Offset Writing (hex) 5414
    Offset Size (Bytes) 4
    [5414 MCP/FCU Buttons B32-63 (Read/Write)
    AALI Bit24 (AB Altitude Button push - managed altitude mode)
    AALO Bit25 (AB Altitude Button pull)]
    ****************************************
    BTN:Metric
    Offset Read (hex) 0
    Offset Writing (hex) 541c
    Offset Size (Bytes) 4
    [541C MCP/FCU Knobs/Selectors S32-63 (Captain ND Modes) (Read/Write)
    METRIC Bit24]
    ******************************************
    BTN: APPR ON/OFF
    Offset Read (hex) 0
    Offset Writing (hex) 5410
    Offset Size (Bytes) 4
    [5410 MCP/FCU Buttons B00-31 (Read/Write)
    LOC Bit28
    APP Bit29]
    ******************************************
    BTN: ND CSTR
    Offset Read (hex) 0
    Offset Writing (hex) 541C
    Offset Size (Bytes) 4
    [541C MCP/FCU Knobs/Selectors S32-63 (Captain ND Modes) (Read/Write)
    VOR Bit12
    NDB Bit13
    WPT Bit14]
    *******************************************
    BTN:ND-LS Mode
    Offset Read (hex) 0
    Offset Writing (hex) 541C
    Offset Size (Bytes) 4
    [541C MCP/FCU Knobs/Selectors S32-63 (Captain ND Modes) (Read/Write)
    ILS Bit0 (reserved for Airbus ILS mode)
    MAP Bit1 (Captain Side ND controls)
    CTR Bit2 ]
    ********************************************
    BTN: ND CSTR [ FIRST OOFICER SIDE ]
    Offset Read (hex) 0
    Offset Writing (hex) 5420
    Offset Size (Bytes) 4
    [541C MCP/FCU Knobs/Selectors S32-63 (Captain ND Modes) (Read/Write)
    VOR Bit12
    NDB Bit13
    WPT Bit14]
    *********************************************
    BTN:ND-LS Mode [ FIRST OOFICER SIDE ]
    Offset Read (hex) 0
    Offset Writing (hex) 5420
    Offset Size (Bytes) 4
    [541C MCP/FCU Knobs/Selectors S32-63 (Captain ND Modes) (Read/Write)
    ILS Bit0 (reserved for Airbus ILS mode)
    MAP Bit1 (Captain Side ND controls)
    CTR Bit2 ]

Many thanks.

post-29195-128689710583_thumb.jpg

Posted
I need to change the order id of my joysticks because i want to use them with an auto trim utility called "FBW" from "Stall fliers team". The problem with this software is that is only accepts device 0 and 1 and as you see below to attachement the devices i want to use are the devices 0 and 2. I have tried all the above but nothing. Any ideas?

No, other that to try uninstalling any drivers you have for all your joysticks, then re-boot, and try plugging only those two devices in, checking their numbers and retrying until you find the right sockets which will give you what you want. As far as I am aware, there is really no outside control anyone can exert on windows to force any different ID assignment than that which it, or possibly the BIOS, chooses. (You see I don't even know where it is done!).

A better bet would be to get the authors of the software you want to use to change it so it accepts any valid joystick ID. Only accepting 0 and 1 seems really daft.

How i will determine the parameter each time?

For writing to Project Magenta? They are all documented in the PM offsets documentation -- you need to go to the PM website.

Is there any formula or something for if i have the above values each time to estimate the correct parameter for each assignement?

Sorry, I don't understand. Are you simply saying you don't understand the documentation they provide?

Here i send you an example of some assignements to have an idea.

Sorry, I've no idea what your problem is nor whether there's even a question here. If you don't understand some term, just be specific, ask that question. It is not up to me to rewrite Project Magenta documentation for you, I do not write their software or documentation. If there's some term or phrase you don't understand, just ask. But if you want help in using Project Magenta you really need their Support.

Regards

Pete

Posted

Hi Pete i tried several times to open the web site of the easyfbw module to ask for assistance but it is not loaded at all. I will try as you said to unistall all the joysticks drivers and play with the sockets to find a combination that is working. Now about of how to calculate the correct parameter each time i have contact you before for other buttons assignements and you have give me the solution. Here i am sending you one of the previous posts as an example to understand for what i want your help.

"The simFlight Network Forums • View topic - PM Airbus co-pilot EFFIS control"

In this topic i wanted to assign two buttons for the airbus effis ( the co-pilot side ),the "AB LS Button" and the "AB TRKFPA Button" so i have send you these values:

OFFSET SIZE USE

5414 4 MCP/FCU Buttons B32-63 (Read/Write)

--- Bit12-Bit15 (free)

ALS Bit16 (AB LS Button First Officer)

ATFP Bit29 (AB TRKFPA Button).

You have answered me that i must find the fsuipc control "Offset DWORD togglebits" and to use the x5414 for the offset value and the only i need to do is to put to parameter each time for these to work for "bit 16 = x10000" and for "bit 29 = x20000000" so i did this and its worked. The only thing i want for you is to explain me how you calculate the value "10000" for bit 16 and how you calculate the value "20000000" for bit 29. As i told you above i have all the pm staff i need for my cockpit but i dont know how to calculate the correct parameter each time.

Posted
The only thing i want for you is to explain me how you calculate the value "10000" for bit 16 and how you calculate the value "20000000" for bit 29. As i told you above i have all the pm staff i need for my cockpit but i dont know how to calculate the correct parameter each time.

Oh, you want a lesson in numbers? I'll have a go, but I am not a good teacher I'm afraid. You'll probably find better lessons in a Wiki article or via Google.

BINARY

Binary numbers, the ones actually used in computers, are made up of "bits". Each bit can only be "on" (1) or "off" (0). So, with one bit you can only count 0 then 1. With 2 bits you can count from 0 to 3, via the combination of the two bits, thus:

00 = 0

01 = 1

10 = 2

11 = 3

A binary number can have as many bits as you need, but computers generally have addressable groups of bits, as follows:

BYTE = 8 bits, running from 00000000 to 11111111 (decimal 0 to 255).

WORD = 16 bits

DWORD = 32 bits

The addresses known in FSUIPC as "offsets" actually point to BYTES, but any size data may start at that byte address.

Note that in decimal, each higher digit in a number is worth 10 times the adjacent one. So

Decimal 245 = (2 x 10 x 10) + (4 x 10) + (5 x 1)

In Binary the same sort of thing is true, but now each digit is only worth 2 x the adjacent one. So

Binary 1101 = (1 x 2 x 2 x 2) + (1 x 2 x 2) + (0 x 2) + (1 x 1) = decimal 13.

Okay so far?

BIT NUMBERS

Documentation like that for Project Magenta often refers to "bit numbers", like "bit 0" or "bit 17". All this refers to is the position of the bit in the overall number. Most usually (but not always) bits are numbered from the bottom, the bit of value 0 or 1. So, in the example of decimal 13 above:

1 1 0 1 the bits, left to right are bits 3, 2, 1 and 0.

Using this system of numbering, the VALUE of that bit in the number can be computed as 2 to the power of the bit number, like 2^N (the power should be superscripted, but i don't know how to do that here -- the ^ convention is used in programming languages). Thus. If 2^3 means "2 x 2 x 2", the 13 could be written as

2^3 + 2^2 + 2^0 (note that mathematical convention dictates that a number to the power of zero is always 1).

HEXADECIMAL

Writing numbers in binary all the time is laborious and error prone, so often a different number system is used -- octal (base 8) and hexadecimal (base 16). In today's PCs hex is better because most units are made up of multiple of 4 bits, and 4 bits, as we saw, have the capacity to count from 0 to 15: so 16 values in all.

So, whilst you can treat hex numbers as base 16 numbers, with each more significant digit being worth 16 times the adjacent one, in cases where you are really handling bits, as here, you merely need to think of the binary number being divided into groups of 4 bits. The different values of 4 bits, from 0 to 15, are represented in hex like this:

Binary 0 0 0 0 = Hex 0 = Decimal 0

Binary 0 0 0 1 = Hex 1 = Decimal 1

Binary 0 0 1 0 = Hex 2 = Decimal 2

Binary 0 0 1 1 = Hex 3 = Decimal 3

Binary 0 1 0 0 = Hex 4 = Decimal 4

Binary 0 1 0 1 = Hex 5 = Decimal 5

Binary 0 1 1 0 = Hex 6 = Decimal 6

Binary 0 1 1 1 = Hex 7 = Decimal 7

Binary 1 0 0 0 = Hex 8 = Decimal 8

Binary 1 0 0 1 = Hex 9 = Decimal 9

Binary 1 0 1 0 = Hex A = Decimal 10

Binary 1 0 1 1 = Hex B = Decimal 11

Binary 1 1 0 0 = Hex C = Decimal 12

Binary 1 1 0 1 = Hex D = Decimal 13

Binary 1 1 1 0 = Hex E = Decimal 14

Binary 1 1 1 1 = Hex F = Decimal 15

So, to convert a binary number to hex you simply divide it into groups of 4 bits (from the bottom, least significant part) and use the above equivalences. For example

Binary 1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1

becomes 1 0 1 0 1 1 1 10 0 1 0 1 1 0 1

so it is hex AF2D.

The reverse conversion works too.

YOUR EXAMPLES

You asked how we get the hex value "10000" for bit 16 and how you calculate the value "20000000" for bit 29. Now it should be easy for you:

Bit 16 is the 16th bit up counting from 0, so in binary it must be (I've already divided it into 4's to save time):

1 0000 0000 0000 0000.

which you can convert to hex as I showed above ---> 10000

Bit 29 is likewise the 29th bit up counting from 0:

10 0000 0000 0000 0000 0000 0000 0000

So, hex 20000000.

Of course you don't need to write down all the bits. 29 divided by 4 (the number of bits in a group) is 7 remainder 1, so it has 7 hex 0's after a 2^1 group, and 2^1 = 2.

CONCLUSION

With my poor teaching skills I'm afraid that's as basic and clear as I can make it. If you still don't understand I hope someone else will jump in to help.

Regards

Pete

Posted

Hi Pete about the joysticks i have not succed to change the order id but fortunately i have solved this issue i had. I have activate the fbw module fsx offers in my arcraft.cfg ( i have add in the aircraft.cfg in the [airplane_geometry] section the command "fly_by_wire = 1"). Then i have assign the two joysticks ( captain elevator and alieron axis and co-pilot elevator and alieron axis ) inside fsx controls section and all the rest axis of the other joysticks ( captain rudder and toe brakes, co-pilot rudder and toe brakes, throttles, flaps, spoilers and gear axis) inside the FSUIPC "axis assignements" section, i have calibrate them inside FSUIPC and everything working great. I have finally managed to have a FBW module with the Project Magenta software working fine. Now about the tutorial you send me this was all i wanted. Now i can be able to calculate everything i want and i can start to working seriously with hardware assignements (buttons, swithes, rotary encoders e.t.c). I only want to say for one more time that FS without PETE DOWSON would be just another game. Many many many thanks!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :D

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.