The Arduino UNO Q puts two processors on one UNO-format board. A Qualcomm Dragonwing QRB2210 quad-core Linux processor handles Python, AI models, and networking. An STM32U585 microcontroller handles real-time pin control. Arduino App Lab is the IDE that ties them together. If you have ever wired a Raspberry Pi to an Arduino with a USB cable to get “Linux plus real-time I/O,” this board puts that setup on a single PCB.
Quick Takeaways
- Dual-brain design: a Linux-capable MPU (Qualcomm QRB2210) and a real-time MCU (STM32U585) share one board and talk over an internal link.
- Best for: edge AI, computer vision, web dashboards, and IoT gateways that also need deterministic sensor and motor control.
- Not for: battery-powered sleep-heavy nodes or ultra-cheap single-task projects. A classic UNO R4 or ESP32 is a better fit there.
- App Lab combines Python scripts, Arduino sketches, and prebuilt software modules called Bricks in one project.
| Spec | Arduino UNO Q |
|---|---|
| MPU | Qualcomm Dragonwing QRB2210, quad-core Arm Cortex-A53, up to 2 GHz |
| MCU | STM32U585, Arm Cortex-M33, 160 MHz |
| OS (MPU side) | Debian Linux |
| OS (MCU side) | Zephyr RTOS with the Arduino core |
| Memory options | 2 GB or 4 GB LPDDR4 RAM; 16 GB or 32 GB eMMC |
| Wireless | Dual-band Wi-Fi 5, Bluetooth 5.1 |
| Form factor | UNO-compatible headers, USB-C |
| I/O logic level | 3.3V |
Memory configurations and pricing vary by variant and over time. Check the official Arduino store for current options.
What Is the Arduino UNO Q?
Arduino calls the UNO Q a “dual-brain” board. The name describes the hardware split accurately.
Most Arduino boards run one microcontroller. A Cortex-M core executes your sketch in a tight loop with predictable timing. That works well for reading a thermistor, driving a stepper motor, or toggling a relay. It works poorly for running a neural network, serving a web page, or decoding a camera stream.
The UNO Q adds a full application processor. The QRB2210 boots Debian Linux, runs Python, manages Wi-Fi, and can drive displays and cameras through its high-speed connectors. The STM32U585 stays in charge of the UNO-format header pins.
Qualcomm acquired Arduino, and the UNO Q is the first board to show that partnership in hardware.
Why Two Processors?
A single chip can’t give you both Linux flexibility and hard real-time behavior. Linux is a general-purpose OS. It schedules tasks on its own terms, so a pin toggle can slip by milliseconds. An MCU running Zephyr doesn’t have that problem.
| Task | Better on MPU (Linux) | Better on MCU (Zephyr) |
|---|---|---|
| Object detection on camera frames | ✅ | ❌ |
| Hosting a local web dashboard | ✅ | ❌ |
| Reading I2C / SPI sensors at fixed intervals | ⚠️ Possible, jittery | ✅ |
| PWM motor control | ⚠️ Not ideal | ✅ |
| Cloud API calls, MQTT, HTTPS | ✅ | ⚠️ Limited |
| Interrupt-driven input (encoders, limit switches) | ❌ | ✅ |
The rule of thumb: put decisions and data on the MPU, and put timing and electrical I/O on the MCU.
UNO Q vs. Other Boards
| Feature | UNO Q | UNO R4 WiFi | ESP32 DevKit | Raspberry Pi 4/5 |
|---|---|---|---|---|
| Runs Linux | Yes (MPU) | No | No | Yes |
| Real-time MCU on board | Yes (STM32U585) | Yes (RA4M1) | Yes (dual-core Xtensa/RISC-V) | No |
| UNO shield headers | Yes | Yes | No | No |
| Wi-Fi / BT | Yes | Yes | Yes | Yes |
| Typical power draw | Higher | Low | Low | Higher |
| Edge AI capability | Strong | None | Light (TinyML) | Strong |
| Best use | Hybrid edge projects | Learning, classic builds | Low-cost IoT | Pure Linux projects |
If your project never needs Linux, you pay in cost and power for hardware you won’t use.
Hardware Overview
Processor and Memory
The QRB2210 is a Qualcomm Dragonwing part with four Cortex-A53 cores and an Adreno GPU. It is an application-class chip aimed at embedded and robotics workloads. The STM32U585 is an ultra-low-power Cortex-M33 with TrustZone security features.
Pinout and Header Notes
The UNO Q keeps the familiar UNO header layout, so many shields physically fit. Two warnings apply:
- Logic level is 3.3V. Older 5V shields and sensors can damage pins or misbehave. Use a level shifter or confirm 5V tolerance in the datasheet first.
- Pin mapping follows the STM32. Hardware peripherals such as I2C, SPI, and UART map to specific pins. Check the official pinout before assuming parity with an UNO R3.
Underneath the board, extra high-speed headers expose interfaces for cameras (MIPI-CSI), displays, and USB, which is how the board connects to vision hardware.
Onboard Extras
The board includes an LED matrix and multiple RGB LEDs on the MCU side. They give you instant visual feedback without breadboarding anything.
Arduino App Lab Explained
Arduino App Lab is the development environment for the UNO Q. It runs on Windows, macOS, and Linux, and the board can also run it directly when connected to a monitor, keyboard, and USB hub.
Each App Lab project is called an App. An App can contain:
- A Python script that runs on the MPU
- An Arduino sketch that runs on the MCU
- One or more Bricks
What Are Bricks?
Bricks are prepackaged software modules for common tasks. They run on the Linux side and often wrap containerized services. Examples include a Web UI brick for browser dashboards, plus bricks for object detection, audio classification, and other AI workloads.
You add a Brick, call its Python API, and skip the boilerplate of setting up a model runtime or web server.
The Bridge
The Bridge is the RPC layer between the two processors. The MCU sketch provides functions. The Python script calls them by name. The reverse direction works too, so the MPU can push commands down and the MCU can report sensor data up.
Code Example: Blink an LED from Python
This minimal App shows the two-processor workflow. Python on Linux toggles an LED that the MCU controls.
MCU side (Arduino sketch):
#include <Arduino_RouterBridge.h>
// Function exposed to the Linux side via the Bridge
void set_led_state(bool state) {
// LED_BUILTIN polarity can be active-low on some boards.
// Flip HIGH/LOW if the LED behaves inverted.
digitalWrite(LED_BUILTIN, state ? LOW : HIGH);
}
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // Configure the LED pin as output
Bridge.begin(); // Start the inter-processor link
Bridge.provide("set_led_state", set_led_state); // Register RPC function
}
void loop() {
// Nothing needed here: the Bridge handles incoming calls
}
MPU side (Python):
from arduino.app_utils import *
import time
led_state = False
def loop():
global led_state
time.sleep(1) # Wait one second
led_state = not led_state # Toggle the state
Bridge.call("set_led_state", led_state) # Call the MCU function by name
App.run(user_loop=loop) # Start the app's main loop
Library names and APIs have been evolving with App Lab releases. Treat the template projects bundled with your installed App Lab version as the source of truth.
Setting Up Your First App
- Install App Lab on your computer from Arduino’s official download page.
- Connect the UNO Q over USB-C. Use a cable that carries data, not a charge-only cable.
- Complete first-boot setup. App Lab walks you through board naming, a Wi-Fi connection, and a credentials prompt. Wait for any firmware update to finish.
- Open an example App. Start with a bundled example rather than a blank project.
- Run it. App Lab deploys the Python side to the MPU and the sketch to the MCU.
- Modify one thing at a time. Change a delay, then a pin, then add a Brick.
Real-World Project: Edge Vision Alarm
Goal: detect a person in a camera frame and sound a buzzer with deterministic timing.
Parts:
- Arduino UNO Q
- A USB camera
- An active 5V buzzer driven through an NPN transistor (such as a 2N2222) and a 1 kΩ base resistor, since GPIO pins supply only a few mA
- A flyback diode if you switch an inductive load instead
Architecture:
| Layer | Processor | Job |
|---|---|---|
| Vision | MPU | Run an object detection Brick on camera frames |
| Decision | MPU | Apply confidence threshold, debounce detections |
| Actuation | MCU | Drive the buzzer pin with exact timing |
| Dashboard | MPU | Serve a Web UI with live status |
The Python script calls a Bridge function such as trigger_alarm(duration_ms). The MCU sketch owns the pin and timing. If Linux stalls for a moment, the buzzer pattern stays clean.
Real-World Project: Local Sensor Gateway
Goal: collect I2C sensor data and publish it to a dashboard without a cloud service.
- Attach a BME280 (temperature, pressure, humidity) to the I2C pins and add 4.7 kΩ pull-up resistors if your breakout lacks them.
- Let the MCU poll the sensor every second and store readings.
- Let the MPU pull readings over the Bridge, log them to a file, and serve them through a Web UI.
This pattern replaces the common “Arduino plus Raspberry Pi plus serial cable” arrangement with one board and one project.
Who Should Buy the UNO Q?
| Buyer | Fit | Reason |
|---|---|---|
| Hobbyist learning electronics | ⚠️ Maybe | More complex than an UNO R4; steeper first week |
| Maker building AI/vision gadgets | ✅ Strong | Linux and MCU I/O together |
| Engineer prototyping edge devices | ✅ Strong | Fast path to a hybrid proof of concept |
| Educator teaching embedded + Linux | ✅ Strong | Shows both worlds on one board |
| Battery-powered sensor node builder | ❌ Weak | Linux-class SoC draws more power |
| Shield-heavy 5V legacy projects | ⚠️ Caution | 3.3V logic needs attention |
Common Pitfalls and Troubleshooting
| Symptom | Likely Cause | Fix |
|---|---|---|
| Board not detected | Charge-only USB-C cable | Swap to a data cable |
| Sketch uploads but Python can’t call it | Function name mismatch | Match the string in Bridge.provide() and Bridge.call() exactly |
| Shield outputs garbage | 5V signal on a 3.3V pin | Add a level shifter |
| LED works inverted | Active-low LED | Flip the logic in your function |
| Random resets under load | Weak 5V supply | Use a supply rated for the board plus peripherals |
| Slow first boot | Linux filesystem initialization | Wait for setup to finish before unplugging |
Power and Thermal Notes
The MPU draws far more than a bare MCU. Power the board from a solid USB-C source, and budget extra current for cameras and USB peripherals. Sustained AI workloads generate heat, so give the board airflow in an enclosure.
FAQ
What is the Arduino UNO Q?
The Arduino UNO Q is an UNO-format board with two processors: a Qualcomm QRB2210 that runs Linux and a STM32U585 microcontroller that handles real-time I/O. You program both from Arduino App Lab.
Is the Arduino UNO Q a Raspberry Pi replacement?
Not exactly. It runs Debian Linux and can act as a small computer, but its main advantage is the built-in MCU with UNO headers. Pick a Raspberry Pi for general desktop-style Linux work. Pick the UNO Q when you need Linux and reliable pin control on one board.
What languages does the UNO Q support?
You write Arduino C++ sketches for the MCU and Python for the MPU. App Lab also supports containerized components through Bricks.
Are Arduino UNO shields compatible with the UNO Q?
Many fit physically, but the board uses 3.3V logic. Shields built for 5V signals may need level shifting or may not work at all. Verify compatibility before connecting.




