Forum Discussion

Koji_Okuda's avatar
Koji_Okuda
Copper Contributor
Oct 12, 2023

Realization of Arm version Windows10 IoT Enterprise HID over I2C

i.MX 8M Plus EVK board and Windows 10 provided by NXP I have Window10 IoT running using IoT Enterprise BSP.
I would like to use the I2C port of this board to support HID over I2C and use I2C devices such as touchpads, touch panels, temperature sensors, etc. via HID over I2C.

I downloaded ”hid-over-i2c-protocol-spec-v1-0.docx”(microsoft documentation) and read it, but as a result I couldn't understand what to do.
(There are no actual examples...)

What steps should I take to support HID over I2C?


2 Replies

  • Hi Koji,

    The HID over I2C spec describes a protocol between the OS driver and the touch (or other) device. Both the OS and the device need to implement what is described in the HID over I2C spec. There aren't any driver examples for HID over I2C because the driver implementation of the spec is provided inbox in Windows. The device-side implementation would need to be provided by the touchpad, touch panel, etc, vendor in the device's touch controller firmware.

    Are you able to select a touchpad, touch panel, etc, that supports HID over I2C natively in the device's firwmare?
     
    Thanks,
    Anthony
    • Koji_Okuda's avatar
      Koji_Okuda
      Copper Contributor

      anthonychen 

      Thank you for your support on another matter.
      It is possible to select device firmware that supports HID over I2C.

      I would like to tell you about the current situation with NXP's iMX8mp reference board.

      I created a BR24L01A-W (I2C EEPROM) test application by reusing BusTools I2CTestTool at the following URL.
      https://github.com/microsoft/Windows-iotcore-samples/tree/develop/BusTools/I2cTestTool

      It didn't work at first, but by making the modifications in the URL below, I was able to confirm that I could read and write to BR24L01A-W (I2C EEPROM) normally.
      https://community.nxp.com/t5/i-MX-Processors/Windows10-IoT-Enterprise-W21H2-1-4-1-How-to-support-HID-over-I2C/m-p/1745032#M214602

      From the above, I have confirmed that the I2C driver built into NXP's BSP works without problems.
      I think one interrupt is required to support HID over I2C.
      I plan to provide separate support for this as well by modifying the reference board and modifying the firmware software.

      Is there any touch panel device etc. that can easily check the operation of HID over I2C in the Arm version?

      If so, there is no problem in answering using that device as an example.


      Best Regards,
      Koji Okuda

Resources