Hi, yeah, so, the fixed helped reduce SDRAM bandwidth but only enough to fix the display issues to the PC. There’s still not enough bandwidth for the screen.
The only other thing to do is to reduce the refresh rate on the screen. class RGBDisplay – RGB Display Driver — MicroPython 1.20 documentation. This may cause the screen to unlock though. The display controllers kinda assume 60 hz and don’t like it when you are not going that fast. Maybe try 50 and then 40 and then 30 and see what happens.
The interrupt snapshot has nothing to do this this. It’s purely that the SDRAM is not able to deliver data in time. Both the camera and screen are real-time processes that can’t be back-pressured so they drop data when SDRAM doesn’t deliver things in time.
Moving the screen buffer into another bank helps reduce contention but it still doesn’t give the display enough bandwidth.
The only other fix I have is to set the number of frame buffers on the camera to 1. sensor.set_framebuffers(1). This will heavily reduce the camera performance (half FPS), but, it greatly reduces the load on the SDRAM.