Hi I followed all of the instructions step-by-step. I am using a raspberry pi 3B+ running raspbian stretch. The ON and Off buttons work, but not the Softshut Off button. Shown below is what I get when I run "systemctl status piswitch.service". Any suggestions?
pi@raspberrypi:~ $ systemctl status piswitch.service
● piswitch.service - Starts softshut for Pi Switch
Loaded: loaded (/etc/systemd/system/piswitch.service; enabled; vendor preset:
Active: failed (Result: exit-code) since Fri 2020-01-31 16:57:53 CST; 13min a
Process: 348 ExecStart=/opt/piswitch/softshut.py (code=exited, status=1/FAILUR
Main PID: 348 (code=exited, status=1/FAILURE)
Jan 31 16:57:52 raspberrypi systemd[1]: Started Starts softshut for Pi Switch.
Jan 31 16:57:53 raspberrypi softshut.py[348]: Traceback (most recent call last):
Jan 31 16:57:53 raspberrypi softshut.py[348]: File "/opt/piswitch/softshut.py"
Jan 31 16:57:53 raspberrypi softshut.py[348]: GPIO.wait_for_edge(PinSeven, G
Jan 31 16:57:53 raspberrypi softshut.py[348]: RuntimeError: Error waiting for ed
Jan 31 16:57:53 raspberrypi systemd[1]: piswitch.service: Main process exited, c
Jan 31 16:57:53 raspberrypi systemd[1]: piswitch.service: Unit entered failed st
Jan 31 16:57:53 raspberrypi systemd[1]: piswitch.service: Failed with result 'ex
lines 1-14/14 (END)
This is what my softshut.py file looks like.
#!/usr/bin/env python
Import the modules to send commands to the system and access GPIO pins
from subprocess import call
import RPi.GPIO as GPIO
from time import sleep
Map pin seven and eight on the Pi Switch PCB to chosen pins on the Raspberry Pi header
The PCB numbering is a legacy with the original design of the board
PinSeven = 7
PinEight = 11
GPIO.setmode(GPIO.BOARD) # Set pin numbering to board numbering
GPIO.setup(PinSeven, GPIO.IN) # Set up PinSeven as an input
GPIO.setup(PinEight, GPIO.OUT, initial=1) # Setup PinEight as output
while (GPIO.input(PinSeven) == False): # While button not pressed
GPIO.wait_for_edge(PinSeven, GPIO.RISING) # Wait for a rising edge on PinSeven
sleep(0.1); # Sleep 100ms to avoid triggering a shutdown when a spike occured
sleep(2); # Sleep 2s to distinguish a long press from a short press
if (GPIO.input(PinSeven) == False):
GPIO.output(PinEight,0) # Bring down PinEight so that the capacitor can discharge and remove power to the Pi
call('poweroff', shell=False) # Initiate OS Poweroff
else:
call('reboot', shell=False) # Initiate OS Reboot
Thanks!
Hi I followed all of the instructions step-by-step. I am using a raspberry pi 3B+ running raspbian stretch. The ON and Off buttons work, but not the Softshut Off button. Shown below is what I get when I run "systemctl status piswitch.service". Any suggestions?
This is what my softshut.py file looks like.
Thanks!