Page 7 of 11
Re: New project, a small wall display to control Domoticz using CYD (Cheap ESP32 touchscreen)
Posted: Saturday 13 April 2024 22:03
by Rik60
Thorgal789 wrote: ↑Thursday 11 April 2024 19:31
Thx, I will add it in future build.
For the psram, in "build_flags", adde[/code]
This is sure at 99%
https://thingpulse.com/esp32-how-to-use-psram/
You can need too some stuff like
Code: Select all
board_build.psram = enable ; Enable PSRAM
board_build.psram_config = ${platform}_${board} 8MB ; Set PSRAM size to 8MB
But this was untested yet. You can compare with the "4848S040", but it's not tested.
I have put in Common environment settings -> build_flags:
Code: Select all
-DCORE_DEBUG_LEVEL=5
-DBOARD_HAS_PSRAM
-mfix-esp32-psram-cache-issue ; Enable PSRAM in code
and in [env:esp32-8048S043C]:
Code: Select all
board_build.psram = enable ; Enable PSRAM
board_build.psram_config = ${platform}_${board} 8MB ; Set PSRAM size to 8MB
If i go to the Tools screen the display resets:
Stack smashing protect failure!
Do you want more information about this?
Re: New project, a small wall display to control Domoticz using CYD (Cheap ESP32 touchscreen)
Posted: Sunday 14 April 2024 10:59
by wim57
wim57 wrote: ↑Saturday 13 April 2024 9:53
I tried with another unit and everything was fine, so maybe I made some mistake the first time.
Sadly, I have to correct my previous post. I tried the first unit once more and the display looked like below. Both are ESP32-2432S028 but one is USB-C and the other is micro-USB, so the hardware/display controller may be different. The USB-C is the one that is working ok. The malformed display seems to be in portrait mode where the other one shows landscape.
Re: New project, a small wall display to control Domoticz using CYD (Cheap ESP32 touchscreen)
Posted: Sunday 14 April 2024 11:32
by Thorgal789
Ha yes, I see the problem, you need to play with rotation and wifth/height.
I will search the correct setting today, but yes there is different hardware, have already see this issue.
Re: New project, a small wall display to control Domoticz using CYD (Cheap ESP32 touchscreen)
Posted: Sunday 14 April 2024 14:52
by Thorgal789
After some search there is no 2 versions but at least 3 (For hardware and more for software)
On the json file I m using
It's a custom setting for the ILI9341 chipset but in landscape mode. And honnestly I can't say if color are fine on your capture ^^ (from that I have read using a different chipset have impact on color more than display).
So for the moment we can keep the same driver, the same chipset and just try with rotation.
Always in the json file
Find
and try with rotation = 0
For information, here It's the one I m using
Code: Select all
;region -- TFT_eSPI build options ------------------------
-D LGFX_USE_V1=1
-D ILI9341_DRIVER=1 ;
-D TFT_ROTATION=4
-D TFT_WIDTH=320
-D TFT_HEIGHT=240
-D TOUCH_OFFSET_ROTATION=1 ; 1=swap xy, 2=invert x, 4=inverty
;endregion
And here for the old version (the one you have)
Code: Select all
;region -- TFT_eSPI build options ------------------------
; -D USER_SETUP_LOADED=1
-D LGFX_USE_V1=1
-D ILI9341_DRIVER=1
-D TFT_ROTATION=0 ;
-D TFT_WIDTH=240
-D TFT_HEIGHT=320
-D TOUCH_OFFSET_ROTATION=0 ;
;endregion
But I m afraid to swap again TFT_WIDTH and TFT_HEIGHT
About the rotation
Code: Select all
; TFT_ROTATION values:
; 0 - 0 deg (= default when not set)
; 1 - 90 deg anti-clockwise (from 0 deg)
; 2 - 180 deg anti-clockwise
; 3 - 270 deg anti-clockwise
; 4 - mirror content, and rotate 180 deg anti-clockwise
; 5 - mirror content, and rotate 270 deg anti-clockwise
; 6 - mirror content, and rotate 0 deg anti-clockwise
; 7 - mirror content, and rotate 90 deg anti-clockwise
Re: New project, a small wall display to control Domoticz using CYD (Cheap ESP32 touchscreen)
Posted: Monday 15 April 2024 11:40
by wim57
Well, I don't understand which json you mean. I can only find the board definition in esp32-2432S028R.json which mentions DILI9342_DRIVER=1.
Changing DTFT_ROTATION in this definition does not change anything (on both boards) so maybe this is not the right place.
For now I will stick to the previous version of the test branch that works on both boards.
Edit: removed remark about refresh after wake timeout because it was not correct.
Re: New project, a small wall display to control Domoticz using CYD (Cheap ESP32 touchscreen)
Posted: Monday 15 April 2024 19:07
by Thorgal789
I can only find the board definition in esp32-2432S028R.json
Yes it's this one.
Changing DTFT_ROTATION in this definition does not change anything (on both boards) so maybe this is not the right place
Nope you are fine, after checking, this setting is used for other drivers, for this one the value is hardcoded
Code: Select all
#ifdef TFT_ESPI
tft.setRotation(global_config.rotateScreen ? 0 : 2);
#endif
For now I will stick to the previous version of the test branch that works on both boards
You have the branch version, for I compare code ? I can understand how you can have different result on the actual one but I don't understand how the code can work for both previosuly .... Perhaps I was using a different driver.
Edit: removed remark about refresh after wake timeout because it was not correct.
You can be right too, I have never tested this part as I use the 100% always powered mode, the working mode is strange, It turn off the light AND decrease the CPU rate. The incomings requests are still managed but IDK how a reduced CPU usage can have as impact on them.
Edit:
Have found an old code with
Code: Select all
#ifdef TFT_ESPI
tft.setRotation(global_config.rotateScreen ? 3 : 1);
#endif
But this code had width and height reversed, and for this I can't make rollback, I need to find a "homogeneity".
Try to edit direclty screen_driver.cpp, line 526.
Code: Select all
tft.setRotation(global_config.rotateScreen ? 0 : 2);
Only the first number is usefull (except if you have used the rotation setting)
Re: New project, a small wall display to control Domoticz using CYD (Cheap ESP32 touchscreen)
Posted: Thursday 18 April 2024 10:14
by wim57
I downloaded the latest test branch, just to make sure no changes are missing.
Line 526 in sreen_driver.cpp was already as you described, but it did not change anything.
The version of the test branch that I used before works on both units, only the colors are different.
- 20240418.jpg (79.14 KiB) Viewed 2387 times
Re: New project, a small wall display to control Domoticz using CYD (Cheap ESP32 touchscreen)
Posted: Thursday 18 April 2024 18:35
by Thorgal789
If you use the "test" branch, you have the display corrupted.
But if you replace the "0" by for exemple "3" on this line
Code: Select all
tft.setRotation(global_config.rotateScreen ? 0 : 2);
There is no changes ?
Re: New project, a small wall display to control Domoticz using CYD (Cheap ESP32 touchscreen)
Posted: Thursday 18 April 2024 21:22
by wim57
Ah, I thought I needed to change it TO zero.
If I change it to 1, 2 or 3 the screen is still not good.
But when I change the driver from ILI9342 to ILI9341 (which is in my other version) the screen is readable but rotated (heigth and with swapped?).
Again, I can put 1, 2 or 3 in screen_driver.cpp but that stays the same. So, at least, driver ILI9341 seems to work better for my board.
Re: New project, a small wall display to control Domoticz using CYD (Cheap ESP32 touchscreen)
Posted: Friday 19 April 2024 16:50
by Thorgal789
You have 3 hardware in this library
Code: Select all
//#define ILI9341_DRIVER // Generic driver for common displays
//#define ILI9341_2_DRIVER // Alternative ILI9341 driver, see https://github.com/Bodmer/TFT_eSPI/issues/1172
//#define ILI9342_DRIVER // Landscape default orientation variant of ILI9341
But as the code is working in landscape, I need this mode.
This hardware probably need a ILI9341_1_DRIVER, it's possible too using the false resolution and ILI9341_DRIVER, and force the resolution with the constructor fonction on line 41 on screen_driver.cpp file
Code: Select all
static TFT_eSPI tft = TFT_eSPI(320,240);
An other solution is using another driver.
I have updatedthe code on the branch "test", now you have a new device in platformio.ini
Code: Select all
[platformio]
;default_envs = esp32-2432S028R
default_envs = esp32-2432S028R_old
This one use another lib, so idk the result,
Re: New project, a small wall display to control Domoticz using CYD (Cheap ESP32 touchscreen)
Posted: Monday 22 April 2024 18:50
by Thorgal789
@wim57 Have you had time to test the new versions ?
Re: New project, a small wall display to control Domoticz using CYD (Cheap ESP32 touchscreen)
Posted: Tuesday 23 April 2024 10:28
by wim57
I did just now but it was still the same garbled screen.
Since I have a previous version with driver ILI9341 that is working I will stick to that.
Re: New project, a small wall display to control Domoticz using CYD (Cheap ESP32 touchscreen)
Posted: Tuesday 23 April 2024 15:51
by Thorgal789
Yep, it's the same "garbage" screen.
But with this driver, you have more values to make test in esp32-2432S028R_old.json
Can just try with reversing for exemple
Code: Select all
"-DTFT_HEIGHT=240",
"-DTFT_WIDTH=320",
And playing with
Re: New project, a small wall display to control Domoticz using CYD (Cheap ESP32 touchscreen)
Posted: Thursday 25 April 2024 21:37
by Rik60
Hi,
I try to add some status to the Home Screen, On/ Off status of a switch (now only displaying the On status), and the open/ closed status of the blinds. The On/ Off status works, but not the Open/ Closed status of a blind. I tried to modify the Home panel.ccp file:
lv_obj_set_style_img_recolor(img, color, 0);
// Display a "on" icon
if (d->type < TYPE_SWITCH && strcmp(d->data, "On") == 0)
{
lv_obj_t * label = lv_label_create(Button_icon);
lv_obj_set_style_text_color(label, color, 0);
lv_obj_align_to(label, img, LV_ALIGN_OUT_RIGHT_BOTTOM, 0, 0);
//lv_obj_set_style_border_width(label, 5, 0); // To make it visible
lv_label_set_text(label, " On");
}
// Display a "Off" icon
if (d->type < TYPE_SWITCH && strcmp(d->data, "Off") == 0)
{
lv_obj_t * label = lv_label_create(Button_icon);
lv_obj_set_style_text_color(label, color, 0);
lv_obj_align_to(label, img, LV_ALIGN_OUT_RIGHT_BOTTOM, 0, 0);
//lv_obj_set_style_border_width(label, 5, 0); // To make it visible
lv_label_set_text(label, " Off");
}
// Display a "Open" icon
if (d->type < TYPE_BLINDS && strcmp(d->data, "Open") == 0)
{
lv_obj_t * label = lv_label_create(Button_icon);
lv_obj_set_style_text_color(label, color, 0);
lv_obj_align_to(label, img, LV_ALIGN_OUT_RIGHT_BOTTOM, 0, 0);
//lv_obj_set_style_border_width(label, 5, 0); // To make it visible
lv_label_set_text(label, " Open");
}
// Display a "Closed" icon
if (d->type < TYPE_BLINDS && strcmp(d->data, "Closed") == 0)
{
lv_obj_t * label = lv_label_create(Button_icon);
lv_obj_set_style_text_color(label, color, 0);
lv_obj_align_to(label, img, LV_ALIGN_OUT_RIGHT_BOTTOM, 0, 0);
//lv_obj_set_style_border_width(label, 5, 0); // To make it visible
lv_label_set_text(label, " Closed");
}
/*Create description*/
Is it right to do in this way?
Re: New project, a small wall display to control Domoticz using CYD (Cheap ESP32 touchscreen)
Posted: Friday 26 April 2024 19:47
by Thorgal789
It's from the code here
https://github.com/Smanar/CYD-Domoticz- ... ta_setup.h
mean device before TYPE_SWITCH so
Code: Select all
TYPE_PLUG,
TYPE_COLOR,
TYPE_LIGHT,
TYPE_DIMMER,
So for you need to use
Code: Select all
if (d->type == TYPE_BLINDS && strcmp(d->data, "Open") == 0)
You can too "factorise" the code, to avoid to have common command.
I m too on this code part, I don't realy like the "on" text.
My first idea was to use 'image concanetation" for exemple an icon with just the bulb and another with ray added or not according to state, but a complete icon take the same size ....
I m searching too an "image effect" to do on the actual icon, but no ideas. Different color, no, we can think it's another device type, a circle, bof, a glowing effect, not visible enought, change the background, ugly too.
A small icon close the first one ? but need one for bulb and at least 2 for covering ....
About the icon change, there is a fonction that return the icon to use
Code: Select all
const lv_img_dsc_t *Geticon(int type)
It's easier and faster to direclty make something in this fonction.
If I have understand your project is to use 3 icons for covering for exemple ?
Re: New project, a small wall display to control Domoticz using CYD (Cheap ESP32 touchscreen)
Posted: Friday 26 April 2024 21:37
by Rik60
Thorgal789 wrote: ↑Friday 26 April 2024 19:47
It's from the code here
https://github.com/Smanar/CYD-Domoticz- ... ta_setup.h
mean device before TYPE_SWITCH so
Code: Select all
TYPE_PLUG,
TYPE_COLOR,
TYPE_LIGHT,
TYPE_DIMMER,
So for you need to use
Code: Select all
if (d->type == TYPE_BLINDS && strcmp(d->data, "Open") == 0)
You can too "factorise" the code, to avoid to have common command.
I m too on this code part, I don't realy like the "on" text.
My first idea was to use 'image concanetation" for exemple an icon with just the bulb and another with ray added or not according to state, but a complete icon take the same size ....
I m searching too an "image effect" to do on the actual icon, but no ideas. Different color, no, we can think it's another device type, a circle, bof, a glowing effect, not visible enought, change the background, ugly too.
A small icon close the first one ? but need one for bulb and at least 2 for covering ....
About the icon change, there is a fonction that return the icon to use
Code: Select all
const lv_img_dsc_t *Geticon(int type)
It's easier and faster to direclty make something in this fonction.
If I have understand your project is to use 3 icons for covering for exemple ?
Thx,
I did use (as you can see):
Code: Select all
if (d->type == TYPE_BLINDS && strcmp(d->data, "Open") == 0)
I was suprised that it didn't work.
Even more confusing was when i replaced "Open " with "On" the text On and Open in the Switch (bulb) icon was mixed up.
I dublicated the code to try, and when it worked, "factorise" it to avoid common commands.
For me i like the On, Off, Open, Closed as text in a icon.
Re: New project, a small wall display to control Domoticz using CYD (Cheap ESP32 touchscreen)
Posted: Saturday 27 April 2024 12:13
by Thorgal789
Ha yes, I m reading the value, data don't contain "open" or "closed" but the level (except for 0 and 100 value, so only full closed or full open)
Code: Select all
For me i like the On, Off, Open, Closed as text in a icon.
So you don't to change the icon but add a text for the covering ?
If it's just that, I can make the code today. But if you want to search yourself, you can use
to have the covering level and print "open" or "closed" (it's a numeric value, from 0> 100)
or use
Code: Select all
if (d->type == TYPE_BLINDS && strcmp(d->data, "Closed") == 0)
with that you will check the "full closed", and all others values will be the "Open"
Check the "data" value on a browser using the URL
Code: Select all
http://192.168.1.1:8080/json.htm?type=command¶m=getdevices&rid=ID
you can have a "custom" device not managed like mines.
Re: New project, a small wall display to control Domoticz using CYD (Cheap ESP32 touchscreen)
Posted: Saturday 27 April 2024 16:42
by ElMyggo
I manage to fix the Swedish font åäö to my project
I made new files (lv_font_montserrat_10.c + lv_font_montserrat_12.c) with the same input as the original (find the settings in top of the file) and then added the swedish fonts åäö ÅÄÖ with online converter
https://lvgl.io/tools/fontconverter
- settings.png (10.6 KiB) Viewed 2143 times
When i change the file Montserrat_Bold_14 ESP32 crash when doing setup page for Domoticz so i try some more there..
I run the test version
- fixed-font.jpg (289.46 KiB) Viewed 2143 times
- menu.jpg (278.84 KiB) Viewed 2143 times
Re: New project, a small wall display to control Domoticz using CYD (Cheap ESP32 touchscreen)
Posted: Saturday 27 April 2024 17:58
by Rik60
Thorgal789 wrote: ↑Saturday 27 April 2024 12:13
Ha yes, I m reading the value, data don't contain "open" or "closed" but the level (except for 0 and 100 value, so only full closed or full open)
Code: Select all
For me i like the On, Off, Open, Closed as text in a icon.
So you don't to change the icon but add a text for the covering ?
If it's just that, I can make the code today. But if you want to search yourself, you can use
to have the covering level and print "open" or "closed" (it's a numeric value, from 0> 100)
or use
Code: Select all
if (d->type == TYPE_BLINDS && strcmp(d->data, "Closed") == 0)
with that you will check the "full closed", and all others values will be the "Open"
Check the "data" value on a browser using the URL
Code: Select all
http://192.168.1.1:8080/json.htm?type=command¶m=getdevices&rid=ID
you can have a "custom" device not managed like mines.
Thx,
I am going to try to edit the code myself.
Thanks for the tips.
Re: New project, a small wall display to control Domoticz using CYD (Cheap ESP32 touchscreen)
Posted: Thursday 02 May 2024 17:58
by Thorgal789
@Rik60 Do you need some help ?