Raspberry Pi Computer Projects

This is a collect of Raspberry Pi (RPi) computer projects that David Haworth, WA9ONY has completed in order to learn how to use the RPi. These projects range from building a RPi P3 Model B system (Project 1) to the simple task of setting the RPi date and time (Project 26). There is a separate web page, Amateur (Ham) radio RPi projects, that demonstrates how to use the RPi computer in amateur (Ham) radio and in electronics applications.

Raspberry Pi Computers

There are several generations of Raspberry Pi (RPi) computers.

RPis are: RPis computer system is:

Raspberry Pi Software

The Raspberry Pi official operating system software is Raspbian. But, other operating system software can be used on the RPi.

The RPi Raspbian includes many programs as part of the standard install process using the Element14 NOOBS 16 GB SD card.

RPi has a large online repository of software ready to be automatically downloaded and installed on the RPi.

Raspberry Pi Popularity

Over 10 million RPis have been sold to students, hobbyist and used in commercial products. This results in a very large installed base of RPi users, applications, hardware, softwares and infrastructure to learning about RPi hardware and software.

RPi Computer Projects Index

These projects demonstrate how to assemble a RPi computer system and how to use the Raspbian operating system and its software.

Project 1: Assemble RPi P3 Computer

Learn what is needed. Gather components and assemble the Raspberry Pi P3 Model B computer.
Setup the operating system preferences.

Project 2: Identify the Initial Programs in the RPi PIXEL GUI

This goal is to identify the standard programs in the GUI that are installed by Element14 NOOBS micro-SD card. Raspbian is a Debian-based computer operating system for Raspberry Pi. Raspbian uses PIXEL, Pi Improved Xwindows Environment, Lightweight as its main desktop environment.

Click on the below links to learn more about these programs at Wikipedia.

Project 3: Using USB Memory Devices

This goal is to use an USB memory devices with the RPi to move files to/from the RPi. An USB memory is used as a backup to the user files on the RPi micro-SD card.

Project 4: Update RPi Software and GPU Firmware

An Internet connect is required to update the RPi software. The update process can take a long time, greater than one hour. The installation process might ask you questions, therefore check it so often.

Updating and upgrading RPi

Updating RPi GPU firmware.

GitHub raspberrypi/firmware

Project 5: Download The MagPi Magazine And Read It Off-Line

The MagPi is the official magazine of the Raspberry Pi Foundation. It is available as a free download. Also, learn how to save PDFs from the Internet and view them on the RPi.

You will need an Internet connection.

View the download magazine PDF.

Project 6: Create an USB Memory Library

Create a library on a USB memory device for PDF files from the Internet. For example, PDF issues of The MagPi magazine are stored in the library. The benefit of having the library on a USB memory device is not taking up storage space on the RPi SD card. Also, you can easy move the library on USB memory device to other computers.

You will need an Internet connection and USB memory device.

Next copy The MagPi issue 55 that was download in Project 5 to the Library.

Add the PDF version of this web page to the Library.

Project 7: Save Internet Web Pages (HTML), Audio (MPG3), Documents (PDF) and Text (TXT) files on the RPi

To save web pages to the RPi use the wget command in the Terminal window.

Save the web page at http://www.stargazing.net/david/rpi/ to the Download directory. In the URL the last part is rpi which is a directory (folder). The web server will send the file index.html when no file name is in the URL.

Save the PDF file (Raspberry%20Pi%20Hints.pdf) at http://www.stargazing.net/david/rpi/ to the Downloads directory. Notice the %20 in the file name mean space character.

Save the MP3 audio File from ARRL 5 WPM Code Practice Archive to the Downloads directory. Use wget to download the 5 WPM Code Practice Archive audio file.

Save the MP3 text File from ARRL 5 WPM Code Practice Archive to the Downloads directory. Use wget to download the 5 WPM Code Practice Archive text file.

Using what you have learn in the previous projects save these file to the USB memory device Library folder.

Project 8: Back Up the RPi Micro-SD Card

It is important to be able to back up the RPi and restore all the files. There are many ways to doe this. Below is the procedure to create a copy of the micro-SD card that is in your RPi.

First, you will need as micro-SD card equal to or larger than the micro-SD size in your RPi.
Secondly, you need a micro-SD to USB adapter to make at copy with the micro-SD in the USB port.

Project 9: Save a Web Page as a PDF File And View It Off-Line

When a web page has useful information that you want to refer to when you have no Internet access you can save the web page as a PDF file to your RPi for off line viewing.

The web page of Wikipedia Raspberry Pi is saved as a PDF to the RPi.

This example uses RPi 3 Model B with Google Chromium web browser. This was installed by the Element14 NOOBS 16 G SD card.

Project 10: Download YouTube Video and Play It Off-Line

YouTube videos are are great source of information. Below a way to download a YouTube video and view it off-line.

This example uses RPi 3 Model B with Google Chromium web browser. This was installed by the Element14 NOOBS (New Out Of the Box Software) 16 G SD card.

To play the video use omxplayer in the Terminal window. The omxplayer is a command line program.

A HDMI TV that supports audio is used as the monitor for the RPi. To use the audio output jack on the RPi board use the command. Use the command man omxplayer for more details on the omxplayer.

Using what you have learn in the project 6 to save the video file to the USB memory device Library folder.

Project 11: RPi Raspbian Desktop GUI and Command Line Interfaces

The PRi computer can run different operating systemsi. Raspbian is the official operating system. Raspbian is a Debiab distribution of the Linux. Linux is based on UNIX.

Raspbian has two primary user interfaces: LXDE (Lightweight X11 Desktop Environment) desktop GUI (graphical user interface) and the CLI (command line interface).

In 2016 Raspbian LXDE GUI was improved with PIXEL (Pi Improved Xwindows Environment, Lightweight).

The RPi Raspbian can be configured to power-on into the LXDE PIXEL desktop GUI or the CLI.

To access the CLI in the PIXEL Desktop GUI open a Terminal window with the Terminal icon in the top menu bar.

If the PIXEL Desktop is not running you start PIXEL Desktop GUI by entering the command startx in the CLI.

Project 12: RPi Username and Password

During the first time power-on the software will create the username pi with password raspberry.

The default power-on auto login is to login in as 'pi' user. This can be changed by:

Another user name is super user. Use the sudo (super user do) command in front of another command to run the command with admin privileges.

Project 13: RPi Raspbian Files

A computer file contains date/information, executable program code, etc.

In Raspbian the file name is case sensitive. There for the file example/ and Example are two different files. It is good practice to use file extensions to tell the RPi what is file type and as a result what program should be used to open it.

For example, file example.txt is a text file and Raspbian would use Leafpad to open it when double clicking on the example.txt file in File Manager.

Another example, file example.pdf is a Portable Document Format file and Raspbian would use xpdf program to open it when double clicking on the example.pdf file in File Manager.

It is a good computer practice to use file extension on the files you create.

List of Raspbian file extensions and the Desktop default programs that will open them.

Project 14: RPi Raspbian Directories/Folders

Directories (also called folders) are a way to organize files and directories.

Directories/folders contain files and other Directories/folders. The Directories/folders are organized in hierarchal directory tree. The top directory is called root and is represented by "/" Character. One of the directories in the root directory is the home directory. The home directory contains the directories and files of users. In a typical PRi system of on one user there is only the pi directory for the username pi. In the pi directory is where all the files create by the user pi should be saved. The user can create directories and sub directories in pi directory to organize files.

In the PIXEL Desktop GUI use File Manage to view, move, create, rename and delete directories and files. File Manager is started by clicking on the File Manager icon in the top menu bar.

In the CLI text commands are used view, move, create, rename and delete directories and files.

Project 15: RPi Raspbian Keyboard Short Cuts

Project 16: Install GIMP, GNU Image Manipulation Program

GIMP ( GNU Image Manipulation Program) is a free raster graphics editor that is in the RPi online repository.

Internet connection is required and commands in the CLI are used.

To install GIMP.

Install GIMP help.

To uninstall GIMP and GIMP help.

Using GIMP F1 help.

GIMP website.

GIMP resources:

Additional information is at

Project 17: Install YouTube Video Download Program

This CLI program downloads YouTube videos to the RPi.

To install youtube-dl program.

To uninstall youtube-dl.

Play saved YouTube video file in Downloads directory.

The youtube-dl saves the video file with the same name as the YouTube title.

Additional information is at /usr/share/doc/youtube-dl.

Project 18: Bash Shell Command Line Interface (CLI)

The RPi default shell is the bash shell. The bash shell is used at the CLI (command line interface) to work with the RPi Linux kernel and other programs on the RPi.

There are somethings that can only be done using the CLI (command line interface). For example, installing programs on the RPi as shown in project 16 installing GIMP.

The CLI is used when the PIXEL Desktop GUI is not being used and the CLI is used in the PIXEL Desktop GUI Terminal program. The benefit of using the PIXEL Terminal is mouse cut and past editing is supported.

Using the CLI.

Mouse operation:

Ctrl key operation

Keyboard arrow keys operation

Other special operations.

Help and manual information

CLI text editors

CLI display a text file

Clear the CLI display or clear Terminal window.

MagPi magazine is a free download.

List of Linux commands from the MUFIC_IT_2008 Group.

Project 19: Create Python 3 Hello World Program

Python 3 is a programming language that is part of the standard install of the Raspbian overtiring system.

The below steps show how to create a Python 3 program to print Hello World.

Run the Python 3 hello_world.py program in the CLI.

For help on python3 in CLI enter.

Start the Python 3 hello_world.py program in PIXEL Desktop File Manager.

The file extension .py tells the RPi to use Python 3 to open the hello_world.py file.

To learn Python

If you have never programmed, check out

Project 20: Monitor Display Resolution

Use a command in the CLI to show the monitor display resolution.

The HDMI monitor needs to be on before turning the RPi in order to use the HDMI fill display resolution. Other wise, the HDMI resolution will be at 4:3 @ 640x480.

Project 21: Memory Free

There are several types of memory in the RPi. The computer board RAM memory, micro-SD card memory and USB flash memory devices.

Different version of RPi boards have different sized of RAM. A summary table of the different board RAM sizes is at Raspberry Pi

Project 22: Stop or Kill an Unresponsive Program

Sometime a program can be unresponsive and you can not control it, stop it or close it.

To stop or kill a unresponsive program.

Project 23: Show RPi CPU Temperature

The RPi monitors the CPU temperature. When the temperature rises high a thermometer is shown on PIXEL Desktop in the upper right corner.

When my RPi CPU temperature is 80.6 C the thermometer is shown on the PIXEL Desktop. Use heat sinks on the CPU and memory IC to help reduct the IC temperature.

The RPi P3 Model B CPU with heat sink and case cover off with room temperature of 21.0 C.

To show RPi CPU temperature.

Raspberry Pi Cooling

Project 24: Show RPi CPU Frequency

The RPi monitors the CPU clock frequency. The higher the CPU clock the faster the CPU runs and quicker the software runs.

The RPi P3 Model B CPU clock frequency at 0% CPU usage is 600 MHz. The RPi P3 Model B CPU clock frequency at 85% CPU usage is 1200 MHz.

To show RPi CPU clock frequency.

Project 25: Install VLC Media Player

VLC media player is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4, DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs, podcasts, and multimedia streams from various network sources. VLC can also be used as a streaming server that duplicates the stream it reads and multicasts them through the network to other clients, or serves them through HTTP.

VLC has support for on-the-fly transcoding of audio and video formats, either for broadcasting purposes or for movie format transformations. Support for most output methods is provided by this package, but features can be added by installing additional plugins (vlc-plugin-fluidsynth, vlc-plugin-jack, vlc-plugin-notify, vlc-plugin-samba, vlc-plugin-sdl, vlc-plugin-svg, vlc-plugin-zvbi).

The below installation uses the PIXEL Desktop GUI.

To open VLC.

VideoLAN VLC media player website.

Project 26: Get and Set Date and Time

The RPi will automatically set the date and time if the RPi is connected to the Internet. If no Internet connect durning power-on you can set the date and time in the CLI as shown below. The RPi does not have a battery clock circuit keeping time when it is turned off.

Get date and time.

Project 27: Change the PIXEL Desktop Wallpaper

PIXEL Desktop wallpaper is the image in the background of the PIXEL Desktop. The RPi has a select of different images that can be used for wallpaper.

Get date and time.

Project 28: RPi Portable Battery Operation

The RPi power supply requirement is compatible with USB chargers and portable USB power banks. The USB power banks is a battery with electronic circuits to charge a battery operated USB device such as cell phones, tablets, etc. Therefore, the portable USB power bank can be used to power the RPi.

USB power banks output a standard 5 Volts at different current rates. My RPi power supply is rate 5 Volts at 2.5 Amperes. Therefore, I use a 2.5 Amperes USB power bank.

USB power banks have different storage capacity. Storage capacity is typically rated in mAh (mill Ampere hours). The large the mAh rating, the larger the storage capacity, the longer the RPi will operate from the USB power bank.

I use a HyperGear Dual USB Power Bank Model #13460 with dual 2.5 A and 2.1 A outputs. The Power Bank lithium-ion batter capacity is 16,000 mAh. A micro USB cable is needed to connect the Power Bank to the RPi.

If the RPi is running 2,000 mA, I hope to operate the RPi for about eight hours, almost a fill day with the Power Bank. A future project is to bench test the performance of the HyperGear Dual USB Power Bank operating time with the RPi.

The HyperGear Dual USB Power Bank was on sale for $17.99 at Fry's Electronics.

Project 29: Copy and Past Between Chromium Web Browser and Terminal CLI

There are some RPi operations that can only be done in the CLI. If you are follow instructions using the CLI it is easy to copy commands from the instructions like web pages or other electronic documentation and past those commands into the Terminal CLI to run them.

Terminal provides a CLI in a PIXEL Desktop window that supports mouse copy and past operations. As a result, The mouse can be used to copy text in the Chromium Web Browser (like CLI commands) and then paste the text into the Terminal window to be run. Thus, saving typing the command in the Terminal CLI and avoiding typing errors.

For example,

Project 30: Save Terminal CLI Text

Terminal does not have a save to file function. But, you can select CLI Termain text with the mouse, copy this text and past the text into Text Editor to be save as a .txt text file.

Project 31: Get the Raspberry Pi Weekly Newsletter

Sign up for the free Raspberry Pi Foundation Raspberry Pi Weekly newsletter at Subscribe web page.

View the Raspberry Pi Weekly archive.

Project 32: Learn About RPi & Linux From Magazines

The MagPi magazine is the official Raspberry Pi magazine.

Project 33: Watch Raspberry Pi Videos

Raspberry Pi Internet videos are located at YouTube and Vimeo.

Project 34: Join the Raspberry Pi Foundation Forum

The Raspberry Pi Foundation forum is a great place to search for RPi information and answers to questions.

Project 35: Get RPi P3 Model B Specifications

The Wikipedia Raspberry Pi web page has a specifications table comparing the different series and models of RPis.

RPi B+ GPIO pinout diagram and RPi photo with callouts is in the Element14 article Adding a Shutdown Button to the Raspberry Pi B+ The B+ GPIO pinout is the same as P3 Model B. The B+ photo is similar to the P3 Model B, but missing the WiFi ant, etc.

The Raspberry Pi 3 Model B Frequently Asked Questions (FAQs)

Project 36: Learn About the Raspberry Pi From Books

The Raspberry Pi printed books that I have used.

Free online Raspberry Pi PDF books.

Project 37: Learn About the Raspberry Pi From Tutorials, Workshops & Classes

The Raspberry Pi online tutorials, workshops and classes.

Project 38: Install ImageJ, An Image Processing & Analysis Program

ImageJ is an image processing and analysis program inspired by NIH Image.

ImageJ can display, edit, analyze, process, save and print 8-bit, 16-bit and 32-bit images. ImageJ can read many image formats including TIFF, GIF, JPEG, BMP, DICOM, FITS and "raw". ImageJ supports "stacks", a series of images that share a single window. ImageJ can calculate area and pixel value statistics of user-defined selections. ImageJ can measure distances and angles. It can create density histograms and line profile plots. ImageJ supports standard image processing functions such as contrast manipulation, sharpening, smoothing, edge detection and median filtering. Spatial calibration is available to provide real world dimensional measurements in units such as millimeters. Density or gray scale calibration is also available. ImageJ is developed by Wayne Rasband (wayne@codon.nih.gov), is at the Research Services Branch, National Institute of Mental Health, Bethesda, Maryland, USA.

The below installation uses the PIXEL Desktop GUI.

To open ImageJ.

Additional information is at /usr/share/doc/imagej.

Project 39: Learn About the Raspberry Pi Foundation

Raspberry Pi Foundation created the Raspberry Pi computers and a great website with many resources to learn how to use a RPi.


Project 40: Install Audacity, Audio Editor Program

Audacity is a multi-track audio editor for Linux/Unix, MacOS and Windows. It is designed for easy recording, playing and editing of digital audio. Audacity features digital effects and spectrum analysis tools. Editing is very fast and provides unlimited undo/redo. Supported file formats include Ogg Vorbis, MP2, MP3, WAV, AIFF, and AU.

The below installation uses the PIXEL Desktop GUI.

To open Audacity.

Audacity website

Audacity tutorial

Additional information is at

Project 41: Install Stellarium, A 3D Photo-Realistic Sky Chart Program

Stellarium renders 3D photo-realistic skies in real-time. With Stellarium, you really see what you can see with your eyes, binoculars or a small telescope.

Some features:

Stellarium should not be used for very high accurate calculation or ephemerids like eclipse predictions. However, it is the ideal program to prepare an observation evening with naked eye, binocular, or small telescope.

The Stellarium data files package contains data files required by Stellarium. They include textures, star catalogues and translations.

The below installation uses the PIXEL Desktop GUI.

To open Stellarium.

Stellarium website

Additional information is at

Project 42: Shutdown a RPi

It is a good practice to correctly turn off a RPi.

The method to turn-off a RPi depends upon if the PIXEL Desktop GUI is being used.

Using PIXEL Desktop GUI.

Not using PIXEL Desktop GUI method 1.

Not using PIXEL Desktop GUI method 2.

Other references:

Project 43: Change the HDMI Display Resolution after Power-On

Small HDMI displays may be difficult to use at full 1080 resolution.

In PIXEL Desktop GUI the display resolution can be changed after power-on.

Using the PIXEL Desktop GUI.

Project 44: Benchmark the RPi P3 Model B

Power-on time to PIXEL Desktop GUI.
Using 32 GB SD, show PIXEL screen when starting Desktop GUI and
HDMI TV monitor at 16:10, 1680x1050 @ 60 Hz progressive.

Element14 RPi benchmark tests.

During the Element14 launch video the RPi 3 Model B core performance was reported to be 10X faster than the first RPi.

Project 45: Help, Manuals, etc. On The RPi

The RPi has several ways to get help off-line.

In the PIXEL Desktop GUI.

In the CLI use the following commands and options. Different commands support different types of help.

In the CLI some commands support the following options.

Project 46: Environment Variables

Environment variables contain a variety of information that range from the user logged on to the search path used to locate commands.

In CLI use the following commands to show the value of the environment variables.

Examples of environment variables.

Project 47: Install X Applications

PIXEL Desktop GUI is based on X Window System. X Window System is also called X11 Window System. X applications run on the PIXEL Desktop GUI.

This package provides a miscellaneous assortment of X applications that ship with the X Window System, including:

Install X Applications.

Example using screenshot (screen dump). The file extension needs to be <.wxd>.

To view the screenshot (screen dump) <file_name>.wxd.

X Window System user's guide : for X11 R3 and R4 of the X Window System

Manuals information.

In project 49 the screenshot .wxd file is converted to a a more common .png file.

Additional information is at /usr/share/doc/x11-apps

Project 48: File Names & Extensions

RPi computer file names are case sensitive. File "test" and file "Test" are two different files in the RPi whereas in a Microsoft Windows computer they are the same file.

File name general guidelines.

File extensions tables.

Project 49: Install ImageMagick

ImageMagick is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (over 100) including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves. All manipulations can be achieved through shell commands as well as through an X11 graphical interface (display). This package include links to quantum depth specific binaries and manual pages.

The below installation uses the PIXEL Desktop GUI.

To open ImageMagick.

In project 47 the screenshot was saved as a .wxd file. Below the convert command is used to change it to a more common .png file.

ImageMagick website

Additional information is at

Project 50: Install XFig

XFig is a menu-driven tool that allows the user to draw and manipulate objects interactively in an X window. The resulting pictures can be saved, printed on postscript printers, or converted to a variety of other formats (e.g. to allow inclusion in LaTeX documents or web pages) using the transfig program. This package contains the xfig program itself. You should think about installing the transfig package to export the graphics to several common formats. You should also think about installing xfig-doc, which contains the documentation and xfig-libs, which contains several clip art libraries.

The below installation uses the PIXEL Desktop GUI.

To open XFig.

XFig website

Additional information is at

Project 51: Bash Shell Job Control

The RPi default shell is the bash shell. The bash shell is used at the CLI (command line interface) to work with the RPi Linux kernel and other programs on the RPi.

To show the shell being used by the RPi use the below command.

Job control is managing how programs are run in the foreground or background, halted and stopped (killed). The benefit of job control is a local or remote terminal is used to manage several program jobs at the same time. This will be very important capability when controlling the RPi by a remote computer using Secure Shell (SSH) and the RPi has no keyboard, mouse or display (headless operation).

Job control Ctrl-key commands:

Job control commands:

The below job control examples use the Terminal program in the PIXEL Desktop GUI and the xclock program from project 47. (man xclock) By using the clock with seconds hand it is easy to see when clock is running or stopped.

The clock takes about 10 seconds to start up and the clock will report some errors that does not seem to affect its operation.

Example 1, shows the clock as a foreground job that stops the Terminal from being used for other jobs. Ctrl-c kills the job and the Terminal is back to normal operation.




Command prompt

xclock -analog -update 1

Start the clock

No command prompt

Clock running in the foreground


Clock is killed

Ctrl-c kills the current job

Command prompt

Example 2, shows starting the clock with background & option. The fg command moves the clock to the foreground job resulting in locking the Terminal from being used for other jobs. Ctrl-c kills the job and the Terminal is back to normal operation.




Command prompt

xclock -analog -update 1 &

Start the clock

Command prompt

Clock running in the background


Clock running in the background

Ctrl-c has no effect on the background job


Clock running in the foreground

fg moves the job to the foreground


Clock is killed

Ctrl-c kills the current job

Command prompt

Example 3, shows the foreground job being halted and being put in the background using Ctrl-z. Use the kill command to tell the clock job.




Command prompt

xclock -analog -update 1

Start the clock

No command prompt

Clock running in the foreground


Clock is stopped ticking

Ctrl-z halts clock & puts clock in background

Command prompt


Clock running in the foreground

fb starts the clock & moves it to foreground


Clock is stopped in background


Clock is running in background


Clock is running in background

Get the PID number of clock

kill PID_number

Clock is killed

Kill job with PID number

Command prompt

Project 52: Install Ardour, Digital Audio Workstation

Ardour is a multichannel hard disk recorder (HDR) and digital audio workstation (DAW). It can be used to control, record, edit and run complex audio setups. Ardour supports pro-audio interfaces through the ALSA project, which provides high quality, well designed device drivers and API's for audio I/O under Linux. Any interface supported by ALSA can be used with Ardour. This includes the all-digital 26 channel RME Hammerfall, the Midiman Delta 1010 and many others.

Ardour has support for 24 bit samples using floating point internally, non-linear editing with unlimited undo, a user-configurable mixer, MTC master/slave capabilities, MIDI hardware control surface compatibility. It supports MIDI Machine Control, and so can be controlled from any MMC controller and many modern digital mixers.

Ardour contains a powerful multitrack audio editor/arranger that is completely non-destructive and capable of all standard non-linear editing operations (insert, replace, delete, move, trim, select, cut/copy/paste). The editor has unlimited undo/redo capabilities and can save independent "versions" of a track or an entire piece Ardour's editor supports the community-developed LADSPA plugin standard.

Arbitrary chains of plugins can be attached to any portion of a track. Every mixer strip can have any number of inputs and outputs, not just mono, stereo or 5.1. An N-way panner is included, with support for various panning models. Pre- and post-fader sends exist, each with their own gain and pan controls. Every mixer strip acts as its own bus, and thus the bus count in Ardour is unlimited. You can submix any number of strips into another strip.

Ardour's channel capacity is limited only by the number on your audio interface and the ability of your disk subsystem to stream the data back and forth. JACK (the JACK Audio Connection Kit) is used for all audio I/O, permitting data to be exchanged in perfect samplesync with other applications and/or hardware audio interfaces.

Ardour is sample rate and size neutral - any hardware formats from 8 to 32 bits, and rates from 8kHz to 192kHz. Internal processing in 32/64 bit IEEE floating point format. Further information can be found at .

The below installation uses the PIXEL Desktop GUI.

To open Ardour 3.

Ardour version is 3-3.403~dfsg-3.

Ardour website

Additional information is at /usr/share/doc/ardour3

Project 53: RPi Zero W: Assemble the Computer

RPi Zero W is a very low cost RPi with WiFi with reduced performance and functionality as compared to the RPi P3 Model B.


Get components and assemble the Raspberry Pi Zero W computer.

First power on and setting up the operating system.

RPi Zero W computer performance comparison.
Power-on time to the PIXEL Desktop GUI.

After the software instal it is a good idea to update the RPi.
See Project 4: Update RPi Software and GPU Firmware.

To Do:

Project 54: Password Security

The default RPi user name is pi and it's default password is raspberry.

It is important to change the default password when using the RPi a network to prevent attacks by others against the RPi.

See password strength for more information.

The below password change process uses the PIXEL Desktop GUI.

Project 55: Bash Script: Update/Upgrade RPi Software & Firmware

The default Raspbian shell is the bash shell.

The bash shell is used in the command line interface (CLI) to interface with the RPi Linux kernel and with RPi programs.

The CLI is used when the PIXEL Desktop GUI is not being used.

The CLI is used in the PIXEL Desktop GUI Terminal program.

The benefit of using the PIXEL Terminal is mouse cut and past editing is supported.

For more bash shell projects are at:

The bash shell allows creating scripts to make using the CLI easier.

The below shell script, updateRPi, was created to update and upgrade the RPi software and firmware.

Bash commands explaination:

The software and firmware update/upgrade commands are described in Project 4: Update RPi Software and GPU Firmware

Bash script file updateRPi (updateRPi.txt file for easy download)

# update RPi software and firmware
# David Haworth, WA9ONY
echo ---updateRPi bash command >>updatelog.txt
date >>updatelog.txt
echo >>updatelog.txt
echo ---update software >>updatelog.txt
echo ---update software 
sudo apt-get update >>updatelog.txt
echo >>updatelog.txt
echo ---upgrade >>updatelog.txt
echo ---upgrade software
sudo apt-get upgrade -y  >>updatelog.txt
echo >>updatelog.txt
echo ---dist-upgrade >>updatelog.txt
echo ---dist-upgrade software
sudo apt-get dist-upgrade -y >>updatelog.txt
echo >>updatelog.txt
echo ---firmware_update >>updatelog.txt
echo ---rpi-update >>updatelog.txt
echo ---update firware
sudo rpi-update  >>updatelog.txt
echo >>updatelog.txt
date >>updatelog.txt
echo ---updateRPi completed >>updatelog.txt
echo ---updateRPi completed
echo Please reboot RPi

Creating a bash shell script requires creating the above updateRPi text file with the bash shell commands and making the updateRPi file an executable file.

The Terminal window example of using updateRPi.

The updateRPi script create a updatelog.txt log file.

Creating bash scripts/commands


Project 56: Touchscreen Display

The Raspberry Pi 7" Touchscreen Display provides a small, portable computer.

What is needed:

Smarti Pi Touch case for official Raspberry Pi display YouTube installation:

Install touch keyboard:

Project 57: RPi Zero W: Install Camera

The standard RPi Zero W case supports installing the Pi Camera V2 in the case cover.

The case cover has a hole for the Pi Camera V2 lens.

The standard RPi Zero W case includes three different case covers.

What is needed:

Installing the Pi Camera V2 in the RPi Zero W case cover:

Configure the Pi Zero W software to use the camera.

Test the camera.

For more details see the older Pi Camera V1 documentation.

Project 58: RPi Zero W: Build a Case Holder


The Pi Camera V2 installed in the standard RPi Zero W case cover faces vertically.

This project builds a case holder with Legos to position the camera horizontal.

What is needed:

Project 59: Install ALSA: Advanced Linux Sound Architecture Player

The ALSA: Advanced Linux Sound Architecture is the Linux framework of sound.

Install ALSA player and utilities. The ALSA utilities are needed for using Software Defined Radio.

The below installation uses the PIXEL Desktop GUI.

To open Alsaplayer to play a MP3 audio file:

Rtl_sdr and aplay help

Project 60: Warning Icons: High Temperature & Under Voltage

Warning icons will display in the upper right corner of the display.

Under-voltage warnings

Project 61: RPi Portable Battery Operation

RPi battery operation makes the RPi a compact portable Linux computer.

What is needed:

Project 62: IP Address

A key part of networking is the computer's IP address.

Finding the Raspberry Pi IP address.

Finding the Mac OS X IP address.

Finding the iPhone or iPad iOS IP address.

Finding the Microsoft Windows IP address.

Finding the Android IP address.

Fing Network IP address scanning tool.

Project 63: SSH: Secure Shell Remote Control

SSH provides a secure way to control the RPi by another RPi or computer.

SSH needs to be enable on both computers.

SSH needs the RPi

RPi P3 Model B controlling a RPi Zero W with camera.

Example of taking a RPi Zero W camera picture by remote SSH.

For ssh help

Related projects:

Android SSH

Project 64: SSH File Transfer Protocol

In project 63 we saw how to run commands on a remote RPi using SSH.

A picture was taken and the picture file in the remote RPi home directory.

SSH File Transfer Protocol allows copying the image file to the controlling computer.

SH File Transfer Protocol example:

For sftp help

How To Use SFTP to Securely Transfer Files with a Remote Server

Project 65: RPi Zero W: Portable Headless Camera

This is a RPi Zero W with Pi Camera V2 in a standard RPi Zero W case with Lego blocks holding the case vertical.

The small round camera lens is in the center of the RPi case.

The RPi Zero W is powered with an USB Power Bank that supports 2.5 A.

Another RPi P3 Model B or MacBook remotely controls the RPi Zero W to take pictures and copies the pictures from the RPi Zero W using Wi-Fi and SSH/ SFTP (SSH File Transfer Protocol).



Fing on iPhone is used to determine the RPi Zero W IP address.

Terminal Example for SSH connection, taking a photo, list directory and closing the session.

Terminal Example for SFTP (SSH File Transfer Protocol) coping the photo from the RPi Zero W.

Project 66: SSH: X11 Forwarding

SSH with -Y option can open a X11 window from the remote RPi on the local RPi.

PIXEL Desktop GUI File Manager is a X11 application called pcmanfm.

X11 forwarding example using File Manager.

The remote RPi File Manager opens in a X window on the local RPi.

How to remote control Raspberry Pi

X11 Forwarding with RPi, PuTTY, and Android by KC9ZYZ

X Window System user's guide : for X11 R3 and R4 of the X Window System

Project 67: Install SoX: Sound eXchange

SoX is the Swiss Army knife of sound processing programs.

SoX is a command line utility that can convert various formats of computer audio files in to other formats. It can also apply various effects to these sound files during the conversion. As an added bonus, SoX can play and record audio files on several unix-style platforms. SoX is able to handle formats like Ogg Vorbis, MP3, WAV, AIFF, VOC, SND, AU, GSM and several more. Any format support requires at least libsox-fmt-base. Some formats have their own package e.g. mp3 read and write support is provided by libsox-fmt-mp3. SoX supports most common sound architectures i.e. Alsa, Libao, OSS and Pulse (respectively provided by libsox-fmt-alsa, libsox-fmt-ao, libsox-fmt-oss and libsox-fmt-pulse). It also supports LADSPA plugins.

The below installation uses the PIXEL Desktop GUI.

SoX play is used in the rtl_fm guide.

Project 68: Bash Script: myRPi Information

This myRPi.sh Bash shell script logs a variety of RPi hardware and software information to a myRPiLog.txt file.

myRPi.sh example

myRPiLog.txt example from the RPi Zero W.

Creating bash scripts/commands


Bash scripting YouTube videos.

Android app.

Project 69: Bash: Commands Names Auto Search & Auto Fill

When you need help remembering the CLI (command line interface) commands use the PIXEL Desktop GUI Application Menu, Run to list all the commands starting with the first two letters.

When using the CLI (command line interface) type the first two letters of the command and then the TAB key twice. It will take a second or two and list of commands starting with those two letters will be listed.

Example: ls TAB-KEY TAB-KEY

Example: up TAB-KEY TAB-KEY

Auto fill example: upt TAB-KEY

Project 70: RPi Zero W: Camera Bash Script

The RPi Zero W with Pi Camera V2.0 is setup for headless (no keyboard and no display) operation. It runs off a battery for portable operation.

A RPi P3 Model B remotely controls the RPi Zero W with Pi Camera V2.0 by Wi-Fi. Both RPi are connected to the same Wi-Fi router. RPi Zero W IP address is

The RPi Zero W boots up in user pi and into the PIXEL Desktop GUI.

Both RPis SSH is enabled.

A RPi P3 Model B has three Terminal windows open.

The above three windows work fine on a MacBook Pro (OS X Yosemite V10.10.5) using Terminal and X11 Window System from XQuartz.

A RPi Zero W.

Download takepics.sh

Turning on the headless RPi Zero W:

Shutdown the RPi Zero W by remote RPi P3 Model B:

Related projects:

Project 71: Install Firefox Browser

Firefox Extended Support Release (ESR) is a powerful, extensible web browser with support for modern web application technologies. This is a metapackage depending on all available localizations of Firefox ESR

The below installation uses the PIXEL Desktop GUI.

To open Firefox.

Firefox website.

Project 72: scrot: Screen Capture

scrot (SCReen shOT) is a simple command line screen capture utility that uses imlib2 to grab and save images. Multiple image formats are supported through imlib2's dynamic saver modules.

IF scrot is not installed on your RPi the below installation uses the PIXEL Desktop GUI.

To use scrot.

For help scrot.

scrot web site.

Project 73: WiFi Tools

The above screen capture shows the RPi Wi-Fi (IEEE 802.11 ) status.
This status is the result of the command wavemon with no options in the Terminal window.

Wavemon allows you to watch signal and noise levels,
packet statistics, device configuration and network
parameters of your wireless network hardware.

The below installation uses the PIXEL Desktop GUI.


pi@raspberrypi:~ $ wavemon -h
usage: wavemon [ -dhlrv ] [ -i ifname ]
  -d            Dump the current device status to stdout and exit
  -g            Ensure screen is sufficiently dimensioned
  -h            This help screen
  -i    Use specified network interface (default: auto)
  -r            Generate random levels (for testing purposes)
  -v            Print version number
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ wavemon -d

Configured device: wlan0 (IEEE 802.11)
         Security: WPA, WPA2, TKIP, CCMP
        Key sizes: WEP-40, WEP-104

            essid: "davidha_27901"
          channel: 6
        frequency: 2.437 GHz
         tx-power: 31 dBm (1258.93 mW)
             mode: Managed
     access point: 08:BD:43:B4:34:07
          bitrate: 24 Mbit/s
            retry: short limit 7
          rts thr: off
         frag thr: off
       encryption: n/a (requires CAP_NET_ADMIN permissions)
 power management: on

     link quality: 68/70
     signal level: -42 dBm (0.06 uW)
      noise level: 0 dBm (1.00 mW)
              SNR: -42 dB
         RX total: 22989 packets (11.16 MiB)
     invalid nwid: 0
      invalid key: 0
   invalid fragm.: 0
   missed beacons: 0
      misc errors: 0
         TX total: 7627 packets (995.99 KiB)
 exc. MAC retries: 0

List of Commands for Wifi Monitoring/Troubleshooting

pi@raspberrypi:~ $ sudo iwlist wlan0 scan
wlan0     Scan completed :
          Cell 01 - Address: 08:BD:43:B4:34:07
                    Frequency:2.437 GHz (Channel 6)
                    Quality=70/70  Signal level=-34 dBm  
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              9 Mb/s; 12 Mb/s; 18 Mb/s
                    Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
                    Extra: Last beacon: 30ms ago
                    IE: Unknown: 000D646176696468615F3237393031
                    IE: Unknown: 010882848B960C121824
                    IE: Unknown: 030106
                    IE: Unknown: 050400020000
                    IE: Unknown: 2A0100
                    IE: Unknown: 32043048606C
                    IE: Unknown: 2D1AAD0103FFFF0000000000000000000000000000000406E6E70D00
                    IE: Unknown: 3D1606080400000000000000000000000000000000000000
                    IE: Unknown: 4A0E14000A002C01C800140005001900
                    IE: Unknown: 7F0101
                    IE: Unknown: DD180050F2020101820003A4000027A4000042435E0062322F00
                    IE: Unknown: DD1E00904C33AD0103FFFF0000000000000000000000000000000406E6E70D00
                    IE: Unknown: DD1A00904C3406080400000000000000000000000000000000000000
                    IE: Unknown: DD0900037F01010000FF7F
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : CCMP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK
                    IE: Unknown: DD1D0050F204104A0001101044000102103C0001011049000600372A000120

pi@raspberrypi:~ $ 

For more information on WiFi Tools go to the web site.

Thanks to Jeff, W7ESC for this information.

Project 74: HDMI Display Resolution Changes with Terminal

One day the HDMI TV started to cut off the left side of the RPi PIXEL desktop.

I could not get to the application menu to change the display resolution in

I was able to start Terminal.

Here is how to change the HDMI resolution in Terminal.

By trying different resolutions I got the full desktop to display on the HDMI TV.

Project 75: Creating and Writing a RPi Image File (.img)

The advantages of a RPi image file:

The image file is one file with the extension of .img. The image file contains all the partitions and volumes of the micro SD card drive.

Using a Windows PC.

Example of backing up a RPi micro SD card [E:\] to a image file (C:/RPi20170511.img).

Writes a disk image, C:/RPiImages/rpi2017509.img file, to a micro SD card in [E:\].

Project 76: FAT32 Formating RPi micro SD Card

SD Formatter 4.0 ensures that the micro SD Card has a clean FAT32 format.

FAT32 formating a RPi micro SD card using a Windows PC.

Project 77: BerryBoot

BerryBoot allow multiple operating systems on a single micro SD card for the RPi. You select a operating system to use at boot time.

Installing Berry Boot using a Windows PC.

BerryBoot Android operation system install on a RPi P3 Model B.

BerryBoot Raspbian operating system install.

BerryBoot Raspbian Lite 2016.11 (243 MB) download worded the first time.

BerryBoot Memtester version 4.3.0 (32-bit) download worded the first time.

BerryBoot Puppy Linux alpha 4 download the first time.

BerryBoot OpenELEC downloaded on the second try.

Project 78: openSUSE Operating System Install

openSUSE is another Linux operating system that runs on the RPi P3 Model B.


The magazine Raspberry Pi Geek , issue 22, May/June 2017 contained a DVD with openSUSE Operating System (3.3 GB).

openSUSE installation using the Raspberry Pi Geek magazine DVD:

Project 79: Ubuntu Operating System Install

Ubuntu is another Linux operating system that runs on the RPi P3 Model B.

Installing Ubuntu:

Other references:

Project 80: Command Line History

The command line interface (CLI) keeps a history of the commands entered.

To see all the commands in history use the command:

To search for a command name in history use the command:

Running history command, use ! and the history command number.

Keyboard arrow keys operation

Manual for history command:

Project 81: RPi Powered by 12 Vdc

The purpose is to run the RPi off a 12 Vdc battery.

In the above photo is:

Power usage from the battery includes the 12 V to 5 V power adapter and the RPi at 5 V:

Project 82: RPi Stores

A list of stores with RPi stuff that I a have used.

A list of RPi stores for future reference:

Project 83: RPi Using the iPhone for Internet Connection

The iPhone can be set up as a personal hotspot so that the RPi can connect to the Internet through the iPhone cell phone service.

This means the RPi can connect to the Internet when there is no Wi-Fi internet service available and there is cell phone coverage.

When the RPi is connected to the iPhone using Wi-Fi as a personal hotspot the iPhone cannot connect to Wi-Fi for internet access.
The iPhone uses the cell phone to connect to the internet.

Your cell phone service may charge you for data service used.

Project 84: RPi Zero W Breadboard

This project takes a RPi Zero W and solders a 40 pin socket on the bottom of the circuit board.

Next, the RPi Zero W is plugged into to a GPIO extension board that plugs into a white breadboard strip.

A another computer (RPi P3 Model B or MacBook) is used to control the RPi Zeron W breadboard computer using Wi-Fi and SSH.

The RPi Zero W breadboard computer only needs power using the micro USB connector.

Building the RPi Zero W Breadboard computer system:

Project 85: RPi Zero W Breadboard Testing Voltage

Use a DMM to test the 5 Vdc and 3.3 Vdc on the RPi Zero W breadboard computer.

Check the 5 Volts DC on the breadboard.

WARNING, never connect the 5 V directly to the other pins of the breadboard.
The other pins are connected to the CPU IC and the CPU runs on 3.3 V.
The 5 V attached to these pins will most likely destroy the RPi CPU.

Check the 3.3 Volts DC on the breadboard.

WARNING, never connect the 5 V and 3.3 V directly to each other.
This will short the two different power supply voltage to each other and damage may occur.

WARNING, never connect the 5 V or 3.3 V directly to ground.
This will short the power supply voltage to ground and damage may occur.

Project 86: Nano Command Line Text Editor

GUN Nano is a simple command line interface text editor that is used at the command line interface or Terminal window.

Nano is one of many command line text editors that is available.

With SSH and Nano you can create a Python programs on a remote RPi computer that has no display, keyboard or mouse.

The below example create a Python hello world program with Nano.

Checking the hello_world.py file.

Web sites:

Project 87: RPi Zero W Breadboard Remote Python Programming

Use a RPi P3 Model B to remote program the RPi Zero W breadboard computer with Python.

In the command line interface use SSH, Nano and Python 3 to create and run a Python program on the RPi Zero W breadboard computer.



Related projects:

Project 88: SSH: Enable SSH

SSH allow another computer to control the RPi with the command line interface and the Terminal window in the PIXEL Desktop GUI.

Before turning on SSH make sure you change the default password of RPi.

Below are two methods to enable SSH on the RPi.

Method 1 using PIXEL Desktop GUI:

Method 2 using command line interface uses the Raspberry Pi Software Configuration Tool (sudo raspi-config):

Related projects:

Project 89: RPi Zero W Breadboard Testing GPIO23 with DMM

Use a DMM and Python interactive mode to test the GPIO23 on the RPi Zero W breadboard using a
SSH remote control with a RPi P3 Model B.

Python interactive mode is used to turn on and off GPIO23.

GPIO23 off (False state) is 0 V and the on (True state) is 3.3 Vdc with no load attached.



Related projects:


Below is a list of glossary links.


© May 16, 2017
David Haworth, WA9ONY