I have a script that generates a screen image and displays it on the Inky Impression, and it works perfectly when run from a terminal. However, when I set up the script to run via systemd as a service, the screen starts updating and then stops halfway through, leaving the display in a bad state.
Why would this happen only when running the Python file as a service? I am stumped–any direction would be much appreciated!
The service log says the following:
● script.service - Script
Loaded: loaded (/lib/systemd/system/script.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sun 2021-06-13 00:27:00 EDT; 45s ago
Process: 557 ExecStart=/usr/bin/python3 /home/pi/script.py (code=exited, status=1/FAILURE)
Main PID: 557 (code=exited, status=1/FAILURE)
Jun 13 00:26:59 Pi3B python3[557]: inky.show()
Jun 13 00:26:59 Pi3B python3[557]: File “/usr/local/lib/python3.7/dist-packages/inky/inky_uc8159.py”, line 365, in show
Jun 13 00:26:59 Pi3B python3[557]: self._update(buf.astype(‘uint8’).tolist(), busy_wait=busy_wait)
Jun 13 00:26:59 Pi3B python3[557]: File “/usr/local/lib/python3.7/dist-packages/inky/inky_uc8159.py”, line 329, in _update
Jun 13 00:26:59 Pi3B python3[557]: self._busy_wait()
Jun 13 00:26:59 Pi3B python3[557]: File “/usr/local/lib/python3.7/dist-packages/inky/inky_uc8159.py”, line 309, in _busy_wait
Jun 13 00:26:59 Pi3B python3[557]: raise RuntimeError(“Timeout waiting for busy signal to clear.”)
Jun 13 00:26:59 Pi3B python3[557]: RuntimeError: Timeout waiting for busy signal to clear.
Jun 13 00:27:00 Pi3B systemd[1]: script.service: Main process exited, code=exited, status=1/FAILURE
Jun 13 00:27:00 Pi3B systemd[1]: script.service: Failed with result ‘exit-code’.
1 post - 1 participant