pi-a-day
AI-assisted community documentation for Raspberry Pi bootloaders & boot processes — because the Foundation's docs don't always keep up.
Scrapes community sources
Pulls from Raspberry Pi forums, GitHub discussions, DeepWiki, and other community docs — each source capped at 6,000 characters, with Wayback Machine fallback if a URL goes down.
AI-generated report
Feeds the scraped text into MiniMax M2.5 via the HuggingFace inference router (max 4,096 tokens, temperature 0.3) to produce a structured Markdown report on Pi bootloader development.
Card-based live site
Builds a dark-themed card grid at pi-a-day.pages.dev — one card per Pi model, each linking to its full report. Currently covers Pi 5.
Report a missing Pi
Users can flag Pi models that haven't been documented yet. The pipeline picks them up and generates a report on the next run.
Auto-deploys
Commits the generated HTML to GitHub and Cloudflare Pages rebuilds automatically. No manual deploy steps.
State tracking
Keeps a state.json so each Pi model is only processed once unless you pass --force.
-
01
Pi 5 Boot Sequence
ROM → EEPROM bootloader → config → kernel. How the BCM2712 SoC actually starts up.
-
02
EEPROM & rpi-eeprom utility
How to read, update, and manage the EEPROM bootloader on a Pi 5 without bricking it.
-
03
kernel_2712.img naming
Why the Pi 5 kernel image has a different name — tied to the BCM2712 SoC — and what that means for bare-metal work.
-
04
UART & serial console changes
The default serial console moved from GPIO 14/15 to a dedicated connector (ttyS11 instead of ttyS0) on the Pi 5.
-
05
Bare-metal development
Notes on using the Circle framework,
kernel_address=0x80000, and what differs from Pi 4 bare-metal setups. -
06
Known documentation gaps
PCIe boot, firmware video limits, and other areas where the official docs are still incomplete or wrong.
--pi=NAME Target a specific Pi model (default: pi5)
--force Regenerate even if already done
--no-push Build locally, don't push to GitHub