Skip to content

USB HID Mouse

Overview

The USB HID Mouse sample demonstrates the use of a USB Human Interface Device (HID) driver by the Zephyr project. This very simple driver enumerates a board with a button into a mouse that has a left mouse button and optionally (depending on the number of buttons on the board) a right mouse button, X-axis movement, and Y-axis movement. If the USB peripheral driver supports remote wakeup feature, wakeup request will be performed on every button click if the bus is in suspended state.

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 Mouse 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-mouse
    
    west build -p always -b imxrt1011_nanokit samples/zephyr/usb/hid-mouse-- -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 mouse named Zephyr HID Mouse.
  3. Press the USR/BT button on the board. Observe that a left mouse click is activated and the Red LED blinks.
  4. 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:

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

    1
    2
    3
    4
    *** Booting Zephyr OS build v3.7.0-189-g988e4cf77094 ***
    [00:00:00.104,000] <inf> usb_hid: Device reset detected
    [00:00:00.174,000] <inf> usb_hid: Device configured
    ...