Had a heck of a time with this as well but got it working. TLDR solution: cold boot TPU and device Frigate is installed on. If this doesn’t work, maybe there is a gem below:
Equipment and software used: Home Assistant Yellow, raspberry pi CM5 (Core 2025.7.4 Supervisor 2025.08.1 Operating System 15.2 Frontend 20250702.3).
Frigate version 0.16.0 (16Aug2025) - Installation using “Frigate (Full Access)” version with “Protection Mode” disabled so Frigate can access the TPU. Special note: Also in Aug2025 Home Assistant made a major upgrade to it’s core and OS - which also broke Frigate and a fix is pending from Frigate’s side. It’s recommended to never upgrade HA core/OS to major version changes for 3-6 months. Standard operating procedure for major OS changes really. Also note: “The Frigate config directory for add-on users was changed from the Home Assistant config directory to the add-on config directory. With this change, the Frigate config file and database are now part of the add-on backup taken by Home Assistant, no longer needing to backup them manually. Note that only backups after 0.16 will benefit of this change.… In the new directory, the Frigate config file will be named config.yml rather than frigate.yml.”
Adding the TPU:
Plugged in google coral TPU to a powered hub** using stock USB cable it came with. Coral TPU shows a solid white light meaning it’s powered. Added code to frigate’s “config.yml” file:
"
detectors:
coral:
type: edgetpu
device: usb
"
Rebooted HA. Nothing in Frigate logs mentioning “frigate.detectors”. Unplug TPU, reboot HA, plug back in TPU, reboot HA. Still nothing.
Checked HA hardware list. Google Coral TPU should show as “1a6e:089a Global Unichip Corp. device.” (source). I search 1a6e and it comes up as “1a6e_089a”. So I know HA sees it. According to Frigate documentation: "Once an application like Frigate runs an inference, the device will be initialized and should be listed with the Google Inc. ID 18d1:9302. "
In the final hail-mary I cold boot*** everything; Home assistant yellow and powered USB hub. Voila! Frigate detects it in the system page. “Detect Inference Speed” and “Detector CPU usage” previously showed as “cpu” now shows as “coral”.
CPU usage down from 120% “screaming” down to coral’s 22%. Inference speed was previously in the 300-450ms range, is now down to about 45-55ms (single camera). My understanding is because Home Assistant Yellow is USB 2.0, that’s probably the best I’ll ever see. And likely max camera usage I can have is maybe 5-6 cameras (fine for my purposes but in the future I’ll be purchasing a better carrier board!!). Overall system CPU usage down from 80-100% all the time for one camera even when not detecting anything back down to a more reasonable 40-50%. HA hardware list now shows “18d1_9302” showing that Frigate initialized it.
Frigate’s logs showing detection of TPU:
2025-08-23 15:36:21.093265946 [2025-08-23 09:36:21] detector.coral INFO : Starting detection process: 265
2025-08-23 15:36:21.095092657 [2025-08-23 09:36:21] frigate.detectors.plugins.edgetpu_tfl INFO : Attempting to load TPU as usb
2025-08-23 15:36:25.728167660 [2025-08-23 09:36:25] frigate.detectors.plugins.edgetpu_tfl INFO : TPU found
Frigate’s system page also now shows “System is healthy” in bottom right hand corner.
** Hub: Waveshare 4-Ch USB 3.2 Gen1, powered from PoE+ splitter 12V output 5.5x2.1mm barrel plug 2A (24W) - apparently max TPU draw is 900mA or 4.5W at 5V.
*** The cold boot; IT’s super power. It’s amazing how often this fixes things. I’m still amazed after 25+ years
.