Results 1 to 8 of 8
  1. #1
    150+ Forum Groupie
    Join Date
    Aug 2008
    Location
    Dallas, Texas
    Posts
    192
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Trouble with 2nd USB expansion card

    I added a 2nd USB expansion card and it is recognized by SIOC as DEVICE 100 but I can't get Controlador to display the inputs. I tried unpluging my other expansion card but then I get nothing on the inputs display. Also, I have been fighting for quite some time to get my displays on my homebuilt MCP to work but all I get is random segments lighting up. They are on my first master card (USB J1) with only 1 display card.

    Jerry

  2. #2
    500+ This must be a daytime job



    Join Date
    Jul 2013
    Posts
    917
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Re: Trouble with 2nd USB expansion card

    Jerry

    Kiek has already replied to your earlier question on the same subject, advising that controlador will only work with one USB Expansion card
    Could you outline in more detail the problem with the displays?

    David

  3. #3
    150+ Forum Groupie
    Join Date
    Aug 2008
    Location
    Dallas, Texas
    Posts
    192
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Re: Trouble with 2nd USB expansion card

    David

    Sorry its taken me so long to get back to working on this. Today I tried swaping out my USB Expansion card for the other one that I knew was working and that fixed the probem with the inputs. I examined the usb card for bad solder joints, all ICs pointed in the right direction and everything looks ok so I don't know whats wrong with the card. Do you have any suggestions? I don't know what else to do except order another USB Expansion card. As for the displays, some of the segments are not working on some of the displays and some displays aren't lighting up at all. Hope you can see from this picture. Nothing in controlador seems to affect the displays at all. I have 4 display cards controling the MCP, COM1, COM2 NAV1, NAV2, AND TCAS Displays all connected to the same Master card and their all having the same problem. Woud appreciate any suggestions.

  4. #4
    500+ This must be a daytime job



    Join Date
    Jul 2013
    Posts
    917
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Re: Trouble with 2nd USB expansion card

    Jerry

    Dealing with the display problem - lets go for the simple questions first

    I assume that:-

    Your 4 display cards have the jumpers correctly positioned to identify the 4 cards from 1 to 4?

    If you are missing the same segments on all characters (within the same display card) , then there is a bad or incorrect joint in your wiring linking the character segment displays. Also check your ribbon cable by wiggling the connector joint - they are notorious for bad connections and missing display segments

    If you are missing characters completely and assuming the above is all ok, then this could be down to incorrect referencing within the sioc script. Could you please post your script and for the missing characters advise the display card number (assuming the jumpers are correctly positioned) and the number of the display within the display card

    Testing with controlador is sometimes difficult and I will see if I can retrieve an article on this

    Edit Just in case, here is a link for testing display cards with controlador

    http://personales.ya.com/micabina737...ard/test2i.htm

    David

  5. #5
    150+ Forum Groupie
    Join Date
    Aug 2008
    Location
    Dallas, Texas
    Posts
    192
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Re: Trouble with 2nd USB expansion card

    David

    I apoligize again for taking so long. I used the article you suggested for testing with controlador, very helpful. I have found numerous bad connections, solder joints, damaged traces etc. I'm still working my way thru all that, its taking a while since I have 5 display cards and several displays. My first Master card has 1 display card for the MCP, the 2nd Master card has 4 display cards for Com1 Acrive/Standby, Com2, Nav1, Nav2, and TCAS. Here is my script.

    // *****************************************************************************
    // * Config_SIOC ver 3.7B1 - By Manolo Vélez - www.opencockpits.com
    // *****************************************************************************
    // * FileName : PM_B747-400.txt
    // * Date : 4/30/2011



    Var 0000, Value 0 // Initialization
    {
    V0001 = 360 // COURSE 1
    V0002 = 360 // COURSE 2
    V0008 = 180 // HDG
    V0012 = 10 // ALT
    V0065 = 0 // ALT 00 of the 00 is fixed
    V0006 = SETBIT 23 // Sets IAS MODE
    V0005 = V0003 // Read temporary in IAS
    V0006 = V0004 // Read temporary in MATH
    V0060 = V0003 // Put IAS in Display
    &SUB_DH = 3000
    &SUB_BAR = 1023
    }

    Var 1001, Link FSUIPC_IN, Offset $051C, Length 2 // MCP Indications (Read Only)
    {
    C0 = TESTBIT V0063 ,0 // Checks if V/S display Is off?
    IF C0 // IF Yes then
    {
    V0065 = -999999 // Removes the 00 on right side of V/S disp
    V0050 = -999999 // Turns off remaining Digits
    V0064 = -999999 // Turns off minus sign -
    }
    ELSE // IF NO then
    {
    V0065 = 0 // Turns on the 00 display
    CALL V0063 // Sets the V / S in the display
    }
    }

    Var 0001, Link FSUIPC_OUT, Offset $0C4E, Length 2 // COURSE 1

    Var 0002, Link FSUIPC_OUT, Offset $0C5E, Length 2 // COURSE 2

    Var 0003, Link FSUIPC_IN, Offset $04E0, Length 2 // IAS [MCP/FCU IAS (Read Only) 250 = 250 K
    {
    CALL V0064 // value of Displayr
    }

    Var 0004, Link FSUIPC_IN, Offset $04E8, Length 2 // MACH [MCP/FCU Mach (Read Only) (70 = 0.7
    {
    CALL V0064 // Display del valor
    }

    Var 0005, Link FSUIPC_OUT, Offset $5406, Length 2 // IAS [MCP/FCU IAS Set (Write)]
    {
    V0052 = V0013
    }

    Var 0006, Link FSUIPC_OUT, Offset $540E, Length 2 // MACH [MCP/FCU Mach Set (Write) (72 = 0.7

    Var 0007, Link FSUIPC_IN, Offset $04E2, Length 2 // HDG [MCP/FCU Heading (Read Only)]

    Var 0008, Link FSUIPC_OUT, Offset $5408, Length 2 // HDG [MCP/FCU Heading Set (Write)]
    {
    V0053 = V0011
    }

    Var 0009, Link FSUIPC_IN, Offset $04E6, Length 2, Type 1 // v/s [MCP/FCU Selected Vertical Speed (Re
    {
    V0062 = V0001
    CALL V0063 // Put value in the display
    }

    Var 0010, Link FSUIPC_OUT, Offset $540C, Length 2, Type 1 // V/S [MCP/FCU V/S Set (Write) FCU - FPA i
    {
    V0050 = V0008
    }

    Var 0011, Link FSUIPC_IN, Offset $04E4, Length 2 // ALT [MCP/FCU Altitude (Read Only) (100 o

    Var 0012, Link FSUIPC_OUT, Offset $540A, Length 2 // ALT [MCP/FCU Altitude Set (Write)]
    {
    V0075 = V0012
    }

    Var 0013, Link FSUIPC_OUT, Offset $5410, Length 4 // PM Push-buttons-I

    Var 0014, Link FSUIPC_OUT, Offset $5414, Length 4 // PM Push-buttons-II

    Var 0015, Link FSUIPC_OUT, Offset $5414, Length 4 // MCP Buttons

    Var 0016, Link FSUIPC_IN, Offset $04F0, Length 2 // MCP LIGHTS [MCP/FCU Lights (Read Only)]
    {
    V0040 = TESTBIT V0016 ,11 // A/T
    V0041 = TESTBIT V0016 ,12 // F/D
    V0042 = TESTBIT V0016 ,10 // THR
    V0043 = TESTBIT V0016 ,9 // SPD
    V0044 = TESTBIT V0016 ,6 // LNAV
    V0045 = TESTBIT V0016 ,14 // VNAV
    V0046 = TESTBIT V0016 ,8 // FL CH
    V0047 = TESTBIT V0016 ,7 // HDG HOLD
    V0048 = TESTBIT V0016 ,2 // V/S
    V0049 = TESTBIT V0016 ,3 // ALT HOLD
    V0050 = TESTBIT V0016 ,5 // LOC
    V0051 = TESTBIT V0016 ,4 // APP
    V0052 = TESTBIT V0016 ,0 // AP L
    V0053 = TESTBIT V0016 ,1 // AP C
    V0054 = TESTBIT V0016 ,13 // AP R
    C0 = TESTBIT V0016 ,15 // Modo MATH o IAS ?
    IF C0 // MACH MODE
    {
    V0006 = V0004 // Upload temporary value
    V0061 = 1 // Turn on decimal point
    CALL V0064 // Display value
    }
    ELSE // IAS MODE
    {
    V0013 = V0004 // Upload temporary value
    V0061 = 0 // turn off the decimal point
    CALL V0064 // Display value
    }
    }

    Var 0017, Value 10000 // ALTITUDE

    Var 0020, Link IOCARD_SW, Input 11 // A/T Switch
    {
    IF V0020 = 1 // If on
    {
    V0013 = TOGGLE 19 // Toggle bit 19
    }
    ELSE
    {
    V0013 = TOGGLE 20 // Toggle bit 20
    }
    }

    Var 0021, Link IOCARD_SW, Input 10 // F/D Switch
    {
    IF V0021 = 1
    {
    V0013 = TOGGLE 5
    }
    ELSE
    {
    V0013 = TOGGLE 6
    }
    }

    Var 0022, Link IOCARD_SW, Input 14, Type P // THR Button
    {
    V0013 = CHANGEBIT 21 ,V0022
    }

    Var 0024, Link IOCARD_SW, Input 13, Type P // MAC/SPD Sel
    {
    V0013 = CHANGEBIT 23 ,V0024
    }

    Var 0025, Link IOCARD_SW, Input 12, Type P // LNAV Button
    {
    V0013 = CHANGEBIT 10 ,V0025
    }

    Var 0027, Link IOCARD_SW, Input 17, Type P // VNAV Button
    {
    V0013 = CHANGEBIT 26 ,V0027
    }

    Var 0028, Link IOCARD_SW, Input 16, Type P // FL CH Button
    {
    V0013 = CHANGEBIT 24 ,V0028
    }

    Var 0029, Link IOCARD_SW, Input 58, Type P // HDG SELECT PB [(heading SEL pushbutton 7
    {
    V0013 = CHANGEBIT 11 ,V0029
    }

    Var 0030, Link IOCARD_SW, Input 26, Type P // HDG HOLD Button
    {
    V0013 = CHANGEBIT 25 ,V0030
    }

    Var 0031, Link IOCARD_SW, Input 9, Type P // V/S Button
    {
    V0013 = CHANGEBIT 31 ,V0031 // If ignition switch bit 11 to 1 if OFF
    }

    Var 0032, Link IOCARD_SW, Input 59, Type P // ALT PB Button
    {
    V0013 = CHANGEBIT 12 ,V0032
    }

    Var 0033, Link IOCARD_SW, Input 15, Type P // ALT HOLD Button
    {
    V0013 = CHANGEBIT 30 ,V0033
    }

    Var 0034, Link IOCARD_SW, Input 22, Type P // LOC Button
    {
    V0013 = CHANGEBIT 28 ,V0034
    }

    Var 0036, Link IOCARD_SW, Input 21, Type P // APP Button
    {
    V0013 = CHANGEBIT 29 ,V0036
    }

    Var 0037, Link IOCARD_SW, Input 20, Type P // AP L Button
    {
    V0014 = CHANGEBIT 0 ,V0037
    }

    Var 0038, Link IOCARD_SW, Input 19, Type P // AP C Button
    {
    V0014 = CHANGEBIT 1 ,V0038
    }

    Var 0039, Link IOCARD_SW, Input 25, Type P // DISENGAGE
    {
    V0014 = CHANGEBIT 10 ,V0039
    }

    Var 0040, Link IOCARD_OUT, Output 10 // Led A/T

    Var 0041, Link IOCARD_OUT, Output 12 // Led F/D

    Var 0042, Link IOCARD_OUT, Output 22 // Led THR

    Var 0043, Link IOCARD_OUT, Output 18 // Led SPD

    Var 0044, Link IOCARD_OUT, Output 14 // Led LNAV

    Var 0045, Link IOCARD_OUT, Output 26 // Led VNAV

    Var 0046, Link IOCARD_OUT, Output 24 // Led FL CH

    Var 0047, Link IOCARD_OUT, Output 20 // Led HDG HOLD

    Var 0048, Link IOCARD_OUT, Output 23 // Led V/S

    Var 0049, Link IOCARD_OUT, Output 28 // Led ALT HOLD

    Var 0050, Link IOCARD_OUT, Output 12 // Led APP

    Var 0051, Link IOCARD_OUT, Output 16 // Led LOC

    Var 0052, Link IOCARD_OUT, Output 25 // Led AP L

    Var 0053, Link IOCARD_OUT, Output 21 // Led AP C

    Var 0054, Link IOCARD_OUT, Output 22 // Led AP C

    Var 0060, Link IOCARD_DISPLAY, Digit 2, Numbers 3 // IAS/MAC
    {
    V0003 = V0060 // Send value to PM
    }

    Var 0061, Link IOCARD_OUT, Output 20 // Led . DECIMAL

    Var 0062, Link IOCARD_DISPLAY, Digit 5, Numbers 3 // HDG
    {
    V0007 = V0062 // Send value to PM
    }

    Var 0063, Link IOCARD_DISPLAY, Digit 6, Numbers 1 // V/S Minus Sign
    {
    V0009 = V0063 // Send value to PM
    }

    Var 0064, Link IOCARD_DISPLAY, Digit 10, Numbers 4 // V/S

    Var 0065, Link IOCARD_DISPLAY, Digit 6, Numbers 1 // V/S MINUS SIGN

    Var 0066, Link IOCARD_DISPLAY, Digit 15, Numbers 5 // ALT
    {
    V0011 = V0066 // Send value to PM
    V0066 = V0012
    }

    Var 0070, Link IOCARD_ENCODER, Input 45, Aceleration 4, Type 2 // IAS/MACH Encoder
    {
    L0 = V0070 * 1
    C0 = TESTBIT V0003 ,15 // Indicates MACH or IAS ?
    IF C0 // MACH MODE
    {
    V0006 = LIMIT 25 ,95 ,L0 // Increase or decrease the value of MACH
    }
    ELSE
    {
    V0005 = LIMIT 0 ,340 ,L0 // Increase or decrease the value of IAS
    }
    }

    Var 0071, Link IOCARD_ENCODER, Input 55, Aceleration 4, Type 2 // HDG Encoder
    {
    L0 = V0071 * 1
    V0062 = ROTATE 0 ,359 ,L0
    }

    Var 0072, Link IOCARD_ENCODER, Input 57, Aceleration 4, Type 2 // VS Encoder
    {
    L0 = V0072 * -100 // Increases from 100 to 100
    V0073 = ROTATE -9000 ,9000 ,L0 // Add or subtract the time value of V / S
    V0010 = V0073
    }

    Var 0073 // Temporary value of V/S

    Var 0074, Link IOCARD_ENCODER, Input 54, Aceleration 4, Type 2 // ALT Encoder
    {
    L0 = V0074 * 1
    V0066 = LIMIT 0 ,500 ,L0
    }

    Var 0075, Link IOCARD_DISPLAY, Digit 11, Numbers 3 // COURSE 1
    {
    V0010 = V0075 // Send value to PM
    }

    Var 0076, Link IOCARD_DISPLAY, Digit 103, Numbers 3 // COURSE 2
    {
    V0015 = V0076 // Send value to PM
    }

    Var 0077, Link IOCARD_ENCODER, Input 192, Aceleration 4, Type 2 // COURSE Encoder
    {
    L0 = V0034 * 1
    V0051 = ROTATE 0 ,359 ,L0 // Roto el valor del COURSE
    }

    Var 0078, Link IOCARD_ENCODER, Input 190, Aceleration 4, Type 2 // Encoder COURSE 2
    {
    L0 = V0039 * -1
    V0076 = ROTATE 0 ,359 ,L0 // Rotate Course Value
    }

    Var 0080, Link SUBRUTINE // Pinta V/S
    {
    C0 = TESTBIT V0002 ,0 // Checks must be turned off if
    C0 = NOT C0
    IF C0 // Only if lit
    {
    IF V0080 < 0 // If V/S is negative becomes positive
    {
    L0 = ABS V0080
    V0064 = -999998 // Turn on the minus sign
    }
    ELSE
    {
    V0064 = -999999 // Turn off the minus sign
    L0 = V0080
    }
    V0063 = L0 / 100 // Send the adjusted value of V/S to disp
    }
    }

    Var 0081, Link SUBRUTINE // Show IAS / MACH
    {
    C0 = TESTBIT V0016 ,15 // Mode MACH or IAS ?
    IF C0 // MACH MODE
    {
    V0061 = 1 // Turn on decimal point
    V0060 = V0004 // Put MACH value in display
    }
    ELSE
    {
    V0061 = 0 // Turn off decimal point
    V0060 = V0003 // Put IAS value in display
    }
    }

    Var 0100, name SUB_DH, Link SUBRUTINE // PM_EFIS_DH
    {
    IF &SUB_DH > 20000
    {
    &SUB_DH = 20000
    }
    IF &SUB_DH < 0
    {
    &SUB_DH = 0
    }
    L0 = DIV &SUB_DH ,100
    &PM_EFIS_DH = L0
    }

    Var 0101, name SUB_BAR, Link SUBRUTINE // FS_QNH_MB
    {
    L0 = &SUB_BAR * 16
    &FS_QNH_MB = L0
    }

    Var 0200, name PM_EFIS_DH, Link FSUIPC_OUT, Offset $04FA, Length 2 // PM_EFIS_DH

    Var 0201, name FS_QNH_MB, Link FSUIPC_OUT, Offset $0330, Length 2 // FS_QNH_MB

    Var 0202, name PM2_RANG, Link FSUIPC_OUT, Offset $5524, Length 2 // PM_EFIS_RANG FO

    Var 0203, name PM2_DH, Link FSUIPC_OUT, Offset $5532, Length 2 // PM_EFIS_DH FO

    Var 0204, name FS2_QNH, Link FSUIPC_OUT, Offset $552E, Length 2 // FS_QNH_MB FO

    Var 0205, name PM_GC_COMMANDS, Link FSUIPC_OUT, Offset $04F4, Length 2 // PM DO EVERYTHING

    Var 0206, name PM_EFIS_RANG, Link FSUIPC_OUT, Offset $04F8, Length 2

    Var 0209, Link FSUIPC_OUT, Offset $5414, Length 4 // MCP/FCU BUTTONS

    Var 0301, Link IOCARD_SW, Input 64 // ROT1_APP
    {
    IF V0301 = 1
    {
    &PM_GC_COMMANDS = 5
    }
    }

    Var 0302, Link IOCARD_SW, Input 65 // ROT1_VOR
    {
    IF V0302 = 1
    {
    &PM_GC_COMMANDS = 3
    }
    }

    Var 0304, Link IOCARD_SW, Input 67 // ROT1_MAP
    {
    IF V0304 = 1
    {
    &PM_GC_COMMANDS = 1
    }
    }

    Var 0305, Link IOCARD_SW, Input 68 // ROT1_PLN
    {
    IF V0305 = 1
    {
    &PM_GC_COMMANDS = 4
    }
    }

    Var 0306, Link IOCARD_SW, Input 71, Type I // EFIS MAP CTR
    {
    IF V0306 = 1
    {
    &PM_GC_COMMANDS = 6
    }
    }

    Var 0311, Link IOCARD_SW, Input 44 // ROT2_5
    {
    IF V0311 = 1
    {
    &PM_GC_COMMANDS = 0
    }
    }

    Var 0312, Link IOCARD_SW, Input 38 // ROT2_10
    {
    IF V0312 = 1
    {
    &PM_EFIS_RANG = 1
    }
    }

    Var 0313, Link IOCARD_SW, Input 37 // ROT2_20
    {
    IF V0313 = 1
    {
    &PM_EFIS_RANG = 2
    }
    }

    Var 0314, Link IOCARD_SW, Input 38 // ROT2_40
    {
    IF V0314 = 1
    {
    &PM_EFIS_RANG = 3
    }
    }

    Var 0315, Link IOCARD_SW, Input 40 // ROT2_80
    {
    IF V0315 = 1
    {
    &PM_EFIS_RANG = 4
    }
    }

    Var 0316, Link IOCARD_SW, Input 39 // ROT2_160
    {
    IF V0316 = 1
    {
    &PM_EFIS_RANG = 5
    }
    }

    Var 0317, Link IOCARD_SW, Input 44 // ROT2_320
    {
    IF V0317 = 1
    {
    &PM_EFIS_RANG = 6
    }
    }

    Var 0318, Link IOCARD_SW, Input 42 // ROT2_640
    {
    IF V0318 = 1
    {
    &PM_EFIS_RANG = 7
    }
    }

    Var 0319, Link IOCARD_SW, Input 41, Type P // STD
    {
    IF V0319 = 1
    {
    V0320 = 1013
    L0 = 1013 * 16
    L0 = L0 + 1
    &FS_QNH_MB = L0
    }
    }

    Var 0320, Link SUBRUTINE // FS_QNH_MB
    {
    L0 = 320 * 16
    &FS_QNH_MB = L0
    }

    Var 0321, Link IOCARD_SW, Input 70, Type P // TOGGLE QNH/MILIBARS

    Var 0322, Link FSUIPC_OUT, Offset $3110, Length 4 // FS_QNH

    Var 0323, Link IOCARD_ENCODER, Input 48, Aceleration 1, Type 2 // BARO_QNH_ENCODER
    {
    L0 = V0323 // * -1 turning clockwise should be plus
    IF L0 > 0
    {
    V0322 = 65883 // FS Control Kohlsman increment
    V0322 = DELAY 0 ,10
    }
    ELSE
    {
    IF L0 < 0
    {
    V0322 = 65884 // FS Control Kohlsman decremen
    V0322 = DELAY 0 ,10
    }
    }
    }

    Var 0324, Link IOCARD_SW, Input 5 // PB_POS
    {
    IF V0324 = 1
    {
    &PM_GC_COMMANDS = 96
    }
    }

    Var 0325, Link IOCARD_SW, Input 6 // PB_DATA
    {
    IF V0325 = 1
    {
    &PM_GC_COMMANDS = 95
    }
    }

    Var 0326, Link IOCARD_SW, Input 3 // PB_WXR
    {
    IF V0326 = 1
    {
    &PM_GC_COMMANDS = 72
    }
    }

    Var 0327, Link IOCARD_SW, Input 8 // PB_STA
    {
    IF V0327 = 1
    {
    &PM_GC_COMMANDS = 90
    }
    }

    Var 0328, Link IOCARD_SW, Input 7 // PB_WPT
    {
    IF V0328 = 1
    {
    &PM_GC_COMMANDS = 93
    }
    }

    Var 0329, Link IOCARD_SW, Input 0 // PB_ARPT
    {
    IF V0329 = 1
    {
    &PM_GC_COMMANDS = 94
    }
    }

    Var 0330, Link IOCARD_SW, Input 4 // INT_VOR1
    {
    IF V0330 = 1
    {
    &PM_GC_COMMANDS = 75
    }
    ELSE
    {
    IF V0330 = 0
    {
    &PM_GC_COMMANDS = 73
    }
    }
    }

    Var 0331, Link IOCARD_SW, Input 2 // INT_ADF1
    {
    IF V0331 = 1
    {
    &PM_GC_COMMANDS = 74
    }
    ELSE
    {
    IF V0331 = 0
    {
    &PM_GC_COMMANDS = 73
    }
    }
    }

    Var 0332, Link IOCARD_SW, Input 63 // INT_VOR2
    {
    IF V0332 = 1
    {
    &PM_GC_COMMANDS = 78
    }
    ELSE
    {
    IF V0332 = 0
    {
    &PM_GC_COMMANDS = 76
    }
    }
    }

    Var 0333, Link IOCARD_SW, Input 69 // INT_ADF2
    {
    IF V0333 = 1
    {
    &PM_GC_COMMANDS = 77
    }
    ELSE
    {
    IF V0333 = 0
    {
    &PM_GC_COMMANDS = 76
    }
    }
    }

    Var 0334, Link IOCARD_SW, Input 2 // PUL_FPV
    {
    IF V0334 = 1
    {
    &PM_GC_COMMANDS = 14
    }
    }

    Var 0335, Link IOCARD_SW, Input 66 // PUL_STD
    {
    IF V0335 = 1
    {
    &SUB_BAR = 1013
    L0 = 1013 * 16
    L0 = L0 + 1
    &FS_QNH_MB = L0
    }
    }

    Var 0336, Link IOCARD_ENCODER, Input 46, Aceleration 6 // MINS - DH -
    {
    L0 = V0336 * -100
    V0337 = V0337 + L0
    }

    Var 0337, Link SUBRUTINE // PM_EFIS_DH
    {
    IF V0337 > 20000
    {
    V0337 = 20000
    }
    IF V0337 < 0
    {
    V0337 = 0
    }
    L0 = DIV V0337 ,100
    &PM_EFIS_DH = L0
    }

    Var 0338, Link IOCARD_ENCODER, Input 48, Aceleration 6 // BARO
    {
    L0 = V0338 * 1
    &SUB_BAR = &SUB_BAR + L0
    }

    Var 0339, Link SUBRUTINE // FS_QNH_MB
    {
    L0 = V0339 * 16
    &FS_QNH_MB = L0
    }

    Var 0340, Link IOCARD_SW, Input 28, Type P // EICAS ENG
    {
    IF V0340 = 1
    {
    &PM_GC_COMMANDS = 301
    }
    }

    Var 0341, Link IOCARD_SW, Input 29, Type P // EICAS STAT
    {
    IF V0341 = 1
    {
    &PM_GC_COMMANDS = 302
    }
    }

    Var 0342, Link IOCARD_SW, Input 30, Type P // EICAS ELEC
    {
    IF V0342 = 1
    {
    &PM_GC_COMMANDS = 303
    }
    }

    Var 0343, Link IOCARD_SW, Input 32, Type P // EICAS FUEL
    {
    IF V0343 = 1
    {
    &PM_GC_COMMANDS = 303
    }
    }

    Var 0344, Link IOCARD_SW, Input 35, Type P // EICAS ECS
    {
    IF V0344 = 1
    {
    &PM_GC_COMMANDS = 306
    }
    }

    Var 0345, Link IOCARD_SW, Input 34, Type P // EICAS HYD
    {
    IF V0345 = 1
    {
    &PM_GC_COMMANDS = 304
    }
    }

    Var 0346, Link IOCARD_SW, Input 27, Type P // EICAS DRS
    {
    IF V0346 = 1
    {
    &PM_GC_COMMANDS = 307
    }
    }

    Var 0347, Link IOCARD_SW, Input 33, Type P // EICAS GEAR
    {
    IF V0347 = 1
    {
    &PM_GC_COMMANDS = 308
    }
    }

    Var 0348, Link IOCARD_SW, Input 23, Type P // EICAS CANC
    {
    IF V0348 = 1
    {
    &PM_GC_COMMANDS = 318
    }
    }

    Var 0349, Link IOCARD_SW, Input 27, Type P // EICAS RCL
    {
    IF V0349 = 1
    {
    &PM_GC_COMMANDS = 319
    }
    }

    Var 0350, name Landing_Gear, Link FSUIPC_OUT, Offset $0BE8, Length 4

    Var 0351, Link IOCARD_SW, Input 96 // Landing Gear Lever
    {
    IF V0351 = 1
    {
    &Landing_Gear = 1
    }
    ELSE
    {
    &Landing_Gear = 0
    }
    }

    Var 0360, name PM_LND_LTS, Link FSUIPC_OUT, Offset $5642, Length 2

    Var 0361, Link IOCARD_SW, Device 1, Input 145 // Outboard Landing Lts L
    {
    IF V0361 = 1
    {
    &PM_LND_LTS = SETBIT 4
    }
    ELSE
    {
    &PM_LND_LTS = CLEARBIT 4
    }
    }

    Var 0362, Link IOCARD_SW, Device 1, Input 152 // Outboard Landing Lts R
    {
    IF V0362 = 1
    {
    &PM_LND_LTS = SETBIT 5
    }
    ELSE
    {
    &PM_LND_LTS = CLEARBIT 5
    }
    }

    Var 0363, Link IOCARD_SW, Device 1, Input 148 // Inboard Landing Lts R
    {
    IF V0363 = 1
    {
    &PM_LND_LTS = SETBIT 3
    }
    ELSE
    {
    &PM_LND_LTS = CLEARBIT 3
    }
    }

    Var 0364, Link IOCARD_SW, Device 1, Input 149 // Inboard Landing Lts L
    {
    IF V0364 = 1
    {
    &PM_LND_LTS = SETBIT 2
    }
    ELSE
    {
    &PM_LND_LTS = CLEARBIT 2
    }
    }

    Var 0365, Link IOCARD_SW, Device 1, Input 144 // RWY Turnoff Lts L
    {
    IF V0365 = 1
    {
    &PM_LND_LTS = SETBIT 0
    }
    ELSE
    {
    &PM_LND_LTS = CLEARBIT 0
    }
    }

    Var 0366, Link IOCARD_SW, Device 1, Input 146 // RWY Turnoff Lts R
    {
    IF V0366 = 1
    {
    &PM_LND_LTS = SETBIT 1
    }
    ELSE
    {
    &PM_LND_LTS = CLEARBIT 1
    }
    }

    Var 0367, name PM_EXT_LIGHTS, Link FSUIPC_OUT, Offset $5643, Length 2

    Var 0368, Link IOCARD_SW, Device 1, Input 151 // Taxi Lts
    {
    IF V0368 = 1
    {
    &PM_EXT_LIGHTS = SETBIT 3
    }
    ELSE
    {
    &PM_EXT_LIGHTS = CLEARBIT 3
    }
    }

    Var 0369, name FS_EXT_LIGHTS, Link FSUIPC_OUT, Offset $0D0C, Length 2

    Var 0370, Link IOCARD_SW, Device 1, Input 154, Type T // STROBE SWITCH
    {
    IF V0370 = 1
    {
    &FS_EXT_LIGHTS = SETBIT 4
    }
    ELSE
    {
    &FS_EXT_LIGHTS = CLEARBIT 4
    }
    }

    Var 0371, Link IOCARD_SW, Device 1, Input 150, Type T // NAV LIGHTS
    {
    IF V0371 = 1
    {
    &FS_EXT_LIGHTS = SETBIT 0
    }
    ELSE
    {
    &FS_EXT_LIGHTS = CLEARBIT 0
    }
    }

    Var 0372, Link IOCARD_SW, Device 1, Input 161, Type T // WING LIGHTS
    {
    IF V0372 = 1
    {
    &FS_EXT_LIGHTS = SETBIT 7
    }
    ELSE
    {
    &FS_EXT_LIGHTS = CLEARBIT 7
    }
    }

    Var 0373, name FS_LOGO_LTS, Link FSUIPC_OUT, Offset $0D0D, Length 2

    Var 0374, Link IOCARD_SW, Device 1, Input 157, Type T // LOGO LIGHTS
    {
    IF V0374 = 1
    {
    &FS_LOGO_LTS = SETBIT 0
    }
    ELSE
    {
    &FS_LOGO_LTS = CLEARBIT 0
    }
    }

    Var 0375, name Beacon747, Link FSUIPC_OUT, Offset $5647, Length 2

    Var 0376, Link IOCARD_SW, Device 1, Input 147 // B747 BEACON
    {
    IF V0376 = 1
    {
    &Beacon747 = 2
    }
    ELSE
    {
    &Beacon747 = 1
    }
    }

    Var 0400, name SeatBelts, Link FSUIPC_OUT, Offset $5640, Length 2

    Var 0401, Link IOCARD_SW, Input 139, Type I // SEAT BELTS ON
    {
    IF V0401 = 1
    {
    &PM_GC_COMMANDS = 425
    }
    }

    Var 0402, Link IOCARD_SW, Input 137, Type I // SEAT BELTS OFF
    {
    IF V0402 = 1
    {
    &PM_GC_COMMANDS = 426
    }
    }

    Var 0403, name NoSmoking, Link FSUIPC_OUT, Offset $5641, Length 2

    Var 0404, Link IOCARD_SW, Input 132, Type I // NO SMOKING ON
    {
    IF V0404 = 1
    {
    &PM_GC_COMMANDS = 422
    }
    }

    Var 0405, Link IOCARD_SW, Input 131, Type I // NO SMOKING OFF
    {
    IF V0405 = 1
    {
    &PM_GC_COMMANDS = 423
    }
    }

    Var 0406, Link IOCARD_OUT, Output 203 // FLT DK DOOR LED

    Var 0407, Link IOCARD_SW, Input 203, Type I // FLT DK DOOR

    Var 0408, name AUTOBRAKE, Link FSUIPC_OUT, Offset $2F80, Length 1

    Var 0409, Link IOCARD_SW, Input 126, Type I // AUTOBRAKE_RTO
    {
    IF V0409 = 1
    {
    &AUTOBRAKE = 0
    }
    }

    Var 0410, Link IOCARD_SW, Input 133, Type I // AUTOBRAKE_OFF/DISARM
    {
    IF V0410 = 1
    {
    &AUTOBRAKE = 1
    }
    }

    Var 0411, Link IOCARD_SW, Input 134, Type I // AUTOBRAKE_1
    {
    IF V0411 = 1
    {
    &AUTOBRAKE = 2
    }
    }

    Var 0412, name AUTOBRAKE_2, Link IOCARD_SW, Input 129, Type I
    {
    IF &AUTOBRAKE_2 = 1
    {
    &AUTOBRAKE = 3
    }
    }

    Var 0413, Link IOCARD_SW, Input 130, Type I // AUTOBRAKE_3
    {
    IF V0413 = 1
    {
    &AUTOBRAKE = 4
    }
    }

    Var 0414, Link IOCARD_SW, Input 128, Type I // AUTOBRAKE_4
    {
    IF V0414 = 1
    {
    &AUTOBRAKE = 5
    }
    }

    Var 0415, Link IOCARD_SW, Input 128, Type I // AUTOBRAKE_MAX
    {
    IF V0415 = 1
    {
    &AUTOBRAKE = 5
    }
    }

    Var 0416, name PARKING_BRAKE, Link FSUIPC_OUT, Offset $0BC8, Length 2

    Var 0417, name PARKING_BKSW, Link IOCARD_SW, Input 95, Type I // PARKING BRAKE SWITCH
    {
    IF &PARKING_BKSW = 1
    {
    &PARKING_BRAKE = 32767
    }
    ELSE
    {
    &PARKING_BRAKE = 0
    }
    }

    Var 0420, name FUEL_CUTOFF, Link FSUIPC_INOUT, Offset $561A, Length 2

    Var 0421, name Cutoff_1_SW, Link IOCARD_SW, Input 73, Type I
    {
    IF &Cutoff_1_SW = 0
    {
    &FUEL_CUTOFF = SETBIT 0
    }
    ELSE
    {
    &FUEL_CUTOFF = CLEARBIT 0
    }
    }

    Var 0422, name Cutoff_2_SW, Link IOCARD_SW, Input 74, Type I
    {
    IF &Cutoff_2_SW = 0
    {
    &FUEL_CUTOFF = SETBIT 1
    }
    ELSE
    {
    &FUEL_CUTOFF = CLEARBIT 1
    }
    }

    Var 0423, name Cutoff_3_SW, Link IOCARD_SW, Input 76, Type I
    {
    IF &Cutoff_3_SW = 0
    {
    &FUEL_CUTOFF = SETBIT 4
    }
    ELSE
    {
    &FUEL_CUTOFF = CLEARBIT 4
    }
    }

    Var 0424, name Cutoff_4_SW, Link IOCARD_SW, Input 75, Type I
    {
    IF &Cutoff_4_SW = 0
    {
    &FUEL_CUTOFF = SETBIT 5
    }
    ELSE
    {
    &FUEL_CUTOFF = CLEARBIT 5
    }
    }

    Var 0430, name FLAPS, Link FSUIPC_INOUT, Offset $0BDC, Length 4

    Var 0431, Link IOCARD_SW, Input 82, Type P // FLAPS UP
    {
    IF V0431 = 1
    {
    &FLAPS = 0 // FLAPS UP
    }
    }

    Var 0432, Link IOCARD_SW, Input 83, Type P // FLAPS 1
    {
    IF V0432 = 1
    {
    &FLAPS = 2730 // FLAPS 1
    }
    }

    Var 0433, Link IOCARD_SW, Input 85, Type P // FLAPS 5
    {
    IF V0433 = 1
    {
    &FLAPS = 5461 // FLAPS 5
    }
    }

    Var 0434, Link IOCARD_SW, Input 84, Type P // FLAPS 10
    {
    IF V0434 = 1
    {
    &FLAPS = 8191 // FLAPS 10
    }
    }

    Var 0435, Link IOCARD_SW, Input 89, Type P // FLAPS 15
    {
    IF V0435 = 1
    {
    &FLAPS = 8191 // FLAPS 15
    }
    }

    Var 0436, Link IOCARD_SW, Input 88, Type P // FLAPS 20
    {
    IF V0436 = 1
    {
    &FLAPS = 10922 // FLAPS 20
    }
    }

    Var 0437, Link IOCARD_SW, Input 81, Type P // FLAPS 25
    {
    IF V0437 = 1
    {
    &FLAPS = 13652 // FLAPS 25
    }
    }

    Var 0438, Link IOCARD_SW, Input 87, Type P // FLAPS 30
    {
    IF V0438 = 1
    {
    &FLAPS = 16383 // FLAPS 30
    }
    }

    Var 0450, name XPDR_MODE, Link FSUIPC_OUT, Offset $04F4, Length 2

    Var 0454, Link IOCARD_SW, Input 120, Type I // TCAS TEST

    Var 0455, Link IOCARD_SW, Input 121, Type I // TCAS STBY
    {
    IF V0455 = 1
    {
    V0016 = 51
    }
    }

    Var 0456, Link IOCARD_SW, Input 155, Type I // Callsign
    {
    IF V0456 = 1
    {
    V0016 = 52
    }
    }

    Var 0457, Link IOCARD_SW, Input 113, Type I // TCAS Ident
    {
    IF V0457 = 1
    {
    V0016 = 53
    }
    }

    Var 0458, Link IOCARD_SW, Input 280, Type I // INs/Outs 162
    {
    IF V0458 = 1
    {
    &XPDR_MODE = 1
    }
    }

    Var 0459, Link IOCARD_SW, Input 167, Type I
    {
    IF V0459 = 1
    {
    &XPDR_MODE = 2
    }
    }

    Var 0499, Link FSUIPC_OUT, Offset $3123, Length 1 // Registry Swap

    Var 0500, Link FSUIPC_OUT, Offset $034E, Length 2 // COM1 ACTIVE

    Var 0501, Link FSUIPC_OUT, Offset $311A, Length 2 // COM 1 STANDBY

    Var 0502 // Primary Digits COM 1

    Var 0503 // Decimal Digits COM 1

    Var 0504, Link SUBRUTINE // Value of COM 1
    {
    L0 = V0502 * 100
    L0 = L0 + V0503
    V0508 = L0
    V0501 = TOBCD L0
    }

    Var 0505, Link IOCARD_ENCODER, Input 145, Aceleration 1 // COM 1 ENCODER PRIMARY DIGITS
    {
    V0502 = V0502 + V0505
    IF V0502 > 36 // Decimal Digits COM 1
    {
    }
    V0502 = 18
    IF V0502 < 18 // Decimal Digits COM 1
    {
    }
    V0502 = 36
    CALL V0504 // Value of COM 1
    }

    Var 0506, Link IOCARD_ENCODER, Input 147, Aceleration 1 // COM 1 ENCODER DECIMAL DIGITS
    {
    L0 = V0506 * 5
    V0503 = V0503 - L0
    IF V0503 > 95
    {
    }
    V0503 = 0
    IF V0503 < 0
    {
    }
    V0503 = 95
    CALL V0504
    }

    Var 0507, Link IOCARD_DISPLAY, Digit 64, Numbers 5 // COM 1 ACTIVE

    Var 0508, Link IOCARD_DISPLAY, Digit 69, Numbers 5 // COM 1 STANDBY

    Var 0509, Link IOCARD_SW, Input 135 // Swap COM1
    {
    IF V0509 = 1
    {
    V0499 = 8
    }
    ELSE
    {
    }
    V0499 = 0
    }

    Var 0517, Link IOCARD_DISPLAY, Digit 80, Numbers 5 // COM 2 ACTIVE

    Var 0018, Link IOCARD_DISPLAY, Digit 85, Numbers 5 // COM2 STANDBY

    Var 0520, Link FSUIPC_OUT, Offset $0350, Length 2 // NAV 1 ACTIVE

    Var 0521, Link FSUIPC_OUT, Offset $311E, Length 2 // NAV1 STANDBY

    Var 0522 // PRIMARY DIGITS NAV1

    Var 0523 // DECIMAL DIGITS NAV1

    Var 0524, Link SUBRUTINE
    {
    L0 = V0522 * 100
    L0 = L0 + V0523
    V0528 = L0
    V0521 = TOBCD L0
    }

    Var 0525, Link IOCARD_ENCODER, Input 151, Aceleration 1 // NAV1 ENCODER Primary Digits
    {
    V0522 = V0522 + V0525
    IF V0525 > 17
    {
    }
    V0525 = 8
    IF V0525 < 8
    {
    }
    V0525 = 17
    CALL V0524
    }

    Var 0526, Link IOCARD_ENCODER, Input 149, Aceleration 1 // NAV1 ENCODER Decimal Digits
    {
    L0 = V0526 + 5
    V0523 = V0523 - L0
    IF V0523 > 95
    {
    }
    V0523 = 0
    IF V0523 < 0
    {
    }
    V0523 = 95
    CALL V0524
    }

    Var 0527, Link IOCARD_DISPLAY, Digit 90, Numbers 5 // NAV 1 ACTIVE

    Var 0528, Link IOCARD_DISPLAY, Digit 127, Numbers 5 // NAV1 STANDBY

    Var 0529, Link IOCARD_SW, Input 144, Type P // Swap NAV1
    {
    IF V0529 = 1
    {
    V0499 = 2
    }
    ELSE
    {
    V0499 = 0
    }
    }

    Var 0530, Link FSUIPC_OUT, Offset $0352, Length 2 // NAV2 ACTIVE

    Var 0531, Link FSUIPC_OUT, Offset $3120, Length 2 // NAV2 STANDBY

    Var 0532 // PRIMARY DIGITS NAV2

    Var 0533 // DECIMAL DIGITS NAV2

    Var 0534, Link SUBRUTINE
    {
    L0 = V0532 * 100
    L0 = L0 + V0533
    V0538 = L0
    V0531 = TOBCD L0
    }

    Var 0535, Link IOCARD_ENCODER, Input 109, Aceleration 1 // NAV2 ENCODER Primary Digits
    {
    V0532 = V0532 + V0535
    IF V0525 > 17
    {
    }
    V0535 = 8
    IF V0535 < 8
    {
    }
    V0535 = 17
    CALL V0534
    }

    Var 0536, Link IOCARD_ENCODER, Input 112, Aceleration 1 // NAV2 DECIMAL DIGITS
    {
    L0 = V0536 + 5
    V0533 = V0533 - L0
    IF V0523 > 95
    {
    }
    V0533 = 0
    IF V0533 < 0
    {
    }
    V0533 = 95
    CALL V0524
    }

    Var 0537, Link IOCARD_DISPLAY, Digit 95, Numbers 5 // NAV2 ACTIVE

    Var 0538, Link IOCARD_DISPLAY, Digit 101, Numbers 5 // NAV2 STANDBY

    Var 0539, Link IOCARD_SW, Input 122, Type P // Swap NAV2
    {
    IF V0539 = 1
    {
    V0499 = 1
    }
    ELSE
    {
    V0499 = 0
    }
    }

    Var 0540, Link FSUIPC_OUT, Offset $0354, Length 2 // XPNDR

    Var 0541 // XPNDR HIGH DIGITS

    Var 0542 // XPNDR LOW DIGITS

    Var 0543, Link SUBRUTINE // XPNDR TEMP VALUE
    {
    L0 = V0541 * 100
    L0 = L0 + V0542
    V0544 = L0
    V0540 = TOBCD L0
    }

    Var 0544, Link IOCARD_DISPLAY, Digit 144, Numbers 4 // XPNDR DISPLAY

    Var 0545, Link IOCARD_ENCODER, Input 124, Aceleration 1 // HIGH DIGITS ENCODER
    {
    V0541 = V0541 + V0545
    IF V0541 > 99
    {
    V0541 = 0
    }
    IF V0541 < 0
    {
    V0541 = 99
    }
    CALL V0543
    }

    Var 0546, Link IOCARD_ENCODER, Input 117, Aceleration 1 // LOW DIGITS ENCODER
    {
    V0542 = V0542 + V0546
    IF V0542 > 99
    {
    V0542 = 0
    }
    IF V0542 < 0
    {
    V0542 = 99
    }
    CALL V0543
    }

  6. #6
    500+ This must be a daytime job



    Join Date
    Jul 2013
    Posts
    917
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Re: Trouble with 2nd USB expansion card

    Jerry

    This script was originally for Project Magenta and uses their offsets - do you use PM? I ask as PM has its own range of FSUIPC offsets and this script will not work properly without PM

    Even so, this script is not in its original form and has been amended, particularly the references to display digits which have duplications eg Var 63 and Var 65. Also Var 75 overwrites the display in Var 64. Additionally, with a total of 5 display cards you would reference them from 0 to circa 79 (depending on whether you are using the last bit for dimming) yet your script has display references beyond this range ie from 80 up to 148. The displays in this range will not work - assuming that the jumper in the display card on mastercard number 2 was in the correct sequential position

    You have a total sioc script for many functions, I recommend that you cut it back and only use those sections of code that you currently need then slowly build it back up as you get the displays working correctly. Nico Kaan`s site has a lot of useful references/guidance/examples to help you

    http://www.lekseecon.nl/howto.html

    I have not worked with display cards across more than one mastercard, however, I believe that my advice is correct. Any corrections/additions are welcome
    Regards

    David

  7. #7
    150+ Forum Groupie
    Join Date
    Aug 2008
    Location
    Dallas, Texas
    Posts
    192
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Re: Trouble with 2nd USB expansion card

    David

    Yes, I am using Project Magenta Boeing PDF, CDU, MCP and pmsYSTEMS. Haven't yet

    purchased the First Officer software.

    My jumpers are correct. According to the numbering of digits referenced by Nico Kaan

    displays on Master Card 1 would number 0-63 and Master Card 2 would be 64-127. Since

    I only have 1 display card on Master Card 1, maybe the first display on Master Card 2

    Display Card 1 should start with 16. I really wasn't sure. Or maybe I have to put

    four Display Cards on Master Card 1 before I can put a fifth one on Master Card 2.

    That really wasn't clear to me.

    (duplications eg Var 63 and Var 65. Also Var 75 overwrites the display in Var 64)

    Were these the only mistakes you found in my script for the displays or were there

    more? Thanks for your help.

    Jerry

  8. #8
    500+ This must be a daytime job



    Join Date
    Jul 2013
    Posts
    917
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Re: Trouble with 2nd USB expansion card

    Hi Jerry

    I assumed that your display cards would fill up mastercard 1 then follow on sequentially onto mastercard 2. As your jumpers are correct then you have displays 0 -15 avaiable on master card 1, with displays 64 to 127 available on mastercard 2. In which case your display references within your sioc do not match. For example var 66 will not display fully as you reference digit 15 with 5 displays. Also you are referencing digits outside your range with vars 0528 and 0544.
    With regard to the rest of your script, I have only checked the digit referencing as this was your initial problem - it is too large to properly examine

    I suggest you move in little steps, initially confirming through controlador that the displays are all working.

    Good luck

    David

Similar Threads

  1. Test USB Expansion Card
    By mabderezai in forum OpenCockpits General Discussion
    Replies: 4
    Last Post: 11-10-2011, 12:06 AM
  2. USB Expansion Card
    By Jerrymc3 in forum I/O Interfacing Hardware and Software
    Replies: 2
    Last Post: 02-27-2011, 02:25 AM
  3. Expansion card buggy? Shows "ghost" inputs where there aren't...
    By Michael737NG in forum OpenCockpits General Discussion
    Replies: 0
    Last Post: 12-26-2010, 07:02 AM
  4. Problem with usb Expansion card
    By Depth08 in forum OpenCockpits General Discussion
    Replies: 4
    Last Post: 11-03-2010, 03:11 PM
  5. Im in trouble..card not recognised
    By gokhotit in forum Phidgets & Cockpit Simulator Builder
    Replies: 4
    Last Post: 02-24-2005, 06:11 PM