Hailo-8 fails on Raspberry Pi 5 when using NVMe (HAOS + Frigate)

Hello,

I’m having stability issues with a Hailo-8 accelerator on a Raspberry Pi 5 when using NVMe storage, and I’m hoping for guidance.

My setup:

  • Device: Seeed Recomputer AI R2140 (Raspberry Pi 5 + Hailo-8)

  • RAM: 16GB

  • OS: Home Assistant OS 17 (HAOS)

  • Application: Frigate 0.16.4

  • Storage:

    • Works: microSD card

    • Problems: NVMe SSD
      (Silicon Power 128GB NVMe PCIe Gen3x4, SP128GBP34A60M28)

  • Interface: Pi 5 PCIe

Issue:

When running HAOS from microSD:

  • Hailo works normally

  • No errors

  • Frigate detects accelerator

When running from NVMe:

  • Undervoltage warnings appear

  • Frigate logs: HAILO_OUT_OF_PHYSICAL_DEVICES

  • Sometimes Hailo is not detected

  • AI acceleration stops

s6-rc: info: service s6rc-fdholder: starting
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service s6rc-fdholder successfully started
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service prepare: starting
s6-rc: info: service log-prepare: starting
s6-rc: info: service log-prepare successfully started
s6-rc: info: service nginx-log: starting
s6-rc: info: service go2rtc-log: starting
s6-rc: info: service frigate-log: starting
s6-rc: info: service certsync-log: starting
s6-rc: info: service nginx-log successfully started
s6-rc: info: service go2rtc-log successfully started
s6-rc: info: service frigate-log successfully started
s6-rc: info: service prepare successfully started
s6-rc: info: service go2rtc: starting
s6-rc: info: service certsync-log successfully started
s6-rc: info: service go2rtc successfully started
s6-rc: info: service go2rtc-healthcheck: starting
s6-rc: info: service frigate: starting
s6-rc: info: service go2rtc-healthcheck successfully started
s6-rc: info: service frigate successfully started
s6-rc: info: service nginx: starting
2026-02-07 23:09:50.969571430  [INFO] Starting NGINX...
2026-02-07 23:09:50.986764694  [INFO] No TLS certificate found. Generating a self signed certificate...
2026-02-07 23:09:51.314131288  [INFO] Preparing Frigate...
2026-02-07 23:09:51.892695544  [INFO] Preparing new go2rtc config...
2026-02-07 23:09:51.958195938  [INFO] Got IP address from supervisor: 192.168.86.23
2026-02-07 23:09:52.023488048  [INFO] Got WebRTC port from supervisor: 8555
2026-02-07 23:09:52.190851984  [INFO] Starting Frigate...
2026-02-07 23:09:52.669879488  [INFO] Starting go2rtc...
2026-02-07 23:09:52.824634979  18:09:52.824 INF go2rtc platform=linux/arm64 revision=fa580c5 version=1.9.9
2026-02-07 23:09:52.824662697  18:09:52.824 INF config path=/dev/shm/go2rtc.yaml
2026-02-07 23:09:52.825790064  18:09:52.825 INF [rtsp] listen addr=:8554
2026-02-07 23:09:52.825795989  18:09:52.825 INF [api] listen addr=:1984
2026-02-07 23:09:52.826703596  18:09:52.826 INF [webrtc] listen addr=:8555
2026-02-07 23:09:54.222479984  /usr/local/lib/python3.11/dist-packages/numpy/core/getlimits.py:549: UserWarning: The value of the smallest subnormal for <class 'numpy.float64'> type is zero.
2026-02-07 23:09:54.222486205    setattr(self, word, getattr(machar, word).flat[0])
2026-02-07 23:09:54.222604112  /usr/local/lib/python3.11/dist-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for <class 'numpy.float64'> type is zero.
2026-02-07 23:09:54.222606408    return self._float_to_str(self.smallest_subnormal)
2026-02-07 23:09:54.222699800  /usr/local/lib/python3.11/dist-packages/numpy/core/getlimits.py:549: UserWarning: The value of the smallest subnormal for <class 'numpy.float32'> type is zero.
2026-02-07 23:09:54.222702003    setattr(self, word, getattr(machar, word).flat[0])
2026-02-07 23:09:54.222704206  /usr/local/lib/python3.11/dist-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for <class 'numpy.float32'> type is zero.
2026-02-07 23:09:54.222707613    return self._float_to_str(self.smallest_subnormal)
2026-02-07 23:09:56.135894679  [2026-02-07 18:09:56] frigate.util.config            INFO    : Checking if frigate config needs migration...
2026-02-07 23:09:56.156294575  [2026-02-07 18:09:56] frigate.util.config            INFO    : frigate config does not need migration...
2026-02-07 23:09:56.188253085  [2026-02-07 18:09:56] frigate.app                    INFO    : Starting Frigate (0.16.4-4131252)
2026-02-07 23:09:56.194798080  [2026-02-07 18:09:56] frigate.app                    INFO    : Creating directory: /tmp/cache
2026-02-07 23:09:56.200809644  [2026-02-07 18:09:56] peewee_migrate.logs            INFO    : Starting migrations
2026-02-07 23:09:56.202194305  [2026-02-07 18:09:56] peewee_migrate.logs            INFO    : There is nothing to migrate
2026-02-07 23:09:56.227474082  [2026-02-07 18:09:56] frigate.app                    INFO    : Recording process started: 212
2026-02-07 23:09:56.229006459  [2026-02-07 18:09:56] frigate.app                    INFO    : Review process started: 224
2026-02-07 23:09:56.235624239  [2026-02-07 18:09:56] frigate.app                    INFO    : go2rtc process pid: 118
2026-02-07 23:09:56.258458808  [2026-02-07 18:09:56] detector.hailo8l               INFO    : Starting detection process: 237
2026-02-07 23:09:56.268678975  [2026-02-07 18:09:56] frigate.app                    INFO    : Embedding process started: 241
2026-02-07 23:09:56.293245684  [2026-02-07 18:09:56] frigate.detectors.plugins.hailo8l ERROR   : Inference error: Could not determine Hailo architecture.
2026-02-07 23:09:56.298226993  [2026-02-07 18:09:56] frigate.app                    INFO    : Output process started: 263
2026-02-07 23:09:56.355195435  [2026-02-07 18:09:56] frigate.app                    INFO    : Camera processor started for basement_camera: 298
2026-02-07 23:09:56.427246446  [2026-02-07 18:09:56] frigate.app                    INFO    : Capture process started for basement_camera: 303
2026-02-07 23:09:56.662705057  [HailoRT] [error] CHECK failed - Failed to create vdevice. there are not enough free devices. requested: 1, found: 0
2026-02-07 23:09:56.662730386  [HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_OUT_OF_PHYSICAL_DEVICES(74)
2026-02-07 23:09:56.662732849  [HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_OUT_OF_PHYSICAL_DEVICES(74)
2026-02-07 23:09:56.662818502  [HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_OUT_OF_PHYSICAL_DEVICES(74)
2026-02-07 23:09:56.662830333  [HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_OUT_OF_PHYSICAL_DEVICES(74)
2026-02-07 23:09:56.664136581  [2026-02-07 18:09:56] frigate.detectors.plugins.hailo8l ERROR   : [INIT] Failed to initialize HailoAsyncInference: libhailort failed with error: 74 (HAILO_OUT_OF_PHYSICAL_DEVICES)
2026-02-07 23:09:56.670699351  Process detector:hailo8l:
2026-02-07 23:09:56.670704368  Traceback (most recent call last):
2026-02-07 23:09:56.670706479    File "/usr/local/lib/python3.11/dist-packages/hailo_platform/pyhailort/pyhailort.py", line 3540, in _open_vdevice
2026-02-07 23:09:56.670707960      self._vdevice = _pyhailort.VDevice.create(self._params, device_ids)
2026-02-07 23:09:56.670709367                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-02-07 23:09:56.670710719  hailo_platform.pyhailort._pyhailort.HailoRTStatusException: 74
2026-02-07 23:09:56.670711534  
2026-02-07 23:09:56.670712922  The above exception was the direct cause of the following exception:
2026-02-07 23:09:56.670743769  
2026-02-07 23:09:56.670745084  Traceback (most recent call last):
2026-02-07 23:09:56.670746824    File "/usr/lib/python3.11/multiprocessing/process.py", line 314, in _bootstrap
2026-02-07 23:09:56.670834106      self.run()
2026-02-07 23:09:56.670836310    File "/opt/frigate/frigate/util/process.py", line 41, in run_wrapper
2026-02-07 23:09:56.670837513      return run(*args, **kwargs)
2026-02-07 23:09:56.670838587             ^^^^^^^^^^^^^^^^^^^^
2026-02-07 23:09:56.670839957    File "/usr/lib/python3.11/multiprocessing/process.py", line 108, in run
2026-02-07 23:09:56.670863416      self._target(*self._args, **self._kwargs)
2026-02-07 23:09:56.670865564    File "/opt/frigate/frigate/object_detection/base.py", line 112, in run_detector
2026-02-07 23:09:56.670867138      object_detector = LocalObjectDetector(detector_config=detector_config)
2026-02-07 23:09:56.670868582                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-02-07 23:09:56.670870063    File "/opt/frigate/frigate/object_detection/base.py", line 57, in __init__
2026-02-07 23:09:56.670871285      self.detect_api = create_detector(detector_config)
2026-02-07 23:09:56.670872507                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-02-07 23:09:56.670895096    File "/opt/frigate/frigate/detectors/__init__.py", line 18, in create_detector
2026-02-07 23:09:56.670896948      return api(detector_config)
2026-02-07 23:09:56.670897966             ^^^^^^^^^^^^^^^^^^^^
2026-02-07 23:09:56.670899429    File "/opt/frigate/frigate/detectors/plugins/hailo8l.py", line 256, in __init__
2026-02-07 23:09:56.670900966      self.inference_engine = HailoAsyncInference(
2026-02-07 23:09:56.670902132                              ^^^^^^^^^^^^^^^^^^^^
2026-02-07 23:09:56.670903595    File "/opt/frigate/frigate/detectors/plugins/hailo8l.py", line 113, in __init__
2026-02-07 23:09:56.670904595      self.target = VDevice(params)
2026-02-07 23:09:56.670935589                    ^^^^^^^^^^^^^^^
2026-02-07 23:09:56.670938071    File "/usr/local/lib/python3.11/dist-packages/hailo_platform/pyhailort/pyhailort.py", line 3533, in __init__
2026-02-07 23:09:56.670939070      self._open_vdevice()
2026-02-07 23:09:56.670940866    File "/usr/local/lib/python3.11/dist-packages/hailo_platform/pyhailort/pyhailort.py", line 3538, in _open_vdevice
2026-02-07 23:09:56.670942125      with ExceptionWrapper():
2026-02-07 23:09:56.670943884    File "/usr/local/lib/python3.11/dist-packages/hailo_platform/pyhailort/pyhailort.py", line 122, in __exit__
2026-02-07 23:09:56.670945051      self._raise_indicative_status_exception(value)
2026-02-07 23:09:56.670947051    File "/usr/local/lib/python3.11/dist-packages/hailo_platform/pyhailort/pyhailort.py", line 172, in _raise_indicative_status_exception
2026-02-07 23:09:56.670958234      raise self.create_exception_from_status(error_code) from libhailort_exception
2026-02-07 23:09:56.670960178  hailo_platform.pyhailort.pyhailort.HailoRTException: libhailort failed with error: 74 (HAILO_OUT_OF_PHYSICAL_DEVICES)
2026-02-07 23:09:56.828761979  [2026-02-07 18:09:56] frigate.api.fastapi_app        INFO    : Starting FastAPI app
2026-02-07 23:09:57.322375401  [2026-02-07 18:09:57] frigate.api.fastapi_app        INFO    : FastAPI started
2026-02-07 23:09:58.505595663  loading data from : /config/model_cache/facedet/landmarkdet.yaml
2026-02-07 23:09:59.608235878  INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
2026-02-07 23:10:00.965702638  [INFO] Starting go2rtc healthcheck service...

Notes:

  • Same power supply in both cases

  • No major config changes

  • Read about driver changes on Debian/Pi OS, but I’m using HAOS

  • Unsure if HAOS handles Hailo drivers differently

Questions:

  1. Is Hailo-8 officially supported with NVMe on Raspberry Pi 5?

  2. Are there known PCIe or power conflicts?

  3. Are special drivers/firmware needed for HAOS?

  4. Is this likely