Support ILI9488 Display 3.5" Espeasy
Moderators: grovkillen, Stuntteam, TD-er
Support ILI9488 Display 3.5" Espeasy
I couldn't get the 3.5" ILI9488 display to work with espeasy.
I saw that this feature is disabled by default, I enabled it and according to the logs, it is being initialized.
The display was successfully tested with Bodmer's TFT_eSPI library so the wire connections are correct and working.
What can I test to make this display work with espeasy?
I saw that this feature is disabled by default, I enabled it and according to the logs, it is being initialized.
The display was successfully tested with Bodmer's TFT_eSPI library so the wire connections are correct and working.
What can I test to make this display work with espeasy?
- Attachments
-
- Logs Init.png (92.83 KiB) Viewed 9612 times
-
- Pinout Monitor Diagram.png (3.54 MiB) Viewed 9612 times
-
- Pinout Monitor Diagram.jpg (1022.05 KiB) Viewed 9612 times
-
- Configurações.png (83.82 KiB) Viewed 9612 times
-
- Configurações 03.png (60.88 KiB) Viewed 9612 times
-
- Configurações 02.png (69.05 KiB) Viewed 9612 times
Re: Support ILI9488 Display 3.5" Espeasy
Next time please make screenshots of only parts that contain relevant text, not of the unused white areas, as that makes the images nearly unusable.
I couldn't get my hands on such display (for a reasonable price), and they aren't used that much, AFAICS, so I couldn't test it and didn't enable these.
I have used parts of Bodmer's library to get some of the displays working, but without hardware to actually try it, this didn't make it (yet).
Did you also enable support in the lib/Adafruit_ILI9341/Adafruit_ILI9341.h file? Changing that in P095_data_struc.h isn't enough to enable that, the ILI9341 library is compiled semi-independent from the ESPEasy sources, so enabling a #define isn't 'seen' there.
I couldn't get my hands on such display (for a reasonable price), and they aren't used that much, AFAICS, so I couldn't test it and didn't enable these.
I have used parts of Bodmer's library to get some of the displays working, but without hardware to actually try it, this didn't make it (yet).
Did you also enable support in the lib/Adafruit_ILI9341/Adafruit_ILI9341.h file? Changing that in P095_data_struc.h isn't enough to enable that, the ILI9341 library is compiled semi-independent from the ESPEasy sources, so enabling a #define isn't 'seen' there.
/Ton (PayPal.me)
Re: Support ILI9488 Display 3.5" Espeasy
Great, let's get this display working and approved. You're right, it was disabled in the Adafruit_ILI9341.h file, it was the only one I didn't review. I'm recompiling it again now and will test it.
Re: Support ILI9488 Display 3.5" Espeasy
Not sure if it is a problem, but you have assigned GPIO 18 twice.
Maybe worth to check?
Also see: https://espeasy.readthedocs.io/en/lates ... e-on-esp32
GPIO 4 has a pull-down resistor and GPIO-15 a pull-up.
Maybe you can try different pins to see if this makes a difference?
If so, then our code may require some extra init steps to overcome these default pin states.
You could also try to set the pin bootstate of those pins to states required (e.g. output high for the RST pin) as the boot state is being set before the tasks are initialized.
Maybe the display needs the RST being cleared for a bit longer before it can properly be initialized.
Maybe worth to check?
Also see: https://espeasy.readthedocs.io/en/lates ... e-on-esp32
GPIO 4 has a pull-down resistor and GPIO-15 a pull-up.
Maybe you can try different pins to see if this makes a difference?
If so, then our code may require some extra init steps to overcome these default pin states.
You could also try to set the pin bootstate of those pins to states required (e.g. output high for the RST pin) as the boot state is being set before the tasks are initialized.
Maybe the display needs the RST being cleared for a bit longer before it can properly be initialized.
Re: Support ILI9488 Display 3.5" Espeasy
Recompile carried out successfully, and it didn't work ,. Replaced GPIO 04 to 25 and GPIO 15 to 13, it didn't work. I raised the RST to high level, without any success.
Re: Support ILI9488 Display 3.5" Espeasy
Tested with Bodmer's TFT_eSPI library and it worked perfectly, I just had to change the GPIO in User_Setup, which really indicates that it is something with Espeasy and the adapted library.
Re: Support ILI9488 Display 3.5" Espeasy
Maybe I didn't use the correct initialization code, but only added the required code(s).
I've ordered an ILI9488 display (4" with touch) to see if I can get it working, like I got the other models working. Will take a few weeks to arrive, so I hope you're not in a hurry.
I've ordered an ILI9488 display (4" with touch) to see if I can get it working, like I got the other models working. Will take a few weeks to arrive, so I hope you're not in a hurry.
/Ton (PayPal.me)
Re: Support ILI9488 Display 3.5" Espeasy
Thank you TON for your help, I sent via PAYPAL the amount equivalent to three 4.0" touch screens from aliexpress, I hope you like it. Thank you very much.
Re: Support ILI9488 Display 3.5" Espeasy
I will have to re-order from a different Ali vendor, as I got a display delivered today (this one, 4.0 inch with touch, explicitly named ILI9488) but instead got a ST7796 delivered and that is already working fine with ESPEasy, so nothing to test yet...
/Ton (PayPal.me)
Re: Support ILI9488 Display 3.5" Espeasy
I wasn't able to improve much. In a new compilation, these warnings appear.
src/src/PluginStructs/P095_data_struct.cpp: In function 'const __FlashStringHelper* ILI9xxx_type_toString(const ILI9xxx_type_e&)':
src/src/PluginStructs/P095_data_struct.cpp:10:10: warning: enumeration value 'ILI9486_320x480' not handled in switch [-Wswitch]
switch (device) {
^
src/src/PluginStructs/P095_data_struct.cpp:10:10: warning: enumeration value 'ILI9488_320x480' not handled in switch [-Wswitch]
src/src/PluginStructs/P095_data_struct.cpp: In function 'void ILI9xxx_type_toResolution(const ILI9xxx_type_e&, uint16_t&, uint16_t&)':
src/src/PluginStructs/P095_data_struct.cpp:39:10: warning: enumeration value 'ILI9486_320x480' not handled in switch [-Wswitch]
switch (device) {
^
src/src/PluginStructs/P095_data_struct.cpp:39:10: warning: enumeration value 'ILI9488_320x480' not handled in switch [-Wswitch]
src/src/PluginStructs/P095_data_struct.cpp: In function 'const __FlashStringHelper* P095_CommandTrigger_toString(const P095_CommandTrigger&)':
src/src/PluginStructs/P095_data_struct.cpp:67:10: warning: enumeration value 'ili9486' not handled in switch [-Wswitch]
switch (cmd) {
^
src/src/PluginStructs/P095_data_struct.cpp:67:10: warning: enumeration value 'ili9488' not handled in switch [-Wswitch]
Re: Support ILI9488 Display 3.5" Espeasy
Those look like warnings.
It should compile anyway.
But I wonder if this is the final code on GitHub, or did you make some changes?
We usually go for 0 warnings in compiling the code.
It should compile anyway.
But I wonder if this is the final code on GitHub, or did you make some changes?
We usually go for 0 warnings in compiling the code.
Re: Support ILI9488 Display 3.5" Espeasy
After deleting these lines the warning disappeared from the compilation.
# ifdef P095_ENABLE_ILI948X
# endif // ifdef P095_ENABLE_ILI948X
But the library didn't work.
Re: Support ILI9488 Display 3.5" Espeasy
If anyone can help, I verified that a change was made to plugin P095 which made ILI9486/ILI9488 optional
* Changelog:
* 2022-07-20 tonhuisman: Made support for ILI9486/ILI9488 optional and excluded by default as these are not available as
* regular SPI devices (3/4 wire SPI)
I see that in ESPEasy\src\src\PluginStructs it is possible to activate and deactivate this plugin
# define P095_ENABLE_ILI948X // Enable or disable support for ILI9486 and ILI9488.
// MUST reflect similar #define in Adafruit_ILI9341.h !
This option doesn't work!
I managed to make the ILI9486/ILI9488 option appear, just by deleting the lines
# ifdef P095_ENABLE_ILI948X
# endif // ifdef P095_ENABLE_ILI948X but this just wasn't enough for the P095 plugin to work with the ILI948X.
# ifdef P095_ENABLE_ILI948X
ILI9xxx_type_toString(ILI9xxx_type_e::ILI9486_320x480),
ILI9xxx_type_toString(ILI9xxx_type_e::ILI9488_320x480),
# endif // ifdef P095_ENABLE_ILI948X
# ifdef P095_ENABLE_ILI948X
static_cast<int>(ILI9xxx_type_e::ILI9486_320x480),
static_cast<int>(ILI9xxx_type_e::ILI9488_320x480),
# endif // ifdef P095_ENABLE_ILI948X
Question:
1- Where can I activate ILI9486/ILI9488 without deleting these lines? I believe that somewhere in the code I am leaving the option disabled.
2 - Is there any debug method to guide the activation of the drive for the ILI9486/ILI9488 panel?
* Changelog:
* 2022-07-20 tonhuisman: Made support for ILI9486/ILI9488 optional and excluded by default as these are not available as
* regular SPI devices (3/4 wire SPI)
I see that in ESPEasy\src\src\PluginStructs it is possible to activate and deactivate this plugin
# define P095_ENABLE_ILI948X // Enable or disable support for ILI9486 and ILI9488.
// MUST reflect similar #define in Adafruit_ILI9341.h !
This option doesn't work!
I managed to make the ILI9486/ILI9488 option appear, just by deleting the lines
# ifdef P095_ENABLE_ILI948X
# endif // ifdef P095_ENABLE_ILI948X but this just wasn't enough for the P095 plugin to work with the ILI948X.
# ifdef P095_ENABLE_ILI948X
ILI9xxx_type_toString(ILI9xxx_type_e::ILI9486_320x480),
ILI9xxx_type_toString(ILI9xxx_type_e::ILI9488_320x480),
# endif // ifdef P095_ENABLE_ILI948X
# ifdef P095_ENABLE_ILI948X
static_cast<int>(ILI9xxx_type_e::ILI9486_320x480),
static_cast<int>(ILI9xxx_type_e::ILI9488_320x480),
# endif // ifdef P095_ENABLE_ILI948X
Question:
1- Where can I activate ILI9486/ILI9488 without deleting these lines? I believe that somewhere in the code I am leaving the option disabled.
2 - Is there any debug method to guide the activation of the drive for the ILI9486/ILI9488 panel?
Re: Support ILI9488 Display 3.5" Espeasy
1) In the matching .h file there is a #define to enable/disable features like these (that's by C convention, to put 'flags' like that in the .h file)
2) No, the current initialization sequence I copied from TFT_eSPI repository (that has them for many of these displays), but so far it doesn't seem to work as expected. But I haven't yet put much time in it. I have received the ILI9486 & ILI9488 displays, that I hope/expect to be of the correct type, but there are no clear markings on it...
/Ton (PayPal.me)
Re: Support ILI9488 Display 3.5" Espeasy
I've been trying to create a plugin exactly with this repository https://github.com/Bodmer/TFT_eSPI
But I have little knowledge and I'm using the _P095_ILI9341 plugin as a base, which is very different, making my journey even more difficult.
Have you tried or know this repository https://github.com/lovyan03/LovyanGFX?
It has better performance than the first, as it is a revision created by Japanese people and opens up possibilities for integrating the lvgl library https://github.com/lvgl/lvgl. https://www.youtube.com/watch?v=IPCvQ4o_WP8
Which I see as a high level evolution for monitors for the espeasy.
But I have little knowledge and I'm using the _P095_ILI9341 plugin as a base, which is very different, making my journey even more difficult.
Have you tried or know this repository https://github.com/lovyan03/LovyanGFX?
It has better performance than the first, as it is a revision created by Japanese people and opens up possibilities for integrating the lvgl library https://github.com/lvgl/lvgl. https://www.youtube.com/watch?v=IPCvQ4o_WP8
Which I see as a high level evolution for monitors for the espeasy.
Re: Support ILI9488 Display 3.5" Espeasy
I have been using SPI_eTFT as 'inspiration' for the ILI9486 and ILI9488 displays, but that wasn't working at all. I've been searching for alternative initialization sequences, as that's the key part to get this working, but haven't been successful yet. There is a slight improvement, using code from the Luma project, but still not showing text on the display.
Currently we don't have intentions to go for the graphics UI as found in the lovyan03 repo, and also no interest to go for lvgl based graphics, as that's completely not compatible with the current shape of displays in ESPEasy. I'm more inclined to go for the Adafruit GFX library, that I wrote a generic interface for, as used in most ESPEasy Color LCD plugins (and the monochrome P141 Nokia 5110 display). Switching to another graphics/display standard involves a complete rewrite of all display plugins, and that's not on any roadmap or plan yet.
Currently we don't have intentions to go for the graphics UI as found in the lovyan03 repo, and also no interest to go for lvgl based graphics, as that's completely not compatible with the current shape of displays in ESPEasy. I'm more inclined to go for the Adafruit GFX library, that I wrote a generic interface for, as used in most ESPEasy Color LCD plugins (and the monochrome P141 Nokia 5110 display). Switching to another graphics/display standard involves a complete rewrite of all display plugins, and that's not on any roadmap or plan yet.
/Ton (PayPal.me)
Re: Support ILI9488 Display 3.5" Espeasy
Wow, finally support for the ILI9488 display, thank you very much team for this achievement.
[P095] Add support for ILI9488 Displays
[StringConverter] Fix parseHexTextData unwanted increment during parsing
[P123] Docs: add remark for untested touchscreen controllers
[P172] Add BMP3xx using SPI interface
[P142] Add documentation
[P095] Combine support for ILI9486 Displays with ILI9488
[P095] Combine support for ILI9486 Displays with ILI9488
[P095] Update documentation
[P095] Documentation note for ILI9486 added
https://github.com/letscontrolit/ESPEas ... a-20240822
[P095] Add support for ILI9488 Displays
[StringConverter] Fix parseHexTextData unwanted increment during parsing
[P123] Docs: add remark for untested touchscreen controllers
[P172] Add BMP3xx using SPI interface
[P142] Add documentation
[P095] Combine support for ILI9486 Displays with ILI9488
[P095] Combine support for ILI9486 Displays with ILI9488
[P095] Update documentation
[P095] Documentation note for ILI9486 added
https://github.com/letscontrolit/ESPEas ... a-20240822
Re: Support ILI9488 Display 3.5" Espeasy
There is no support for ILI9488 in ESP_Easy_mega_20240822_display_ESP8266_4M1M.bin
- Attachments
-
- 2024-10-04_10-47-43.png (98.09 KiB) Viewed 738 times
Re: Support ILI9488 Display 3.5" Espeasy
That's correct. It's left out for .bin size reasons.
It's available in the ESP32 builds that have P095 included.
/Ton (PayPal.me)
Re: Support ILI9488 Display 3.5" Espeasy
does this mean that this display will not work on the ESP8266?
Re: Support ILI9488 Display 3.5" Espeasy
It can work, but not in a standard available build.
You can create a Custom build, as documented here, and get this feature enabled by default.
Edit:
Please be aware that ESP8266 is declared End-of-life by Espressif, and should not be used for new projects.
The fact that we still support it has to do with the large installed base of ESPEasy on such devices, but new features are mostly excluded from ESP8266 builds for build-size reasons, as the effort to make builds fit is rather daunting, and can better be spent on other ESPEasy features and improvements.
You can create a Custom build, as documented here, and get this feature enabled by default.
Edit:
Please be aware that ESP8266 is declared End-of-life by Espressif, and should not be used for new projects.
The fact that we still support it has to do with the large installed base of ESPEasy on such devices, but new features are mostly excluded from ESP8266 builds for build-size reasons, as the effort to make builds fit is rather daunting, and can better be spent on other ESPEasy features and improvements.
/Ton (PayPal.me)
Re: Support ILI9488 Display 3.5" Espeasy
Thanks for the clarification
Who is online
Users browsing this forum: No registered users and 1 guest