This is the Arduino Uno Q, and it's a bit of a curveball in terms of development boards. I think the best place to start explaining it is with a summary of this entire video.
The Uno Q is a hybrid. It's a single-board computer that runs Linux, but it also has a dedicated microcontroller that runs C++ code. Coupled with an IDE that lets you get these two things to work together nicely, you get a devboard that is reasonably versatile and can fill a few growing niches. It's not trying to outspec other single board computers, but instead be a dev board that offers a sort of new approach to your projects. Let's break down what we mean by this.
All right, first of all, Linux. The Uno Q can run a full desktop Linux environment like other single-board computers. This is thanks to the Dragon Wing processor, which has four Cortex A53 cores, and the board also comes with 2 GB of RAM and 16 gigs of storage. There's also a version with 4 GB of RAM and 32 GB of storage if you, you know, need that little bit more.
Now, if you treat this as just another competitor in the current single-board computer space race to get the fastest, you know, desktop PC experience for only a few watts of power, you might be a little bit underwhelmed. While it is fast enough to check your emails and maybe some very light internet browsing, like if you were following along with a build blog or a written guide, it's usable.
YouTube playback, on the other hand, is a little bit rough. This is not fast enough to be your daily driver. It'll test your patience if you try. But I feel like this line of thinking misses the point a little bit. The Uno Q doesn't feel like it was built as a competitor in this race. It feels more like a development board that has, you know, single-board computer capabilities if needed, rather than a single board computer that can be used as a dev board.
And by the way, when we say devboard, we mean something that you can, you know, plug in hardware and sensors and motors and code and, you know, do all sorts of wonderful things that you do want to make a project. For example, a few things that kind of break it away from traditional single-board computers are that it can happily run without a heat sink or cooler.
When you turn it on, it by default boots into the ID saying like, hey, you know, it's time to make stuff. It's got a programmable LED matrix on the board itself. Even the form factor of this thing is an Uno, so you can, you know, get all your Uno shields and hopefully they'll be compatible. Also, while we're talking about connectors, it has a quick connector. Very nice. Also, there's these high-speed connectors on the bottom to connect cameras, displays, audio expansions, and whatnot. It feels more like, you know, a dev board.
And probably the biggest reason why it has a microcontroller built into it. This microcontroller chip is something similar to what you might find on like a regular Arduino Uno like the R4. It's a chip that you can compile and upload your C++ code to and it executes it. Pretty straightforward. Or is it? Yeah. Yeah, it is. It is. It is straightforward.
But why would you want this? You can easily find, you know, other single-board computers with GPIO pins controlled through Linux, and you can happily plug in your sensors and your motors and whatnot and control them through a Python script. What are the benefits of having a microcontroller control those things instead with, you know, C++ compiled code?
Well, with this hardware interaction is just a little bit better overall and some things either greatly benefit from it or actually kind of sort of maybe need it. I come from a bit of an embedded background and the biggest thing for me is that microcontrollers are deterministic. When your code tells a microcontroller to do something, it does so predictably without delays.
Each instruction happens largely when you expect it to. Running code on your single-board computer on the other hand with your GPIO being controlled, you know, by Python on Linux, you're kind of suggesting that it should happen at a certain time. something else might take priority like handling Wi-Fi, displaying something on the screen, memory management, and these can throw off, you know, the precision of your timing a little bit.
Now, for most micro projects, this is not a biggie. You know, like if it comes in a millisecond later, that's fine. But when you are dealing with things like motors and encoders or high-speed sensors or anything, you know, needing precise interrupts or data transmission, you can start to bump into issues if you're not using a microcontroller.
When I look for something to control the motors or a drive system in, you know, a little robotics project, I often pick a microcontroller for this reason. I don't know. Let's say then I have a whole drive system going and maybe I want to add some simple computer vision to the bot or a SQL database or something like that. I'm going to need to get a single-board computer, put it on the bot, and get it to work with the microcontroller. Man, if only there was like, you know, some sort of board that already did this, you know.
I'm just trying to say that UnoQ I think it's, you know, a good job of filling a little bit of a niche in small robotics. There are also a few other benefits that a microcontroller can bring. You get access to an ADC, which lets you read analog voltages. A lot of single-board computers can't do this natively and need an extra ADC module connected to it.
The microcontroller on the Q also gives you access to a 12bit deck, which is a really nice thing to have access to. That lets you, you know, generate any voltage between zero and 3.3 volts. Any sort of audio project will likely benefit from this. Most devices need to use PWM to create, you know, like a pseudo-analog voltage. A DAC can do it just you know natively without PWM. It just creates that target voltage.
So realistically for most projects this microcontroller on a single board computer is more of a nice to have but there are definitely things in the maker realm where this hybrid of the Uno Q can be really darn helpful. Now this is not the first board in existence to combine the single-board computer experience with a microcontroller but it has something that others don't. a good software solution, which brings us to what I think is the real kind of star of the show here, AppLab.
App Lab for the Uno Q. It's what you use to write all your code with, and it's what gets the microcontroller to work together with the main processor and Linux and whatever you're running on top of it. And it is a little bit weird at first, especially if you know you're coming from different development environments. But after a few hours of playing around with it, I kind of grew to like it.
It's pretty cool to have, you know, like Python, JavaScript, and C++ code all running and working together across, you know, different processing chips. And I feel like AppLab is a good solution for developing a project that, you know, integrates all of these. You have all of it under, you know, one IDE location. I think it's pretty decent. It's grown on me quite a lot.
App Lab has some tricks up its sleeve as well. For example, it uses a system called bricks, which are bundles of code that perform a specific task. And I know that sounds like a library, but it is a little bit different. There's a brick that pulls in weather data from an API. There's a brick for detecting, you know, certain spoken words. There's a brick that analyses text to see whether its sentiment is positive or negative.
There's a whole heap of weird and unique bricks that do tasks like this. And the idea is that you can import these bricks to add functionality to your project. And when you run your code, they actually run alongside your code kind of in parallel as a separate process. Something that sets them a bit apart from a regular library is that a lot of the time they are deployed in a docker container. Ah, you thought you could escape using Docker, then an Arduino Uno, you know, drags you back and makes you use it. I want to make it clear though, you don't actually have to know how to use Docker. Appl Lab handles it for you automatically.
I thought we'd open up AppLab here just so we can have, you know, a little bit of a sneaky beak and see what's actually going on. Um, let's have a look at I don't know, let's go pin toggle. On the left here, we've got all the bricks that are a part of this project, our sketch libraries, and then the files associated with it. We've got a YAML which actually automatically updates by App Lab as you, you know, do stuff like if you import a brick, it'll, you know, automatically update the YAML.
And then you've also got a readme here. And all of the demos have pretty good documentation, which is nice. Under our sketch folder, we have our C++ file that should look like a lot of other Arduino sketches you've done. Under our Python file, we've got a Python file that has all the Python stuff that we need. And if your project needs it, you can have, you know, a CSS file, HTML, you know, JavaScript, whatever you need in there.
You can put images, you can put fonts. This is mainly, you know, for serving a web page, though, but a lot of Uno Q projects do do that. If we go ahead and run this app, which we'll just do now, it's taking a few seconds here cuz I think it's setting up a Docker container for the first time.
You can see that in our console, we have all the outputs of the actual app itself, the serial monitor coming from the microcontroller, and the shell of our Python script, you know, kind of all in one location. And a recurring theme we found on the Uno Q is that a lot of the demo apps and probably a lot of the apps you'll make for this will kind of, you know, serve a web page or some sort locally that you can access over your network.
This is just one of the demo ones where you can control the GPIO pins of the board from a page. It's a pretty cool little example. Like we mentioned, there's a few well doumented examples as well showing you how to get going with a lot of the bricks, which is nice. And I found them to be a good starting point for projects. I just created a copy of one of the demo examples under my apps we can find that and I just went through and you know flushed it out.
I took an existing guide we had using the millimeter wave radar with an Arduino Uno and just kind of adapted it for the UNO Q. And it was pretty easy to actually put this all together. I had an Uno sketch which reads the radar via UART. And you can see here we use this bridge.notify. This bridge kind of command is how you send data from the microcontroller to the microprocessor.
And then I wrote a Python script that when it receives that data from the bridge function, it then calls this web UI brick to go ahead and serve that information on a web page being hosted locally. And if we go ahead and click run, and I just set up the millimeter wave radar like so, we get this nice little display on our web page. And we did this before in a guide with an Uno R4.
And to visualize it, we had to plug it into a computer via UART, install another program called Processing ID, and then use that to read the UART messages to then visualize it, which was, you know, you have to have another computer. The Uno Q does this all. So, this is, you know, a little bit getting into the territory of the niche that the UNOQ fills.
Also, I think it's worth mentioning I've gotten YOLO object detection models going on a dozen different devices, a dozen different methods, and AppLab by far the easiest and quickest one to get going with. It kind of does help that AppLab has a brick for it and installs, you know, a Docker container for it and it has an example ready to go, you know, for you to build off.
But I mean, that's just a little bit of a testament to AppLab, you know. Yeah, it's a nice thing to use. The examples are good. There's also different ways to use AppLab. You can boot into the Linux environment on the Arduino itself, or you can install AppLab on your main computer and connect to your queue via USB or over your local network like I'm doing here. I found that using AppLab on a regular computer like we're doing here was a little bit faster and nicer to use.
But if I was an absolute beginner and I could power on my Uno Q in another room in my house and program it from my desktop computer, I'd be pretty impressed. Also, quick note on using as well, it has a single USBC port on it. So, you'll likely need a PD enabled USB hub to plug in your keyboard, mouse, HDMI, USB webcam, microphones, anything your project needs.
So, we have a bit of a unique hardware combo with a unique workflow through a unique IDE. What and who do I think this is for?
First of all, as we touched on before, at obvious, you know, niche that this feels, it's a pretty decent board for, you know, small-scale at-home robotics projects. Having a dedicated microcontroller for the hardware side of things, but also having Linux running as well, it opens up a lot of opportunities here. It's also nice that this thing is a bit less power-hungry than other single board computers. At idle, we clocked it at about two 2 and a half watts and then at about four to five watts under full load. And this is nice because you just have a bit of an easier time battery powering one of these on something like a robotics project.
Less relevant to makers, but I feel like it's also maybe a decent option in a classroom environment or an educational environment or something like that. I can see, you know, every student getting their own UNO Q and connecting it with, you know, a single USB into a hub with everything ready to go. And you know, you've just got a device that can develop a project on itself.
Outside of that, I feel like it really depends on the need of your project. I use different dev boards for different projects depending on their strengths and weaknesses. There are definitely projects I've done in the last decade where the Uno Q would have been a really good option, but there's also a lot of projects where I think it can do the job, but there might be slightly better options available.
That said, I do think it is more versatile than other dev boards. You could have a purely Python project running on a web page, you know, and a small database. Or you could have a purely C++ project with just hardware connected and being interacted with. It may not be the absolute best board for each of these projects, but one board, you know, can kind of do both of those things.
Also, side note, I don't know whether it's because I'm going through a bit of a maker phase kind of thing right now or if it's the state of maker projects is shifting, but I find more and more guides and projects that we are making videos here on, you know, a core electronics would be benefited by something like the Uno Q.
So, to wrap it all up, the Uno Q is a hybrid. It's a single-board computer that runs Linux, but it also has a dedicated microcontroller that runs C++ code, coupled with an IDE that lets you get these two things to work together. You get a devboard that is reasonably versatile and can fill a few growing niches. It's not trying to outspec other single board computers, but instead be a dev board that offers sort of a new way of approaching your projects.
So, is it a board for every project like most microcontrollers under the sun? Probably don't. It's got its strengths and weaknesses. Am I going to have a few of these floating around my workshop? Yeah, probably. Until next time, happy making.
Makers love reviews as much as you do, please follow this link to review the products you have purchased.