Arduino UNO Q

Overview

The Arduino UNO Q is a development board featuring a Qualcomm QRB2210 processor (Quad core ARM Cortex-A53) and an STM32U585 microcontroller. The board is designed around the Arduino form factor and is compatible with traditional Arduino shields and accessories. This port targets the STM32U585 microcontroller on the board.

Hardware

  • Qualcomm QRB2210 Processor (Quad core ARM Cortex-A53)

  • STM32U585 Microcontroller (ARM Cortex-M33 at 160 MHz)

  • 2 Mbyte of Flash memory and 786 Kbytes of RAM

  • 2 RGB user LEDs

  • One 13x8 LED Matrix

  • Internal UART and SPI busses connected to the QRB2210

  • Built-in CMSIS-DAP debug adapter (through QRB2210)

Supported Features

The arduino_uno_q board supports the hardware features listed below.

on-chip / on-board
Feature integrated in the SoC / present on the board.
2 / 2
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files.
vnd,foo
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.

arduino_uno_q/stm32u585xx target

Type

Location

Description

Compatible

CPU

on-chip

ARM Cortex-M33 CPU1

arm,cortex-m33

ADC

on-chip

STM32 ADC2

st,stm32-adc

CAN

on-chip

STM32 FDCAN CAN FD controller1

st,stm32-fdcan

Clock control

on-chip

STM32U5 RCC (Reset and Clock controller)1

st,stm32u5-rcc

on-chip

STM32 HSE Clock1

st,stm32-hse-clock

on-chip

Generic fixed-rate clock provider1 2

fixed-clock

on-chip

STM32U5 Multi Speed Internal Clock1 1

st,stm32u5-msi-clock

on-chip

STM32 LSE Clock1

st,stm32-lse-clock

on-chip

STM32U5 PLL1 2

st,stm32u5-pll-clock

on-chip

STM32 Microcontroller Clock Output (MCO)1

st,stm32-clock-mco

Counter

on-chip

STM32 counters5

st,stm32-counter

Cryptographic accelerator

on-chip

STM32 HASH Processor1

st,stm32-hash

on-chip

STM32 AES Accelerator1

st,stm32-aes

DAC

on-chip

STM32 family DAC1

st,stm32-dac

DMA

on-chip

STM32U5 DMA controller1

st,stm32u5-dma

Flash controller

on-chip

STM32 Family flash controller1

st,stm32-flash-controller

GPIO & Headers

on-chip

STM32 GPIO Controller9

st,stm32-gpio

on-chip

Serial Wire - JTAG Connector1

swj-connector

on-board

GPIO pins exposed on Arduino Uno (R3) headers1

arduino-header-r3

I2C

on-chip

STM32 I2C V2 controller2 2

st,stm32-i2c-v2

I2S

on-chip

STM32 SAI controller2

st,stm32-sai

Interrupt controller

on-chip

ARMv8-M NVIC (Nested Vectored Interrupt Controller)1

arm,v8m-nvic

on-chip

STM32G0 External Interrupt Controller1

st,stm32g0-exti

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

Memory controller

on-chip

STM32 Flexible Memory Controller (FMC)1

st,stm32-fmc

on-chip

STM32 Flexible Memory Controller (NOR Flash/PSRAM/SRAM controller)1

st,stm32-fmc-nor-psram

MMC

on-chip

STM32 SDMMC Disk Access2

st,stm32-sdmmc

MMU / MPU

on-chip

ARMv8-M MPU (Memory Protection Unit)1

arm,armv8m-mpu

MTD

on-chip

STM32 flash memory1

st,stm32-nv-flash

on-board

Fixed partitions of a flash (or other non-volatile storage) memory1

fixed-partitions

OCTOSPI

on-chip

STM32 OSPI Controller2

st,stm32-ospi

PHY

on-chip

This binding is to be used by all the usb transceivers which are built-in with USB IP1

usb-nop-xceiv

Pin control

on-chip

STM32 Pin controller1

st,stm32-pinctrl

Power management

on-chip

STM32 power controller1

st,stm32-pwr

PWM

on-chip

STM32 PWM11

st,stm32-pwm

Reset controller

on-chip

STM32 Reset and Clock Control (RCC) Controller1

st,stm32-rcc-rctl

RNG

on-chip

STM32 Random Number Generator1

st,stm32-rng

RTC

on-chip

STM32 RTC1

st,stm32-rtc

Sensors

on-chip

STM32 quadrature decoder6

st,stm32-qdec

on-chip

STM32 family TEMP node for production calibrated sensors with two calibration temperatures1

st,stm32-temp-cal

on-chip

STM32 VREF+1 1

st,stm32-vref

on-chip

STM32 VBAT1 1

st,stm32-vbat

Serial controller

on-chip

STM32 USART1 2

st,stm32-usart

on-chip

STM32 UART2

st,stm32-uart

on-chip

STM32 LPUART1

st,stm32-lpuart

SMbus

on-chip

STM32 SMBus controller4

st,stm32-smbus

SPI

on-chip

STM32H7 SPI controller2 1

st,stm32h7-spi

USB Type-C Port Controller

on-chip

STM32 USB Type-C / Power Delivery1

st,stm32-ucpd

Timer

on-chip

ARMv8-M System Tick1

arm,armv8m-systick

on-chip

STM32 low-power timer (LPTIM)1 3

st,stm32-lptim

on-chip

STM32 timers11

st,stm32-timers

USB

on-chip

STM32 OTGFS controller1

st,stm32-otgfs

Watchdog

on-chip

STM32 watchdog1

st,stm32-watchdog

on-chip

STM32 system window watchdog1

st,stm32-window-watchdog

Programming and debugging

The arduino_uno_q board supports the runners and associated west commands listed below.

flash debug attach rtt debugserver
jlink
openocd ✅ (default)
stm32cubeprogrammer ✅ (default)

Debug adapter

The QRB2210 microprocessor can act as an SWD debug adapter for the STM32U585. This is supported by the openocd binary available in the board, and its functionality can be made available to the computer via adb port forwarding commands.

This interface is not yet integrated with the west flash command, but debugging is supported.

Debugging

Debugging can be done with the usual west debug command after starting the debug server on the board. The following commands, run from an USB-connected computer, allow to debug the Blinky application on the Uno Q board:

adb forward tcp:3333 tcp:3333 && adb shell arduino-debug
# in a different shell
west build -b arduino_uno_q samples/basic/blinky
west debug -r openocd

Restoring the Arduino sketch loader

The Arduino UNO Q comes with a pre-installed application that acts as a loader for user sketches, and is shipped as part of the Arduino Zephyr cores. If you overwrite this application, you can restore it later by issuing the following command from an USB-connected computer:

adb shell arduino-cli burn-bootloader -b arduino:zephyr:unoq -P jlink

The same arduino-cli command can also be directly used on the board, when in standalone mode:

arduino-cli burn-bootloader -b arduino:zephyr:unoq -P jlink