To communicate with Neonode Touch Sensor Module, you need two things: to send/receive messages and to encode/decode the messages.

The sending and receiving can be done in one of the following ways:

  • USB HID Touch Digitizer: the sensor module can be used as a standard HID Touch Digitizer to report touch data to the OS. 
  • USB RAW HID: The sensor module uses HID Get and Set Feature Reports as a pipe to read and write. For more information, refer to USB HID Transport
  • I2C transport: The sensor module has support for I2C communication with an extra pin for signaling when data is ready to be read, which allows the host system to be interrupt driven. The sensor module takes the role of an I2C slave and has the I2C address 0x50. For more information, refer to I2C Transport.

For the encoding/decoding, you need to understand the structure of the messages and the protocol that is used to serialize them: 

The structure of the sensor messages is defined in ASN.1 notation. ASN.1 is a standardized way (ISO/IEC 8824) to describe data regardless of language implementation, hardware system and operation system. For more information, refer to zForce Message Specification.

The zForce communication protocol uses the Distinguished Encoding Rules (DER) to serialize messages. For more information, refer to Understanding the zForce ASN1 Protocol.