C++ Shell C Python Makefile CMake Other
Clone or download


PowerBlock Driver

Build Status

This is the driver for the petrockblock.com PowerBlock, which is an extension board for the Raspberry Pi (TM). The driver itself is denoted as powerblock in the following. The driver provides a service for interacting with the power button signal as well as driving the optionally attached LED.

Quick Installation

There comes an installation script with this reposity that does all the steps described below: install.sh This script compiles the driver, installs the binary and configuration files, and installs the PowerBlock service.

To run the quick installation, you just need to call this one line from the Raspbian console

wget -O - https://raw.githubusercontent.com/petrockblog/PowerBlock/master/install.sh | sudo bash

To uninstall the service you can simply call sudo ./uninstall.sh from within the PowerBlock directory.


If you did not follow the quick installation instructions above, you can manually execute the steps of the installation script. These are described in the following.

To be able to successfully build powerblock you need to have certain APT packages installed. You can make sure that you have the latest version of those packages with these commands:

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y cmake g++-4.9 doxygen

Downloading the Sources

If you would like to download the latest version of powerblock from its Github repository, you can use this command:

git clone --recursive https://github.com/petrockblog/PowerBlock.git

Building and Installation

To build the PowerBlock driver binary follow these commands:

cd PowerBlock
mkdir build && cd build
cmake ..

If everything went fine you can install with the command

sudo make install

Installation as Service

You can install powerblock as daemon with this command:

sudo make installservice

It might be that you need to restart your Raspberry afterwards to have all needed services running.

Uninstalling the service and/or the binary

You can uninstall the daemon with this command:

sudo make uninstallservice

You can uninstall the binary with this command:

sudo make uninstall


The configuration file of powerblock is located at /etc/powerblockconfig.cfg. It uses JSON syntax for setting the the values of its configuration parameters.

The parameters are explained in detail in the following:

  • powerswitch - activated: Can be set to
    • true: Activates the handling of the power switch signals of the PowerBlock.
    • false: Deactivates the handling of the power switch signals of the PowerBlock.

Shutdown Script

When the driver observes a shutdown signal from the PowerBlock, a shutdown Bash script is called. You can find and edit it at /etc/powerblockswitchoff.sh.

Have fun!

-Florian petrockblock.com