Read the statement by Michael Teeuw here.
Motion Detector
-
Hi,
for all the people here I wrote it more cleary :D
i had big problems by switching off my screen with the PIR or another module with camera. The problem was not the module itself it is a firmware problem of the PI. I could see the same problem outside of MagicMirror as well by trying different things.
Reported also here:
https://github.com/raspberrypi/linux/issues/487The symptom is that after a while of switching on and off the screen it remains off.
Dmesg reports the problem:
Nov 1 08:22:00 MagicMirror kernel: [86411.138649] raspberrypi-firmware soc:firmware: Request 0x00048003 returned status 0x80000001 Nov 1 08:22:00 MagicMirror kernel: [86411.138665] bcm2708_fb soc:fb: Failed to allocate GPU framebuffer (-22) Nov 1 08:22:00 MagicMirror kernel: [86411.138670] detected fb_set_par error, error code: -22 Nov 1 08:22:00 MagicMirror kernel: [86411.139138] raspberrypi-firmware soc:firmware: Request 0x00048003 returned status 0x80000001 Nov 1 08:22:00 MagicMirror kernel: [86411.139148] bcm2708_fb soc:fb: Failed to allocate GPU framebuffer (-22) Nov 1 08:22:00 MagicMirror kernel: [86411.139152] detected fb_set_par error, error code: -22 Nov 1 08:22:00 MagicMirror kernel: [86411.140642] raspberrypi-firmware soc:firmware: Request 0x00048003 returned status 0x80000001 Nov 1 08:22:00 MagicMirror kernel: [86411.140654] bcm2708_fb soc:fb: Failed to allocate GPU framebuffer (-22) Nov 1 08:22:00 MagicMirror kernel: [86411.140659] detected fb_set_par error, error code: -22 Nov 1 08:22:00 MagicMirror kernel: [86411.140777] raspberrypi-firmware soc:firmware: Request 0x00048003 returned status 0x80000001 Nov 1 08:22:00 MagicMirror kernel: [86411.140785] bcm2708_fb soc:fb: Failed to allocate GPU framebuffer (-22) Nov 1 08:22:00 MagicMirror kernel: [86411.140789] detected fb_set_par error, error code: -22 Nov 1 08:22:00 MagicMirror kernel: [86411.140856] raspberrypi-firmware soc:firmware: Request 0x00048003 returned status 0x80000001 Nov 1 08:22:00 MagicMirror kernel: [86411.140863] bcm2708_fb soc:fb: Failed to allocate GPU framebuffer (-22) Nov 1 08:22:00 MagicMirror kernel: [86411.140868] bcm2708_fb_pan_display(0,0) returns=-22 Nov 1 08:22:00 MagicMirror systemd[1]: Started Getty on tty6. Nov 1 08:22:00 MagicMirror kernel: [86411.256398] raspberrypi-firmware soc:firmware: Request 0x00048003 returned status 0x80000001 Nov 1 08:22:00 MagicMirror kernel: [86411.256413] bcm2708_fb soc:fb: Failed to allocate GPU framebuffer (-22) Nov 1 08:22:00 MagicMirror kernel: [86411.256418] detected fb_set_par error, error code: -22 Nov 1 08:22:00 MagicMirror kernel: [86411.256758] raspberrypi-firmware soc:firmware: Request 0x00048003 returned status 0x80000001 Nov 1 08:22:00 MagicMirror kernel: [86411.256770] bcm2708_fb soc:fb: Failed to allocate GPU framebuffer (-22) Nov 1 08:22:00 MagicMirror kernel: [86411.256775] bcm2708_fb_pan_display(0,0) returns=-22 Nov 1 08:22:00 MagicMirror kernel: [86411.296428] raspberrypi-firmware soc:firmware: Request 0x00040002 returned status 0x80000001 Nov 1 08:22:00 MagicMirror kernel: [86411.296455] bcm2708_fb soc:fb: bcm2708_fb_blank(0) failed: -22
Switching off the screen with
/opt/vc/bin/tvservice -o
and on with
/opt/vc/bin/tvservice --preferred && sudo chvt 6 && sudo chat 7
does not work reliable! The git issue tells you more about.
The workaround is a not yet described solution inside the config.txt
https://github.com/raspberrypi/documentation/pull/245/files
the option “hdmi_blanking=1” is your friend in this case! :D
Now i’m switching off the screen with
vcgencmd display_power 0
and on with
vcgencmd display_power 1
And it is working now like a charm! Did started to use it one day before this report and it is still working without any issue :)
Honestly speaking i don’t use any MM module for switching off anymore. But maybe my discovered solution will help any other and might be a way to change the module as well.
If you have trouble with on/off as well please check the output of dmesg. If you have the frambuffer problem you can fix it.
My personal solution is to have the PIR state at FHEM and from FHEM i’m using a script to switch the screen. But that’s a special case and for the most people here the usage of a MM Module will be the better way.
regards
Dirk -
@DirkS thx for sharing! one question please : where is located the option : “hdmi_blanking=1” ???
-
@bibi Based on that pull request, it looks like it’s in the
config.txt
of your Pi. So/boot/config.txt
-
@bibi yes you need to include it into /boot/config.txt
-
-
-
@DirkS Thank you. Pi doesn’t die over nights :D
But before I mess it up:
Would the motion detection with the common script work or not?
How did you realize it? Where did you enter your new script?And don’t you want to make an additional motion detector module for those who have the same problem? :)
I don’t see the original programmer caring to much. ;)cheers
done -
@done as discribed above by @cpramhofer (thanks to you :) ) i created the monitor_on and off.sh script.
With FHEM i’m polling the PIR status and use a DOIF to call on or off. Because my homeautomation depends in FHEM i have much more control instead of using a MM module, i switch much more devices with the PIR as well. I have several Pi’s with FHEM installed so it is also on the PI for the Mirror. -
@bib you are providing a bit less information to give you some tipp.
-
@DirkS ok here you go. 1st: when the Pi is started the screen directly goes into sleep. it’s a bit annoying but i can live with that as i will not reboot it everyday. 2nd: to wake up the system with a motion during this sleep mode, it takes quite a while (don’t know why) 3rd: when motion is detected, screen wakes up and stays up accordingly the time defined in config.js and goes sleep again (this is fine) but suddently it wakes up again without motion and this last behavior is unpredictable. i hope it’s enough info for you but don’t hesitate to ask more if needed. thx
moreover your script is i guess different from the one of this pull…