This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

LAUNCHXL-CC2650: HID Keyboard letter not working?

Part Number: LAUNCHXL-CC2650
Other Parts Discussed in Thread: CC2650

Hi,

    I am using the hid_emu_kbd_cc2650em_app doing a 4 x 4 BLE Keypad. So, far for my tests I am able to output number 1 - 3. But for Keyboard Letters Q, W, E, R, A, S, D, F, Z, X ,C V  there is no output. For testing, I replace the working left and right, with letters G and H. See, code modifications below. But, there is no output at my Laptop PC. I tried several times. The defines HID_KEYBOARD_G and HID_KEYBOARD_H are same at USB HID Usage Tables. This happens at Windows 7 and Windows 10 Laptop PC. Why are there no output? Are the HID values not being recognized?

hidemukbd.c

  if (keys & KEY_LEFT)
  {
    // Key Press.
    //HidEmuKbd_sendReport(HID_KEYBOARD_LEFT_ARROW);
    HidEmuKbd_sendReport(HID_KEYBOARD_G);

    // Key Release.
    // NB: releasing a key press will not propagate a signal to this function,
    // so a "key release" is reported immediately afterwards here.
    HidEmuKbd_sendReport(KEY_NONE);
  }

  if (keys & KEY_RIGHT)
  {
    // Key Press.
    //HidEmuKbd_sendReport(HID_KEYBOARD_RIGHT_ARROW);
    HidEmuKbd_sendReport(HID_KEYBOARD_H);

    // Key Release
    // NB: releasing a key press will not propagate a signal to this function,
    // so a "key release" is reported immediately afterwards here.
    HidEmuKbd_sendReport(KEY_NONE);
  }

- kel

  • Can you provide sniffer log, so we can see if there is actually data send over the air?
  • Hi Christin,

        My BLE USB Dongle firmware already changed to work for BLE Device Monitor and BTool, so I am not able to send packet sniffer capture. From my tests I am able to send numbers to my Laptop PC through Bluetooth connection. However, those letters mentioned in this post, I am not able to send to my Laptop PC through Bluetooth connection. I tried several times. 

    - kel

  • Hi Christin,

    I already program my BLE USB Dongle to work with Packet Sniffer. I am trying to set the Packet Sniffer to capture BLE packets from my TI Launchpad. Where do I get the initiator address? Based from A. Rebel reply the initiator address can be found at Device Information->System ID. I check the System ID and the value is "00000000 00000000". I use SensorTag App.

    e2e.ti.com/.../551441

    - kel
  • Hi,

    I program the original hid_emu_kbd_cc2650em_app to my CC2650 Launchpad and able to output letter a , g, h . So, I guess it is some modification in the code that caused before to not output alphabet letters. What's weird though is that the only significant change I did was this below.

    hidemukbd.c

    static void HidEmuKbd_keyPressHandler(uint8_t keys);

    to

    static void HidEmuKbd_keyPressHandler(uint32_t keys);

    - kel
  • So if you change the HidEmuKbd_keyPressHandler(uint32_t keys); in your program back to original, everything will work?

    Also what you can do is stepping through the code and see how the keys got translated when you do uint32_t
  • Christin Lee said:
    So if you change the HidEmuKbd_keyPressHandler(uint32_t keys); in your program back to original, everything will work?

     I am not 100% sure yet. 

     I think the alphabet letter not displaying happens during CCS->Debug step. But if numbers, what happens when I CCS->Debug step is that the number get printed at the code. I will just learn from this experience.

    - kel