From 9f3ead887f74ddfb5287cf312a9b4df1e8609c9b Mon Sep 17 00:00:00 2001 From: TaddyHC Date: Mon, 24 Nov 2025 16:34:04 -0600 Subject: [PATCH 1/4] Datasheet documentation update - HW acceleration & password detail removed --- .../boards/uno-q/datasheet/datasheet.md | 116 +++++++++++++++++- 1 file changed, 115 insertions(+), 1 deletion(-) diff --git a/content/hardware/02.uno/boards/uno-q/datasheet/datasheet.md b/content/hardware/02.uno/boards/uno-q/datasheet/datasheet.md index abe37c9ad1..16238a4c50 100644 --- a/content/hardware/02.uno/boards/uno-q/datasheet/datasheet.md +++ b/content/hardware/02.uno/boards/uno-q/datasheet/datasheet.md @@ -254,6 +254,120 @@ JMISC handles both domains: 1.8 V MPU lines sit alongside 3.3 V MCU signals (e.g MPU GPIO signals operate in the application processor's low-voltage domain (1.8 V). Ensure any connection to the microcontroller is level-compatible with its I/O voltage rail (3.3 V). For example, use a level shifter or an open-drain configuration with a pull-up to the microcontroller's I/O rail. +## Hardware Acceleration + +

The UNO Q provides hardware acceleration for both 3D graphics and video encoding/decoding through the integrated Adreno 702 GPU running at 845 MHz.

+ +### Graphics Acceleration + +

The Adreno 702 GPU provides hardware-accelerated 3D graphics rendering through open-source Mesa drivers. Applications can access GPU acceleration via standard graphics APIs, including OpenGL, OpenGL ES, Vulkan, and OpenCL.

+ +| **Graphics API** | **Driver** | **Hardware Support** | **Current Driver Version** | **Device Name** | +|------------------|------------|----------------------|----------------------------|------------------------| +| Desktop OpenGL   | freedreno  | -                    | 3.1                        | FD702                  | +| OpenGL ES        | freedreno  | 3.1                  | 3.1                        | FD702                  | +| Vulkan           | turnip     | 1.1                  | 1.0.318                    | Turnip Adreno (TM) 702 | +| OpenCL           | Mesa       | 2.0                  | 2.0                        | -                      | + +

The Adreno 702 GPU features unified memory architecture, sharing system RAM with the CPU for data transfer. It supports 64-bit memory addressing and provides direct rendering capabilities for optimal graphics performance.

+ +| **Parameter** | **Specification** | +|--------------------------------|----------------------------------| +| Clock Frequency                | 845 MHz                          | +| Memory Architecture            | Unified (shared with system RAM) | +| Available Video Memory         | 1740 MB                          | +| Memory Addressing              | 64-bit                           | +| Direct Rendering               | Yes                              | +| Maximum 2D Texture Size        | 16384 × 16384 pixels             | +| Maximum 3D Texture Size        | 2048³ voxels                     | +| Maximum Cube Map Size          | 16384 × 16384 pixels             | +| OpenGL Shading Language (GLSL) | 1.40                             | +| OpenGL ES Shading Language     | 3.10 ES                          | + +

The Mesa graphics stack provides full support for standard OpenGL extensions and features. Applications using OpenGL, OpenGL ES, or Vulkan will automatically use hardware acceleration without additional configuration. Standard graphics utilities such as mesa-utils and vulkan-tools work out of the box on the UNO Q.

+ +
+ Note: The OpenGL and Vulkan drivers are available through the freedreno (OpenGL/OpenGL ES) and turnip (Vulkan) open-source Mesa drivers, providing full transparency and community support. While the Adreno 702 hardware supports Vulkan 1.1, the current driver implementation provides Vulkan 1.0.318 with ongoing development for additional features. +
+ +### Video Acceleration + +

The Adreno 702 GPU includes dedicated hardware video encoders and decoders accessible through the V4L2 (Video4Linux2) API via /dev/video0 and /dev/video1 devices. Hardware acceleration is available for the following video codecs:

+ +| **Codec** | **Encoding** | **Decoding** | **GStreamer Element** | +|--------------|--------------|--------------|---------------------------| +| H.264 (AVC)  | Yes          | Yes          | v4l2h264enc / v4l2h264dec | +| H.265 (HEVC) | Yes          | Yes          | v4l2h265enc / v4l2h265dec | +| VP9          | No           | Yes          | v4l2vp9dec                | + +#### Video Encoding Capabilities + +

The hardware video encoder offloads compression tasks from the CPU to dedicated encoding hardware, allowing real-time video capture and streaming. This reduces system power consumption and allows the CPU to focus on application logic rather than video processing.

+ +| **Parameter** | **Specification** | +|-------------------------|-----------------------------------------------------| +| Maximum Resolution      | 1920×1080 (Full HD, 1080p)                          | +| CPU Load Reduction      | Significant reduction compared to software encoding | +| Bitrate Control         | Configurable constant/variable bitrate modes        | +| Quality Parameters      | Adjustable encoding quality and compression ratio   | +| Supported Pixel Formats | NV12, YUV420                                        | + +#### Video Decoding Capabilities + +

The hardware video decoder enables smooth playback of compressed video streams with minimal CPU utilization. This is particularly beneficial for media player applications, video conferencing, and streaming services, where efficient decoding is essential for maintaining frame rates and reducing battery consumption.

+ +| **Parameter** | **Specification** | +|-------------------------|-----------------------------------------------------| +| Maximum Resolution      | 1920×1080 (Full HD, 1080p)                          | +| Performance             | Real-time decoding at 30 fps for Full HD            | +| CPU Utilization         | Minimal CPU load during hardware-accelerated decode | +| Use Cases               | Video playback, streaming, conferencing             | +| Supported Pixel Formats | NV12, YUV420 output                                 | + +#### GStreamer Integration + +

The recommended approach for accessing hardware video acceleration is through GStreamer, which provides a high-level pipeline interface to the V4L2 devices. The following GStreamer elements provide hardware-accelerated video processing:

+ +**Example H.264 Decoding Pipeline:** +```bash +gst-launch-1.0 filesrc location=video.mp4 \ + ! qtdemux name=demux demux.video_0 ! queue ! h264parse ! v4l2h264dec \ +  ! videoconvert ! autovideosink +``` + +**Example H.265 Encoding Pipeline:** +```bash +gst-launch-1.0 videotestsrc num-buffers=30 \ + ! video/x-raw,width=1920,height=1080,framerate=30/1 \ +  ! v4l2h265enc ! h265parse ! mp4mux ! filesink location=output.mp4 +``` + +**Example VP9 Decoding Pipeline:** +```bash +gst-launch-1.0 filesrc location=video.webm \ + ! matroskademux ! queue ! v4l2vp9dec \ +  ! videoconvert ! autovideosink +``` + +**Concurrent Encoding/Decoding:** +```bash +gst-launch-1.0 -v videotestsrc num-buffers=1000 \ + ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 \ +  ! v4l2h264enc capture-io-mode=4 output-io-mode=2 ! h264parse \ + ! v4l2h264dec capture-io-mode=4 output-io-mode=2 ! videoconvert \ +  ! autovideosink +``` + +
+ Developer Access: The V4L2 video devices are accessible through standard Linux APIs, allowing direct integration into C/C++ applications using libv4l2 or through higher-level frameworks like GStreamer, FFmpeg, or OpenCV with V4L2 backend support. +
+ +### OpenCL Support + +

OpenCL 2.0 support is available through the Mesa implementation, allowing general-purpose GPU (GPGPU) computing for parallel processing tasks, scientific computing, and compute-intensive operations. The Adreno 702's OpenCL capabilities allow offloading compute-intensive workloads from the CPU to the GPU for improved performance.

+ +
+ ## Peripherals ![UNO Q Peripherals](assets/ABX00162-ABX00173_headers.png) @@ -538,7 +652,7 @@ For first time setting up: 1. Install Arduino App Lab [1], launch it, and connect UNO Q, use a **USB-C data** cable for PC-hosted mode, or simply power the board for SBC mode. 2. The board will automatically check for updates. If there are any updates available, you will be prompted to install them. Once the update is finished, the Arduino App Lab[1] will need to be restarted. -3. During the first setup, you will be asked to provide a name and password for the device (default is `arduino` / `arduino`). You will also be asked to provide Wi-Fi® credentials for your local network. +3. During the first setup, you will be asked to provide a name and password for the device. You will also be asked to provide Wi-Fi® credentials for your local network. 4. To test the board, navigate to an example App in the **"Examples"** section of the Arduino App Lab[1], and click on the "Run" button in the top right corner. You can also create a new App in the **"Apps"** section. 5. The status of the App can be monitored in the console tab of the App. From 1d6cb78e6ab3fc5c363538ebd455d8d2b58ac9d6 Mon Sep 17 00:00:00 2001 From: TaddyHC Date: Mon, 24 Nov 2025 16:58:49 -0600 Subject: [PATCH 2/4] Datasheet documentation hw acceleration update --- .../boards/uno-q/datasheet/datasheet.md | 111 +++++++++--------- 1 file changed, 55 insertions(+), 56 deletions(-) diff --git a/content/hardware/02.uno/boards/uno-q/datasheet/datasheet.md b/content/hardware/02.uno/boards/uno-q/datasheet/datasheet.md index 16238a4c50..3d34943c77 100644 --- a/content/hardware/02.uno/boards/uno-q/datasheet/datasheet.md +++ b/content/hardware/02.uno/boards/uno-q/datasheet/datasheet.md @@ -262,27 +262,27 @@ JMISC handles both domains: 1.8 V MPU lines sit alongside 3.3 V MCU signals (e.g

The Adreno 702 GPU provides hardware-accelerated 3D graphics rendering through open-source Mesa drivers. Applications can access GPU acceleration via standard graphics APIs, including OpenGL, OpenGL ES, Vulkan, and OpenCL.

-| **Graphics API** | **Driver** | **Hardware Support** | **Current Driver Version** | **Device Name** | +| **Graphics API** | **Driver** | **Hardware Support** | **Current Driver Version** | **Device Name** | |------------------|------------|----------------------|----------------------------|------------------------| -| Desktop OpenGL   | freedreno  | -                    | 3.1                        | FD702                  | -| OpenGL ES        | freedreno  | 3.1                  | 3.1                        | FD702                  | -| Vulkan           | turnip     | 1.1                  | 1.0.318                    | Turnip Adreno (TM) 702 | -| OpenCL           | Mesa       | 2.0                  | 2.0                        | -                      | +| Desktop OpenGL | freedreno | - | 3.1 | FD702 | +| OpenGL ES | freedreno | 3.1 | 3.1 | FD702 | +| Vulkan | turnip | 1.1 | 1.0.318 | Turnip Adreno (TM) 702 | +| OpenCL | Mesa | 2.0 | 2.0 | - |

The Adreno 702 GPU features unified memory architecture, sharing system RAM with the CPU for data transfer. It supports 64-bit memory addressing and provides direct rendering capabilities for optimal graphics performance.

-| **Parameter** | **Specification** | +| **Parameter** | **Specification** | |--------------------------------|----------------------------------| -| Clock Frequency                | 845 MHz                          | -| Memory Architecture            | Unified (shared with system RAM) | -| Available Video Memory         | 1740 MB                          | -| Memory Addressing              | 64-bit                           | -| Direct Rendering               | Yes                              | -| Maximum 2D Texture Size        | 16384 × 16384 pixels             | -| Maximum 3D Texture Size        | 2048³ voxels                     | -| Maximum Cube Map Size          | 16384 × 16384 pixels             | -| OpenGL Shading Language (GLSL) | 1.40                             | -| OpenGL ES Shading Language     | 3.10 ES                          | +| Clock Frequency | 845 MHz | +| Memory Architecture | Unified (shared with system RAM) | +| Available Video Memory | 1740 MB | +| Memory Addressing | 64-bit | +| Direct Rendering | Yes | +| Maximum 2D Texture Size | 16384 × 16384 pixels | +| Maximum 3D Texture Size | 2048³ voxels | +| Maximum Cube Map Size | 16384 × 16384 pixels | +| OpenGL Shading Language (GLSL) | 1.40 | +| OpenGL ES Shading Language | 3.10 ES |

The Mesa graphics stack provides full support for standard OpenGL extensions and features. Applications using OpenGL, OpenGL ES, or Vulkan will automatically use hardware acceleration without additional configuration. Standard graphics utilities such as mesa-utils and vulkan-tools work out of the box on the UNO Q.

@@ -294,68 +294,66 @@ JMISC handles both domains: 1.8 V MPU lines sit alongside 3.3 V MCU signals (e.g

The Adreno 702 GPU includes dedicated hardware video encoders and decoders accessible through the V4L2 (Video4Linux2) API via /dev/video0 and /dev/video1 devices. Hardware acceleration is available for the following video codecs:

-| **Codec** | **Encoding** | **Decoding** | **GStreamer Element** | +| **Codec** | **Encoding** | **Decoding** | **GStreamer Element** | |--------------|--------------|--------------|---------------------------| -| H.264 (AVC)  | Yes          | Yes          | v4l2h264enc / v4l2h264dec | -| H.265 (HEVC) | Yes          | Yes          | v4l2h265enc / v4l2h265dec | -| VP9          | No           | Yes          | v4l2vp9dec                | +| H.264 (AVC) | Yes | Yes | v4l2h264enc / v4l2h264dec | +| H.265 (HEVC) | Yes | Yes | v4l2h265enc / v4l2h265dec | +| VP9 | No | Yes | v4l2vp9dec | -#### Video Encoding Capabilities +

The hardware video encoder and decoder offload compression and decompression tasks from the CPU to dedicated hardware, enabling efficient real-time video processing. This reduces system power consumption and allows the CPU to focus on application logic. Hardware acceleration is available for resolutions up to 1920×1080 (Full HD), including common formats such as 720p (1280×720).

-

The hardware video encoder offloads compression tasks from the CPU to dedicated encoding hardware, allowing real-time video capture and streaming. This reduces system power consumption and allows the CPU to focus on application logic rather than video processing.

+#### GStreamer Integration -| **Parameter** | **Specification** | -|-------------------------|-----------------------------------------------------| -| Maximum Resolution      | 1920×1080 (Full HD, 1080p)                          | -| CPU Load Reduction      | Significant reduction compared to software encoding | -| Bitrate Control         | Configurable constant/variable bitrate modes        | -| Quality Parameters      | Adjustable encoding quality and compression ratio   | -| Supported Pixel Formats | NV12, YUV420                                        | +

The recommended approach for accessing hardware video acceleration is through GStreamer, which provides a high-level pipeline interface to the V4L2 devices. The following GStreamer elements provide hardware-accelerated video processing:

-#### Video Decoding Capabilities +For H.264 decoding, the following pipeline can be used: -

The hardware video decoder enables smooth playback of compressed video streams with minimal CPU utilization. This is particularly beneficial for media player applications, video conferencing, and streaming services, where efficient decoding is essential for maintaining frame rates and reducing battery consumption.

+```bash +gst-launch-1.0 filesrc location=videos/xxxxx.mp4 \ + ! qtdemux name=demux demux.video_0 ! queue ! h264parse ! v4l2h264dec \ + ! videoconvert ! autovideosink +``` -| **Parameter** | **Specification** | -|-------------------------|-----------------------------------------------------| -| Maximum Resolution      | 1920×1080 (Full HD, 1080p)                          | -| Performance             | Real-time decoding at 30 fps for Full HD            | -| CPU Utilization         | Minimal CPU load during hardware-accelerated decode | -| Use Cases               | Video playback, streaming, conferencing             | -| Supported Pixel Formats | NV12, YUV420 output                                 | +For H.265 decoding, the following pipeline can be used: -#### GStreamer Integration +```bash +gst-launch-1.0 filesrc location=videos/xxxxx.mp4 \ + ! qtdemux name=demux demux.video_0 ! queue ! h265parse ! v4l2h265dec \ + ! videoconvert ! autovideosink +``` -

The recommended approach for accessing hardware video acceleration is through GStreamer, which provides a high-level pipeline interface to the V4L2 devices. The following GStreamer elements provide hardware-accelerated video processing:

+For VP9 decoding, the following pipeline can be used: -**Example H.264 Decoding Pipeline:** ```bash -gst-launch-1.0 filesrc location=video.mp4 \ - ! qtdemux name=demux demux.video_0 ! queue ! h264parse ! v4l2h264dec \ -  ! videoconvert ! autovideosink +gst-launch-1.0 filesrc location=videos/xxxxx.webm \ + ! matroskademux ! queue ! v4l2vp9dec \ + ! videoconvert ! autovideosink ``` -**Example H.265 Encoding Pipeline:** +For H.264 encoding, the following pipeline can be used: + ```bash gst-launch-1.0 videotestsrc num-buffers=30 \ - ! video/x-raw,width=1920,height=1080,framerate=30/1 \ -  ! v4l2h265enc ! h265parse ! mp4mux ! filesink location=output.mp4 + ! video/x-raw,width=1280,height=720,framerate=30/1 \ + ! v4l2h264enc ! h264parse ! mp4mux ! filesink location=/tmp/output.mp4 ``` -**Example VP9 Decoding Pipeline:** +For H.265 encoding, the following pipeline can be used: + ```bash -gst-launch-1.0 filesrc location=video.webm \ - ! matroskademux ! queue ! v4l2vp9dec \ -  ! videoconvert ! autovideosink +gst-launch-1.0 videotestsrc num-buffers=30 \ + ! video/x-raw,width=1920,height=1080,framerate=30/1 \ + ! v4l2h265enc ! h265parse ! mp4mux ! filesink location=/tmp/output.mp4 ``` -**Concurrent Encoding/Decoding:** +For concurrent encoding and decoding, the following pipeline can be used: + ```bash gst-launch-1.0 -v videotestsrc num-buffers=1000 \ - ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 \ -  ! v4l2h264enc capture-io-mode=4 output-io-mode=2 ! h264parse \ - ! v4l2h264dec capture-io-mode=4 output-io-mode=2 ! videoconvert \ -  ! autovideosink + ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 \ + ! v4l2h264enc capture-io-mode=4 output-io-mode=2 ! h264parse \ + ! v4l2h264dec capture-io-mode=4 output-io-mode=2 ! videoconvert \ + ! autovideosink ```
@@ -841,6 +839,7 @@ Lors de l’ installation et de l’ exploitation de ce dispositif, la distance | **Date** | **Revision** | **Changes** | | :--------: | :----------: | ---------------------------------------------- | +| 24/11/2025 | 4 | Add hardware acceleration section (graphics APIs, video codecs, OpenCL support); remove incorrect default password reference | | 05/11/2025 | 3 | Update operational information | | 27/10/2025 | 2 | Mechanical drawing and RTC power detail update | | 01/10/2025 | 1 | First release | From e728c6b91b813b99b563439a413a4cd62f52ddd6 Mon Sep 17 00:00:00 2001 From: TaddyHC Date: Mon, 24 Nov 2025 17:23:46 -0600 Subject: [PATCH 3/4] Datasheet documentation update --- content/hardware/02.uno/boards/uno-q/datasheet/datasheet.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/hardware/02.uno/boards/uno-q/datasheet/datasheet.md b/content/hardware/02.uno/boards/uno-q/datasheet/datasheet.md index 3d34943c77..6ac0aca116 100644 --- a/content/hardware/02.uno/boards/uno-q/datasheet/datasheet.md +++ b/content/hardware/02.uno/boards/uno-q/datasheet/datasheet.md @@ -284,10 +284,10 @@ JMISC handles both domains: 1.8 V MPU lines sit alongside 3.3 V MCU signals (e.g | OpenGL Shading Language (GLSL) | 1.40 | | OpenGL ES Shading Language | 3.10 ES | -

The Mesa graphics stack provides full support for standard OpenGL extensions and features. Applications using OpenGL, OpenGL ES, or Vulkan will automatically use hardware acceleration without additional configuration. Standard graphics utilities such as mesa-utils and vulkan-tools work out of the box on the UNO Q.

+

The Mesa graphics stack provides support for standard OpenGL extensions and features. Applications using OpenGL, OpenGL ES, or Vulkan will automatically use hardware acceleration without additional configuration. Standard graphics utilities such as mesa-utils and vulkan-tools work out of the box on the UNO Q.

- Note: The OpenGL and Vulkan drivers are available through the freedreno (OpenGL/OpenGL ES) and turnip (Vulkan) open-source Mesa drivers, providing full transparency and community support. While the Adreno 702 hardware supports Vulkan 1.1, the current driver implementation provides Vulkan 1.0.318 with ongoing development for additional features. + Note: The OpenGL and Vulkan drivers are available through the freedreno (OpenGL/OpenGL ES) and turnip (Vulkan) open-source Mesa drivers, providing transparency and community support. While the Adreno 702 hardware supports Vulkan 1.1, the current driver implementation provides Vulkan 1.0.318. There are no UNO Q-specific OpenGL or Vulkan examples. However, standard Mesa utilities and examples from the Mesa project can be used as references.
### Video Acceleration From dc16d6de70761a094e2b7ca964e7ee16d390804b Mon Sep 17 00:00:00 2001 From: TaddyHC Date: Mon, 24 Nov 2025 17:30:50 -0600 Subject: [PATCH 4/4] Datasheet docoumentation minor format update --- content/hardware/02.uno/boards/uno-q/datasheet/datasheet.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/hardware/02.uno/boards/uno-q/datasheet/datasheet.md b/content/hardware/02.uno/boards/uno-q/datasheet/datasheet.md index 6ac0aca116..afd7eca746 100644 --- a/content/hardware/02.uno/boards/uno-q/datasheet/datasheet.md +++ b/content/hardware/02.uno/boards/uno-q/datasheet/datasheet.md @@ -254,6 +254,8 @@ JMISC handles both domains: 1.8 V MPU lines sit alongside 3.3 V MCU signals (e.g MPU GPIO signals operate in the application processor's low-voltage domain (1.8 V). Ensure any connection to the microcontroller is level-compatible with its I/O voltage rail (3.3 V). For example, use a level shifter or an open-drain configuration with a pull-up to the microcontroller's I/O rail.
+
+ ## Hardware Acceleration

The UNO Q provides hardware acceleration for both 3D graphics and video encoding/decoding through the integrated Adreno 702 GPU running at 845 MHz.