-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Problem with long chain - framerate drops after different time #458
Comments
I have the same problem, I thought it is the Raspberry CPU throttling because of overheating. But I couldn't confirm it yet. |
I'd make sure that the crontab program does not set some Also I'd use the Other than that, for such a long chain I suggest to set the disable RT throttle setting, i.e. remove the comment in #DEFINES+=-DDISABLE_RT_THROTTLE in |
Did you figure it out ? I suspect your cron is just running things in a very low CPU setting and does not allow the program to use all the CPU and realtime settings it needs. |
I would like to reopen this issue, as I have tested your suggested actions. Disabling throttling and setting nice parameter to -19 did not remove this framerate dropping effect. Do you have any other suggestions? We have used this software in other projects with smaller displays (like 200-300 px width max instead of 700) and there were no such problems. |
The longer the display chain is, the more you are susceptible to the operating system interrupting you creating changes in the time it takes to refresh a whole screen. If in a time period there are less refreshes per second, you see this as a brightness deviation. A chain of 44 is very long. Typically you start seeing drop in framerate after about 8 or so, so 44 is definitely stretching it (ususally, you'll get a couple of hundred Hz refresh rate with 16 high panels). You are also only using 2 parallel chains. You should consider using all 3 chains as they don't cost any extra CPU to use, but now you only need about 30 panels in each chain, which would definitely help. There are a few potential reasons why the variations happen:
I don't understand how you run the application from the crontab ? Are you just displaying something shortly and then exit ? I would rather suggest to have the application running all the time, only started at boot time of the Pi and build a way to trigger it showing things you'd like to show. The problem with starting and stopping is that you don't keep the cache warm, which will not work well in your situation (see above). Finally, you can try to smooth out the framerate fluctuations by setting it to some fixed value; there is an option in a more recent version of the library, FIXED_FRAME_MICROSECONDS in lib/Makefile. It helped people that have seen slight fluctuations in brightness to get an entirely smooth output. However with this procedure you'll fix it at the lowest framerate observed, which is pretty low already because you have a very long chain and only use two parallels. So suggestions in sequence of difficulty
|
EDIT: I have reinvestigated my problem and now can describe it better.
Hello,
My display is built from 2 parallel chains of 64x32 P4 modules, 11 modules long. I am using these parameters:
Everything works fine when I run app from rpi's console.
Unfortunately when I run your application from watchdog or crontab -e, I got problem with framerate and brightness drop. They drops about 50% (from ~160Hz to 80Hz, brightness drops twice too). It happens with different time intervals, sometimes 2 minutes all is good, 1 minut bad, 5 minutes good...
I use minimal distro of Raspbian Lite Stretch (Raspberry Pi 3 v 1.2 model B).
Why is this happening?
Thank you for your help
The text was updated successfully, but these errors were encountered: