Read the statement by Michael Teeuw here.
Magic Mirror with touchscreen Display/Monitor
-
Well, I start the xin.sh with PM2 and it works with calibrating the IR-frame:
xin.sh:
#!/bin/bash
DISPLAY=:0.0 xinput --set-prop “Multi touch Multi touch overlay device” “Coordinate Transformation Matrix” 0 -1 1 1 0 0 0 0 1However, after the mm.sh (the MagicMirror) has started, then when I go back to Raspberry disktop the the Calibration is off again. If I then run the xin.sh with “pm2 start xin.sh” in a terminal window then the calibration is okay again.
This is the error that I get from pm2 log file:
Bo@MMpi:~ $ pm2 list
┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
│ id │ name │ mode │ ↺ │ status │ cpu │ memory │
├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
│ 0 │ xin │ fork │ 15 │ errored │ 0% │ 0b │
└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘
[PM2][WARN] Current process list is not synchronized with saved list. App led mm differs. Type ‘pm2 save’ to synchronize.
Bo@MMpi:~ $ pm2 log
[TAILING] Tailing last 15 lines for [all] processes (change the value with --lines option)
/home/Bo/.pm2/pm2.log last 15 lines:
PM2 | 2022-03-31T20:11:38: PM2 log: App [xin:0] online
PM2 | 2022-03-31T20:11:38: PM2 log: App [xin:0] exited with code [0] via signal [SIGINT]
PM2 | 2022-03-31T20:11:38: PM2 log: App [xin:0] starting in -fork mode-
PM2 | 2022-03-31T20:11:38: PM2 log: App [xin:0] online
PM2 | 2022-03-31T20:11:38: PM2 log: App [xin:0] exited with code [0] via signal [SIGINT]
PM2 | 2022-03-31T20:11:38: PM2 log: App [xin:0] starting in -fork mode-
PM2 | 2022-03-31T20:11:38: PM2 log: App [xin:0] online
PM2 | 2022-03-31T20:11:38: PM2 log: App [xin:0] exited with code [0] via signal [SIGINT]
PM2 | 2022-03-31T20:11:38: PM2 log: App [xin:0] starting in -fork mode-
PM2 | 2022-03-31T20:11:38: PM2 log: App [xin:0] online
PM2 | 2022-03-31T20:11:38: PM2 log: App [xin:0] exited with code [0] via signal [SIGINT]
PM2 | 2022-03-31T20:11:38: PM2 log: App [xin:0] starting in -fork mode-
PM2 | 2022-03-31T20:11:38: PM2 log: App [xin:0] online
PM2 | 2022-03-31T20:11:38: PM2 log: App [xin:0] exited with code [0] via signal [SIGINT]
PM2 | 2022-03-31T20:11:38: PM2 log: Script /home/Bo/xin.sh had too many unstable restarts (16). Stopped. “errored”/home/Bo/.pm2/logs/xin-out.log last 15 lines:
/home/Bo/.pm2/logs/xin-error.log last 15 lines:
0|xin | Invalid MIT-MAGIC-COOKIE-1 keyUnable to connect to X server
0|xin | Invalid MIT-MAGIC-COOKIE-1 keyUnable to connect to X server
0|xin | Invalid MIT-MAGIC-COOKIE-1 keyUnable to connect to X server
0|xin | Invalid MIT-MAGIC-COOKIE-1 keyUnable to connect to X server
0|xin | Invalid MIT-MAGIC-COOKIE-1 keyUnable to connect to X server
0|xin | Invalid MIT-MAGIC-COOKIE-1 keyUnable to connect to X server
0|xin | Unable to connect to X server
0|xin | Invalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 keyUnable to connect to X server
0|xin | Invalid MIT-MAGIC-COOKIE-1 keyUnable to connect to X server
0|xin | Unable to connect to X server
0|xin | Invalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 keyUnable to connect to X server
0|xin | Invalid MIT-MAGIC-COOKIE-1 keyUnable to connect to X server
0|xin | Unable to connect to X server
0|xin | Invalid MIT-MAGIC-COOKIE-1 keyUnable to connect to X server
0|xin | Invalid MIT-MAGIC-COOKIE-1 keyUnable to connect to X serverShould I do something else with pm2 or run the xin.sh in an other way?
It would be so nice to have i done automatically 😁
the mm.sh file:
cd ~/MagicMirror
DISPLAY=:0 npm startBest Bo
-
-
-
@BJK no… NEVER use sudo for anything unless you know WHY you are doing it…
and you were logged on as user pi, right?
-
-
@BJK pm2’s JOB is to start and run stuff AND KEEP it running…
so, if it ends. pm2 will start it back up…
and if it errors too many times too fast it will stop restarting…
-
@BJK I don’t start the xin.sh (with pm2). if you read in the xin.sh file you will find instructions how I did it… :) Here you can download the xin.sh.
The script (if you don’t want to download it):
#!/bin/bash # Before I just tested with the xinput command directly in the autostart file, but that did not work. So now instead I just created a script called xin.sh. # nano ~/xin.sh # Then added # DISPLAY=:0.0 xinput --set-prop "Multi touch Multi touch overlay device" "Coordinate Transformation Matrix" 0 1 0 -1 0 1 0 0 1 # There should actually be 3 spaces between “Multi touch” and “Multi touch overlay device”. For some reason the board removes the extra spaces here. # # You can actually find the “name” of the device with this commandDISPLAY=:0.0 xinput list # Shows something like this: # # Virtual core pointer id=2 [master pointer (3)] # Virtual core XTEST pointer id=4 [slave pointer (2)] # Multi touch Multi touch overlay device id=6 [slave pointer (2)] # Virtual core keyboard id=3 [master keyboard (2)] # Virtual core XTEST keyboard id=5 [slave keyboard (3)] # # Depending on what you have connected to your RPi. 🙂 # # So, after creating the xin.sh I added that to the autostart file for LXDE: # Like this: # nano ~/.config/lxsession/LXDE-pi/autostart # Added at the end of the file. # @/home/pi/xin.sh # Restarted and it works. # DISPLAY=:0.0 xinput --set-prop "Multi touch Multi touch overlay device" "Coordinate Transformation Matrix" 0 1 0 -1 0 1 0 0 1
You have to figure out your own “matrix” of course… :) Not sure if mine is the same…
-
Thank you! :beaming_face_with_smiling_eyes:
Now, after your precise suggestions, I did read up on the autostart for Raspberry:
https://forums.raspberrypi.com/viewtopic.php?t=313191
https://forums.raspberrypi.com/viewtopic.php?f=66&t=294014and using:
“sudo nano /etc/xdg/lxsession/LXDE-pi/autostart”I pasted my line at the end of the the autostart:
@/home/pi/xin.sh
and then saved the fileIn the xin.sh file, I have:
line1: #!/bin/bash
line 2: DISPLAY=:0.0 xinput --set-prop “Multi touch Multi touch overlay device” “Coordinate Transformation Matrix” 0 -1 1 1 0 0 0 0 1So, just two lines and "line1or2: " is not part of the file :smirking_face: (and - as you said - I do have a bit different coordinate compared to you)
AND now it WORKS! Thank you !
-
@BJK Great to hear!! :)
-
@BJK LXDE/autostart is running as root I think…
pm2 autostart is NOT running as root, so u have to use sudo