From de852f317d711486e7d5f615cface46fe3557e15 Mon Sep 17 00:00:00 2001 From: Arturo Buzarra Date: Mon, 12 Jan 2026 09:26:21 +0100 Subject: [PATCH] meta-digi-dey: add dynamic layer for ST X-LINUX-ISP integration Introduce a dynamic layer to integrate X-LINUX-ISP v6.1.0 ST layer into DEY, providing ISP image quality software, tools, and example applications for STM32MP25x series. https://onedigi.atlassian.net/browse/DEL-9890 Signed-off-by: Arturo Buzarra --- meta-digi-arm/conf/layer.conf | 10 +++ meta-digi-dey/conf/layer.conf | 4 ++ ...tion-fix-initialization-issue-with-x.patch | 42 ++++++++++++ ...u-image-classification-python_6.%.bbappend | 3 +- ...-fix-initialization-issue-with-x-lin.patch | 42 ++++++++++++ ...i-mpu-object-detection-python_6.%.bbappend | 3 +- ...fix-initialization-issue-with-x-linu.patch | 42 ++++++++++++ ...ai-mpu-pose-estimation-python_6.%.bbappend | 3 +- ...ation-fix-initialization-issue-with-.patch | 42 ++++++++++++ ...-semantic-segmentation-python_6.%.bbappend | 3 +- ...qtune-add-support-to-ConnectCore-MP2.patch | 49 ++++++++++++++ ...2-isp-iqtune-application-python_%.bbappend | 14 ++++ ...m32-isp-iqtune-application-python_6.1.0.bb | 64 +++++++++++++++++++ .../packagegroup-x-linux-isp.bbappend | 4 ++ 14 files changed, 321 insertions(+), 4 deletions(-) create mode 100644 meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/image-classification/files/patches/0004-image-classification-fix-initialization-issue-with-x.patch create mode 100644 meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/object-detection/files/patches/0004-object-detection-fix-initialization-issue-with-x-lin.patch create mode 100644 meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/pose-estimation/files/patches/0004-pose-estimation-fix-initialization-issue-with-x-linu.patch create mode 100644 meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/semantic-segmentation/files/patches/0005-semantic-segmentation-fix-initialization-issue-with-.patch create mode 100644 meta-digi-dey/dynamic-layers/x-linux-isp/recipes-iqtune/files/patches/0001-stm32_isp_iqtune-add-support-to-ConnectCore-MP2.patch create mode 100644 meta-digi-dey/dynamic-layers/x-linux-isp/recipes-iqtune/stm32-isp-iqtune-application-python_%.bbappend create mode 100644 meta-digi-dey/dynamic-layers/x-linux-isp/recipes-iqtune/stm32-isp-iqtune-application-python_6.1.0.bb create mode 100644 meta-digi-dey/dynamic-layers/x-linux-isp/recipes-st/packagegroups/packagegroup-x-linux-isp.bbappend diff --git a/meta-digi-arm/conf/layer.conf b/meta-digi-arm/conf/layer.conf index 3f7c8ba15..1f68ab2ad 100644 --- a/meta-digi-arm/conf/layer.conf +++ b/meta-digi-arm/conf/layer.conf @@ -57,6 +57,16 @@ BBMASK += " \ meta-st-x-linux-ai/recipes-st/images/st-image-ai.bb \ " +# Tweak x-linux-isp dependencies to use ST's ISP packages +LAYERDEPENDS_x-linux-isp:remove = "st-openstlinux" +BBMASK += " \ + meta-st-x-linux-isp/recipes-st/images/st-image-isp.bb \ + meta-st-x-linux-isp/recipes-st/images/st-image-isp-lava.bb \ + meta-st-x-linux-isp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.12.bbappend \ + meta-st-x-linux-isp/recipes-devtools/x-linux-isp/x-linux-isp-tool.bb \ + meta-st-x-linux-isp/recipes-iqtune/stm32-isp-iqtune-application-python_6.1.0.bb \ +" + # Digi's General and Open Source license agreements DIGI_EULA_FILE = "${LAYERDIR}/DIGI_EULA" DIGI_OPEN_EULA_FILE = "${LAYERDIR}/DIGI_OPEN_EULA" diff --git a/meta-digi-dey/conf/layer.conf b/meta-digi-dey/conf/layer.conf index efea6a2c0..46720e991 100644 --- a/meta-digi-dey/conf/layer.conf +++ b/meta-digi-dey/conf/layer.conf @@ -22,6 +22,10 @@ BBFILES_DYNAMIC += " \ x-linux-ai:${LAYERDIR}/dynamic-layers/x-linux-ai/*/*/*.bbappend \ x-linux-ai:${LAYERDIR}/dynamic-layers/x-linux-ai/*/*/*/*.bb \ x-linux-ai:${LAYERDIR}/dynamic-layers/x-linux-ai/*/*/*/*.bbappend \ + x-linux-isp:${LAYERDIR}/dynamic-layers/x-linux-isp/*/*.bb \ + x-linux-isp:${LAYERDIR}/dynamic-layers/x-linux-isp/*/*.bbappend \ + x-linux-isp:${LAYERDIR}/dynamic-layers/x-linux-isp/*/*/*.bb \ + x-linux-isp:${LAYERDIR}/dynamic-layers/x-linux-isp/*/*/*.bbappend \ qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bb \ qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bbappend \ qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/${DEY_SOC_VENDOR}/*/*/*.bb \ diff --git a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/image-classification/files/patches/0004-image-classification-fix-initialization-issue-with-x.patch b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/image-classification/files/patches/0004-image-classification-fix-initialization-issue-with-x.patch new file mode 100644 index 000000000..b5d556881 --- /dev/null +++ b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/image-classification/files/patches/0004-image-classification-fix-initialization-issue-with-x.patch @@ -0,0 +1,42 @@ +From: Arturo Buzarra +Date: Tue, 13 Jan 2026 15:43:26 +0100 +Subject: [PATCH] image-classification: fix initialization issue with + x-linux-isp support + +This commit fixes the following runtime error: + + Traceback (most recent call last): + File "/usr/local/x-linux-ai/image-classification/stai_mpu_image_classification.py", line 60, in _on_realize + self.camera_dual_pipeline_creation() + File "/usr/local/x-linux-ai/image-classification/stai_mpu_image_classification.py", line 266, in camera_dual_pipeline_creation + src_pad.link(queue_sink_pad) + File "/usr/lib/python3.12/site-packages/gi/overrides/Gst.py", line 204, in link + raise LinkError(ret) + gi.overrides.Gst.LinkError: + +https://onedigi.atlassian.net/browse/DEL-9890 + +Signed-off-by: Arturo Buzarra +--- + .../files/stai-mpu/stai_mpu_image_classification.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/stai-mpu/stai_mpu_image_classification.py b/stai-mpu/stai_mpu_image_classification.py +index 257e2b4..6c980e5 100644 +--- a/stai-mpu/stai_mpu_image_classification.py ++++ b/stai-mpu/stai_mpu_image_classification.py +@@ -261,12 +261,12 @@ class GstWidget(Gtk.Box): + src_pad = self.libcamerasrc.get_static_pad("src") + src_pad.set_property("stream-role", 3) + # still-capture + src_request_pad0.set_property("stream-role", 1) + +- src_pad.link(queue_sink_pad) +- src_request_pad0.link(queue0_sink_pad) ++ #src_pad.link(queue_sink_pad) ++ #src_request_pad0.link(queue0_sink_pad) + + # getting pipeline bus + self.bus_pipeline = self.pipeline_preview.get_bus() + self.bus_pipeline.add_signal_watch() + self.bus_pipeline.connect('message::error', self.msg_error_cb) diff --git a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/image-classification/stai-mpu-image-classification-python_6.%.bbappend b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/image-classification/stai-mpu-image-classification-python_6.%.bbappend index bef39bbb8..a6e6486ab 100644 --- a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/image-classification/stai-mpu-image-classification-python_6.%.bbappend +++ b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/image-classification/stai-mpu-image-classification-python_6.%.bbappend @@ -1,4 +1,4 @@ -# Copyright (C) 2024,2025, Digi International Inc. +# Copyright (C) 2024-2026, Digi International Inc. FILESEXTRAPATHS:prepend := "${THISDIR}/../common:${THISDIR}/files:" @@ -7,6 +7,7 @@ SRC_URI += " \ file://patches/0001-image-classification-remove-weston-user-check-from-l.patch \ file://patches/0002-image-classification-reduce-font-size-for-big-screen.patch \ file://patches/0003-image-classification-set-camera-preview-to-640x480.patch \ + ${@bb.utils.contains("BBFILE_COLLECTIONS", "x-linux-isp", "file://patches/0004-image-classification-fix-initialization-issue-with-x.patch", "", d)} \ " do_install:append () { diff --git a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/object-detection/files/patches/0004-object-detection-fix-initialization-issue-with-x-lin.patch b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/object-detection/files/patches/0004-object-detection-fix-initialization-issue-with-x-lin.patch new file mode 100644 index 000000000..ec2bd589d --- /dev/null +++ b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/object-detection/files/patches/0004-object-detection-fix-initialization-issue-with-x-lin.patch @@ -0,0 +1,42 @@ +From: Arturo Buzarra +Date: Tue, 13 Jan 2026 15:57:33 +0100 +Subject: [PATCH] object-detection: fix initialization issue with x-linux-isp + support + +This commit fixes the following runtime error: + +Traceback (most recent call last): + File "/usr/local/x-linux-ai/object-detection/stai_mpu_object_detection.py", line 61, in _on_realize + self.camera_dual_pipeline_creation() + File "/usr/local/x-linux-ai/object-detection/stai_mpu_object_detection.py", line 267, in camera_dual_pipeline_creation + src_pad.link(queue_sink_pad) + File "/usr/lib/python3.12/site-packages/gi/overrides/Gst.py", line 204, in link + raise LinkError(ret) +gi.overrides.Gst.LinkError: + +https://onedigi.atlassian.net/browse/DEL-9890 + +Signed-off-by: Arturo Buzarra +--- + .../files/stai-mpu/stai_mpu_object_detection.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/stai-mpu/stai_mpu_object_detection.py b/stai-mpu/stai_mpu_object_detection.py +index 6a40ad4..53a7576 100644 +--- a/stai-mpu/stai_mpu_object_detection.py ++++ b/stai-mpu/stai_mpu_object_detection.py +@@ -262,12 +262,12 @@ class GstWidget(Gtk.Box): + src_pad = self.libcamerasrc.get_static_pad("src") + src_pad.set_property("stream-role", 3) + # still-capture + src_request_pad0.set_property("stream-role", 1) + +- src_pad.link(queue_sink_pad) +- src_request_pad0.link(queue0_sink_pad) ++ #src_pad.link(queue_sink_pad) ++ #src_request_pad0.link(queue0_sink_pad) + + # getting pipeline bus + self.bus_pipeline = self.pipeline_preview.get_bus() + self.bus_pipeline.add_signal_watch() + self.bus_pipeline.connect('message::error', self.msg_error_cb) diff --git a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/object-detection/stai-mpu-object-detection-python_6.%.bbappend b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/object-detection/stai-mpu-object-detection-python_6.%.bbappend index a4e61d90b..f7ddf1a78 100644 --- a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/object-detection/stai-mpu-object-detection-python_6.%.bbappend +++ b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/object-detection/stai-mpu-object-detection-python_6.%.bbappend @@ -1,4 +1,4 @@ -# Copyright (C) 2024,2025, Digi International Inc. +# Copyright (C) 2024-2026, Digi International Inc. FILESEXTRAPATHS:prepend := "${THISDIR}/../common:${THISDIR}/files:" @@ -7,6 +7,7 @@ SRC_URI += " \ file://patches/0001-object-detection-remove-weston-user-check-from-launc.patch \ file://patches/0002-object-detection-reduce-font-size-for-big-screens.patch \ file://patches/0003-object-detection-set-camera-preview-to-640x480.patch \ + ${@bb.utils.contains("BBFILE_COLLECTIONS", "x-linux-isp", "file://patches/0004-object-detection-fix-initialization-issue-with-x-lin.patch", "", d)} \ " do_install:append () { diff --git a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/pose-estimation/files/patches/0004-pose-estimation-fix-initialization-issue-with-x-linu.patch b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/pose-estimation/files/patches/0004-pose-estimation-fix-initialization-issue-with-x-linu.patch new file mode 100644 index 000000000..428de433e --- /dev/null +++ b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/pose-estimation/files/patches/0004-pose-estimation-fix-initialization-issue-with-x-linu.patch @@ -0,0 +1,42 @@ +From: Arturo Buzarra +Date: Tue, 13 Jan 2026 15:31:33 +0100 +Subject: [PATCH] pose-estimation: fix initialization issue with x-linux-isp + support + +This commit fixes the following runtime error: + + Traceback (most recent call last): + File "/usr/local/x-linux-ai/pose-estimation/stai_mpu_pose_estimation.py", line 60, in _on_realize + self.camera_dual_pipeline_creation() + File "/usr/local/x-linux-ai/pose-estimation/stai_mpu_pose_estimation.py", line 164, in camera_dual_pipeline_creation + src_pad.link(queue_sink_pad) + File "/usr/lib/python3.12/site-packages/gi/overrides/Gst.py", line 204, in link + raise LinkError(ret) + gi.overrides.Gst.LinkError: + +https://onedigi.atlassian.net/browse/DEL-9890 + +Signed-off-by: Arturo Buzarra +--- + .../files/stai-mpu/stai_mpu_pose_estimation.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/stai-mpu/stai_mpu_pose_estimation.py b/stai-mpu/stai_mpu_pose_estimation.py +index 266bb49..a2be8f1 100644 +--- a/stai-mpu/stai_mpu_pose_estimation.py ++++ b/stai-mpu/stai_mpu_pose_estimation.py +@@ -159,12 +159,12 @@ class GstWidget(Gtk.Box): + src_pad = self.libcamerasrc.get_static_pad("src") + src_pad.set_property("stream-role", 3) + # still-capture + src_request_pad0.set_property("stream-role", 1) + +- src_pad.link(queue_sink_pad) +- src_request_pad0.link(queue0_sink_pad) ++ #src_pad.link(queue_sink_pad) ++ #src_request_pad0.link(queue0_sink_pad) + + # getting pipeline bus + self.bus_pipeline = self.pipeline_preview.get_bus() + self.bus_pipeline.add_signal_watch() + self.bus_pipeline.connect('message::error', self.msg_error_cb) diff --git a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/pose-estimation/stai-mpu-pose-estimation-python_6.%.bbappend b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/pose-estimation/stai-mpu-pose-estimation-python_6.%.bbappend index 8f73c25ca..04f34674f 100644 --- a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/pose-estimation/stai-mpu-pose-estimation-python_6.%.bbappend +++ b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/pose-estimation/stai-mpu-pose-estimation-python_6.%.bbappend @@ -1,4 +1,4 @@ -# Copyright (C) 2024,2025, Digi International Inc. +# Copyright (C) 2024-2026, Digi International Inc. FILESEXTRAPATHS:prepend := "${THISDIR}/../common:${THISDIR}/files:" @@ -7,6 +7,7 @@ SRC_URI += " \ file://patches/0001-pose-estimation-remove-weston-user-check-from-launch.patch \ file://patches/0002-pose-estimation-reduce-font-size-for-big-screens.patch \ file://patches/0003-pose-estimation-set-camera-preview-to-640x480.patch \ + ${@bb.utils.contains("BBFILE_COLLECTIONS", "x-linux-isp", "file://patches/0004-pose-estimation-fix-initialization-issue-with-x-linu.patch", "", d)} \ " do_install:append () { diff --git a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/semantic-segmentation/files/patches/0005-semantic-segmentation-fix-initialization-issue-with-.patch b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/semantic-segmentation/files/patches/0005-semantic-segmentation-fix-initialization-issue-with-.patch new file mode 100644 index 000000000..27727e4ba --- /dev/null +++ b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/semantic-segmentation/files/patches/0005-semantic-segmentation-fix-initialization-issue-with-.patch @@ -0,0 +1,42 @@ +From: Arturo Buzarra +Date: Tue, 13 Jan 2026 16:03:19 +0100 +Subject: [PATCH] semantic-segmentation: fix initialization issue with + x-linux-isp support + +This commit fixes the following runtime error: + + Traceback (most recent call last): + File "/usr/local/x-linux-ai/semantic-segmentation/stai_mpu_semantic_segmentation.py", line 65, in _on_realize + self.camera_dual_pipeline_creation() + File "/usr/local/x-linux-ai/semantic-segmentation/stai_mpu_semantic_segmentation.py", line 169, in camera_dual_pipeline_creation + src_pad.link(queue_sink_pad) + File "/usr/lib/python3.12/site-packages/gi/overrides/Gst.py", line 204, in link + raise LinkError(ret) + gi.overrides.Gst.LinkError: + +https://onedigi.atlassian.net/browse/DEL-9890 + +Signed-off-by: Arturo Buzarra +--- + .../files/stai-mpu/stai_mpu_semantic_segmentation.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/stai-mpu/stai_mpu_semantic_segmentation.py b/stai-mpu/stai_mpu_semantic_segmentation.py +index d0ee636..45351d6 100644 +--- a/stai-mpu/stai_mpu_semantic_segmentation.py ++++ b/stai-mpu/stai_mpu_semantic_segmentation.py +@@ -164,12 +164,12 @@ class GstWidget(Gtk.Box): + src_pad = self.libcamerasrc.get_static_pad("src") + src_pad.set_property("stream-role", 3) + # still-capture + src_request_pad0.set_property("stream-role", 1) + +- src_pad.link(queue_sink_pad) +- src_request_pad0.link(queue0_sink_pad) ++ #src_pad.link(queue_sink_pad) ++ #src_request_pad0.link(queue0_sink_pad) + + # getting pipeline bus + self.bus_pipeline = self.pipeline_preview.get_bus() + self.bus_pipeline.add_signal_watch() + self.bus_pipeline.connect('message::error', self.msg_error_cb) diff --git a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/semantic-segmentation/stai-mpu-semantic-segmentation-python_6.%.bbappend b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/semantic-segmentation/stai-mpu-semantic-segmentation-python_6.%.bbappend index 16a4c6594..9436367c6 100644 --- a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/semantic-segmentation/stai-mpu-semantic-segmentation-python_6.%.bbappend +++ b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/semantic-segmentation/stai-mpu-semantic-segmentation-python_6.%.bbappend @@ -1,4 +1,4 @@ -# Copyright (C) 2024,2025, Digi International Inc. +# Copyright (C) 2024-2026, Digi International Inc. FILESEXTRAPATHS:prepend := "${THISDIR}/../common:${THISDIR}/files:" @@ -8,6 +8,7 @@ SRC_URI += " \ file://patches/0002-semantic-segmentation-reduce-font-size-for-big-scree.patch \ file://patches/0003-semantic-segmentation-adapt-sample-for-root-user.patch \ file://patches/0004-semantic-segmentation-set-camera-preview-to-640x480.patch \ + ${@bb.utils.contains("BBFILE_COLLECTIONS", "x-linux-isp", "file://patches/0005-semantic-segmentation-fix-initialization-issue-with-.patch", "", d)} \ " do_install:append () { diff --git a/meta-digi-dey/dynamic-layers/x-linux-isp/recipes-iqtune/files/patches/0001-stm32_isp_iqtune-add-support-to-ConnectCore-MP2.patch b/meta-digi-dey/dynamic-layers/x-linux-isp/recipes-iqtune/files/patches/0001-stm32_isp_iqtune-add-support-to-ConnectCore-MP2.patch new file mode 100644 index 000000000..55c3ab1cc --- /dev/null +++ b/meta-digi-dey/dynamic-layers/x-linux-isp/recipes-iqtune/files/patches/0001-stm32_isp_iqtune-add-support-to-ConnectCore-MP2.patch @@ -0,0 +1,49 @@ +From: Arturo Buzarra +Date: Mon, 12 Jan 2026 21:44:34 +0100 +Subject: [PATCH] stm32_isp_iqtune: add support to ConnectCore MP2 + +Signed-off-by: Arturo Buzarra +--- + .../stm32-isp-iqtune-application/stm32_isp_iqtune_app.py | 5 ++--- + .../stm32-isp-iqtune-application/stm32_isp_iqtune_com.py | 2 +- + 2 files changed, 3 insertions(+), 4 deletions(-) + +diff --git a/stm32-isp-iqtune-application/stm32_isp_iqtune_app.py b/stm32-isp-iqtune-application/stm32_isp_iqtune_app.py +index d9b6564..0a5501d 100644 +--- a/stm32-isp-iqtune-application/stm32_isp_iqtune_app.py ++++ b/stm32-isp-iqtune-application/stm32_isp_iqtune_app.py +@@ -666,15 +666,14 @@ class Application: + version = subprocess.run(command,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,text=True) + if version.returncode == 0: + self.ostl_version = version.stdout.strip() + else: + print("Fail to get OSTL version") +- print("The application cannot start") +- os._exit(1) ++ self.ostl_version = 6.1 + + #Get device(machine) (eg "STM32MP257F-EV1") +- command = r"cat /sys/firmware/devicetree/base/model | awk '{print $2}'" ++ command = r"cat /sys/firmware/devicetree/base/digi,machine,name" + device = subprocess.run(command,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,text=True) + if device.returncode == 0: + self.device = device.stdout.strip() + else: + print("Fail to get device") +diff --git a/stm32-isp-iqtune-application/stm32_isp_iqtune_com.py b/stm32-isp-iqtune-application/stm32_isp_iqtune_com.py +index cfe132b..fe8ed17 100644 +--- a/stm32-isp-iqtune-application/stm32_isp_iqtune_com.py ++++ b/stm32-isp-iqtune-application/stm32_isp_iqtune_com.py +@@ -666,11 +666,11 @@ class IQTuneCom(): + # 03 - HasGamma. Not supported. + read_values = read_values + pack('