Skip to content

Raspberry Pi

November 26, 2023
September 12, 2018

Raspberry Pi - Teach, Learn, and Make with Raspberry Pi
Raspberry Pi Documentation
utils/raspinfo at master · raspberrypi/utils
Raspberry Pi OS – Raspberry Pi

Inside the Raspberry Pi: The story of the $35 computer that changed the world - TechRepublic

The MagPi magazine
Beginner's Guide v2 — The MagPi magazine
Hello World magazine for educators
Custom PC magazine
Online training - Raspberry Pi
Kolban's Book on the Raspberry… by Neil Kolban [PDF/iPad/Kindle]
RasPi.TV – Raspberry Pi, Electronics & Making

thibmaek/awesome-raspberry-pi: 📝 A curated list of awesome Raspberry Pi tools, projects, images and resources
RPi Hub - eLinux.org
Raspberry Pi: The Unofficial Tutorial
Inside the Raspberry Pi: The story of the $35 computer that changed the world - TechRepublic
Lifehacker's Complete Guide to Raspberry Pi
The Always-Up-to-Date Guide to Setting Up Your Raspberry Pi
ARM/RaspberryPi - Ubuntu Wiki

Why Every Tech Geek Should Own a Raspberry Pi

Setting up your Raspberry Pi - Introduction | Raspberry Pi Projects
How to Set Up a Raspberry Pi for the First Time
How to Quickly Setup a Raspberry Pi 4 with Ubuntu 20.04 or 20.10

Python Programming Tutorial: Getting Started with the Raspberry Pi - learn.sparkfun.com
How to Set Up a Headless Raspberry Pi, No Monitor Needed | Tom's Hardware

Headless Raspberry Pi Setup - learn.sparkfun.com
Ansible Playbook to create a minimal headless raspberry pi – Stineblog

PiBakery - The blocks based, easy to use setup tool for Raspberry Pi
Configure Your Raspberry Pi Installation With PiBakery

Raspberry Pi And The IoT In C
9 Best Pi Programming Resources to Put Your Raspberry Pi to Use
Raspberry Pi Robotics - YouTube ExplainingComputers

Robotics and the Raspberry Pi - sentdex - YouTube
Robotics with Python Raspberry Pi and GoPiGo - YouTube

Hardware

Raspberry Pi Documentation - Raspberry Pi Hardware

RPi 3

ExplainingComputers:
Raspberry Pi 3 - YouTube
Raspberry Pi 3 Model B+ - YouTube

RPi 4

Raspberry Pi 4 Model B - YouTube ExplainingComputers

Raspberry Pi 4 Benchmarks: Processor And Network Performance Makes It A Real Desktop Contender | Hackaday
Benchmarked: Raspberry Pi 4 Hits 2 GHz with New Firmware - Tom's Hardware

RPi 5

Raspberry Pi 5: EVERYTHING you need to know - YouTube
Raspberry Pi 5 - YouTube

updating

Raspberry Pi 4 Firmware Update: All You Need to Know | All3DP

Updating and upgrading Raspberry Pi OS - Raspberry Pi Documentation
rpi-update - Raspberry Pi Documentation

sudo apt update
sudo apt upgrade
sudo rpi-update # update your Raspberry Pi OS kernel and VideoCore firmware to the latest pre-release versions

sudo apt full-upgrade # this upgrade firmware too

Firmware

unzip vl805_update_0137a8.zip
chmod a+x vl805
sudo ./vl805 -w vl805_fw_0137a8.bin
sudo reboot

# to revert
sudo ./vl805 -w vl805_fw_013701.bin
sudo reboot

RPi4 issues

Raspberry Pi 4 Rev 1.2 Fixes USB-C Power Issues, Improves SD Card Resilience

Pi4 not working with some chargers (or why you need two cc resistors) – The blog of Tyler Ward (aka scorpia)
The Raspberry Pi Foundation messed up its first USB-C device - The Verge
Exploring The Raspberry Pi 4 USB-C Issue In-Depth | Hackaday USB-C standard

Thermal testing Raspberry Pi 4 - Raspberry Pi 2019-11-28, beta firmware
Overclocking the Raspberry Pi 4 - Tom's Hardware | Tom's Hardware 2019-10
Raspberry Pi 4 Firmware Updates Tested: A Deep Dive Into Thermal Performance and Optimization - Hackster.io

USB booting

USB boot mode is stored on chip
USB mass storage boot - Raspberry Pi Documentation
documentation/hardware/raspberrypi/bootmodes at master · raspberrypi/documentation

<= Raspberry Pi 3

Pi 3 booting part I: USB mass storage boot beta - Raspberry Pi
Install Raspbian on a USB Flash drive from MacOS or Linux

documentation/booteeprom.md at master · raspberrypi/documentation

Raspberry Pi 4

EEPROM update in 2020-05 enabled this

Booting my Raspberry Pi 4 from a USB device | ZDNet
How to Boot Raspberry Pi 4 From a USB SSD or Flash Drive | Tom's Hardware
raspberrypi/rpi-eeprom: This repository contains the scripts and pre-compiled binaries used to create the rpi-eeprom package which is used to update the Raspberry Pi4 bootloader EEPROM.
I'm booting my Raspberry Pi 4 from a USB SSD | Jeff Geerling

Log2Ram

Give Your Raspberry Pi SD Card a Break: Log to RAM | Hackaday
Log2Ram: Extending SD Card Lifetime for Raspberry Pi LoRaWAN Gateway | MCU on Eclipse

RPiconfig

RPiconfig - eLinux.org

sudo raspi-config provides an interface to edit config.txt

SPI and I2C are disabled by default, it has to be enabled in RPiconfig to load the appropriate module

Pinout/GPIO

Raspberry Pi GPIO Pinout
GPIO - Raspberry Pi Documentation
Raspberry Pi GPIO basics - YouTube
Raspberry gPIo - learn.sparkfun.com
Everything You Need to Know About Raspberry Pi GPIO Pins
Raspberry Pi GPIO Pinout: What Each Pin Does - Tom's Hardware

Ben Croston – RasPi.TV GPIO series

Raspberry Pi SPI and I2C Tutorial - learn.sparkfun.com
How to set up i²c in Raspbian on the Raspberry Pi – RasPi.TV
SPI - Raspberry Pi Documentation
Raspberry Pi GPIO Tutorial: The Basics Explained - Pi My Life Up

Using the Raspberry Pi Timer for Embedded Environments | Studica Blog
Behind The Pin: How The Raspberry Pi Gets Its Audio | Hackaday
gpio - Driving PWM output frequency - Raspberry Pi Stack Exchange

Can a Raspberry Pi be used as an Arduino? || RPi GPIO Programming Guide 101 - YouTube
Arduino vs Raspberry Pi - Which Board is Best For You? - YouTube

What are the min/max voltage/current values the gpio pins can handle? - Raspberry Pi Stack Exchange

raspberry-gpio-python download | SourceForge.net RPi.GPIO
Welcome to RPIO’s documentation! — RPIO 0.10.0 documentation

Emulator

Raspberry Pi GPIO Emulator Simulates Physical Components | Tom's Hardware

gpiozero

gpiozero — Gpiozero Documentation
RPi-Distro/python-gpiozero: A simple interface to GPIO devices with Raspberry Pi

GPIO Zero: a friendly Python API for physical computing - Raspberry Pi
GPIO Zero: Developing a new friendly Python API for Physical Computing - Ben Nuttall
Updates to GPIO Zero, the physical computing API - Raspberry Pi v1.4
What's new in GPIO Zero v1.4? - Ben Nuttall

GPIO Zero Essentials - The MagPi MagazineThe MagPi Magazine

GPIO expander: access a Pi's GPIO pins on your PC/Mac - Raspberry Pi
4. Configuring Remote GPIO — Gpiozero 1.4.1 Documentation

pigpio

pigpio library
joan2937/pigpio: pigpio is a C library for the Raspberry which allows control of the General Purpose Input Outputs (GPIO).

WiringPi

WiringPi Arduino's wiring API
GPIO Access in C with Raspberry Pi: Traffic Lights - Simon Prickett - Medium

CircuitPython

see iot.md#circuitpython

Overview | CircuitPython on Linux and Raspberry Pi | Adafruit Learning System

C#

.NET IoT Libraries documentation | Microsoft Docs
dotnet/iot: This repo includes .NET Core implementations for various IoT boards, chips, displays and PCBs.
iot/README.md at main · dotnet/iot devices

Construct Internet of Things devices using the .NET IoT Libraries - Learn | Microsoft Docs

Show dotnet: Animating 40 LEDs with charlieplexing - .NET Blog use Thread.SpinWait() rather than Thread.Sleep()

Scratch

see learn-to-code-kids.md#scratch

How to configure Scratch GPIO- (Part 1/12)

Scratch 2.0: all-new features for your Raspberry Pi - Raspberry Pi
Scratch 3 Desktop for Raspbian on Raspberry Pi - Raspberry Pi
Getting Started With Scratch on the Raspberry Pi
raspberrypilearning/getting-started-with-scratch: Getting started with Scratch on Raspberry Pi

Modifying image

Modify a disk image to create a Raspberry Pi-based homelab | Opensource.com

Cross compilation

$ sudo git clone https://github.com/raspberrypi/tools --depth 1 /opt/rpi_tools
$ export PATH=$PATH:/opt/rpi_tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin
$ > hello.c <<EOF
# include <stdio.h>
int main() {
    printf("%s\n", "Hello World");
    return 0;
}
EOF
$ arm-linux-gnueabihf-gcc -o hello hello.c
$ file hello
hello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-, for GNU/Linux 2.6.26, BuildID[sha1]=b5d2d491fea9afdf8259aea28f0e6c02929711dc, not stripped

Running on host:

$ sudo apt-get install qemu
$ export RPI_SYSROOT=$(arm-linux-gnueabihf-gcc --print-sysroot)
$ qemu-arm -L $RPI_SYSROOT ./hello
Hello World

Cross Compile Qt5

Raspberry Pi Beginners Guide - Qt Wiki

  1. Mounting RootFS
# destination mount point
$ sudo mkdir /mnt/rpi-rootfs
# download http://director.downloads.raspberrypi.org/raspbian_full/images/raspbian_full-2019-04-09/2019-04-08-raspbian-stretch-full.zip
# do not use NOOBS images
$ fdisk -l raspbian-full.img
Disk raspbian-full.img: 5 GiB, 5402263552 bytes, 10551296 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x43c1e3bb

Device                                Boot Start      End  Sectors  Size Id Type
2019-04-08-raspbian-stretch-full.img1       8192    96042    87851 42.9M  c W95 FAT32 (LBA)
2019-04-08-raspbian-stretch-full.img2      98304 10551295 10452992    5G 83 Linux
# mount the image by using the sector size of `512` and start block number `98304`
$ sudo mount raspbian-full.img -o loop,offset=$(( 512 * 98304)) /mnt/rpi-rootfs/
# check the mounting point
$ ls /mnt/rpi-rootfs
# fix symlinks in rootfs
$ wget https://raw.githubusercontent.com/riscv/riscv-poky/master/scripts/sysroot-relativelinks.py
$ chmod +x sysroot-relativelinks.py./sysroot-relativelinks.py
$ sudo ./sysroot-relativelinks.py /mnt/rpi-rootfs
  1. Setup toolchain
# download this on 64-bit system
$ sudo apt-get install lib32z1

Install QT (to ~/Qt/5.12.3/)
Fix Qt qmake configuration bugs for raspberrypi which has different names for EGL libraries in new stretch version.
Search ./qtbase/mkspecs/devices/linux-rasp-pi-g++/qmake.conf file, all references to -IEGL and -LGLESv2 need to be substituted for -lbrcmEGL and -lbrcmGLESv2 respectively.

$ git clone https://github.com/oniongarlic/qt-raspberrypi-configuration.git
$ cd qt-raspberrypi-configuration && make install DESTDIR=~/Qt/5.12.3/Src/
$ cd ~/Qt/5.12.3/Src/
$ export RPI_TOOLCHAIN=/opt/rpi-tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-
$ export RPI_SYSROOT=/mnt/rpi-rootfs
$ export RPI_QT5=/opt/rpi-qt5  # cross compiled libraries for RPi
$ export RPI_QT5_TOOLS=/opt/rpi-qt5-tools  # host tools for cross compilation
$ ./configure -release \
    -opensource -confirm-license \
    -opengl es2 \
    -device linux-rasp-pi-g++ \
    -device-option CROSS_COMPILE=$RPI_TOOLCHAIN \
    -sysroot $RPI_SYSROOT \
    -extprefix $RPI_QT5 \
    -hostprefix $RPI_QT5_TOOLS \
    -make libs \
    -skip qtwayland -skip qtlocation -skip qtscript -skip qtdatavis3d \
    -no-use-gold-linker -no-gbm -v
$ make -j(nproc) && make install
$ ll $RPI_QT5
# install to RPi
$ rsync -avz --rsync-path="sudo rsync" $RPI_QT5 pi@raspberrypi.local:/usr/local
  1. Cross compiling QT app
$ cd TextFinder/build-rpi
$ $RPI_QT5_TOOLS/bin/qmake ../TextFinder.pro
$ ls
Makefile .qmake.stash
$ make -j$(nproc)
$ file TextFinder
TextFinder: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-, for GNU/Linux 3.2.0, BuildID[sha1]=fcbc9b1ee203db6b9ae8ff4b9fe783d1183c9775, not stripped

To build a static linking Qt program, seeing Linking to Static Builds of Qt

Cross-compile and deploy Qt 5.12 for Raspberry Pi
How to cross compile QT for Raspberry Pi 3 on Linux (Ubuntu) for Beginners!
Building Qt 5.12 LTS for Raspberry Pi on Debian Stretch
OpenGL ES2 error while Cross Compiling Qt5.11 for Raspbian Stretch with desktop

HATs

Introducing Raspberry Pi HATs - Raspberry Pi
Tip of the HAT to the RasPi – A Discussion on the Pi HAT Hardware Specification

Making Robot Friends with the Crickit HAT for Raspberry Pi - Raspberry Pi

Raspberry Pi machine learning HAT - Geeky Gadgets

GPU

GPGPU hacking on the Pi - Raspberry Pi
Raspberry Pi VideoCore APIs - eLinux.org
hermanhermitage/videocoreiv-qpu: Fun and Games with the Videocoreiv Quad Processor Units

RPI4 & Ubuntu MATE - How to enable video acceleration

Hacking The GPU For Fun And Profit (Pt. 1) | Raspberry Pi Playground
Hacking The GPU For Fun And Profit (Pt. 2) | Raspberry Pi Playground
Hacking The GPU For Fun And Profit (Pt. 3) | Raspberry Pi Playground
Hacking The GPU For Fun And Profit (Pt. 4) | Raspberry Pi Playground

Bluetooth

Everything You Need to Set Up Bluetooth on the Raspberry Pi 3

Camera

Camera Module - Raspberry Pi Documentation

RPi Camera - Waveshare Wiki
学习资料
picamera — Picamera Documentation

Camera Module v1

raspicam commands - Raspberry Pi Documentation
Raspberry Pi Camera Module - Raspberry Pi Documentation

sudo raspi-config -> Camera ->Enable

raspistill -o image.jpg -t 10000 -n # 10 sec timeout, no preview
raspistill -o image.jpg -t 2000 -p 100,100,300,200 # display with preview
raspistill -t 600000 -tl 10000 -o image_num_%d_today.jpg # one still every 10 sec, for 10 minutes

raspivid -o video.h264 -t 10000
raspivid -w 320 -h 240 -p 0 -t 10000 -o video.h264 # display to full screen
omxplayer -o hdmi video.h264 # plaback video

Video Streaming Raspberry Pi Camera | Random Nerd Tutorials
How to Live Stream to YouTube With a Raspberry Pi
Node-RED Raspberry Pi Camera (Take Photos) | Random Nerd Tutorials

KVM

Control ANY COMPUTER with these Pi KVMs! - YouTube
IPMI and Remote Management for Any Motherboard! PiKVM - YouTube

PiKVM - Open and inexpensive DIY IP-KVM on Raspberry Pi

BliKVM products | blicube
ThomasVon2021/blikvm: Open and cost-effective "KVM-over-IP". BliKVM comes in 4 different models, v1 CM4, v2 PCIe, v3 HAT and v4 Allwinner, based on Raspberry Pi and Allwinner SoC.

BliKVM Plug-n-Play PCIe - Raspberry Pi CM4, KVM-over-IP, easy-to-use - Seeed Studio
I put a computer in my computer - YouTube

The Modern, Open-Source KVM over IP | TinyPilot
tiny-pilot/tinypilot: Use your Raspberry Pi as a browser-based KVM.

As Desktop PC

Using a Raspberry Pi as a Desktop PC: 7 Things I Learned After a Week

Use Your Raspberry Pi Like a Desktop PC
How to Create Custom Keyboard Shortcuts for Raspberry Pi LXDE

Build your own laptop in The MagPi #74 - The MagPi MagazineThe MagPi Magazine
5 Ways to Turn Your Raspberry Pi Into a Laptop
4 Projects That Make Your Raspberry Pi Portable
NODE / Hardware - YouTube

DeskPi Pro Set-Top Box For Raspberry Pi 4 - SSD Support, Full Size HDMI, Ice Tower Cooler - YouTube
Pi Case 40 by Cooler Master — Kickstarter

#perfmatters

Effective Raspberry Pi ZRAM usage

Changed the swap file to 2GB instead of 100MB:

sudo nano /etc/dphys-swapfile
CONF_SWAPSIZE=2048
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start

OpenGL

Raspberry Connect - Trying out OpenGL on Raspberry Pi 3

apt-get install -y mesa-utils mesa-vdpau-drivers

Chrome settings (chrome://flags) or 00-rpi-vars:

CHROMIUM_FLAGS="--disable-quic --enable-fast-unload --enable-tcp-fast-open --disable-gpu-compositing --enable-native-gpu-memory-buffers --use-gl=egl --gles --enable-gpu-rasterization --ignore-gpu-blacklist --enable-zero-copy"
CHROMIUM_FLAGS="--ignore-gpu-blacklist --enable-gpu-rasterization --enable-native-gpu-memory-buffers --enable-checker-imaging --disable-quic --enable-tcp-fast-open --disable-gpu-compositing --enable-fast-unload --enable-experimental-canvas-features --enable-scroll-prediction --enable-simple-cache-backend --answers-in-suggest --ppapi-flash-path=/usr/lib/chromium-browser/libpepflashplayer.so --ppapi-flash-args=enable_stage_stagevideo_auto=0 --ppapi-flash-version= --max-tiles-for-interest-area=512 --num-raster-threads=4 --default-tile-height=512"
CHROMIUM_FLAGS="${CHROMIUM_FLAGS} --purge-memory-button --smooth-scrolling --no-pings --disable-background-mode --dns-prefetch-disable --ignore-gpu-blacklist --enable-gpu-rasterization --enable-native-gpu-memory-buffers --enable-lazy-image-loading --enable-lazy-frame-loading --enable-checker-imaging --enable-quic --enable-resource-prefetch --enable-tcp-fast-open --disable-gpu-compositing --enable-fast-unload --enable-experimental-canvas-features --enable-scroll-prediction --enable-scroll-anchoring --enable-tab-audio-muting --disable-background-video-track --enable-simple-cache-backend --answers-in-suggest --ppapi-flash-path=/usr/lib/chromium-browser/libpepflashplayer.so --ppapi-flash-args=enable_stage_stagevideo_auto=0 --ppapi-flash-version= --max-tiles-for-interest-area=512 --num-raster-threads=4 --default-tile-height=512"
CHROMIUM_FLAGS="${CHROMIUM_FLAGS} --ignore-gpu-blacklist --enable-one-copy-rasterizer --enable-gpu-rasterization --enable-native-gpu-memory-buffers --enable-checker-imaging --enable-quic --site-per-process --enable-tcp-fastopen --disable-gpu-compositing --enable-fast-unload --enable-experimental-canvas-features --enable-scroll-prediction --answers-in-suggest --ppapi-flash-path=/usr/lib/chromium-browser/libpepflashplayer.so --ppapi-flash-args=enable_stagevideo_auto=0 --ppapi-flash-version= --max-tiles-for-interest-area=512 --num-raster-threads=4 --default-tile-height=512"

Expected chrome://gpu:

Graphics Feature Status
Canvas: Hardware accelerated
CheckerImaging: Disabled
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Native GpuMemoryBuffers: Hardware accelerated
Rasterization: Hardware accelerated on all pages
Video Decode: Hardware accelerated

ExaGear Desktop

ExaGear Desktop. Run x86 applications on ARM-based devices.
Run Google Chrome on Raspberry Pi | Linux.com | The source for Linux information

Gaming

see game-emulator.md#retroarch

Retro Gaming on the Raspberry Pi: Everything You Need to Know
How to Build a Raspberry Pi Retro Game Console
The Advanced Guide to Setting Up a DIY Game Console with a Raspberry Pi
How to Play Almost Any Video Game on a Raspberry Pi
Retro Gaming in Style With RecalBox for the Raspberry Pi

Most are backed by RetroArch + EmulationStation

see game-emulator.md#lakka

RetroPie vs Recalbox vs Lakka for retro gaming on the Raspberry Pi
DIY Retro Game System Showdown: RetroPie vs. Recalbox

RetroPie

RetroPie - Retro-gaming on the Raspberry Pi
RetroPie Docs
First Installation - RetroPie Docs
Updating RetroPie - RetroPie Docs
FAQ - RetroPie Docs

來自樹莓派界的傳奇工作室打造!【Insert Coin 茵絲可電玩工房】NESPI 4 / SSD / Raspberry 4b 套件 支援線上更新/Steam 串流/電視源播放 - YouTube

How to Create a RetroPie on Raspberry Pi - Graphical Guide
Updating RetroPie · RetroPie/RetroPie-Setup Wiki
RetroPie 4.4. First Installation. A Beginner's Guide to Setting Up RetroPie on a Raspberry Pi - YouTube
Build a Raspberry Pi 4 Retro-Gaming Console with RetroPie (Complete Guide) - YouTube
The ULTIMATE RetroPie 4.1 Raspberry Pi Setup Tutorial: 10 Steps (with Pictures)
How to Set Up RetroPie on Raspberry Pi 4 (or earlier) | Tom's Hardware
RetroPie: Build your own Raspberry Pi retro gaming rig - howchoo
How to Configure RetroPie and Install ROMs - YouTube
The Raspberry Pi Has Revolutionized Emulation

Web Browser On Emulation Station ! - RetroPie Forum
zerojay/RetroPie-Extra: A collection of unofficial scripts for adding more emulators/ports/games to RetroPie.

First Installation - RetroPie Docs
Running ROMs from a USB drive - RetroPie Docs
How to Add Roms To RetroPie - YouTube with Samba using IP, or \\retropie
when prompted for password, use user root and password pi

Scraper

Scraper - RetroPie Docs

sselph/scraper: A scraper for EmulationStation written in Go using hashing
How to Scrape Using Sselph Scraper: Tutorial with Command Examples - RetroPie Forum

Skraper
SCREENSCRAPER - Base de données et téléchargement médias pour front-end gaming multi-systèmes

Streaming

see pc-games.md#streaming

Steam Link now available on Raspberry Pi :: Steam Link Raspberry Pi
Steam Link Raspberry Pi Troubleshooting :: Steam Link Raspberry Pi
Steam Link Raspberry Pi :: Steam Community
Raspberry Pi Steam Link | Sam Brooks
How to Use a Raspberry Pi and Steam Link to Stream PC Games to Your TV | PCMag.com

How to Stream Any PC Game to TV Using a Raspberry Pi with Moonlight

Parsec dropped Raspberry Pi support in 2022-10
Playing PC Games On Your Raspberry Pi | Parsec
Setting up Parsec on the Raspberry Pi - Pi My Life Up
How to Stream Steam Games to Raspberry Pi Without Moonlight with Parsec

Native/Ports/Clones

10+ Classic Games You Can Run on Raspberry Pi Without Emulators
How to Run Doom on Your Raspberry Pi Without an Emulator
STICKY: GAMES LIST: Games That Work On The Pi - Raspberry Pi Forums

USB 3 Storage

UASP makes Raspberry Pi 4 disk IO 50% faster | Jeff Geerling
Faster USB Disk IO For Raspberry Pi | Tom's Hardware
Raspberry Pi 4 With an SSD: Dramatic Speed Improvements, Higher Price

NAS

Build a Raspberry Pi NAS — The MagPi magazine

CV/AI

see "artificial-intelligence.md#edge-ai"

piwheels - Home

pip install opencv - PyImageSearch object classification
Raspberry Pi Face Recognition - PyImageSearch
Object detection with Raspberry Pi and Python - Data Driven Investor - Medium
Real Time Face Detection on the RaspberryPi-4: 6 Steps

Development

How to Get Started With Rust on Raspberry Pi

Projects

Pi My Life Up - 101+ DIY Raspberry Pi Projects & Guides
Projects | Raspberry Pi Projects

Best Raspberry Pi Projects for Kids
15 Practical Raspberry Pi Projects | Open Electronics
Top 10 Raspberry Pi Projects for Beginners
Ten More Awesome Projects for Your Raspberry Pi
25 Raspberry Pi Projects Anyone Can Follow [2019]

Education - Training, resources, programmes and events

AWShome - Home automation using RPi + Alexa + IoT - Hackster.io
How to Use Raspberry Pi as a VPN Gateway - Tom's Hardware

GoPiGo Beginner Starter Kit: the Raspberry Pi Robot Car

Raspberry Pi Motion Detector with Photo Capture | Random Nerd Tutorials
CCTV Raspberry Pi Based System with Storage using MotionEyeOS | Random Nerd Tutorials

Build a car computer 'carputer' with Raspberry Pi - The MagPi MagazineThe MagPi Magazine
How to Build an Android TV Box With a Raspberry Pi

Wiki | Raspberry Pi Dramble RPi Cluster