Arduino UNO Q - Getting Started

New to Arduino UNO Q? This step-by-step guide walks you through everything you need to get your Arduino UNO Q up and running — from unboxing to uploading your first program.

In this tutorial, you will learn:

Getting Started with Arduino UNO Q

Hardware Preparation

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×Recommended: Screw Terminal Block Shield for Arduino Uno
1×Recommended: Sensors/Servo Expansion Shield for Arduino Uno
1×Recommended: Breadboard Shield for Arduino Uno
1×Recommended: Enclosure for Arduino Uno
1×Recommended: Prototyping Base Plate & Breadboard Kit for Arduino UNO

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Disclosure: Some of the links provided in this section are Amazon affiliate links. We may receive a commission for any purchases made through these links at no additional cost to you.
Additionally, some of these links are for products from our own brand, DIYables .

Overview of the Arduino UNO Q

The Arduino UNO Q is a next-generation Arduino board that combines two powerful processors on a single board:

  • STM32U585 MCU — An ARM Cortex-M33 microcontroller running up to 160 MHz that runs your Arduino sketches (C/C++) on Zephyr OS and handles real-time hardware control: digital I/O, PWM, SPI, I2C, UART, and more. It is compatible with the standard Arduino UNO pin layout.
  • Qualcomm QRB2210 MPU — A quad-core ARM Cortex-A53 processor running at 2.0 GHz that runs full Debian Linux. It supports Wi-Fi, Python, Telegram, REST APIs, and cloud connectivity. It communicates with the MCU via an internal Bridge.

This dual-processor design allows the Arduino UNO Q to handle both hardware control and internet connectivity — making it ideal for IoT projects, remote control, and Linux-powered automation.

Key features:

  • Arduino UNO-compatible pin layout (digital, analog, PWM, SPI, I2C, UART)
  • Built-in Wi-Fi
  • Runs Debian Linux on the MPU side
  • Programmable with Arduino App Lab (desktop IDE — connects over USB or Wi-Fi)
  • Bridge communication between MCU and MPU via Arduino_RouterBridge
  • USB-C connector
Arduino UNO Q Board Overview

Development Environment

There are three ways to program the Arduino UNO Q:

  • On your PC using the Arduino IDE: You can install the Arduino IDE on your computer and upload sketches to the STM32 MCU via USB. However, this only programs the MCU side — you cannot program or interact with the Linux side this way. This approach is not recommended for Arduino UNO Q projects.
  • On your PC using Arduino App Lab (recommended): Arduino App Lab is a desktop application you install on your PC. It connects to the board's Linux side over USB or Wi-Fi and lets you write and upload Arduino sketches (C/C++) to the STM32 MCU, write and run Python scripts on the Linux side, manage libraries, and monitor output from both processors. This is the recommended approach.
  • Directly on the Arduino UNO Q (no PC needed): Because the Arduino UNO Q runs Debian Linux, you can treat it as a standalone computer. Connect a USB hub to the board and attach a keyboard, mouse, and monitor — then develop and run programs directly on the board without a separate PC.

In this tutorial, we will use the second approach — Arduino App Lab on your PC.

Setting Up Arduino App Lab

Follow these steps to install Arduino App Lab and connect to your Arduino UNO Q for the first time.

※ NOTE THAT:

Different versions of Arduino App Lab may have a slightly different UI or step order, but the main setup process remains the same.

Step 1: Download and Install Arduino App Lab

  • Download the Arduino App Lab installer for your operating system (Windows, macOS, or Linux).
  • Run the installer and follow the on-screen instructions to complete the installation.
  • After installation, open Arduino App Lab. You will see that no board is connected yet:
Arduino App Lab - No Board Connected

Step 2: Power the Board

  • Connect the Arduino UNO Q to your computer using the USB-C cable.
  • The board will boot Debian Linux on the MPU side — this takes about 1–2 minutes on first boot (sometimes up to 10 minutes).
  • After booting, Arduino App Lab automatically detects the board and shows it as connected:
Arduino App Lab - Board Detected
  • Click on the board to connect to it.
Arduino App Lab - Click on Board

Step 3: Board Configuration

  • A setup wizard will open. Enter a name for your board (for example: Newbiely), then click Next.
Arduino App Lab - Board Name Configuration

Step 4: Network Setup

  • Arduino App Lab scans for available Wi-Fi networks. Select your Wi-Fi network from the list.
Arduino App Lab - Wi-Fi Network Scan

Step 5: Enter Wi-Fi Credentials

  • Enter your Wi-Fi password, then click Connect (or Next).
Arduino App Lab - Wi-Fi Credentials

Step 6: Firmware Update

  • The board may search for a firmware update.
Arduino App Lab - Firmware Update
  • Click the install update button and Wait for the process to complete.
Arduino App Lab - Firmware Update

Step 7: Restart Arduino App Lab

  • After the update, click the Restart Arduino App Lab button.
Arduino App Lab - Restart Button

Step 8: Select Board Connection

  • After restarting, the app shows a list of available connections for your board — one via USB and one via Wi-Fi. Select either one to connect.
Arduino App Lab - Select Connection

Step 9: Second Update Check

  • The app may check for another update. Wait for it to finish if prompted.
Arduino App Lab - Second Update Check

Step 10: Set Linux Credentials

  • The app will ask you to set a password for the Linux side. Enter the password you want and click Confirm.
Arduino App Lab - Linux Credentials

Step 11: Welcome Screen

  • Setup is complete. The app shows a welcome message — click Ok, got it to finish.
Arduino App Lab - Welcome Screen

Your Arduino UNO Q is now connected and ready to program.

Understanding the Two-Processor Architecture

The Arduino UNO Q has two processors that can work together via Bridge:

Feature STM32 MCU Qualcomm MPU (Linux)
Language C/C++ (Arduino sketch) Python
Role Real-time hardware control Internet, cloud, Wi-Fi
Controls Digital pins, sensors, actuators REST APIs, Telegram, MQTT
Communication Bridge.provide_safe() Bridge.call()
  • ⚠️ Reserved: /dev/ttyHS1 (Linux) and Serial1 (MCU) are used internally by the Arduino Router — never open them in your code.
  • The two processors communicate using RPC via the Arduino_RouterBridge library.

Your First Bridge Program: Linux Controls the LED

Now let's write a program where the Linux side (Python) controls an LED on the MCU side (STM32) via Bridge. This demonstrates the core pattern used in all Arduino UNO Q IoT projects.

MCU Code (Bridge)

The MCU sketch listens for Bridge calls from the Linux side and turns the built-in LED on or off:

/* * This Arduino UNO Q code was developed by newbiely.com * * This Arduino UNO Q code is made available for public use without any restriction * * For comprehensive instructions and wiring diagrams, please visit: * https://newbiely.com/tutorials/arduino-uno-q/arduino-uno-q-getting-started */ #include "Arduino_RouterBridge.h" #define LED_PIN LED_BUILTIN // Built-in RGB LED on Arduino UNO Q (LED3 on the board, lights up RED, active LOW) void set_led(int state) { // Active LOW: state 1 = on (LOW), state 0 = off (HIGH) digitalWrite(LED_PIN, state ? LOW : HIGH); Monitor.println(state ? "LED ON" : "LED OFF"); } void setup() { Bridge.begin(); Monitor.begin(); pinMode(LED_PIN, OUTPUT); digitalWrite(LED_PIN, HIGH); // start with LED off Bridge.provide_safe("set_led", set_led); Monitor.println("Bridge ready"); } void loop() {}

Python Code (Bridge)

The Python script runs on the Linux (MPU) side and sends Bridge commands to the MCU:

""" This Arduino UNO Q script was developed by newbiely.com This Arduino UNO Q script is made available for public use without any restriction For comprehensive instructions and wiring diagrams, please visit: https://newbiely.com/tutorials/arduino-uno-q/arduino-uno-q-getting-started """ from arduino.app_utils import * import time def loop(): response = Bridge.call("set_led", 1) print(f"Sent: ON → Response: {response}") time.sleep(1) response = Bridge.call("set_led", 0) print(f"Sent: OFF → Response: {response}") time.sleep(1) App.run(user_loop=loop)

Detailed Instructions

  • Open Arduino App Lab: Launch the Arduino App Lab desktop application.
  • Create a new App: Click Create New App, name it GettingStartedBridge, then click Create.
  • Paste the MCU sketch: Copy the MCU Bridge code above and paste it into sketch/sketch.ino.
  • Paste the Python code: Copy the Python Bridge code above and paste it into the Python file in the App.
  • Upload: Click the Run button in Arduino App Lab.
Click Run button in Arduino App Lab on Arduino UNO Q

App Lab Console Output

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
Message (Enter to send a message to "Newbiely" on usb(2820070321))
New Line
9600 baud
[2026-04-29 09:00:01] LED ON [2026-04-29 09:00:02] LED OFF [2026-04-29 09:00:03] LED ON [2026-04-29 09:00:04] LED OFF
DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:00:01] Sent: ON → Response: OK [2026-04-29 09:00:02] Sent: OFF → Response: OK [2026-04-29 09:00:03] Sent: ON → Response: OK [2026-04-29 09:00:04] Sent: OFF → Response: OK

Connecting to Your Home Wi-Fi

After the initial setup, you can connect the Arduino UNO Q to your home or office Wi-Fi network. You may have already done this during the setup wizard. If not:

  • Open Arduino App Lab and connect to your board.
  • Click the network icon in the upper-right corner of the App Lab interface.
  • Select your Wi-Fi network from the list and enter your password.
  • The board will connect to the network.

Once connected, Arduino App Lab can detect and connect to your board over Wi-Fi (Network Mode) — you no longer need the USB cable.

What's Next?

Now that your Arduino UNO Q is set up, here are some great next tutorials to explore:

Troubleshooting

Arduino UNO Q is not detected in Device Manager (Windows):

  • Make sure you are using a USB cable rated at 3A or above. Cables below 3A may work with other Arduino boards (such as the UNO R4) but cannot reliably power the Arduino UNO Q.

The board is not detected in Arduino App Lab:

  • Wait 1–2 minutes after plugging in — Linux needs time to fully boot.
  • Unplug and replug the USB-C cable, then wait for detection again.
  • On Windows, if prompted by Windows Defender about mdns-discovery.exe, click Allow — this is required for the board to be discovered.

Sketch upload fails:

  • Make sure the Arduino_RouterBridge library is installed in Arduino App Lab.
  • Check that the board status indicator shows Ready before uploading.

Built-in LED does not blink after upload:

  • Confirm you pasted the sketch into sketch/sketch.ino (not another file).
  • Click the Run button again to re-upload.

※ OUR MESSAGES

  • As freelancers, We are AVAILABLE for HIRE. See how to outsource your project to us
  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!