pexels pixabay 163073

Frigate NVR on a Raspberry Pi 5 With a Coral TPU

The one piece missing from this blog’s Pi 5 home server stack

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.

Why a Coral TPU, not just the Pi’s own CPU

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.

  • USB Coral Accelerator – simplest setup, no extra drivers beyond libedgetpu1-std, plugs into a Pi 5’s USB 3.0 port
  • PCIe Coral (via M.2/HAT) – marginally better throughput, worth it only if you’re already running an NVMe HAT with a spare M.2 slot
  • Either option is enough for several 1080p RTSP streams with detection latency low enough to be genuinely useful for alerts

The basic setup

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.

  1. Install Docker on Raspberry Pi OS (64-bit is required) if it isn’t already part of your Pi 5 stack
  2. Install libedgetpu1-std on the host and pass the Coral device through to the container
  3. Point Frigate’s config at each camera’s RTSP stream and set the detector to use the Coral TPU rather than CPU
  4. Store recordings on an NVMe SSD rather than the SD card – continuous recording will wear out an SD card fast

A minimal detector config in config.yml looks like this:

detectors: coral: {type: edgetpu, device: usb}

Fitting it into the rest of the stack

Frigate’s real value on a home-server Pi comes from what it connects to, not from running in isolation:

  • Home Assistant integration – Frigate’s HACS integration surfaces per-camera person/vehicle detection as sensors you can build automations around
  • Immich – 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
  • Tailscale – expose Frigate’s web UI over your existing Tailscale network instead of opening another port to the internet

Common gotchas worth knowing before you start

  • 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
  • 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
  • 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

What to expect realistically

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.


Leave a Reply