Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GDEH0154D67 eink screen working worse after moving arduino to being as a component of esp-idf #10132

Closed
1 task done
Szybet opened this issue Aug 8, 2024 · 14 comments
Closed
1 task done
Labels
IDE: PlaformIO Issue relates to PlatformIO IDE

Comments

@Szybet
Copy link

Szybet commented Aug 8, 2024

Board

Custom, Watchy v2

Device Description

eink screen connected to ESP32-PICO-D4 (revision v1.1)

Hardware Configuration

https://github.com/sqfmi/watchy-hardware/blob/v2.0/WatchySchematic.pdf

Version

v3.0.1

IDE Name

Platformio

Operating System

Linux

Flash frequency

Tried 40Mhz and 80Mhz

PSRAM enabled

no

Upload speed

115200

Description

After I moved arduino core outside fully outside of platformio, as a component of esp idf as described here: https://docs.espressif.com/projects/arduino-esp32/en/latest/esp-idf_component.html the eink screen I'm driving produces horrible ghosting, I can provide a video if that's needed

I tried esp idf 5.1.4 up to 5.1 and arduino core from master up to 3.0.1, the previous setup was working when including arduino core into platformio, as self precompiled arduinoespressif32. I also tried including the configs from the default sdkconfigs I was using to precompile arduinoespressif32 but this didn't changed anything.

Here is the related esp idf issue, but it's more with arduino core now that I investigated
espressif/esp-idf#14324
Also the driver, which was working before without issues:
https://github.com/ZinggJM/GxEPD2

Sketch

https://github.com/Szybet/InkWatchy

Creating a minimized sketch didn't change anything, so no point in providing it, but I tried

Debug Message

There is no debug message, it's a visual error

Other Steps to Reproduce

No response

I have checked existing issues, online documentation and the Troubleshooting Guide

  • I confirm I have checked existing issues, online documentation and Troubleshooting guide.
@Szybet Szybet added the Status: Awaiting triage Issue is waiting for triage label Aug 8, 2024
@Szybet
Copy link
Author

Szybet commented Aug 8, 2024

All versions work, in both configuration of arduino core and esp idf, just when I fully remove arduino core from platformio and include it externally via the components dir, the screen ghosting increases

@Jason2866
Copy link
Collaborator

Jason2866 commented Aug 8, 2024

@Szybet As I already mentioned in issue Jason2866/platform-espressif32#78 the way you setup Platformio.ini is not the way as recommended.
Strange issues can happen with this setup. Change this setup!
Since this is espressif Arduino repo, do not expect issues solved when Platformio is heavily involved in the build process.

@Jason2866 Jason2866 added IDE: PlaformIO Issue relates to PlatformIO IDE and removed Status: Awaiting triage Issue is waiting for triage labels Aug 8, 2024
@Szybet
Copy link
Author

Szybet commented Aug 8, 2024

I went through all the weird things in my repo that could have caused it with Jason and after fixing all things it still doesn't work

@Szybet
Copy link
Author

Szybet commented Aug 8, 2024

Tested with another board and another screen, the difference there is smaller to the point it doesn't bother me, but the question remains, why does this happen???

@Jason2866
Copy link
Collaborator

@Szybet Please close since there is no Arduino core code involved.

@Szybet
Copy link
Author

Szybet commented Aug 8, 2024

Then who should I bother? It's about how arduino core is integrated into esp idf

@Jason2866
Copy link
Collaborator

Jason2866 commented Aug 9, 2024

Don't understand the problem. Arduino as an component of IDF works. Your example does not use this variant either. It is an IDF only project. Furthermore your code runs. The screen flicker you see is for sure not related to Arduino core, since not involved.
Arduino core is not integrated in IDF. Arduino is an layer on top of IDF. There is no single line of code in IDF from Arduino.

@Szybet
Copy link
Author

Szybet commented Aug 9, 2024

Depending on how I add arduino core to my project (Which I do use for many thing, the screen driver too):

  • as a component, in the component dir, the screen flickers badly
  • as precompiled binaries via arduinoespressif32 , the screen behaves normally

So it is a arduino core problem?

@Jason2866
Copy link
Collaborator

Jason2866 commented Aug 9, 2024

No, since you wrote with the precompiled Arduino libs it does work. Providing it as a component the Arduino libs are compiled with the settings you have done.
You are doing your own Arduino build this way. It is not the same as the ready made provided.
You write exactly this. Your self compiled version flickers. The ready made Arduino does not flicker. So it is clearly that it is no Arduino issue provided from the version here

To fix you have to find the different setting(s) in sdkconfig which is responsible for the different behaviour.

The used settings for the provided version from here are https://github.com/espressif/esp32-arduino-lib-builder/tree/master/configs
where the building of the Arduino libs is done.

@Szybet
Copy link
Author

Szybet commented Aug 9, 2024

I use(d) my own precompiled binaries:
https://github.com/Szybet/arduinoespressif32-inkwatchy
https://github.com/Szybet/inkwatchy-lib-builder

The configs in there are unchanged, but I add my own on top of them:
https://github.com/Szybet/inkwatchy-lib-builder/blob/main/apply_sdkconfig.sh

I obviously tried the other way, applying the configs from that repo to the sdkconfig that the new compilation method uses, but the screen still flickers, nothing changed

So no, I don't have different settings

@Szybet
Copy link
Author

Szybet commented Aug 9, 2024

Related arduino forum topic:
https://forum.arduino.cc/t/gxepd2-with-gdeh0154d67-display-ghosting/1290092

Here are the videos, maybe the issue will be clearer after I post them.
Here is the worst result, with the new compiling method:

worst.mp4

Notice it going grey after the reset message, before the watchface? That's the worse part, but the ghosting when going to the menu is also bad.

Here is a video on different hardware and screen, but the newer compiling method:

2.mp4

The problem here is less visible, but it still goes a little grey, so the problem may affect older screens, but those are compatible and weren't an issue before

Finally, an old build where everything is as it should be:

1.mp4

There is no to grey transition and there is a bit less ghosting after going to the menu

The difference on the other hardware is less visible, but it worked perfectly on the hardware shown on the first video too, after the software change it creates a mess

@Jason2866
Copy link
Collaborator

Jason2866 commented Aug 9, 2024

The configs in there are unchanged, but I add my own on top of them

No difference? You are changing settings. Once again. Original Arduino version does work. To say there is something wrong in the Arduino as component build variant you have to use exactly the same settings. Every small difference counts.

To be clear this repo is only for issues with the unchanged original libs and code from this repo. If anything changed and build yourself you walk alone for issues encountered.

@Szybet
Copy link
Author

Szybet commented Aug 9, 2024

previously, To the default setting I added at the end of the file my own settings
Now, to my settings at the bottom of the file I add the default settings

It doesn't matter...

Ok, another penny, I will try it...

@Jason2866
Copy link
Collaborator

Closing since issue is not existing with official Arduino version

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
IDE: PlaformIO Issue relates to PlatformIO IDE
Projects
None yet
Development

No branches or pull requests

2 participants