Skip to content

Commit 9f3ead8

Browse files
committed
Datasheet documentation update - HW acceleration & password detail removed
1 parent a0ebdc9 commit 9f3ead8

File tree

1 file changed

+115
-1
lines changed

1 file changed

+115
-1
lines changed

content/hardware/02.uno/boards/uno-q/datasheet/datasheet.md

Lines changed: 115 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,120 @@ JMISC handles both domains: 1.8 V MPU lines sit alongside 3.3 V MCU signals (e.g
254254
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.
255255
</div>
256256

257+
## Hardware Acceleration
258+
259+
<p style="text-align: justify;">The UNO Q provides hardware acceleration for both 3D graphics and video encoding/decoding through the integrated Adreno 702 GPU running at 845 MHz.</p>
260+
261+
### Graphics Acceleration
262+
263+
<p style="text-align: justify;">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.</p>
264+
265+
| **Graphics API** | **Driver** | **Hardware Support** | **Current Driver Version** | **Device Name** |
266+
|------------------|------------|----------------------|----------------------------|------------------------|
267+
| Desktop OpenGL   | freedreno  | -                    | 3.1                        | FD702                  |
268+
| OpenGL ES        | freedreno  | 3.1                  | 3.1                        | FD702                  |
269+
| Vulkan           | turnip     | 1.1                  | 1.0.318                    | Turnip Adreno (TM) 702 |
270+
| OpenCL           | Mesa       | 2.0                  | 2.0                        | -                      |
271+
272+
<p style="text-align: justify;">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.</p>
273+
274+
| **Parameter** | **Specification** |
275+
|--------------------------------|----------------------------------|
276+
| Clock Frequency                | 845 MHz                          |
277+
| Memory Architecture            | Unified (shared with system RAM) |
278+
| Available Video Memory         | 1740 MB                          |
279+
| Memory Addressing              | 64-bit                           |
280+
| Direct Rendering               | Yes                              |
281+
| Maximum 2D Texture Size        | 16384 × 16384 pixels             |
282+
| Maximum 3D Texture Size        | 2048³ voxels                     |
283+
| Maximum Cube Map Size          | 16384 × 16384 pixels             |
284+
| OpenGL Shading Language (GLSL) | 1.40                             |
285+
| OpenGL ES Shading Language     | 3.10 ES                          |
286+
287+
<p style="text-align: justify;">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 <code>mesa-utils</code> and <code>vulkan-tools</code> work out of the box on the UNO Q.</p>
288+
289+
<div style="background-color: rgba(0, 170, 228, 0.2); border-left: 6px solid rgba(0, 120, 180, 1); margin: 20px 0; padding: 15px;">
290+
<strong>Note:</strong> The OpenGL and Vulkan drivers are available through the <strong>freedreno (OpenGL/OpenGL ES)</strong> and <strong>turnip (Vulkan)</strong> 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.
291+
</div>
292+
293+
### Video Acceleration
294+
295+
<p style="text-align: justify;">The Adreno 702 GPU includes dedicated hardware video encoders and decoders accessible through the <code>V4L2 (Video4Linux2)</code> API via <code>/dev/video0</code> and <code>/dev/video1</code> devices. Hardware acceleration is available for the following video codecs:</p>
296+
297+
| **Codec** | **Encoding** | **Decoding** | **GStreamer Element** |
298+
|--------------|--------------|--------------|---------------------------|
299+
| H.264 (AVC)  | Yes          | Yes          | v4l2h264enc / v4l2h264dec |
300+
| H.265 (HEVC) | Yes          | Yes          | v4l2h265enc / v4l2h265dec |
301+
| VP9          | No           | Yes          | v4l2vp9dec                |
302+
303+
#### Video Encoding Capabilities
304+
305+
<p style="text-align: justify;">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.</p>
306+
307+
| **Parameter** | **Specification** |
308+
|-------------------------|-----------------------------------------------------|
309+
| Maximum Resolution      | 1920×1080 (Full HD, 1080p)                          |
310+
| CPU Load Reduction      | Significant reduction compared to software encoding |
311+
| Bitrate Control         | Configurable constant/variable bitrate modes        |
312+
| Quality Parameters      | Adjustable encoding quality and compression ratio   |
313+
| Supported Pixel Formats | NV12, YUV420                                        |
314+
315+
#### Video Decoding Capabilities
316+
317+
<p style="text-align: justify;">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.</p>
318+
319+
| **Parameter** | **Specification** |
320+
|-------------------------|-----------------------------------------------------|
321+
| Maximum Resolution      | 1920×1080 (Full HD, 1080p)                          |
322+
| Performance             | Real-time decoding at 30 fps for Full HD            |
323+
| CPU Utilization         | Minimal CPU load during hardware-accelerated decode |
324+
| Use Cases               | Video playback, streaming, conferencing             |
325+
| Supported Pixel Formats | NV12, YUV420 output                                 |
326+
327+
#### GStreamer Integration
328+
329+
<p style="text-align: justify;">The recommended approach for accessing hardware video acceleration is through <strong>GStreamer</strong>, which provides a high-level pipeline interface to the V4L2 devices. The following GStreamer elements provide hardware-accelerated video processing:</p>
330+
331+
**Example H.264 Decoding Pipeline:**
332+
```bash
333+
gst-launch-1.0 filesrc location=video.mp4 \
334+
! qtdemux name=demux demux.video_0 ! queue ! h264parse ! v4l2h264dec \
335+
  ! videoconvert ! autovideosink
336+
```
337+
338+
**Example H.265 Encoding Pipeline:**
339+
```bash
340+
gst-launch-1.0 videotestsrc num-buffers=30 \
341+
! video/x-raw,width=1920,height=1080,framerate=30/1 \
342+
  ! v4l2h265enc ! h265parse ! mp4mux ! filesink location=output.mp4
343+
```
344+
345+
**Example VP9 Decoding Pipeline:**
346+
```bash
347+
gst-launch-1.0 filesrc location=video.webm \
348+
! matroskademux ! queue ! v4l2vp9dec \
349+
  ! videoconvert ! autovideosink
350+
```
351+
352+
**Concurrent Encoding/Decoding:**
353+
```bash
354+
gst-launch-1.0 -v videotestsrc num-buffers=1000 \
355+
! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 \
356+
  ! v4l2h264enc capture-io-mode=4 output-io-mode=2 ! h264parse \
357+
! v4l2h264dec capture-io-mode=4 output-io-mode=2 ! videoconvert \
358+
  ! autovideosink
359+
```
360+
361+
<div style="background-color: rgba(0, 170, 228, 0.2); border-left: 6px solid rgba(0, 120, 180, 1); margin: 20px 0; padding: 15px;">
362+
<strong>Developer Access:</strong> 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.
363+
</div>
364+
365+
### OpenCL Support
366+
367+
<p style="text-align: justify;">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.</p>
368+
369+
<div style="page-break-after: always;"></div>
370+
257371
## Peripherals
258372

259373
![UNO Q Peripherals](assets/ABX00162-ABX00173_headers.png)
@@ -538,7 +652,7 @@ For first time setting up:
538652

539653
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.
540654
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.
541-
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.
655+
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.
542656
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.
543657
5. The status of the App can be monitored in the console tab of the App.
544658

0 commit comments

Comments
 (0)