#PineDio Stack's CST816S Touch Panel is a peculiar I2C Device ... It won't respond to I2C Scan unless we tap the screen and wake it up!
Tapping the screen on #PineDio Stack #BL604 ... Correctly triggers a GPIO Interrupt on #NuttX RTOS! 🎉
https://github.com/lupyuen/cst816s-nuttx#test-gpio-interrupt
LVGL Test App calls read() repeatedly on #PineDio Stack's Touch Panel Driver to get Touch Data ... But it should call poll() instead to block on Touch Data 🤔
But for Touch Up Events the Touch Coordinates are invalid ... Our #PineDio Stack driver patches the Touch Coordinates with the data from the last Touch Down Event
#PineDio Stack's CST816S Touch Panel seems elusive ... Thanks to PineTime we know everything now!
https://lupyuen.github.io/articles/touch?2#cst816s-touch-panel
What's inside a #NuttX Touchscreen Driver
https://lupyuen.github.io/articles/touch?4#nuttx-touchscreen-drivers
Initialising the Touch Panel Driver on #PineDio Stack #BL604
https://lupyuen.github.io/articles/touch?8#initialise-driver
Testing the GPIO Interrupt that's triggered ... When we tap #PineDio Stack's CST816S Touch Panel
https://lupyuen.github.io/articles/touch?10#test-gpio-interrupt
Our #NuttX Driver for #PineDio Stack's Touch Panel returns 4 possible states: Touch Down vs Touch Up, Valid vs Invalid
https://github.com/lupyuen/cst816s-nuttx#read-touch-data