Expand description
§FT6336U Capacitive Touch Controller Driver
A platform-agnostic driver for the FT6336U capacitive touch controller using the
embedded-hal I2C traits.
§Features
- No
stddependency - works in embedded environments - Uses
embedded-halI2C traits for portability - Support for up to 2 simultaneous touch points
- Gesture detection capabilities
- Configurable power modes and scan rates
- Comprehensive register access
§Quick Start
use ft6336u_driver::FT6336U;
// Create the driver with your I2C peripheral
let mut touch = FT6336U::new(i2c);
// Scan for touch events
let touch_data = touch.scan().unwrap();
if touch_data.touch_count > 0 {
let point = &touch_data.points[0];
println!("Touch at ({}, {})", point.x, point.y);
}§Hardware Integration
The FT6336U communicates over I2C at address 0x38. It requires:
- An I2C bus connection (SDA/SCL)
- A reset pin (typically controlled by GPIO or GPIO expander)
- An interrupt pin (optional, for event-driven operation)
§Interrupt-Driven Operation
For optimal power efficiency, configure the touch controller’s interrupt pin and use it to trigger touch scans only when needed:
use ft6336u_driver::{FT6336U, GestureMode};
let mut touch = FT6336U::new(i2c);
// Enable interrupt mode
touch.write_g_mode(GestureMode::Trigger).unwrap();
// In your interrupt handler:
// let data = touch.scan().unwrap();Structs§
- FT6336U
- FT6336U capacitive touch controller driver with async I2C interface
- Touch
Data - Complete touch data including up to 2 touch points
- Touch
Point - A single touch point with coordinates and status
Enums§
- Ctrl
Mode - Control mode for power management
- Device
Mode - Device operating mode
- Error
- Errors that can occur during FT6336U operations
- Gesture
Mode - Gesture mode (interrupt trigger configuration)
- Touch
Status - Touch event status for a single touch point
Constants§
- ADDR_
ACTIVE_ MODE_ RATE - Active mode report rate register address
- ADDR_
CHIP_ ID - Chip ID register address
- ADDR_
CTRL - Control mode register address
- ADDR_
DEVICE_ MODE - Device mode register address
- ADDR_
DISTANCE_ LEFT_ RIGHT - Gesture distance left/right register address
- ADDR_
DISTANCE_ UP_ DOWN - Gesture distance up/down register address
- ADDR_
DISTANCE_ ZOOM - Gesture distance zoom register address
- ADDR_
FILTER_ COE - Filter coefficient register address
- ADDR_
FIRMWARE_ ID - Firmware ID register address
- ADDR_
FOCALTECH_ ID - Focaltech ID register address
- ADDR_
GESTURE_ ID - Gesture ID register address
- ADDR_
G_ MODE - Gesture mode register address
- ADDR_
LIBRARY_ VERSION_ H - Library version high byte register address
- ADDR_
LIBRARY_ VERSION_ L - Library version low byte register address
- ADDR_
MONITOR_ MODE_ RATE - Monitor mode report rate register address
- ADDR_
OFFSET_ LEFT_ RIGHT - Gesture offset left/right register address
- ADDR_
OFFSET_ UP_ DOWN - Gesture offset up/down register address
- ADDR_
POWER_ MODE - Power mode register address
- ADDR_
RADIAN_ VALUE - Gesture radian value register address
- ADDR_
RELEASE_ CODE_ ID - Release code ID register address
- ADDR_
STATE - Device state register address
- ADDR_
TD_ STATUS - Touch detection status register address
- ADDR_
THRESHOLD - Touch detection threshold register address
- ADDR_
TIME_ ENTER_ MONITOR - Time to enter monitor mode register address
- ADDR_
TOUC H1_ EVENT - Touch point 1 event register address
- ADDR_
TOUC H1_ ID - Touch point 1 ID register address
- ADDR_
TOUC H1_ MISC - Touch point 1 miscellaneous data register address
- ADDR_
TOUC H1_ WEIGHT - Touch point 1 weight register address
- ADDR_
TOUC H1_ X - Touch point 1 X coordinate register address
- ADDR_
TOUC H1_ Y - Touch point 1 Y coordinate register address
- ADDR_
TOUC H2_ EVENT - Touch point 2 event register address
- ADDR_
TOUC H2_ ID - Touch point 2 ID register address
- ADDR_
TOUC H2_ MISC - Touch point 2 miscellaneous data register address
- ADDR_
TOUC H2_ WEIGHT - Touch point 2 weight register address
- ADDR_
TOUC H2_ X - Touch point 2 X coordinate register address
- ADDR_
TOUC H2_ Y - Touch point 2 Y coordinate register address
- COORD_
UD - Coordinate up/down flag
- I2C_
ADDR - FT6336U I2C address
- PRES_
DOWN - Touch press down flag