From a7042a7c0bf5b12588c8d247d36f16e1a9bc6934 Mon Sep 17 00:00:00 2001 From: Brian H Date: Sun, 1 Feb 2026 17:38:21 +1100 Subject: [PATCH] fix: add rk3588s support with model mapping to rk3588 - Add rk3588s to SUPPORTED_RK_SOCS list - Map rk3588s to rk3588 for model downloads (models are compatible) - Update documentation to include rk3588s in supported SoCs - Addresses feedback from blakeblackshear/frigate#20441 --- docs/docs/configuration/object_detectors.md | 2 +- docs/docs/frigate/hardware.md | 1 + frigate/const.py | 2 +- frigate/detectors/plugins/rknn.py | 5 ++++- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/docs/configuration/object_detectors.md b/docs/docs/configuration/object_detectors.md index d4a7f5566..4b0ebaa2d 100644 --- a/docs/docs/configuration/object_detectors.md +++ b/docs/docs/configuration/object_detectors.md @@ -1352,7 +1352,7 @@ To convert a onnx model to the rknn format using the [rknn-toolkit2](https://git This is an example configuration file that you need to adjust to your specific onnx model: ```yaml -soc: ["rk3562", "rk3566", "rk3568", "rk3576", "rk3588"] +soc: ["rk3562", "rk3566", "rk3568", "rk3576", "rk3588", "rk3588s"] quantization: false output_name: "{input_basename}" diff --git a/docs/docs/frigate/hardware.md b/docs/docs/frigate/hardware.md index 48ab2c647..9c31a8c92 100644 --- a/docs/docs/frigate/hardware.md +++ b/docs/docs/frigate/hardware.md @@ -273,6 +273,7 @@ Frigate supports hardware video processing on all Rockchip boards. However, hard - RK3568 - RK3576 - RK3588 +- RK3588S | Name | YOLOv9 Inference Time | YOLO-NAS Inference Time | YOLOx Inference Time | | -------------- | --------------------- | --------------------------- | ----------------------- | diff --git a/frigate/const.py b/frigate/const.py index 41c24f087..8c708c912 100644 --- a/frigate/const.py +++ b/frigate/const.py @@ -78,7 +78,7 @@ FFMPEG_HWACCEL_AMF = "preset-amd-amf" FFMPEG_HVC1_ARGS = ["-tag:v", "hvc1"] # RKNN constants -SUPPORTED_RK_SOCS = ["rk3562", "rk3566", "rk3568", "rk3576", "rk3588"] +SUPPORTED_RK_SOCS = ["rk3562", "rk3566", "rk3568", "rk3576", "rk3588", "rk3588s"] # Regex constants diff --git a/frigate/detectors/plugins/rknn.py b/frigate/detectors/plugins/rknn.py index 3f350e2ef..c77ca577b 100644 --- a/frigate/detectors/plugins/rknn.py +++ b/frigate/detectors/plugins/rknn.py @@ -91,6 +91,9 @@ class Rknn(DetectionApi): def parse_model_input(self, model_path, soc): model_props = {} + + # Map rk3588s to rk3588 for model compatibility + model_soc = "rk3588" if soc == "rk3588s" else soc # find out if user provides his own model # user provided models should be a path and contain a "/" @@ -148,7 +151,7 @@ class Rknn(DetectionApi): model_props["model_type"] = model_type if model_matched: - model_props["filename"] = model_path + f"-{soc}-v2.3.2-2.rknn" + model_props["filename"] = model_path + f"-{model_soc}-v2.3.2-2.rknn" model_props["path"] = model_cache_dir + model_props["filename"]