Closed andyyngo closed 5 months ago
Is this time that you see on the screenshot in the interface, or time you see on the actual display? Hard to help without knowing any more details about your setup.
This is from actual display. This bug got nothing to do with the FrameOS controller. Just the nim code deployed to the Pi
What screen are you using? What does your FrameOS scene look like? What logs do you get during bootup?
Screen: Waveshare 7.5" 800x480
Hardware: Raspberri Pi 4
Scene
Sequence of events:
Startup
Refresh
Restart
Refresh
Thank you!
This is very weird behaviour. FrameOS only caches things in memory, so it's very weird to see the display or the frame remember the image. This might be due to some mistake on in the initialization sequence, but I'm not sure.
Which driver are you using?
I might have exactly the same display, so I'll run some more tests to see if I can replicate this. This might be tomorrow though.
Driver info: waveshare.epd7in5_V2 800x480 black
Extra information: The initial stucked screen always ending with xx:17 So far I see: 10:17, 11:17 and the latest one is 17:17
I just booted up my waveshare frame with the same driver and it's working quite well. I'll be monitoring it for a while, but so far shows every minute (refresh interval 60 seconds).
However to get it to work I had to revert one change I had done a few days ago to the waveshare drivers. Perhaps something there also fixes your situation, I'm not sure.
It might be worth upgrading to the latest version just in case to see.
I use watchtower, the frameOS image was updated 2hrs ago.
With the same setup above, made a small change in time format. The problem is still there. So the display always shows 17 in the minute section xx:17:xx when startup, then the first refresh will bring the value to the correct state.
https://github.com/FrameOS/frameos/assets/2083512/31a4a1e6-0d4c-41c8-9a7c-6f5000b51991
One thing that I noticed is that on the images, on your HAT, the "Display Config" setting is set to "A: 3R", whereas I have it at "B: 0.47R". I don't know what difference it makes, nor do I remember explicitly setting it to something else.
Some other things to try:
make clean && make EPD=epd7in5V2 && ./epd
. Will the waveshare example get any image frozen, or will it work fine?:17
shows up in the logs as well, then it's definitely not the display that's at fault.Hey again @andyyngo, I just merged this PR, which includes some changes I copied from ESPHome (longer discussion).
The bigger change in the merged PR is of course black and white dithering, meaning you can now use this display for photos. I was getting weird artifacts with the dithered images though, and these changes to the driver did make a difference. Perhaps they will also accidentally fix this ghosting number?
few things:
yup, this thread confirms my theory https://forums.raspberrypi.com/viewtopic.php?t=254744
Hey, this does make some sense, though strange that it's always :17
, and strange that I haven't experienced anything similar myself.
I might add some "wait until there's network" functionality to get around this, however a quick workaround is be to add the init
event to the scene, and then write custom code that essentially just runs import os
and then sleep(30000)
in it. This could be enough for the frame to connect to wifi and talk to ntp to get the current time, before a frame is displayed.
Well, I just experienced this myself. I also got a frame to show :17 on boot (with the right hour), and only a minute later it would update to the correct time.
When the overlay clock starts from cold state, it picks up and displays the cached value. Only after the first refresh, the correct time show.
Example: