<!– wp:heading –>
<h2>The one piece missing from this blog’s Pi 5 home server stack</h2>
<!– /wp:heading –>
<!– wp:paragraph –>
<p>Between Pi-hole, Home Assistant, Ollama, Vaultwarden with Tailscale, and now Immich, this blog has built out most of a proper 2026 Raspberry Pi 5 home server. The piece still missing is video: turning cheap RTSP security cameras into a real, self-hosted NVR with object detection – without the CPU load that normally makes that impossible on a Pi. Running Frigate NVR on a Raspberry Pi 5 with a Coral Edge TPU is exactly how to fill that gap.</p>
<!– /wp:paragraph –>
<!– wp:heading –>
<h2>Why a Coral TPU, not just the Pi’s own CPU</h2>
<!– /wp:heading –>
<!– wp:paragraph –>
<p>Running object detection on every frame of every camera stream would pin a Pi 5’s CPU instantly. The Coral Edge TPU offloads that inference to dedicated silicon, so Frigate can run continuous, multi-camera object detection – people, vehicles, animals – at a fraction of the CPU cost of software-only detection.</p>
<!– /wp:paragraph –>
<!– wp:list –>
<ul>
<li><strong>USB Coral Accelerator</strong> – simplest setup, no extra drivers beyond <code>libedgetpu1-std</code>, plugs into a Pi 5’s USB 3.0 port</li>
<li><strong>PCIe Coral (via M.2/HAT)</strong> – marginally better throughput, worth it only if you’re already running an NVMe HAT with a spare M.2 slot</li>
<li>Either option is enough for several 1080p RTSP streams with detection latency low enough to be genuinely useful for alerts</li>
</ul>
<!– /wp:list –>
<!– wp:heading –>
<h2>The basic setup</h2>
<!– /wp:heading –>
<!– wp:paragraph –>
<p>Frigate ships as a Docker image, which is the officially recommended way to run it – there’s no case for compiling it from source on a Pi.</p>
<!– /wp:paragraph –>
<!– wp:list {“ordered”:true} –>
<ol>
<li>Install Docker on Raspberry Pi OS (64-bit is required) if it isn’t already part of your Pi 5 stack</li>
<li>Install <code>libedgetpu1-std</code> on the host and pass the Coral device through to the container</li>
<li>Point Frigate’s config at each camera’s RTSP stream and set the detector to use the Coral TPU rather than CPU</li>
<li>Store recordings on an NVMe SSD rather than the SD card – continuous recording will wear out an SD card fast</li>
</ol>
<!– /wp:list –>
<!– wp:paragraph –>
<p>A minimal detector config in <code>config.yml</code> looks like this:</p>
<!– /wp:paragraph –>
<!– wp:paragraph –>
<p><code>detectors: coral: {type: edgetpu, device: usb}</code></p>
<!– /wp:paragraph –>
<!– wp:heading –>
<h2>Fitting it into the rest of the stack</h2>
<!– /wp:heading –>
<!– wp:paragraph –>
<p>Frigate’s real value on a home-server Pi comes from what it connects to, not from running in isolation:</p>
<!– /wp:paragraph –>
<!– wp:list –>
<ul>
<li><strong>Home Assistant integration</strong> – Frigate’s HACS integration surfaces per-camera person/vehicle detection as sensors you can build automations around</li>
<li><strong>Immich</strong> – keep Frigate’s job strictly to live monitoring and alerts, and let Immich remain your actual photo/video library, rather than duplicating storage between the two</li>
<li><strong>Tailscale</strong> – expose Frigate’s web UI over your existing Tailscale network instead of opening another port to the internet</li>
</ul>
<!– /wp:list –>
<!– wp:heading –>
<h2>Common gotchas worth knowing before you start</h2>
<!– /wp:heading –>
<!– wp:list –>
<ul>
<li>Frigate needs a 64-bit OS – if you’re still running a 32-bit Raspberry Pi OS image from an older Pi 4 setup, you’ll need to reflash before any of this works</li>
<li>The USB Coral Accelerator can run warm under sustained load – a small heatsink or a case with airflow is worth adding if it’s running continuously rather than just for testing</li>
<li>RTSP camera firmware varies wildly in stream quality reporting – test with a short sub-stream resolution first rather than assuming your cameras’ main stream is what you actually want Frigate detecting against</li>
</ul>
<!– /wp:list –>
<!– wp:heading –>
<h2>What to expect realistically</h2>
<!– /wp:heading –>
<!– wp:paragraph –>
<p>A single Pi 5 with a Coral TPU handles a handful of cameras comfortably – this isn’t a replacement for a dedicated NVR box watching twenty cameras across a commercial site. For a home setup of two to six cameras, though, it’s a genuinely capable, low-power, fully self-hosted alternative to a cloud camera subscription, and it slots into a Pi 5 home-lab stack you may well already be running for everything else.</p>
<!– /wp:paragraph –>
Leave a Reply
You must be logged in to post a comment.