TouchPad 5 Click Board
TouchPad 5 Click Board
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
- Based on the IQS550 - projected capacitive touch and proximity trackpad/touchscreen controller from Azoteq
- Can be used for human-machine interfaces, capacitive keyboards, gesture-based interfaces, remote control trackpads, and more
- mikroBUS: I2C Interface
Overview
The TouchPad 5 Click Board™ is a compact add-on board that easily integrates projected capacitive touch into users' applications. This board features the IQS550, a projected capacitive touch and proximity trackpad/touchscreen controller from Azoteq. Its low power proximity detection allows a low power operation offering a complete touchscreen sensing solution with a 29x23mm trackpad dimension, best-in-class sensitivity, and power consumption. It is characterized by embedded gesture engine recognition for simple gestures (touch and snap on each channel, single- and multi-finger gestures) and built-in noise detection and filtering. This Click board™ is suitable for human-machine interfaces, capacitive keyboards, gesture-based interfaces, remote control trackpads, and more.
The TouchPad 5 Click Board™ is supported by a mikroSDK compliant library, which includes functions that simplify software development. This Click board™ comes as a fully tested product, ready to be used on a system equipped with the mikroBUS™ socket.
How Does The Touchpad 5 Click Board™ Work?
The Touchpad 5 Click Board™ 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 the Click Board's™ 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.
The Touchpad 5 Click Board™ 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.
The Touchpad 5 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 |
Compatibility | mikroBUS |
Click board size | L (57.15 x 25.4 mm) |
Input Voltage | 3.3V |
PINOUT DIAGRAM
This table shows how the pinout of the Touchpad 5 Click Board™ corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Notes | Pin | Pin | Notes | ||||
---|---|---|---|---|---|---|---|
NC | 1 | AN | PWM | 16 | NC | ||
Reset | RST | 2 | RST | INT | 15 | INT | Interrupt |
NC | 3 | CS | RX | 14 | NC | ||
NC | 4 | SCK | TX | 13 | NC | ||
NC | 5 | MISO | SCL | 12 | SCL | I2C Clock | |
NC | 6 | MOSI | SDA | 11 | SDA | I2C Data | |
Power Supply | 3.3V | 7 | 3.3V | 5V | 10 | NC | |
Ground | GND | 8 | GND | GND | 9 | GND | Ground |
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 Board™ as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
The package can be downloaded/installed directly from NECTO Studio The package Manager (recommended), downloaded from our LibStock™ or found on MikroE Github account.
Library Description
This library contains API for the Touchpad 5 Click Board™ 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 the 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 The package Manager (recommended), 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 Information
Depending on the development board you are using, you may need a USB UART Click Board™, 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
The Touchpad 5 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.
Software Support
We provide a library for the Touchpad 5 Click Board™ as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
The package can be downloaded/installed directly from NECTO Studio The package Manager (recommended), downloaded from our LibStock™ or found on MikroE Github account.
Library Description
This library contains API for the Touchpad 5 Click Board™ 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 the 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 The package Manager (recommended), 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 Information
Depending on the development board you are using, you may need a USB UART Click Board™, 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
The Touchpad 5 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.
Frequently Asked Questions
Have a Question?
Be the first to ask a question about this.