

The Cirque Touchpad is a touch-sensitive input device designed to detect the position and movement of a user's finger. It enables precise control of a cursor on a screen, making it an essential component in modern user interfaces. This touchpad is widely used in laptops, embedded systems, and custom electronics projects where intuitive input is required.








The Cirque Touchpad is a versatile component with the following key specifications:
| Parameter | Value |
|---|---|
| Operating Voltage | 3.3V or 5V |
| Communication Protocol | I2C, PS/2, or SPI |
| Active Area Size | Varies by model (e.g., 40mm x 30mm) |
| Resolution | Up to 1000 DPI |
| Multi-Touch Support | Yes (depending on the model) |
| Operating Temperature | -20°C to 70°C |
| Power Consumption | Low power (varies by usage) |
The Cirque Touchpad typically has the following pin configuration (specific models may vary):
| Pin | Name | Description |
|---|---|---|
| 1 | VCC | Power supply input (3.3V or 5V) |
| 2 | GND | Ground connection |
| 3 | SDA | I2C data line (or MOSI for SPI) |
| 4 | SCL | I2C clock line (or SCK for SPI) |
| 5 | INT | Interrupt output for touch detection |
| 6 | RST | Reset pin (optional, used to reset the touchpad) |
| 7 | PS/2_CLK | Clock line for PS/2 communication (if applicable) |
| 8 | PS/2_DATA | Data line for PS/2 communication (if applicable) |
Below is an example of how to interface the Cirque Touchpad with an Arduino UNO using I2C:
#include <Wire.h> // Include the Wire library for I2C communication
#define TOUCHPAD_ADDR 0x2A // Replace with the touchpad's I2C address
void setup() {
Wire.begin(); // Initialize I2C communication
Serial.begin(9600); // Start serial communication for debugging
// Optional: Reset the touchpad
pinMode(7, OUTPUT); // Assuming RST is connected to pin 7
digitalWrite(7, LOW);
delay(10); // Hold reset low for 10ms
digitalWrite(7, HIGH);
Serial.println("Touchpad initialized.");
}
void loop() {
Wire.beginTransmission(TOUCHPAD_ADDR); // Start communication with the touchpad
Wire.write(0x00); // Request data (register address may vary by model)
Wire.endTransmission();
Wire.requestFrom(TOUCHPAD_ADDR, 4); // Request 4 bytes of data
if (Wire.available() == 4) {
int x = Wire.read(); // Read X-coordinate (low byte)
x |= Wire.read() << 8; // Read X-coordinate (high byte)
int y = Wire.read(); // Read Y-coordinate (low byte)
y |= Wire.read() << 8; // Read Y-coordinate (high byte)
Serial.print("X: ");
Serial.print(x);
Serial.print(", Y: ");
Serial.println(y);
}
delay(100); // Delay to avoid overwhelming the serial monitor
}
No Response from the Touchpad
Touchpad Not Detected on I2C Bus
Erratic Cursor Movement
Interrupt Pin Not Triggering
Q: Can the touchpad detect multiple fingers?
A: Yes, some Cirque Touchpad models support multi-touch functionality. Refer to the specific model's datasheet for details.
Q: What is the maximum cable length for I2C communication?
A: The maximum length depends on the pull-up resistor values and the operating frequency. Typically, it is recommended to keep the cable length under 1 meter for reliable communication.
Q: Can I use the touchpad with a Raspberry Pi?
A: Yes, the touchpad can be interfaced with a Raspberry Pi using I2C, SPI, or PS/2 communication. Ensure the appropriate libraries and drivers are installed.
Q: How do I clean the touchpad surface?
A: Use a soft, lint-free cloth slightly dampened with water or isopropyl alcohol. Avoid using abrasive materials or harsh chemicals.