Probably every RPi user once wonders how to turn off Raspberry Pi?

You can't just turn off the power. If you do so, it is very likely one day SD card will be corrupted, and your RPi will not start up. You must first shut down OS, and only then you can turn it off by pulling the cord out of the socket, or if you are more advanced user, by switch installed by yourself. It is more or less ok, if you are using your RPi as desktop PC. But what to do if in your project neither the keyboard nor the mouse or the monitor are used?

My solution is based on the use of Mini Pushbutton Power Switch with Reverse Voltage Protection board. Let's get into details.

Step 1: Configure Your Raspberry Pi

First you need to edit config.txt file on your RPI, by adding a line:


Put this line at the end, before:


With this line you set GPIO14 (here I'am using BCM GPIO numbering) high at start up. When it will go low after shutdown, it will turn power off via pin “ctrl” on Pololu board.

Step 2: Connect Pololu Board to Your RPi

Connect Pololu board to your RPi as it is shown on the picture.

Step 3: Python Script

You need to add some code to your Python script, also


gpio.setup(31, gpio.IN, pull_up_down = gpio.PUD_UP) # set GPIO 31 as input

def Shutdown(channel): os.system("sudo shutdown -h now") # shuts down RPi on low GPIO31

gpio.add_event_detect(31, gpio.FALLING, callback = Shutdown, bouncetime = 2000) # waiting for GPIO low to shut down RPi


Step 4: How It Works

SW1 switch serves as „ON“ button. Nothing special, everything is clear :)

When you press SW2, shutdown process initializes by executing Python script.

Once the process is completed, GPIO8 goes low.

This low level on pin "ctrl" of Pololu board, turnes off the power.

That's it :)

Step 5: Thanks!

Visit my Blog for more interesting projects :

Youtube channel: