This is a collection of recipes for using and maintaining a Raspberry Pi - or RPi. The entries in the table below link to some of the "How-To" guides in this repo(sitory), and other pages with potentially useful information. Admittedly, that's a low bar for inclusion, but feel free to peruse anything that strikes you as potentially useful.
Most importantly, feel free to contribute… GitHub explains how to create a fork of this repo, or there's a good (and v. brief) YouTube video that explains the process, and why you'd want to fork a repo. If you find an error in this repo, or feel any of these recipes could be improved, there are (at least) two ways to contribute:
New users note: In an effort to head off potential confusion, remember that git and GitHub are not the same thing! Briefly, git is a version control system (a protocol), while GitHub is a commercial entity that uses git, and adds supporting features including the web-based UI (user interface) and documentation in Markdown format.
You can use git directly from the RPi command line to create or update a GitHub repository! Tom Hombergs has created a tutorial on how to do this, and GitHub offers these training resources. Finally (and importantly), you should know that GitHub is not the only commercial entity offering git support services: GitLab is another resource to consider. Some GitHub users have worried that Microsoft's $7.5 Billion purchase of GitHub would bring unwelcome changes. Having alternatives is always a good thing.
Repo Files | Description |
---|---|
There are three (3) new recipes for Bluetooth audio on bookworm Lite: 1, 2, 3 | Thanks to pipewire , backports and a hardware "upgrade" users now have at least three choices for reliable Bluetooth audio for the 'Lite'/"headless" version of the Raspberry Pi OS. See the Recipes (1 - 3) for Details. |
The Raspberry Pi UART mess | A rant, followed by a recipe for setting up a UART console client and server pair |
Is udev brain-damaged, or does it hate hwmon?
|
A udev solution to an issue with the SHT3X Temperature/Humidity Sensor... with a detour!
|
Using the SHT3X Temperature/Humidity Sensor on RPi | No Programming Required! We use the sysfs interface to simplify access to these ubiquitous sensors. |
Stop sluggish SSH performance over WiFi | Disable a poorly-implemented WiFi power_save feature in brcmfmac that has been enabled by default!
|
Handy features to know for using the shell | This is a collection of short scripts and "one-liners" for use in the command line in the RPi `bash` (or `zsh`) shell. A ToC is included to make finding what you need easier. |
Use RPi's `pinctrl` to control GPIO pins | Controlling GPIO pins has always been a key capability for Raspberry Pi users. But GPIO control has been jeopardized lately; this due to a convergence of two factors: 1. the Linux kernel has "outlawed" `sysfs` access to GPIO, and 2. the dreadful failure of the Linux kernel's chosen replacement for `sysfs`: `libgpiod`. The `pinctrl` package, developed within the RPi organization, offers respite from the Linux kernel's machinations. `pinctrl` offers fast, lightweight access to the GPIO. |
Mount an external drive | This recipe will walk through the steps needed to mount an external drive on a RPi, and explain in some detail what the commands do, and why they are necessary. |
Share Files on RPi over the network using Samba | This recipe continues the External Drives recipe to share files and folders over your network. |
RPi file server for a music library | This recipe builds on the two recipes above to create a rational, portable file server for a music library |
Setting up email on the RPi | Earlier versions of RPi OS included email as a standard feature in the Lite distribution. This recipe will allow you to easily restore that. |
How to do Python development on your RPi from your Mac | For Python coders: I use XQuartz as the X11 app on my Mac to run IDLE on my Raspberry Pi in headless mode. This is an easy-to-follow guide to setting that up. |
Use `git` to sync your RPi projects with GitHub | Here's how to use `git` from your RPI's CLI to keep your projects synced with your GitHub repo |
What's my RPi hardware, and what version of Raspbian am I running? | If you've got more than one of these things, your recollection may fail occasionally. But your system always knows the correct answer! |
`cron` is straightforward to use if you know its limitations | Most failures with `cron` are caused by not understanding these limitations. |
What is cron 's environment?' |
A fair question! It's easy to say, "cron's environment is different than your user environment.", but what is its environment? This is a simple script that will tell you. |
My recipe for installing and updating software | It seems there are many different ideas about how to install and update apps on the RPi. This is an area I am still researching, but this recipe shows how I do it now. |
Software Defined Radio applications for the Raspberry Pi | This isn't even a skeleton yet, and there's very little if anything of any use here now (except a nice picture of the gorgeous Hedy Lamarr). I've got some interest in this area, and will update going forward. |
Get Operating Temperatures of Raspberry Pi: GPU, CPU, PMIC | Various methods of reading the operating temperature explained |
Using `fsck` to check & repair your filesystem | The recommended way to invoke `fsck` on each boot, and where to find the log entries created |
I've Broken Something, and I Can't Login to my RPi | Oooops! It happens to everyone - you've screwed up, and can't login. This may help. |
OTHER REFERENCES: