How does it work?
Touchpad 5 Click as its foundation uses the IQS550, a projected capacitive touch and proximity trackpad/touchscreen controller from Azoteq. The IQS550 offers high sensitivity proximity wake-up and contact detection (touch) through many I2C-controllable sensor lines. Its advanced on-chip signal processing capabilities provide stable high performance with high sensitivity. Also, multiple filters are implemented to detect and suppress noise, track slow varying environmental conditions, and avoid the effects of possible drift. The IQS550 controller is very flexible, providing numerous outputs such as proximity, touch, snap, touch strength, area, and actual finger position, all in one solution.
On Click boards™ front side, a clearly defined field represents a touchpad area. This area is a matrix of conductive electrodes on the PCB, electrically isolated from each other, arranged as rows and columns of X and Y in a dimension of 29x23mm. An electrode consists of multiple diamond-shaped elements connected to the next with a conductive neck.
The controller uses the principle of projected capacitance charge transfer on the trackpad. When a conductive object such as a human finger approaches the sense pad, it will decrease the detected capacitance. Thresholds are applied to the sensor data to identify proximity and touch deviation areas. The contours of the touch areas are then translated to Cartesian position coordinates that are continuously monitored to recognize gestures. A user has access to all of the data layers – the raw sensor data, the sensor proximity/touch status data, the XY coordinates, and the gesture outputs.
Touchpad 5 Click communicates with MCU using the standard I2C 2-Wire interface with a maximum clock frequency of 400kHz, fully adjustable through software registers. An additional ready signal, routed on the INT pin of the mikroBUS™ socket, is added, which indicates when the communication window is available with new data for optimal response. Thus, it is optimal for the response rate to use the INT pin as a communication trigger. Alongside this pin, this Click board™ has a Reset feature routed to the RST pin on the mikroBUS™ socket, which with a low logic level, puts the module into a Reset state, and with a high level, operates the module normally.
This Click board™ can be operated only with a 3.3V logic voltage level. The board must perform appropriate logic voltage level conversion before using MCUs with different logic levels. However, the Click board™ comes equipped with a library containing functions and an example code that can be used, as a reference, for further development.
Specifications
Type
Capacitive
Applications
Can be used for human-machine interfaces, capacitive keyboards, gesture-based interfaces, remote control trackpads, and more
On-board modules
IQS550 – projected capacitive touch and proximity trackpad/touchscreen controller from Azoteq
Key Features
Proximity, touch and snap on each channel, multi-touch support up to 5 fingers, single and multi-finger gestures, high performance with high sensitivity, I2C interface, and more
Interface
I2C
Feature
No ClickID
Compatibility
mikroBUS™
Click board size
L (57.15 x 25.4 mm)
Input Voltage
3.3V
Pinout diagram
This table shows how the pinout on Touchpad 5 Click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Onboard settings and indicators
Label | Name | Default | Description |
---|---|---|---|
LD1 | PWR | – | Power LED Indicator |
Touchpad 5 Click electrical specifications
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Supply Voltage | – | 3.3 | – | V |
Operating Temperature Range | -40 | +25 | +85 | °C |
Software Support
We provide a library for the Touchpad 5 Click as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Package can be downloaded/installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe github account.
Library Description
This library contains API for Touchpad 5 Click driver.
Key functions
-
touchpad5_get_touch
This function get touch XY data. -
touchpad5_get_status
This function get status proximity, touch or snap data. -
touchpad5_wait_ready
This function waits for the communication window to be available.
Example Description
This example demonstrates the use of Touchpad 5 Click board™ by utilizing the touchpad XY and snap functionalities.
void application_task ( void )
{
// Busy wait for communication window availability
touchpad5_wait_ready( &touchpad5 );
// Get touchpad XY data
touchpad5_get_touch( &touchpad5, &touch_data );
// Detecting the snap (click) criteria
if ( touchpad5_detect_snap( &touchpad5, snap_buffer, SNAP_BUFFER_SIZE, &snap_reference) && touch_data.touch_strength > 0 )
{
log_printf( &logger, "----------------------------------------------------------------rn" );
log_printf( &logger, "rn* Snap (click) event occured with strength: %u *rn",
( uint16_t ) touch_data.touch_strength );
log_printf( &logger, "----------------------------------------------------------------rn" );
Delay_ms( 100 );
}
// Detecting the touch criteria
else if ( touch_data.x_pos > 0 && touch_data.y_pos > 0 && touch_data.touch_strength > TOUCH_STRENGTH_THRESHOLD )
{
log_printf( &logger, "----------------------------------------------------------------rn" );
log_printf( &logger, " rnTouch with Tag ID %u detectedrn", ( uint16_t ) touch_data.id_tag );
log_printf( &logger, "Coordinate X = %u rn", touch_data.x_pos );
log_printf( &logger, "Coordinate Y = %u rn", touch_data.y_pos );
log_printf( &logger, "Touch strength = %u rn", ( uint16_t ) touch_data.touch_strength );
log_printf( &logger, "----------------------------------------------------------------rnrn" );
Delay_ms( 100 );
}
// Monitoring to determine whether the reset occurred on the device after the last ack reset
if ( touch_data.xy_info & TOUCHPAD5_SHOW_RESET )
{
log_printf( &logger, "----------------------------------------------------------------rn" );
log_error( &logger, "rn Unexpected reset occured. rn" );
log_printf( &logger, "----------------------------------------------------------------rnrn" );
}
Delay_ms( 50 );
}
The full application code, and ready to use projects can be installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe github account.
Other Mikroe Libraries used in the example:
- MikroSDK.Board
- MikroSDK.Log
- Click.TouchPad5
Additional notes and informations
Depending on the development board you are using, you may need USB UART click, USB UART 2 Click or RS232 Click to connect to your PC, for development systems with no UART to USB interface available on the board. UART terminal is available in all MikroElektronika compilers.
mikroSDK
This Click board™ is supported with mikroSDK – MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant Click board™ demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.