Hello, I have already used this screen for another project. It’s not an e-ink screen so it would need another dedicated code.
Hello all, I’m considering this solution as well, but want to do a quick check with you if this still is a solution which you advise, since we are already in 2024 now. Thanks
has anybody tried with M5?
Saw a few post up there’s an untested firmware for the m5.
The lilygon screens has also been updated with a newer hardware version (v2.4) with what looks like a nicer touch screen cover but not sure if they work the same.
More inclined towards the m5 since it’s off the shelf and easier to implement.
Thank you for the work put into this
I’m using the Lilygo T5-4.7 Inch S3 E-paper v2.4 (2024-01-15) board with capacitive touch screen.
I’m using Arduino IDE to compile the code and upload.
After some debugging I have finally gotten the it to run the application. In the end I had to disable the buttons (lines 15+):
/*
pinMode(BUTTON_1, INPUT); //S4 on board, 0 = button pressed, 1 = button released.
pinMode(BUTTON_2, INPUT); //S2 on board, 0 = button pressed, 1 = button released
pinMode(BUTTON_3, INPUT); //S3 on board, 0 = button pressed, 1 = button released
*/
and stop listening for button presses (line 101):
// listenButton();
if not the device would simply reset whenever the framebuffer is created.
Now I have a new problem. The touch screen does not work for me. I get an error:
Start touchscreen failed! Please check wiring.
But it works with the Lilygo-EPD47 demo. The demo uses TouchDrvGT911
for touch and scans for the pin to use, either 0x14 or 0x5D (this is from the demo code):
uint8_t touchAddress = 0x14;
Wire.beginTransmission(0x14);
if (Wire.endTransmission() == 0) {
touchAddress = 0x14;
}
Wire.beginTransmission(0x5D);
if (Wire.endTransmission() == 0) {
touchAddress = 0x5D;
}
and debug using the demo code now shows it’s 0x5d (93)
I’m guessing the _settings.h
file should be updated with a new set addresses for the pins to make this work, but how do I find the correct ones?
Hi,
Pins have been changed on this version of screen.
Here you can see the differents IO used.
You need to update them in _settings.h
on line 396.
//----- Lilygo T5
#elif defined(LILYGO)
#define BUTTON_1 (39)
#define BUTTON_2 (34)
#define BUTTON_3 (35)
#define BATT_PIN (36)
#define SD_MISO (12)
#define SD_MOSI (13)
#define SD_SCLK (14)
#define SD_CS (15)
#define TOUCH_SCL (14)
#define TOUCH_SDA (15)
#define TOUCH_INT (13)
#define GPIO_MISO (12)
#define GPIO_MOSI (13)
#define GPIO_SCLK (14)
#define GPIO_CS (15)
#endif
Thank you.
I seem to have found a code example for the newer board here.
It only has pin for BUTTON_1 defined, so I’ll update the code and see if I can get this to work.
Would you want me to contribute back to the git repository if I find a solution?
Hi,
I have a version 2.4 board too. I am waiting for a T5-4.7 plus to be implemented. Pins are as Signal mentioned.
Thanks Sebyldino for all you have done for this project!
hello!
I ordered 3 pcs because I think this is a very good project - thanks for it sebyldino - but I got a v2.4 version, and can’t done this without any error or problem.
Anybody use this version of lilygo?
I only can do this method by “flash download tool” and I has to use the 3pcs 2.1.1. bin-s?
I dont understand the “put the board in boot mode with button”, can you describe this method a little more detailed?
I have done in the flash end, but nothing works, all dead, no srceeen, no blue led
Thanks!
Hello,
I know there is a new version of esp32 package, actually in 3.x, and when i did this project it was 2.x. Try to downgrad your version to it (in Tools → Board → Boards manager, search ESP32 and choose a 2.x version by Espressif).
May be, it is the problem.
Yes. Select the 3 .bin files and set their adresses like describe in the guide.
When you want to upload code on the board, you need to put it in boot mode. So press the boot button (IO0 on the v2.4) until the upload start when you click Start on Flash Download tool.
To debug, you can plug your Lilygo to your computer and open the serial monitor of Arduino IDE.
hi sebyldino,
thanks for your fast answer!
I tried that to downgrade, and half that worked: I got the Elegant OTA update, but got a failed with that.
You have 3 “.bin” of 2.1.1, whitch I have to use by Elegant OTA (Homey_epaper_v2.1.1.ino.bin, and a partition and a bootloader)
These other setting are good?
(Next week I can try the tool mode, at home I have only mac)
Hello Seby!
I got it, my friend helped to install it, and I have the QR code right now to connect to it.
I can connetc to this openes wifi to configure my wifi settings, but there is nothing happens, there is no captive portal ask where I can write my wifi settings.
Is there anywhere else in code where I can get my wifi settings?
Thanks, Bence
Hello,
You can add default wifi param in “Wifi_Server_Data.ino” file before upload it, by adding this in the readData() function:
void readData() {
SSID = prefs.getString("SSID", "");
PASSWORD = prefs.getString("PASSWORD", "");
if(SSID == "") SSID = "YOUR_SSID"; // Add this line and change to your ssid
if(PASSWORD == "") PASSWORD = "YOUR_PASSWORD"; // Add this line and change to your password
...
} //END readData()
thanks Sebyldino!
works perfect now!
i have some other questions:
- can I use 2 of these at same time in one households?
because the homeyduino crashes if I turn on the second T5 and if sometimes not, both T5 get the same updates however these other fixed ip-s and mac addresses
-
the other: I saw somewhere a picture that there are flows to triggers from screen by touch. That was real or just some ideas? I can not find anymore that picture
-
is there any other weather app what works with your changable weather icon? because in hungary the openweather not get any data
Thanks, Bence
Hello,
Yes you can use 2, but i think the problem is that these 2 have the same name.
Try to give another name for 1 of these in “homey.ino” file here:
void setupHomey() {
//----- Start with a device name
Homey.begin("Homey e-paper"); //Get name for your device
...
}
Yes it works. You need to enable touch screen and click mark, in guide, see “Settings cards” section → “Display_With_Touch_Screen” and “Click_Mark_Enable” in array.
Then, for each card, you can add a “Clickable” param that will show a mark on top right of the device. When you will click on it, it will send a trigger to Homey to do what you want.
You need to adjust deepsleep params as you want because you can not do anything when Homey e-paper is in deepsleep.
There is an example flow in the guide.
In “Wifi_Server_Data.ino” file, you can add a language by adding an “if” section, like this:
void defineLanguage() {
//French
if (lang == "FR") {
...
}
//English
if (lang == "EN") {
...
}
//Hungarian
if (lang == "HU"){
/*Copy and modify here the same language than other sections:
String ON = "BE"; // type = onoff
OFF = "KI";
OPEN = "Nyitva"; // type = door
CLOSE = "Zárva";
...
and same thing for weather:
CLEAR = "derült ég";
CLEAR2 = ""; // Lehet üres a kontextustól függően
CLEAR_NIGHT = "derült éjszaka";
CLOUD = "felhős";
*/
}
Then, define your language with setting card “Language”.
With this, you can use any weather app.
For example, if you have a weather app that send “felhős” to Homey e-paper, it will show the corresponding “CLOUD” icon.
Compiling Homey_E-paper-1.3.0 (and also v1.2.2) gives a lot of errors:
error: invalid conversion from ‘int*’ to ‘int32_t*’ {aka ‘long int*’} [-fpermissive]
I am using Arduino IDE 2.3.3 on a Mac and have followed the installation manual (twice). Did 2 clean installations.
Probably a library is missing but which could that be. Or is there something else not right?
Hi Signal
Did you manage to get the Lillygo T5 4.7 v2.4 up and running?
i have tried everything, i can compile and install the code but then it stalls, in a boot loop
i can compile and install the demo without any problems.
i solved this by help from chatgbt
With this board Lillygo T5 4.7 v2.4 i have problems with activating the touch function.
when i sendt this to the board from Homey “Display_With_Touch_Screen=True”
Start touchscreen failed! please check wiring
Rebooting ======
i have triede to implement the correct pins
this in _settings.h
any help would be great