Introduction

This page describes the parameters currently available in the Touch Sensor Module Firmware 1.55 and Neonode Touch Sensor Module Firmware 2.0 (NTSMF 2.0). The parameter "Scanning Range" is only available from NTSMF 2.0 through zForce Programmer.

The parameters described in this document can be adjusted by changing the Touch Sensor Modules configuration. These parameters can be configured using Neonode Workbench, an application using zForce SDK, Arduino Library (I2C) or zForce Programmer. The parameters that have been configured using either Neonode Workbench, zForce SDK or Arduino Library, are stored in the RAM memory, meaning that the new configuration will have to be re-applied after each reboot. If the parameters are instead configured using zForce Programmer, the parameters will not have to be re-applied after each reboot.

Known issues

Double click prevention with floating protection filter enabled

Double click prevention might not work as expected for fast clicks due to interference from the floating protection filter. In those cases it is recommended to disable the floating protection filter.


The summary of the parameters and their units:

Configuration

Range

Measurement

Default

Description

I2C settingsConfigures I2C on the TSM
Address8 to 119 (0x8 to 0x77)7-bit value80 (0x50)The I2C address for the TSM. NOTE: Addresses 0-7 and 120-127 are I2C reserved addresses and should not be used.
System EnabledConfigures the startup state of the TSM
System EnabledTrue/FalseBooleanTrueEnables or disables the TSM
Operation ModeConfigures the default operation mode
detectionTrue/FalseBooleanTrueOperation mode ASN.1 over either I2C or USB Raw HID
detectionHIDTrue/FalseBooleanTrueOperation mode USB HID
Range SettingsSets the scanning range dynamically
Scanning Range

Mechanical Data

10-1·mm

Mechanical Data (col. B * 10)

The area (width and height) the Touch Sensor Module (TSM) will scan for an object with lasers and photodiodes (PD). 

This value also sets the limit for High Y (Max Y) below.

Frequency SettingsChanges the Touch Sensor Modules update frequency
Idle FrequencyFrequencyHz33Scanning frequency when the Touch Sensor Module has not registered any touch object.
Finger Frequency
Frequency
Hz100Scanning frequency when the Touch Sensor Module has registered and tracking a touch object.
Touch Active Area AdjustmentsContains settings for modifying the active touch area and the reported touch coordinates

Low Bound X (Min X)

Mechanical Data

10-1·mm

36

Start position of the Touch Active Area (TAA) in X-direction. Low X, High X, Low Y & High Y make up the TAA. 

Low Bound Y (Min Y)

Mechanical Data

10-1·mm

0

Start position of the Touch Active Area (TAA) in Y-direction. Low X, High X, Low Y & High Y make up the TAA. 

High Bound X (Max X)

Mechanical Data

10-1·mm

Mechanical Data (col. A * 10) + 36

End position of the Touch Active Area (TAA) in X-direction. Low X, High X, Low Y & High Y make up the TAA. 

High Bound Y (Max Y)

Mechanical Data

10-1·mm

Mechanical Data (col. B * 10)

End position of the Touch Active Area (TAA) in Y-direction. Low X, High X, Low Y & High Y make up the TAA. 

Reverse X

True/False

Boolean

False

Reverses the X-coordinates of reported touches. Note, that the origin of the vast majority of the displays is in the top left corner.

Reverse Y

True/False

Boolean

False

Reverses the Y-coordinates of reported touches. Note, that the origin of the vast majority of the displays is in the top left corner.

Flip XY

True/False

Boolean

False

Swaps the Y- with the X-coordinates of the reported touches.

Offset X

Mechanical Data

10-1·mm

0

Offsets the projected TAA in X-direction, on the display.

Offset Y

Mechanical Data

10-1·mm

0

Offsets the projected TAA in Y-direction, on the display.

HID Display SizeThe size of the display reported by the Touch Sensor Module to the host. Only usable when connecting with USB HID

Hid Display Size X

Mechanical Data

10-1·mm

Mechanical Data (col. A * 10)

Width of the physical display. It is very important to set this parameter correct since the TSM will report touch coordinated in percentage of the physical display length/height.

Hid Display Size Y

Mechanical Data

10-1·mm

Mechanical Data (col. B * 10)

Height of the physical display. It is very important to set this parameter correct since the TSM will report touch coordinated in percentage of the physical display length/height.

SnappingConfigure the snapping area around the edges of the Touch Active Area (TAA)
EnabledTrue/FalseBooleanFalseEnables or disables the snapping filter.
Left InnerMechanical Data10-1 mm0Distance from edge to the inner snapping edge, left side of TAA.
Left OuterMechanical Data10-1 mm0Distance from edge to the outer snapping edge, left side of TAA.
Right InnerMechanical Data10-1 mm0Distance from edge to the inner snapping edge, right side of TAA.
Right OuterMechanical Data10-1 mm0Distance from edge to the outer snapping edge, right side of TAA.
Top InnerMechanical Data10-1 mm0Distance from edge to the inner snapping edge, top side of TAA.
Top OuterMechanical Data10-1 mm0Distance from edge to the outer snapping edge, top side of TAA.
Bottom InnerMechanical Data10-1 mm0Distance from edge to the inner snapping edge, bottom side of TAA.
Bottom OuterMechanical Data10-1 mm0Distance from edge to the outer snapping edge, bottom side of TAA.
Click On TouchConfigures the Touch Sensor Module to send an Up (touch event) after Down within a defined threshold to create an instant touch experience
Enabled

True/False

Boolean

FalseEnables and disables the Click On Touch Feature
Time To Up
ms100Time from the Down event until the Up event is sent.
Distance
10-1·mm100Distance from the initial location that a touch must stay within for Click On Touch to be enabled for a touch
Floating Protection SettingsWait for the object to stabilize on the Y-axis, in order to identify the position of the object in a reliable way. This parameter should not be set at the same time as Double-Click Prevention is turned on.
Enabled

True/False

Boolean

TrueFloating protection enabled.
Floating Protection Time
ms40Time to wait before reporting touch registration.
Double-Click Prevention Settings

Configuration of the filter prevention area and timeout. This parameter should not be set at the same time as Floating Protection is turned on.
EnabledTrue/FalseBooleanFalseEnables or disables the double-click prevention filter.
Prevention Time>0ms500The time period when no additional touches will be reported in prevention area.
Prevention Radius>010-1 mm220The radius of the area around the touch defining area where touches are suppressed.
Object Size RestrictionsOnly reports touches with an object size that is within the defined limits

Max Size Enabled

True/False

Boolean

False

Allows a maximum touch object size.

Max Size

Mechanical Data

10-1·mm0

Max limitation of a touch object (if Max Size Enabled =True).

Min Size Enabled

True/False

Boolean

False

Allows a minimum touch object size.

Min Size

Mechanical Data

10-1·mm0

Min limitation of a touch object (if Min Size Enabled =True).

Miscellaneous Settings

Number Of Reported Touches

1-10 touches

Quantity

2

The number of touches that can be reported simultaneously.

Reflective Edge Filter

True/False

Boolean

FalseUseful when there is a risk that there are highly reflective materials right outside the active touch area

Scanning Range

Scanning Range defines the Scanning Area of the sensor. For the definition of Scanning Area, refer to TSM - Definitions. This setting can only be changed through the zForceProgrammer. The Scanning Range can be set to a lower ((shorter range) value. It can also be set to a higher value than the default if the TSM FirmWare (FW) allows Extended or Maximum Range in Y-axis. As default the Scanning Range is set to a Default Range, see Mechanical Data, Table 1 for the values.

Scanning Range parameter can be saved in .json configuration file and then written/flashed back to the sensor. The parameter is called Peak Count 

and has the following correlation with the Scanning Range:

Scanning RangePeak Count
1493
2984
4475
5966
7457
8948
10439
119210
134011
148912
163813
178714
193615
208516
223417
238318
253219
268120
283021
297922
312823
327724


Frequency Settings

The frequency parameters set the various scanning frequencies. The maximum scanning frequencies are depending on the product variant.

Finger Frequency

Activated when objects with characteristics matching regular fingers are detected.

Idle Frequency

Activated when no objects are detected in order to minimize power usage.

Touch Active Area Adjustments

Touch Active Area is the selected (configured) area of the Scanning Area that the TSM will report touches from (TSM - Definitions).

Axis Orientation

When mapping a reported touch from the Touch Active Area (TAA) to a display, it is important that the orientation of the TAA, as well as the display are taken into account. When positioning a Touch Sensor Module over a display to achieve touch functionality, both systems needs to be co-aligned in order for a reported touch to be projected in the same corresponding position of the screen. If both systems are not oriented in the same way, the reported touches are going to be reversed depending of the setup. Luckily, the orientation of the reported touches can be configured to counter this by using ReverseX/ReverseY or FlipXY in Device Configuration. These settings rotates or flips the given coordinates of the reported touches, which allows the Touch Sensor Module to be mounted at any of the 4 sides of the screen 

Almost all displays have a reference point (or origin) positioned in the upper left corner of the screen, where the Y-axis points in the direction to the right, with the Y-axis pointing downwards. The origin of the Touch Sensor Module's Touch Active Area is positioned on the left hand side, when having the TAA facing downwards, with the black side of the Touch Sensor Module facing outwards.

This means that if a Touch Sensor Module is positioned above a display, with the black side facing outwards, and its TAA covering the screen - both coordinates systems would be co-aligned and a reported touch would project on the display seamlessly. But if we were to flip the Touch Sensor Module to cover the screen from underneath the display, a reported touch would appear to be reversed in y-direction since their coordinate systems would no longer be co-aligned, as illustrated below.




Touch Active Area Size

The Low or High Bound of the X- or Y-axis can be configured in order to make a Touch Active Area (TAA) smaller, so called Selected Touch Active area.  These values and dimensions apply to the Scanning Area of the Touch Sensor Module (TSM). This limits the interactive area, and touches would only be reported within the limited TAA.

This limited/selected TAA is measured from its origin, in the range of Low Bound and High Bound, in X- or Y-directions (in the picture below Y origin coordinate is reversed) :




Where,

  • Lower Bound X - Start position of the TAA in x-direction, measured from the origin of the TAA.
  • Upper Bound X - End position of the TAA in x-direction, measured from the origin of the TAA.
  • Lower Bound Y - Start position of the TAA in y-direction, measured from the origin of the TAA.
  • Upper Bound Y - End position of the TAA in y-direction, measured from the origin of the TAA.

When projecting a TAA to a display within the host system, the projected TAA would then be mapped to the display's origin, regardless of its position (as shown in the illustration below).

Example:

If Low Bound X is set to 1000 (x 10-1·mm), then no touches performed from 0 to 100 mm along the Touch Sensor Module X-axis will be reported. Note, the coordinates are given in tenths of millimeters.

Reverse X and Y

Reverse X or reverses the coordinates of a reported touch in X- or Y-direction, without affecting the orientation of the Touch Active Area. When positioning a Touch Sensor Module, the axes of the Touch Active Area should either be positioned in the same orientation as the display, or have the reported touch coordinates adjusted. Please consider the following example.


Flip XY 

Flip XY swaps the X- with the Y-axis of the reported touches, without affecting the orientation of the Touch Active Area. When swapping axes, the reported touch data would then be sent to the host system containing the new x- and y coordinates. 

FlipXY together with ReverseX/Y can be used together which allows the Touch Sensor Module to be positioned around all edges of a display. When positioning a Touch Sensor Module, the axes of the Touch Active Area should either be positioned in the same orientation as the display, or have the reported touch coordinates adjusted. Please consider the following example.


Offset X and Y

Offset X or Y moves the position of the origo (X and/or Y) further with the given Offset value, moving in that way the whole Touch Active Area in one or both directions. When adding the offset to a TAA, the position of the projected TAA will then be moved according to the following illustration.



Example:

If Offset X is set to 1000 (x 10-1·mm), then all the touches performed from 0 to 100 mm along the Touch Sensor Module will be reported unlike the Low Bound X set to 100 (x 10-1·mm). But all of the touches in the origin of the TSM (0,0) will be seen/reported as (1000, 0). Note, the coordinates are given in tenths of millimeters.

Hid Display Size X and  Y

Hid Display Size X or Y represent the width and height of a display in the host system. Hid Display Size is used to scale the reported touches onto the display. The default Hid Display Size values are set to match the size of the Touch Sensor Module's Touch Active Area, creating a proportional mapping regardless of the display size.

Proportional Mapping

When Hid Display Size is set to the size of the Touch Active Area, the mapping of a reported touch would get projected proportionally, to fit the size of the display.

For instance, if a display within the host system is larger than the TAA, a reported touch will get projected according to the illustration below.



Selected Touch Area

It is possible to create a Touch Area, where only a part of the display have touch functionality, so-called Selected Touch Area of the physical display.

For instance, if a Touch Sensor Module is positioned over a larger display, not covering the whole screen, we can create a touch area over that specific part of the screen. Please refer to Selected Touch Area for further information and examples.


Snapping Filter

The purpose of the snapping filter is to deliver stable touches along the edges of the configured TAA which is smaller or equal to the full scanning area.

When the snapping filter is enabled, an outer- and inner distance to the edge of the scanning area can be configured. It can be configured for the left, right, top and bottom edge of the scanning area with the unit of 10-1 mm. When a touch is detected between the inner- and outer distance regions, the reported touch location is snapped to the edge of the configured touch area.


Click On Touch

The click on touch parameters gives the option to make the Touch Sensor Module report a click event upon entering the touch field as opposed to report a click event when an object leaves the touch field. This is useful when using the Touch Sensor Module in a contactless touch implementation, and gives more rapid feedback to the user.

Click on Touch Enabled

Enables or disables click on touch.

Time to Up

Time from the down event until the up event is sent. Setting this to 0 completely disables the possibility to do swiping gestures (or drawing). Setting this to e.g 100 ms gives the end user 100 ms to move outside of the set Distance (described below) and begin the swipe gesture instead. 

Distance

This value sets the minimum range that the touch object has to move before starting a swipe gesture.

Floating Protection

The floating protection parameter gives the option to modify or disable one of the touch recognition filters that are available in the Touch Sensor Module.

Floating Protection Enabled

This is a Boolean value that completely disables or enables this filter.

Floating Protection Time

This value indicates how long this filter would need to validate the first reported touch. Default value is 40 ms. With a lower value the risk increases that a false touch would be reported, and the opposite with a higher value.

Known issues:

Double click prevention might not work as expected for fast clicks due to interference from the floating protection filter. In those cases it is recommended to disable the floating protection filter.

Double-Click Prevention Filter

The purpose of the filter is to allow a user to be non-distinct in the interaction with the system. Even if the touch detection is lost for a short period of time, the system can consider it to be an existing touch in order to handle situations where the user unintentionally loose the touch, for example if the TSM is used in a contactless application such as a self ordering kiosk.

The filter is designed to prevent multiple touches within a defined area for a short period of time. Both the prevention radius (10-1 mm) and the prevention time (ms) are configurable parameters.



When enabled the system will define a prevention area for each touch and will not react to additional touches in those areas until the prevention time has expired. This way undesired double-clicks can be prevented for a certain area while maintaining quick response times outside of the prevention areas on the TAA.

Known issues:

Double click prevention might not work as expected for fast clicks due to interference from the floating protection filter. In those cases it is recommended to disable the floating protection filter.

Object Size Restrictions

Only reports touches with an object size that is within the defined limits.

Number of reported touches

The number of touches that can be reported simultaneously. For example, setting this to 5 will make the sensor report up to 5 simultaneous touches.

Reflective Edge Filter

This is a Boolean value to disable or enable the reflective edge filter. This filter is useful when there is a high risk that there will be a highly reflective materials right outside the Touch Active Area. In the presence of such materials there is a risk that the Touch Sensor Module will report it as a touch within Touch Active Area. An example of a highly reflective material could be a white paper or something similar.