ESP32 HMI Display - Brittle and Broken Documentation

Working with the ESP32 5.0 Inch HMI display and followed along the video tutorial https://www.youtube.com/watch?v=iKJesBu_cg4 quickly led to realization that the video no longer matches between expected (in video) and actual (on product page). There is no direct downloads on the product page, now there is the wiki. The video is only two months old and already its obsolete.

Following along the wiki seems to be the way so I pause the video and go forward with the wiki. One of the two libraries is a broken link (the one containing the UI library). So then found that broken link alternative hiding in the FAQ page... super awesome experience so far... The instructions in the wiki for dealing with what needs to be known about the UI stuff is clear as mud in the wiki. The video thankfully was very clear about what needs to happen with the UI section.

The wiki fails again where the download for the factory project code should be. The download is a zero byte size zip file with no files, just the root folder.

I suggest using one of the many source control options out there to host source code such as GitHub or GitLab and refrain from moving things around so much to keep links relevant for some planned number of years. If you don't do this soon your going to be unable to maintain the content and assets for the product you currently maintain and its going to get infinitely worse as your inventory grows.

So, where can I find that factory program hosted at now or can you please repair those so they actually have content to download?

Tagged:

Comments

  • edited November 2023

    Hello @MrSunshine ,

    Thank you for your feedback.

    You can download the code from the resources section at the bottom of the product's Wiki page, or from the "Play with Arduino" page, they both directe to https://www.elecrow.com/download/product/ESP32_Display/5.0inch/Arduino_5inch.zip



    The download link in the FAQ is invalid and I have modified it.


  • I'm experiencing a compiler error with a vanilla installation of Arduino and following the instructions from the linked download PDF with a unmodified factory program and all the necessary libraries put in place.

    C:\Users\TheLastUser\Downloads\Arduino_5inch\Arduino\5.0-Factory-Program\LvglWidgets-5.0-NOSPEAK\LvglWidgets-5.0-NOSPEAK.ino:30:1: error: 'Arduino_ESP32RGBPanel' does not name a type; did you mean 'Arduino_ESP32SPI'?

     Arduino_ESP32RGBPanel *bus = new Arduino_ESP32RGBPanel(

     ^~~~~~~~~~~~~~~~~~~~~

     Arduino_ESP32SPI

    C:\Users\TheLastUser\Downloads\Arduino_5inch\Arduino\5.0-Factory-Program\LvglWidgets-5.0-NOSPEAK\LvglWidgets-5.0-NOSPEAK.ino:47:1: error: 'Arduino_RPi_DPI_RGBPanel' does not name a type

     Arduino_RPi_DPI_RGBPanel *lcd = new Arduino_RPi_DPI_RGBPanel(

     ^~~~~~~~~~~~~~~~~~~~~~~~

    In file included from C:\Users\TheLastUser\Downloads\Arduino_5inch\Arduino\5.0-Factory-Program\LvglWidgets-5.0-NOSPEAK\LvglWidgets-5.0-NOSPEAK.ino:143:

    C:\Users\TheLastUser\Downloads\Arduino_5inch\Arduino\5.0-Factory-Program\LvglWidgets-5.0-NOSPEAK\touch.h: In function 'bool touch_touched()':

    C:\Users\TheLastUser\Downloads\Arduino_5inch\Arduino\5.0-Factory-Program\LvglWidgets-5.0-NOSPEAK\touch.h:163:71: error: 'lcd' was not declared in this scope

        touch_last_x = map(ts.points[0].x, TOUCH_MAP_X1, TOUCH_MAP_X2, 0, lcd->width() - 1);

                                                                          ^~~

    C:\Users\TheLastUser\Downloads\Arduino_5inch\Arduino\5.0-Factory-Program\LvglWidgets-5.0-NOSPEAK\LvglWidgets-5.0-NOSPEAK.ino: In function 'void my_disp_flush(lv_disp_drv_t*, const lv_area_t*, lv_color_t*)':

    C:\Users\TheLastUser\Downloads\Arduino_5inch\Arduino\5.0-Factory-Program\LvglWidgets-5.0-NOSPEAK\LvglWidgets-5.0-NOSPEAK.ino:167:3: error: 'lcd' was not declared in this scope

      lcd->draw16bitRGBBitmap(area->x1, area->y1, (uint16_t *)&color_p->full, w, h);

      ^~~

    C:\Users\TheLastUser\Downloads\Arduino_5inch\Arduino\5.0-Factory-Program\LvglWidgets-5.0-NOSPEAK\LvglWidgets-5.0-NOSPEAK.ino: In function 'void setup()':

    C:\Users\TheLastUser\Downloads\Arduino_5inch\Arduino\5.0-Factory-Program\LvglWidgets-5.0-NOSPEAK\LvglWidgets-5.0-NOSPEAK.ino:342:3: error: 'lcd' was not declared in this scope

      lcd->begin();

      ^~~

    C:\Users\TheLastUser\Downloads\Arduino_5inch\Arduino\5.0-Factory-Program\LvglWidgets-5.0-NOSPEAK\LvglWidgets-5.0-NOSPEAK.ino: In function 'void loop()':

    C:\Users\TheLastUser\Downloads\Arduino_5inch\Arduino\5.0-Factory-Program\LvglWidgets-5.0-NOSPEAK\LvglWidgets-5.0-NOSPEAK.ino:474:7: error: 'lcd' was not declared in this scope

          lcd->fillScreen(BLACK);

          ^~~

    C:\Users\TheLastUser\Downloads\Arduino_5inch\Arduino\5.0-Factory-Program\LvglWidgets-5.0-NOSPEAK\LvglWidgets-5.0-NOSPEAK.ino: In function 'void Ce_shi()':

    C:\Users\TheLastUser\Downloads\Arduino_5inch\Arduino\5.0-Factory-Program\LvglWidgets-5.0-NOSPEAK\LvglWidgets-5.0-NOSPEAK.ino:548:7: error: 'lcd' was not declared in this scope

          lcd->fillScreen(BLACK);

          ^~~

    C:\Users\TheLastUser\Downloads\Arduino_5inch\Arduino\5.0-Factory-Program\LvglWidgets-5.0-NOSPEAK\LvglWidgets-5.0-NOSPEAK.ino: In function 'void listDir(fs::FS&, const char*, uint8_t)':

    C:\Users\TheLastUser\Downloads\Arduino_5inch\Arduino\5.0-Factory-Program\LvglWidgets-5.0-NOSPEAK\LvglWidgets-5.0-NOSPEAK.ino:1056:7: error: 'lcd' was not declared in this scope

          lcd->setCursor(0, 2 * i);

          ^~~

    C:\Users\TheLastUser\Downloads\Arduino_5inch\Arduino\5.0-Factory-Program\LvglWidgets-5.0-NOSPEAK\LvglWidgets-5.0-NOSPEAK.ino: In function 'void calibrateTouch(uint16_t*, uint32_t, uint32_t, uint8_t)':

    C:\Users\TheLastUser\Downloads\Arduino_5inch\Arduino\5.0-Factory-Program\LvglWidgets-5.0-NOSPEAK\LvglWidgets-5.0-NOSPEAK.ino:1213:5: error: 'lcd' was not declared in this scope

        lcd->fillRect(0, 0, size + 1, size + 1, color_bg);

        ^~~

    Multiple libraries were found for "Wire.h"

     Used: C:\Users\TheLastUser\Documents\Arduino\libraries\Wire

     Not used: C:\Users\TheLastUser\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.3\libraries\Wire

    Multiple libraries were found for "SD.h"

     Used: C:\Users\TheLastUser\Documents\Arduino\libraries\SD

     Not used: C:\Users\TheLastUser\AppData\Local\Arduino15\libraries\SD

     Not used: C:\Users\TheLastUser\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.3\libraries\SD

    Multiple libraries were found for "SPI.h"

     Used: C:\Users\TheLastUser\Documents\Arduino\libraries\SPI

     Not used: C:\Users\TheLastUser\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.3\libraries\SPI

    Multiple libraries were found for "BLEDevice.h"

     Used: C:\Users\TheLastUser\Documents\Arduino\libraries\BLE

     Not used: C:\Users\TheLastUser\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.3\libraries\BLE

    exit status 1


    Compilation error: 'Arduino_ESP32RGBPanel' does not name a type; did you mean 'Arduino_ESP32SPI'?

  • Hello @MrSunshine ,

    Please check if you have installed the correct GFX library.

    You need to install the "GFX Library for Arduino"


    instead of the Adafruit GFX Library


  • Thanks for continuing to offer advice on how to correct my particular build issue. The approach you offered was logical, but I found the root cause. I'm adding my discovery below for anyone else that might run into this rare gem of a problem.

    I had the correct GFX library (and version) mentioned. I do think there is a different problem though. I think the solution was failing to build because of all the previous library and board installations from when I used the older Arduino 1.8.13. I found I have both 1.8.13 installed on this same machine along with 2.2.1.

    To correct this I had to delete the contents of the C:\Users\%USERPFROFILE%\AppData\Local\Arduino15 folder (keeping the preferences.txt) and restarting the IDE. I believe this problem would have been avoided if the makers of Arduino IDE didn't force the 1.* and 2.* versions to share the same base AppData directory (bad idea!). BEWARE: Doing this deletes boards and libraries downloaded with the IDE. If you prefer not to lose data then do proper backup strategies before deleting.

    Once I did that I had to re-apply the settings for the board under Tools and then build again.

  • I ran into a problem with the instructions provided on Step 4 of https://forum.elecrow.com/discussion/495/how-to-upload-the-esp32-display-factory-program-by-arduino-ide Its fine for Windows users because Windows is not a case sensitive OS, but for Linux users a problem occurs with Arduino looking for a folder named libraries with lowercase l instead of uppercase L . Can you rename Libraries to libraries in the provided zip that packaged up all the libraries for the tutorial? I'm still working my way through other build errors on Linux, but this one stood out as an immediate blocker.

    If your not willing to rename the folder in the archive please at least instruct the user in the Wiki that Linux users need to do post renaming steps after downloading and extracting.

  • Hello @MrSunshine ,

    Thank you very much for your feedback and suggestions. I'm sorry that we ignored the capitalization issue. We will modify the name of the folder and add a reminder to the wiki. Thank you again for your help

  • edited November 2023

    I'm afraid the issue might be more involved than just the root folder needing to be lower case. I'm not absolutely sure if this is the issue, but I have not successfully been able to follow the same successful build and push from Linux as I was able to do with Windows and I believe there is a problem with more than just that one folder. I'll make another forum post as that being the main topic since this one seems to have been correctly arrived at resolution.

Sign In or Register to comment.