Skip to content

USB HID Keyboard

Overview

The USB HID Keyboard sample demonstrates the HID keyboard implementation using Zephyr's USB Human Interface Device (HID) driver. Pressing the USR/BT button on the board emulates a Caps Lock key Caps Lock press. The Red LED is used to indicate the state of Caps Lock Caps Lock.

Requirements

Before you start, check that you have the required hardware and software:

Building the sample

Before you start building, remember to set up the environment first.

Use the following steps to build the USB HID Keyboard sample on the command line.

  1. Open a terminal window.

  2. Go to zephyrproject/imxrt1011-nanokit directory created in the Setting up the environment section.

    cd zephyrproject/imxrt1011-nanokit
    
  3. Build the sample using the west build command, specifying the board (following the -b option) as imxrt1011_nanokit. To build the sample when working without the UF2 Bootloader, specify -DEXTRA_CONF_FILE=overlay-nouf2.conf.

    west build -p always -b imxrt1011_nanokit samples/zephyr/usb/hid-keyboard
    
    west build -p always -b imxrt1011_nanokit samples/zephyr/usb/hid-keyboard -- -DEXTRA_CONF_FILE=overlay-nouf2.conf
    

    Tip

    The -p always option forces a pristine build, and is recommended for new users. Users may also use the -p auto option, which will use heuristics to determine if a pristine build is required, such as when building another sample.

  4. After running the west build command, the build files can be found in build/zephyr.

Flashing the firmware

The sample works with/without the UF2 Bootloader. The firmware can be found in build/zephyr.

To flash the firmware, complete the following steps:

  1. Plug your board into the USB port of your computer.
  2. Double-click the RST button to enter UF2 Bootloader mode.
  3. The board will mount as a Mass Storage Device called UF2BOOT and the Red LED blinks slow.
  4. Drag and drop build/zephyr/zephyr.uf2 onto the UF2BOOT volume. The RGB LED blinks red fast during flashing.
  5. Press RST button on the board and the sample will start running.
  1. Push and hold the USR/BT button and plug your board into the USB port of your computer.
  2. Follow Generating bootable image section to convert build/zephyr/zephyr.hex into a bootable image.
  3. Follow Writing the bootable image section to flash the firmware.
  4. Press the RST button on the board and the sample will start running.

Testing

After flashing the firmware to your board, complete the following steps to test it:

  1. Connect iMX RT1011 Nano Kit to your computer using the USB-C Cable.
  2. The board will be detected as a HID keyboard named Zephyr HID Keyboard.
  3. Press USR/BT button on the board and you can see the Caps Lock Caps Lock on your computer activated and the Red LED turns on.
  4. Press USR/BT button again and you can see the Caps Lock Caps Lock deactivated and the Red LED turns off.
  5. Open up a serial terminal, specifying the correct serial port that your computer uses to communicate with the board:

    Open up a terminal and run:

    screen <serial-port-name> 115200
    
    1. Start PuTTY.
    2. Configure the correct serial port and click Open:

  6. Observe the output of the terminal. You should see the output, similar to what is shown in the following:

    *** Booting Zephyr OS build v3.7.0-189-g988e4cf77094 ***
    [00:00:00.000,000] <inf> main: HID keyboard sample is initialized
    [00:00:00.105,000] <inf> usb_hid: Device reset detected
    [00:00:00.177,000] <inf> usb_hid: Device configured
    [00:00:04.662,000] <inf> main: Report sent:
                                00 00 39 00 00 00 00 00                          |..9.....
    [00:00:04.886,000] <inf> main: Report sent:
                                00 00 00 00 00 00 00 00                          |........
    [00:00:06.390,000] <inf> main: Report sent:
                                00 00 39 00 00 00 00 00                          |..9.....
    [00:00:06.582,000] <inf> main: Report sent:
                                00 00 00 00 00 00 00 00                          |........
    ...