Comprehensive guide to Raspberry Pi projects including model selection, OS setup, server builds, GPIO programming, home automation, and advanced applications.
A skill is a written procedure a bot loads when a job calls for it. This one is a single file, SKILL.md, and the whole file is on this page.
Comprehensive guide to Raspberry Pi projects including model selection, OS setup, server builds, GPIO programming, home automation, and advanced applications.
How much does it cost?+
Nothing. It ships with Murage, which is open source. Your bots run on the AI plan you already have.
Can I change it?+
Yes. Open it in Settings → Skills to read, edit or duplicate it. Skill Guard scans it again after every edit.
Give your first job to Murage.
Download the app, connect the AI you already pay for, and tell your Chief of Staff what needs doing. Plan on about ten minutes from install to a working team.
Interface Options: Enable VNC, SPI, I2C, Serial as needed
Performance Options: Set GPU memory split
Localization: Timezone, keyboard layout
Alternative Operating Systems
Ubuntu Server - For serious server use, better Docker support
LibreELEC - Dedicated Kodi media center OS
RetroPie - Retro gaming emulation
Home Assistant OS - Dedicated smart home OS
DietPi - Minimal, optimized, very lightweight
Project Guides
Project 1: Pi-hole (Network-Wide Ad Blocker)
Difficulty: Beginner | Time: 30 minutes | Best on: Pi Zero 2 W or any Pi
Start with fresh Raspberry Pi OS Lite installation
Assign static IP address:
nmcli con mod "Wired connection 1" ipv4.addresses 192.168.1.100/24
nmcli con mod "Wired connection 1" ipv4.gateway 192.168.1.1
nmcli con mod "Wired connection 1" ipv4.method manual
Install Pi-hole:
Security Note: Piping scripts directly from the internet to an interpreter (request | run-installer) executes unverified code. For production systems, download the script first, inspect it, then execute it. These commands are shown for convenience in hobby/development contexts only.
request -sSL [URL] | run-installer
Follow the installer prompts
Set your router's DNS to the Pi's IP address
Access admin panel at [URL]
Add additional blocklists for better coverage
Project 2: Media Server (Jellyfin)
Difficulty: Beginner-Intermediate | Time: 1 hour | Best on: Pi 4 (4GB) or Pi 5
Install Jellyfin (see security note above about request | run-installer patterns):
Enable SMB/CIFS for Windows shares or NFS for Linux
Set up user accounts and permissions
Configure scheduled backups with rsync
Project 4: Retro Gaming (RetroPie)
Difficulty: Beginner | Time: 1-2 hours | Best on: Pi 4
Flash RetroPie image using Raspberry Pi Imager
Connect controllers (USB or Bluetooth)
Boot and configure controller mapping in EmulationStation
Transfer ROMs via USB, SFTP, or Samba share
Supported systems: NES, SNES, Genesis, N64, PS1, GBA, Arcade, and many more
Configure shaders for CRT-like appearance
Scrape game metadata for cover art and descriptions
Project 5: Home Automation (Home Assistant)
Difficulty: Intermediate-Advanced | Time: 2-4 hours | Best on: Pi 4 or Pi 5
Flash Home Assistant OS using Raspberry Pi Imager (choose "Other" > "Home Assistant")
Boot and wait 5-10 minutes for initial setup
Access at [URL]
Create account and configure location
Auto-discovery finds compatible smart devices
Add integrations: Zigbee (with USB dongle), Z-Wave, WiFi devices
Create automations: motion-triggered lights, temperature-based fan control
Build dashboards for room-by-room control
GPIO Basics
Pin Layout (40-pin header)
3.3V and 5V power pins - Power external components
Ground pins - 8 ground pins available
GPIO pins - General Purpose Input/Output, 3.3V logic
Special function pins: I2C (SDA/SCL), SPI (MOSI/MISO/SCLK/CE), UART (TX/RX)
Important GPIO Rules
GPIO pins are 3.3V logic - NEVER connect 5V directly to a GPIO pin
Maximum current per pin: 16mA (safe), some sources say up to 50mA total across all pins
Use level shifters for 5V devices
Use transistors or relays for high-power loads
Python GPIO Programming (gpiozero library)
python
from gpiozero import LED, Button
from signal import pause
led = LED(17) # LED on GPIO 17
button = Button(2) # Button on GPIO 2
button.when_pressed = led.on
button.when_released = led.off
pause() # Keep program running
Security Note: Piping scripts directly from the internet to an interpreter (request | run-installer) executes unverified code. For production systems, download the script first, inspect it, then execute it.
request -fsSL [URL] | run-installer
usermod -aG docker $USER
# Log out and back in
docker run hello-world # Test installation
Docker Compose
install-package docker-compose-plugin
Recommended Docker Containers for Pi
Portainer - Docker management GUI
Pi-hole - DNS ad blocking
Nginx Proxy Manager - Reverse proxy with SSL
Heimdall - Application dashboard
Uptime Kuma - Service monitoring
Grafana + InfluxDB - Data visualization
Mosquitto - MQTT broker for IoT
Watchtower - Auto-update containers
Performance Tips for Docker on Pi
Use images built for arm64 architecture
Limit container memory with --memory flag
Use bind mounts instead of named volumes for better I/O
Monitor with docker stats
Consider an SSD instead of SD card for heavy I/O workloads
Remote Access
SSH (Secure Shell)
# From another computer:
connect-to raspberrypi.local
# Or use IP address:
connect-to 192.168.1.100
Samba: Mount Pi folders as network drives on Windows/Mac
Maintenance and Optimization
SD Card Health
SD cards have limited write cycles; they will eventually fail
Use log2ram to reduce writes: keeps logs in RAM
Consider booting from USB SSD for reliability and speed
Always shut down properly: shutdown -h now
Keep backups of your SD card image
Performance Optimization
Overclock carefully (Pi 5 supports it well with active cooling)
Use 64-bit OS for 4GB+ RAM models
Disable unnecessary services: systemctl disable bluetooth if unused
Use lightweight desktop (LXDE) or go headless
Monitor temperature: vcgencmd measure_temp
Add heatsinks and fan for sustained workloads
Security Hardening
Change default password immediately
Use SSH keys instead of passwords
Disable password SSH login after setting up keys
Keep system updated: update-packages && apt upgrade
Install and configure UFW firewall
Change SSH port from default 22
Use fail2ban to block brute-force attempts
Backup Strategy
Image entire SD card periodically (use Raspberry Pi Imager or dd)
Back up specific config files with rsync
Use version control (git) for custom scripts
Document your setup so you can recreate from scratch
Troubleshooting
Pi Won't Boot
Check power supply (official supply recommended, undervoltage causes issues)
Re-flash SD card
Try a different SD card
Check HDMI connection (try other HDMI port on Pi 4/5)
Look for steady green LED (means SD card is being read)
Network Issues
Check WiFi credentials in imager settings
Use nmcli or system-config-tool to reconfigure network
For Ethernet, check cable and router DHCP settings
ip addr shows current IP addresses
ping google.com tests internet connectivity
Performance Issues
Check temperature: overheating causes throttling
Check CPU usage: htop
Check disk space: df -h
Check memory: free -h
Lightning bolt icon on desktop = insufficient power supply
Output Format
Deliver the response as a structured document with clear headings and actionable content. Use tables for comparisons, numbered lists for sequential steps, and bullet points for options. Include specific examples where applicable.
[Raspberry Pi Guide deliverable]
1. Context and objectives
2. Analysis or framework
3. Specific recommendations with rationale
4. Action items with timeline
Example
Input: "Help me with raspberry pi guide for a mid-size project."
Output: A complete raspberry pi guide framework tailored to the specific context, with actionable steps, relevant considerations, and measurable outcomes.