Zephyr on Arduino UNO Q MCU
Source: Dev.to
Overview
The Arduino UNO Q uses an STM32U585 MCU to handle all Arduino functionality. It communicates with the main processor and the board’s GPIO pins. The only reliable source for the pinout is the official schematic:
The schematic shows which GPIO pins are connected to the RGB LED (LED 3 and LED 4), which can be used as references for your own projects.
Prerequisites
- Zephyr SDK (minimum version 4.3.0 – the first release with UNO Q support)
- ADB tools – to transfer files to the device from the host PC
- A cloned Zephyr workspace (e.g.,
~/zephyrproject/zephyr)
Build and flash a Zephyr sample
The following steps compile and run the classic blinky example on the UNO Q.
# Navigate to your Zephyr workspace
cd ~/zephyrproject/zephyr
# Build the blinky sample for the Arduino UNO Q board
west build -p always -b arduino_uno_q samples/basic/blinky
Transfer the binary to the device
adb push build/zephyr/zephyr.elf /tmp/
Flash the STM32U585 MCU
Open a shell on the UNO Q via ADB and run the remoteocd upload command (paths may need adjusting to match your installation).
adb shell
# Inside the UNO Q shell
/home/arduino/.arduino15/packages/arduino/tools/remoteocd/0.0.4-rc.4/remoteocd \
upload \
--adb-path "/home/arduino/.arduino15/packages/arduino/tools/adb/32.0.0/adb" \
-s "{upload.port.properties.serialNumber}" \
-f "/home/arduino/.arduino15/packages/arduino/hardware/zephyr/0.52.0/variants/arduino_uno_q_stm32u585xx/flash_bootloader.cfg" \
"--verbose" \
/tmp/zephyr.elf
If the process completes successfully, LED 3 will blink green.
Restoring the Sketch Bootloader
Uploading a new sketch from the Arduino App Lab will fail after flashing a Zephyr binary because the STM32U585 still contains the Sketch Bootloader. Re‑install the bootloader to regain normal Arduino sketch uploading:
arduino-cli burn-bootloader -b arduino:zephyr:unoq -P jlink
After this command, the board accepts sketches uploaded via the App Lab as usual.
References
- Zephyr documentation for Arduino UNO Q:
- Arduino RemoteOCD repository:
- Arduino UNO Q schematic (PDF):