-
Notifications
You must be signed in to change notification settings - Fork 63
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
Even enabling PSRAM on boards that support it makes the signal lose sync #22
Comments
I found that its specifically the -mfix-esp32-psram-cache-issue line required in the build_flags in platformIO to be the issue I suspect it is somehow affecting caching across all RAM. |
Anyone have any idea? Could it be that I have to prevent the other core from running code except during blanking? (Like the cache is getting messed up or something.) |
Also would it be better to continue using this or move over to the implementation in https://github.com/bitluni/ESP32Lib ? |
I was able get rid of the sync issue when using the PSRAM for the back buffer on a ESP32-WROVER-E. The idea is to use core 0 for all the rendering and core 1 to call sendFrameHalfResolution() in a loop. Problem: By default the ESP32 Arduino toolset runs setup() and loop() on core 1 of the ESP32. This forces us to use core 0 for calling sendFrameHalfResolution() in a loop. However any time the PSRAM is accessed core 0 is interrupted, which causes all kinds of sync issues. However core 1 is not interrupted, so to solve the problem we need to simply swap the two cores. Solution: I was not able to do this is in the Arduino IDE, so I used Eclipse + Sloeber which is much more powerful and flexible development environment. Here are the steps:
Effects of the change:
|
Interesting, I will have to take a look. I have slightly moved on from using composite tho, (Currently using fabgl embed into micropython for VGA) |
I have an ESP32 WROVER and I have found if I even enable PSRAM the system loses sync and the text slowly moves down the screen.
I am not sure as to why as the buffers should still be in main ram unless arduino-esp32 changed the functioning of malloc in respect to PSRAM lately.
The text was updated successfully, but these errors were encountered: