ControlPi Initial Release

The Raspberry Pi has a lot of potential as a low cost automation and control processor. But getting one set up to use in a professional installation is a real hassle.

That’s why we decided to create a lightweight image to use as a starting point. Here is a quick look at what is currently included…

Download ControlPi

You can find the latest ControlPi image here

A Lightweight Version of the Raspbian Operating System

Most users start with the NOOBS version of the Raspbian OS. This is a great way to get started, but it includes many features that will never be used for automation and control. It also includes some licensed software that you are probably not allowed to distribute.raspbian

That’s why we started with the Minibian image. It includes the Raspbian operating system without all the extras. There is no desktop and no video output. Which means the Raspberry Pi will use less power and boot up faster.



Node.js is a JavaScript runtime built on Chrome’s V8 JavaScript engine. It uses an event-driven, non-blocking I/O model that makes it perfect for automation and control.

Node Package Manager

Node Package Manager gives you access to packages of reusable code. This will help AV programmers share programming modules that control specific devices with just a few keystrokes.

node red


Node-RED is a drag and drop editor that makes it easy to get started with automation and control programming. Don’t believe me? Check out this demo starting at 1:30…


Node-RED Dashboard

To quickly create user interfaces that can be used in any web browser

node red

Read Only File System

The biggest reliability issue with the Raspberry Pi is when power is unexpectedly removed. When it is not shut down properly the SD card can get damaged. The operating system boots from the SD card, so if it is damaged – guess what? No control for you! ?

The way to make the Raspberry Pi rock solid is to make the file system read only. When a computer is running, you never really know what parts of memory are being used. A proper shutdown puts everything in the proper place first. But if that process does not happen (like when you just pull the plug), important pieces of data may be in the wrong place.

If a file system is set to read only, the computer knows not to mess around with it. So your data is safe and sound – even when not properly shut down.

“But how do I edit my programming?”, you may ask…

You can quickly switch back and forth between read-only and read-write modes with the Control Pi image.

SSH Enabled

ControlPi comes with SSH enabled so you have full access to the system. Because there is no desktop, ssh is currently the only way to make changes to the operating system.

A configuration web page is planned for a future release.

The default username is:


and the password is


Make sure you change that password right away…

DHCP Enabled

DHCP is enabled by default. So make sure you have a DHCP server handy so the Raspberry Pi can get a good IP address. Once that is done, you can check out the video below to set a static IP if you like.

Getting Started

You can download the latest version of ControlPi here.

Some details may be different in the latest version than in the videos below…

If you have any issues or feature requests, please post them to the GitHub repository. (Github will only be used for tracking issues because the image exceeds their file size requirements).

Here are a few videos that cover the most common tasks to get started…

Flash ControlPi To An SD Card


Switch ControlPi between read only and read write

To connect to the Raspberry Pi with SSH, use Terminal on a Mac…

ssh pi@raspberrypi

password: raspberry

Or with Windows, use Putty…

putty ssh                    putty login

To enter read-write mode, enter with ssh:
To enter read-only mode, enter with ssh:

Change ControlPi to a static IP Address

To see the current IP settings, enter with ssh:

ip addr show

Or to view the file where the settings are stored:

cat /etc/network/interfaces

Take note of the ethernet adapter (eth0 or eth1).

To edit the settings, enter with ssh:

sudo nano /etc/network/interfaces

Then adjust the settings as follows for a static IP Address (assuming your ethernet adapter is named eth0):

iface eth0 inet static 





Change The ControlPi SSH Password

To change the ssh password, use the following command with ssh…


Expand ControlPi to fill the SD card (optional)

Use the following command to see what the current size of the file system is:
df -h
Before expanding the partition, set the system to read-write, then edit a few files as follows:

nano /boot/cmdline.txtThen Remove:

fastboot noswap roCtrl + O, Enter, Ctrl + X
nano /etc/fstab

Remove ,ro from both mounts

Ctrl + O, Enter, Ctrl + X
nano /etc/bash.bash_logout

And remove everything:

sudo mount -o remount,rw /
history -a
sudo fake-hwclock save
sudo mount -o remount,ro /
sudo mount -o remount,ro /boot

Ctrl + O, Enter, Ctrl + X

Then open raspi-config:

Select Advanced Options -> Expand The File System -> Finish -> OK -> Reboot

Reconnect with SSH after reboot, enter read-write and adjust the three files back to how they were:

nano /boot/cmdline.txt

Then append to the end:

fastboot noswap ro

Ctrl + O, Enter, Ctrl + X

nano /etc/fstab

Add ,ro to both mounts

The result should look like this:

/dev/mmcblk0p1 /boot vfat defaults,ro 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime,ro 0 1
tmpfs /tmp tmpfs defaults,nodev,nosuid 0 0

Ctrl + O, Enter, Ctrl + X

nano /etc/bash.bash_logout

And add:

sudo mount -o remount,rw /
history -a
sudo fake-hwclock save
sudo mount -o remount,ro /
sudo mount -o remount,ro /boot

Ctrl + O, Enter, Ctrl + X

All done!

Use the following command check if the file system uses the entire SD card:
df -h

3 thoughts on “ControlPi Initial Release

  1. Excellent items from you, man. I’ve understand your stuff prior
    to and you are just extremely fantastic. I actually lіke
    what yoս have bought here, гealⅼy like what you’re saying and the way in which
    whеrein you say it. You make it enjoyable and you still care for to stay it smart.
    I can’t wait to learn far more from you.
    Tһis is actually a tremendous web site.

Leave a Comment