I'm running an electronic photoframe based on a Pi Zero W running Stretch lite 2018-11-13. The photoframe boots the auto login and starts a script that run "fbi" in loop to display images found in a USB key, at a pace of one per ten seconds.

The setup ran for almost two years with a Pi Zero and then I changed it to a Pi Zero W to be able to update the image set via WiFi. So far so good. It ran fine for almost 2-3 months.

Some day I remarked that the picture froze and did not change any more. It can occur after many minutes to few hours of perfect running. Also, it can freeze on any image. It is not always the same one.

When the image is frozen, the display is "perfect" in the sense that it doesn't flicker neither show other artifacts. It just stays on the same image forever. When this occurs, it is not possible to connect to the Pi via SSH. So I guess the processor is hung.

Question: why, if the CPU is stalled, is the image still correctly displayed? Any clue on how to fix this? I must admit that I already got my replacing Pi... I won't waste many hours on this problem but I would like to know why this behaviour occurs...? Any suggestions?

Thanks in advance for sharing your knowledge!


The Pi has 3 "components" the CPU, GPIO and Video Core which are relatively independent.

As you might guess the Video Core is responsible for display, and will continue to display the contents of the frame buffer, even if the CPU is not running.

In early versions of Raspbian, you could halt the CPU (and later restart) and the display and programs would remain in place.

This is no longer possible. There is no Halt command, and the shutdown process performs a "cleanup" - although the GPIO maintains its state, the Video Core displays messages generated during this process. My guess is that the reboot functionality (which is controlled by the Video Core) which was introduced into the firmware is responsibile.

On odd occasions e.g. when the shutdown does not run to completion, you may still see the "normal" display.

PS You could try enabling the inbuilt watchdog to restart on failure.

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.