Key Matrix not working

  • Hello All,


    we are using the NETDCU8 with the following Settings


    reg open \hardware\devicemap\keybd\matrix
    reg set value Type dword 3
    reg open \hardware\devicemap\keybd\matrix\
    reg create key MAP
    reg open \hardware\devicemap\keybd\matrix\MAP
    reg set value 54 dword 28


    and the Matrix Keyboard is working fine.


    With the NETDCUA5(WINCE6.0) we have funktions with the following Settings


    reg open \hardware\devicemap\keybd
    reg create key matrix
    reg set value Type dword 3
    reg set value OutputScanCode dword 1
    reg set value Debug dword 4
    reg open \hardware\devicemap\keybd\matrix\
    reg create key MAP
    reg open \hardware\devicemap\keybd\matrix\MAP
    reg set value 54 dword 28


    Please help, we are running out of NETDCU8 boards and we need asap the NETDCUA5.

  • Hello,


    the latest matrix driver has the advantage that you can select your desired pins for the matrix by registy. So you do not "waste" pins if you need only a 4x5 matrix (type=16) for example, even you can choose the nine pins according your "pleasure" (e.g. exclude i2c pins, ...).


    Please refer "FSVybrid Device Driver Document" for the configuration. New are the keys:
    [HKLM\HARDWARE\DEVICEMAP\KEYBD\MATRIX\COLS]
    [HKLM\HARDWARE\DEVICEMAP\KEYBD\MATRIX\ROWS]
    which contents define the matrix.


    If any problem occure please enable "outputscancode" and come back with your special question to this thread.
    Thanks.

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Hello,


    we test the following Settings


    reg open \hardware\devicemap\keybd
    reg create key matrix
    reg set value Type dword 3
    reg set value OutputScanCode dword 1
    reg set value Debug dword 4
    reg open \hardware\devicemap\keybd\matrix
    reg create key Cols
    reg set value IOCol4 dword 0x11
    reg set value IOCol5 dword 0x12
    reg set value IOCol6 dword 0x13
    reg set value IOCol7 dword 0x14
    reg open \hardware\devicemap\keybd\matrix
    reg create key Rows
    reg set value IORow0 dword 0x09
    reg set value IORow1 dword 0x08
    reg set value IORow2 dword 0x07
    reg set value IORow3 dword 0x06
    reg open \hardware\devicemap\keybd\matrix\
    reg create key MAP
    reg open \hardware\devicemap\keybd\matrix\MAP
    reg set value 54 dword 28


    but in the debug info we have the following output for the keyboard driver


    KBD: Version 1.6, RegKey = HARDWARE\DEVICEMAP\KEYBD\MATRIX
    KBD: Debug = 0x00000004 = 4
    KBD: ColReverse = 0x00000000 = 0 (Default)
    KBD: ChangeRowCol = 0x00000000 = 0 (Default)
    KBD: CheckLastKey = 0x00000000 = 0 (Default)
    KBD: OutputScanCode = 0x00000001 = 1
    KBD: AutoKeyUp = 0x00000000 = 0 (Default)
    KBD: Type = 0x00000003 = 3
    KBD: Cols = 0x00000004 = 4
    KBD: IOCol0 = 0xffffffff = 4294967295 (Default)
    KBD: IOCol0 = 0xffffffff = 4294967295 (Default)
    KBD: IOCol0 = 0xffffffff = 4294967295 (Default)
    KBD: IOCol0 = 0xffffffff = 4294967295 (Default)

    KBD: Rows = 0x00000004 = 4
    KBD: IORow0 = 0x00000009 = 9
    KBD: IORow1 = 0x00000008 = 8
    KBD: IORow2 = 0x00000007 = 7
    KBD: IORow3 = 0x00000006 = 6
    ScanCode: 0036 Map: 0000001c
    KBD: OpenDriverKey RegOpenKeyEx(HLM\MEDICA\Key2Scan) returned 2!!!
    MatrixKeybd: IstLoop started


    It looks that the keyboard driver read the data not correctly for the columns.

  • Hello, please try to start with col 0 ... col n:


    reg set value IOCol0 dword 0x11
    reg set value IOCol1 dword 0x12
    reg set value IOCol2 dword 0x13
    reg set value IOCol3 dword 0x14

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • That works, but are the HEX values are correct?
    I will use
    COLS
    J5 PIN17 -> 0x11 -> COL0
    J5 PIN18 -> 0x12 -> COL1
    J5 PIN19 -> 0x13 -> COL2
    J5 PIN20 -> 0x14 -> COL3
    ROWS
    J5 PIN9 -> 0x09 -> ROW0
    J5 PIN8 -> 0x08 -> ROW1
    J5 PIN7 -> 0x07 -> ROW2
    J5 PIN6 -> 0x06 -> ROW3

  • What does the "Outputscancode" says?


    You have to enter the IO Pin of NetDCUA5, refer the IO Table in the DIO section, sample:
    IOPin 0 = J5.9 -> reg set value IORow0 dword 0 *or* if you want to use J5.8 as IORow0
    IOPin 1 = J5.8 -> reg set value IORow0 dword 1
    ...


    Hope now it is clear.

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.