Arduino Uno Q Review: The board with two brains

Arduino Uno Q Review: The board with two brains

The Arduino Uno Q is no Linux PC powerhouse, but it doesn’t have to be. Sitting around the Raspberry Pi 3 / Raspberry Pi Zero 2 W level of computing power, the Qualcomm Dragonwing SoC has enough compute to run Linux, and its two 13MP Image Signal Processors (ISPs) support two cameras, with AI inference models that can run on the CPU and GPU. That makes it a potent package for entry-level AI and IoT projects.

But this is not an Arm desktop PC. If you want that, go for a Raspberry Pi 5 . The upside of a lower-power CPU is that when the Arduino Uno Q is used as a desktop PC, it draws around 3.3 W at idle and peaks at 4.5W with all four CPU cores under full load. For 90% of the time under stress, the Arduino Uno Q pulled 4.4W. We have to remember that there is no way to just power the STM32 microcontroller. We need to power up the Qualcomm SoC to access the microcontroller. This means that the ultra-low power afforded by a microcontroller project is lost. If that is a concern, then stick to a microcontroller-based board.

How does the Dragonwing communicate with the real-time STM32 microcontroller, and vice versa? The answer is “Bridge,” specifically Arduino's RPC (Remote Procedure Call) library, which enables sketches written for the STM32 to access Linux services and vice versa. The libraries are written in Python for the Dragonwing and Arduino C for use with the STM32. They are both abstracted enough to be easy to use.

The Arduino Uno Q has the same tried-and-tested GPIO pinout as the older Arduino Uno boards. The pinout reference is printed on the side of the connections, and it is great to see the ~ is still printed, reminding me which pins are PWM-compliant for my robot and Neopixel projects.

The Arduino Uno Q also has two higher-density connectors that are earmarked for high-speed camera/displays, audio , SDMMC, and as an expansion with more GPIO pins. Sadly, I cannot test this aspect of the board because, at present, there are no breakout boards or add-ons that support the interface. But I can see these interfaces being used to dock the Arduino Uno R to another board, enabling extra features like robotics in a simpler form factor.

The QWIIC interface is most interesting. It is the same interface as StemmaQT, MakerPort, and QWIIC, which really does make quick work of connecting up a project. QWIIC is essentially a breakout of the I2C interface, but you don’t strictly have to use it for I2C components, although many add-ons do. You’ll need to purchase compatible QWIIC addons, such as those found in the Arduino Plug and Make kit.

Connect up your sensors, in my case, an accelerometer, then load up your code. I chose to use the accelerometer example, and I quickly saw how the STM32 read the raw data from the sensor, which was processed by the Qualcomm Dragonwing to identify the pattern of movement. Lastly, the output was rendered to a web UI in real time. Powerful learning potential!

Using the Arduino Uno form factor is a smart move for the Arduino Uno Q, chiefly because it provides access to the extensive Arduino Shield ecosystem. Much like Raspberry Pi HATs, Arduino Shields connect to the Uno form factor GPIO and provide extra functionality for projects. And much like the Raspberry Pi, the Arduino Uno Q introduces a period during which shield/HAT compatibility is in flux, despite the same form factor.

I’ve got Shields for Ethernet, IoT, NFC, GSM phone connectivity, RGB LED matrices, etc. The problem with the shields is that they either require a compatible library or a compatible pinout for the shield. It seems that my Adafruit RGB Matrix does not work with the Arduino Uno Q, my collection of Maplin (a now defunct UK electronics retailer) Arduino shields were also impacted by these conditions. If you rely on a shield for your project, stick with an older, well-supported, and known-to-be-compatible Arduino.

No matter how you choose to use the Arduino Uno Q, you’ll be using the new Arduino App Lab in some form. Initially, I used it directly on the board, connecting a screen, keyboard, mouse, etc., via a USB Type-C hub. It worked, and I was able to write a simple “LED Blink” script, but the experience was slow and left me wondering if something was happening as I waited for something to happen. As I’ve already said, the best way to use the Arduino Uno Q is via the Arduino App Lab on your more powerful PC.

(Image credit: Tom's hardware) (Image credit: Tom's hardware) (Image credit: Tom's hardware) The Arduino App Lab is slick and looks great. But I found myself struggling to understand the concepts and workflows necessary to build a project. I’m not (that much of) an idiot, and I can easily write and flash code to my other Arduinos and clones. But the extra steps for the Arduino Uno Q led me to really sit down and read the documentation. Luckily, Arduino has great documentation, but there were times when I was lost. For example, using the Serial.println() is not supported on the Arduino Uno Q, replaced with Monitor.println(), but I was unable to get this working despite following the instructions.

The Arduino App Lab also introduces “bricks,” packages of Python code that bring functionality via an easy-to-use workflow. Some bricks provide AI-relevant features, such as keyword spotting (used in the Hey Arduino! example), while others link to external APIs for weather and web-based user interfaces. Some bricks run as-is; others require a container to run; all are handled by the Arduino App Lab.

Adding a brick to your project is easy. Just click on Bricks, select what you need, and the brick is part of your project. Follow the API documentation to integrate it into your Python code, and you will soon have a keyword-powered LED, etc. I like this feature, largely because it makes using external resources a trivial process for newcomers.

(Image credit: Tom's hardware) (Image credit: Tom's hardware) The Arduino Uno Q workflow is really pushing for using the Qualcomm SoC and the STM32 via the RPC “bridge.” You can just write Arduino code directly in the Arduino App Lab, there is no real reason for using the bridge unless you want the power of the Dragonwing SoC. But by doing that, you are really wasting the potential that this board has. You could just use any Arduino or clone board and save yourself the extra spend.

If the Arduino App Lab isn’t for you, then the Arduino IDE 2.3.6 works with the STM32 side of the Arduino Uno Q. After updating and installing the board, I was able to flash the Blink sketch to the Arduino Uno Q. I also tried to upload the Adafruit NeoPixel strandtest sketch to the Arduino Uno Q, but it didn’t work. I checked the wiring, pins, and configuration, but nothing worked. I transferred the project to an Arduino Uno and flashed the sketch. It worked.

Overall, the Arduino App Lab is a great start, and as the Arduino Uno Q gains traction in the community, it will see more features and tweaks. The workflow takes a little getting used to, but it does simplify the link between the Python code and the Arduino code, which will help newcomers cut their teeth.

The Arduino Uno Q includes a set of examples covering a wide range of projects you can build with it. From the simple “blink an LED” to AI-based image identification, via web user interface-controlled LEDs and a voice-controlled LED matrix. Some of these projects rely on just the board, but those that use some form of AI often need extra components connected to the USB Type-C port. So you’ll need to dig out a compatible hub. This is where it gets messy, as we now have a hub, Arduino Uno Q, a microphone, and USB-C power to make a voice-controlled project.

I tested the “Hey Arduino” project and can confirm it worked, but it took ages to get the container running for the example. We’re talking 55 seconds from clicking Run to the project being available. Ok, a minute isn’t too long to wait, but if I were integrating this into a project, I would have to ensure that this and the time it takes the Arduino Uno Q to boot, 34.6 seconds, are both factored in.

The projects themselves are great; they illustrate how to use the Arduino Uno Q, and more importantly, they show how to create a project that uses both the Dragonwing and STM32 in one project.

Why is that important? The Arduino Uno Q is a hybrid device; it is neither a dedicated Linux SBC nor a microcontroller, it is both at the same time. This isn’t the first time that Arduino has created a hybrid board. The Galileo was a joint project with Intel, and it brought an Intel Quark X1000 CPU to a new form factor. It ran a Linux distribution based on Yocto and was compatible with Arduino shields. I’ll be honest, Galileo was an interesting idea, and back in the day, I reviewed a unit, but it was a very different beast from the typical Arduino with an Atmel chip.

There was also the Arduino Yún, a microcontroller-based board featuring the legendary ATmega32u4 and an Atheros AR9331 CPU that supported Linux. More recently, we have the Radxa X4, which features an Intel N100 CPU running any operating system you choose and a built-in Raspberry Pi RP2040, as seen in the Raspberry Pi Pico. Sure, for the Radxa X4, there wasn’t a bridge between the two, but there is a serial connection, and with just a few Python libraries, you could make your own bridge between the Intel and Arm CPUs.

The Dragonwing SoC at the heart of the Arduino Uno Q runs Linux, supports a Python bridge, and handles AI tasks. The thing is, due to the memory and processing restrictions, we can run an LLM, but it is tiny, and performance is slower than other SBCs.

To prove a point, I installed tinyllama:1.1b via ollama, and in a prompt, I asked it “What is an Arduino?” The answer was forthcoming, if a little slow. It took 28 seconds to start formulating an answer, and this led me to test how a series of Raspberry Pis would perform. The Raspberry Pi 500+ , a keyboard version of the Raspberry Pi 5, started answering the question in 2 seconds! Even the older Raspberry Pi 4 managed 4 seconds. Sadly, the Raspberry Pi 3B+, a board with similar specifications to the Arduino Uno Q, didn’t have enough RAM to start the LLM.

If you’ve got an old Raspberry Pi 4 laying around, spend $10 on a Raspberry Pi Pico 2, and learn how to connect the two using your own serial bridge. You’ve just built your own Arduino Uno Q clone.

I love the Arduino. It is the board where I cut my teeth with electronics and microcontrollers. The Arduino Uno Q is an interesting board, but ultimately the spec is a little too old and reproducible with kit that many electronics enthusiasts will already have to hand.

That said, if you are a fan of the Arduino and its form factor, you will love the Arduino Uno Q and the ecosystem it brings. The hardware is good, and the Arduino App Lab is a great starting place to learn how to merge the two sides of the Arduino Uno Q into one project.

My worry with the Arduino Uno Q is that it becomes just like the Intel Edison, Galileo, and Arduino Yun. The Intel projects were born of collaboration, whereas the Arduino Uno Q is the result of Qualcomm’s purchase of Arduino. Could that give the Arduino Uno Q more support than previous attempts? Time and popularity will ultimately be the means by which this is measured.

Les Pounder Social Links Navigation Les Pounder is an associate editor at Tom's Hardware. He is a creative technologist and for seven years has created projects to educate and inspire minds both young and old. He has worked with the Raspberry Pi Foundation to write and deliver their teacher training program "Picademy".

Scott_Tx It's the worst of both worlds. Its slow as a PC and expensive for a micro controller. Reply

Key considerations

  • Investor positioning can change fast
  • Volatility remains possible near catalysts
  • Macro rates and liquidity can dominate flows

Reference reading

More on this site

Informational only. No financial advice. Do your own research.

Leave a Comment