-
-
Notifications
You must be signed in to change notification settings - Fork 26
gdew027w3T 176x264 (Touch)
This epaper has the same characteristics than gdew027w3 with an added Touch screen from FocalTech systems. This touch layer, that is added on the top of the epaper, has I2C communication and an extra INT pin that is turn low on each touch event. That allows to read from the controlling master board, the touch event ID and also the X and Y coordinates, this makes it a great device to make UX in ESP32.
- Size: 176 * 264, 2.7 inches
- Controller: IL91874
IMPORT: Touch is being implemented and the process behind it is documented in this Wiki page. Is still not ready for production, please keep track of Issue 17 to know when it's ready for production.
The FPC touch cables are like the following table describes
| PIN Description
| 1 | GND
| 2 | INT
| 3 | RST non-used
| 4 | VDD 3.3v
| 5 | SCL
| 6 | SDA
To ensure you have the flat cable in the right position, check that under the Focal Tech micro, down there is a Ground surface. If you check with the tester that pin 1 is connected to ground, then you have the cable in the right position. Take extreme care with this FPC cables they should not be bended with force, at the end everything is connected on the top of the epaper, and it's sensible. If one of this cracks then touch won't work (It happened to me once and the epaper was only usable to display)
Schematics
To try this there is an example in main/demos/demo-touch-epd-implemented.cpp. Make sure to uncomment this in main/CMakeLists.txt and to run:
idf.py menuconfig
And configure your SDA, SCL and INT pins so the program knows about your hardware configuration.
This demo draws four buttons on screen and it let's you rotate the display, at the same rotating the touch, so you can experience how to implement this in your own Firmware. As a base example, this is what is added, to inject Touch in the epaper C++ class
#include "FT6X36.h"
#include <gdew027w3T.h>
// INTGPIO is touch interrupt, goes low when it detects a touch, which coordinates are read by I2C
FT6X36 ts(CONFIG_TOUCH_INT);
EpdSpi io;
Gdew027w3T display(io, ts);
// Note that due to the touch integration this epaper uses a special method to rotate
void app_main(void)
{
printf("CalEPD version: %s\n", CALEPD_VERSION);
// on true for debug
display.init(false);
// displayRotation includes both epaper + touch rotation
display.displayRotation(display_rotation);
}
Feel free to explore more taking a look in the gdew027w3T class where the method displayRotation looks like this
/**
* Helper method to set both epaper and touch rotation
*/
void Gdew027w3T::displayRotation(uint8_t rotation) {
if (rotation>3) {
printf("INVALID rotation value (valid: 0 to 3, got %d) rotation*90\n",rotation);
return;
}
setRotation(rotation);
Touch.setRotation(rotation);
}
FT6X36 is very similar as EpdSpi since it get's "injected" into the Epd class itself
Revision v.1.3 | Firmware for ESP-IDF >= v. 4.3 Documentation written by Fasani Corp.
We are also launching a new company called Marespa.es that will help EU citizens find an affordable apartment in Spain. With the price of Rent going through the roof in 2024, this might be the moment to make an investment, if you plan to work from the spanish coast. With this project we are also supporting our open source projects.