I am frankly frustrated with the display and haven't touched it since February. I don't mean that the display doesn't work, but the pixelation/ artifact from the previous sketch is annoying. Moved on with basic non-touch OLED monochrome display for my project
I have a similar situation, but it's been 100% consistent and always clears after a second or so. That is to say, when restarted, the display:
- goes dark,
- then *briefly shows the last screen,
- then goes dark again,
- restarts,
- and sketches run as expected.
(fortunately I've been able to clear that artifact - it goes away on its own in my case.) My question is whether there is a way to avoid the artifact in the first place. It seems to confuse users - they think the reboot is complete, when it's really not. I'd love to know how to suppress / eliminate that, if anyone's been through it. Any help appreciated!
@laramsey what artifact are you being prompted with? Can you please share a image of it (if possible to replicate)?
Yes - I can replicate it every time; It's the last screen image - whatever that happens to be - when the reset comes along. In my case, it's this home screen. It sounds like most of us in this thread are experiencing the same thing, to various degrees. For me, the only ill effect is to confuse users. Seeing that last screen makes users think the reboot is complete, when , in fact, it is just beginning.
For that reason, I'd love to have a way to suppress it, if one exists.
I suppose it's worth mentioning that the artifact screen in my case fades with time; if I leave power off for several minutes, it eventually looks similar to the image in the OP. Also worth mentioning: ssengmr sums it up well in the first sentence of his OP: "Giga Display Shield displays artifacts from previous code despite flashing new code" (emphasis added).
That seems like ram artifacts after ram looses power, almost as if either new data wasn’t written, or the code was taking data from a wrong address
No, it's not normal for the Giga Display Shield to show artifacts from previous code after flashing new code, especially when you've used display.clear()
. Here are some troubleshooting steps to fix the issue:
- Deep Clear or Hardware Reset:
- Some displays might require a deeper cleaning than
display.clear()
. Check your Giga Display Shield documentation or online resources for specific instructions on a deep clear or hardware reset procedure.
- Code Optimization:
- Ensure your
customImage.h
library doesn't accidentally modify the display buffer in a way that conflicts with the previous code. Double-check initialization and drawing routines in both libraries.
- Library Compatibility:
- Verify compatibility between
Arduino_H7_Video.h
,lvgl.h
, and your custom image library. These libraries might have initialization or drawing functions that interfere with the basic graphics library.
- Serial Monitor Output:
- If your code includes serial communication, check the output on the serial monitor after flashing new code. Look for any error messages or unexpected behavior that might indicate incomplete clearing or initialization issues.
- Try a Minimal Example:
- Create a minimal example using just
Arduino_H7_Video.h
and your custom image library, excluding lvgl.h for now. This helps isolate if the issue lies with lvgl integration.
- Check Library Versions:
- Make sure you're using the latest versions of
Arduino_H7_Video.h
and lvgl.h (if applicable). Outdated libraries might have bugs related to display clearing.
- Community Resources:
- Search online forums or communities related to the Giga Display Shield, Arduino_H7_Video.h, or lvgl.h. Other users might have encountered similar issues and found solutions.
- Contact Manufacturer:
- If none of these solutions work, consider contacting the manufacturer of your Giga Display Shield for assistance. They might have specific troubleshooting steps or recommendations for your hardware and software combination.
By systematically going through these steps, you should be able to identify the cause of the artifact issue and ensure your Giga Display Shield displays the new code without remnants of the previous one.
I got back to the Giga display after several months and noticed that the artifacts aren't there anymore
FYI There is a well known scenario where for a short time during startup before your setup code can run thatthe GIGA Display Shield will have a spurious display. If the board had been freshly powered up it may display random noise in the frame buffer. If that board was already running and you pressed the reset button or loaded new code then the last image from just before the reset will be displayed. These spurious images will disappear as soon as your setup code runs and displays something else.
More details and a fairly simple workaround are described here.
Giga Display Shows Garbage During Boot