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 |
|
ADC |
on-chip |
STM32 ADC2 |
|
CAN |
on-chip |
STM32 FDCAN CAN FD controller1 |
|
Clock control |
on-chip |
STM32U5 RCC (Reset and Clock controller)1 |
|
on-chip |
STM32 HSE Clock1 |
||
on-chip |
|||
on-chip |
|||
on-chip |
STM32 LSE Clock1 |
||
on-chip |
|||
on-chip |
STM32 Microcontroller Clock Output (MCO)1 |
||
Counter |
on-chip |
STM32 counters5 |
|
Cryptographic accelerator |
on-chip |
STM32 HASH Processor1 |
|
on-chip |
STM32 AES Accelerator1 |
||
DAC |
on-chip |
STM32 family DAC1 |
|
DMA |
on-chip |
STM32U5 DMA controller1 |
|
Flash controller |
on-chip |
STM32 Family flash controller1 |
|
GPIO & Headers |
on-chip |
STM32 GPIO Controller9 |
|
on-chip |
Serial Wire - JTAG Connector1 |
||
on-board |
GPIO pins exposed on Arduino Uno (R3) headers1 |
||
I2C |
on-chip |
||
I2S |
on-chip |
STM32 SAI controller2 |
|
Interrupt controller |
on-chip |
ARMv8-M NVIC (Nested Vectored Interrupt Controller)1 |
|
on-chip |
STM32G0 External Interrupt Controller1 |
||
LED |
on-board |
Group of GPIO-controlled LEDs1 |
|
Memory controller |
on-chip |
STM32 Flexible Memory Controller (FMC)1 |
|
on-chip |
STM32 Flexible Memory Controller (NOR Flash/PSRAM/SRAM controller)1 |
||
MMC |
on-chip |
STM32 SDMMC Disk Access2 |
|
MMU / MPU |
on-chip |
ARMv8-M MPU (Memory Protection Unit)1 |
|
MTD |
on-chip |
STM32 flash memory1 |
|
on-board |
Fixed partitions of a flash (or other non-volatile storage) memory1 |
||
OCTOSPI |
on-chip |
STM32 OSPI Controller2 |
|
PHY |
on-chip |
This binding is to be used by all the usb transceivers which are built-in with USB IP1 |
|
Pin control |
on-chip |
STM32 Pin controller1 |
|
Power management |
on-chip |
STM32 power controller1 |
|
PWM |
on-chip |
STM32 PWM11 |
|
Reset controller |
on-chip |
STM32 Reset and Clock Control (RCC) Controller1 |
|
RNG |
on-chip |
STM32 Random Number Generator1 |
|
RTC |
on-chip |
STM32 RTC1 |
|
Sensors |
on-chip |
STM32 quadrature decoder6 |
|
on-chip |
STM32 family TEMP node for production calibrated sensors with two calibration temperatures1 |
||
on-chip |
|||
on-chip |
|||
Serial controller |
on-chip |
||
on-chip |
STM32 UART2 |
||
on-chip |
STM32 LPUART1 |
||
SMbus |
on-chip |
STM32 SMBus controller4 |
|
SPI |
on-chip |
||
USB Type-C Port Controller |
on-chip |
STM32 USB Type-C / Power Delivery1 |
|
Timer |
on-chip |
ARMv8-M System Tick1 |
|
on-chip |
|||
on-chip |
STM32 timers11 |
||
USB |
on-chip |
STM32 OTGFS controller1 |
|
Watchdog |
on-chip |
STM32 watchdog1 |
|
on-chip |
STM32 system window watchdog1 |
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