Bridging Embedded Linux and Real-Time Control with Arduino Q - DevConf.CZ 2026
Watch on YouTubeVideo summary
The video introduces the Arduino Q, a sophisticated development board created by Qualcomm following their acquisition of Arduino, which aims to bridge the gap between embedded Linux systems and real-time control applications. Unlike traditional 8-bit microcontrollers that struggle with complex security tasks like cryptography or certificate-based server communication due to limited processing power, the Arduino Q combines a powerful ARM chip running Debian Linux with an STM32 32-bit microcontroller. This dual-core architecture allows users to leverage the full capabilities of a modern operating system for networking and data processing while simultaneously utilizing the real-time precision of the microcontroller for precise hardware control, effectively solving latency issues often encountered when using non-real-time systems like standard Raspberry Pi setups with sensitive sensors such as one-wire thermometers.
To operate this advanced board, users must connect it to a power delivery USB hub rather than a standard port due to its high energy consumption, and they can interact with the device through three primary methods: direct connection via HDMI for display and keyboard input, wireless communication over Wi-Fi, or by running applications locally on the Linux interface. The software environment is built around an "App Lab" tool that facilitates development across multiple layers, starting from a standard Arduino sketch written in C/C++ that runs directly on the microcontroller, up to Python scripts that communicate with these sketches via a bridge object, and finally to Docker containers known as "bricks." These bricks allow developers to integrate specific functionalities such as web user interfaces or artificial intelligence models without needing to manage complex infrastructure manually.
A significant highlight of the presentation is the integration of AI capabilities directly on the device using local Docker containers for tasks like image classification and object detection in video streams, which eliminates the need for constant internet connectivity once a model is trained. The speaker demonstrates how this setup can be used for practical applications such as industrial quality control or smart security systems that distinguish between human movement and animal activity by analyzing visual data locally on the powerful STM32 processor. While training these AI models requires significant computational resources, inference runs efficiently in real-time even with simple binary classification tasks like detecting whether a room is empty or occupied, showcasing the board's potential for edge computing scenarios where privacy and low latency are paramount.
Despite its advanced features, the speaker notes that the Arduino Q currently has limitations regarding accessibility for beginners due to its complex setup requirements involving power delivery hubs and Wi-Fi configuration, as well as the necessity of proficiency in C programming, Python, and web development. Consequently, it is not yet suitable for introductory education compared to simpler boards like the micro:bit, though future updates might introduce more user-friendly tools similar to Scratch or Blockly. The presentation concludes with a demonstration of an older project using Arduino Yun that utilized distance sensors to monitor garage occupancy via cloud services, illustrating how modern iterations like the Arduino Q can replicate and enhance such IoT projects while processing everything locally on-device for greater security and speed.
Read the full video transcript
My name is Stepan Behinsky.
Today I will show you some fancy
Arduino. Actually this is the latest
Arduino board
they produced after the Arduino was
acquired by company Qualcomm.
Probably you know this Arduino.
Do you know this Arduino? Do you have it
at home?
Yeah. Come on Arduino.
Old fashioned 8-bit microcontroller
but honestly even with this device you
can control a lot of stuff.
But the problem here is that if you have
just a simple microcontroller you can
get into the issues with the security.
So imagine you need you want to connect
using the certificate to connect to some
server download the data or upload the
data
and you want to make it really really
secure. So for example this kind of
8-bit microcontroller
doesn't have enough power to do any
cryptography. Actually you can calculate
some simple symmetric cryptography it
can calculate
as 128 but it's super slow.
And if you speak about certificates you
can you know it's impossible to use this
one.
So
in 2013
Arduino
introduced
this fancy device
which is actually combination of a Linux
computer
with 8-bit microcontroller. So here
under this metal shield there is a full
Linux computer. It was very simple one I
have this I have it here.
So if we
change the camera
you can see it.
So this is the very first
Arduino combining 8-bit microcontroller
together with a Linux computer. There is
Wi-Fi on board.
I think there there was like 64
megabytes of a memory.
I don't know how how big was the
operating memory. I don't remember it.
But this device was able, you know, to
communicate in secure way with any
server in that time. And on other hand,
you have still 8-bit microcontroller,
you know, to control some to control
some physical to control some physical
hardware.
Why this combination?
If you want to control some kind of a
hardware, you need to have it in a real
time. So you must be you need to know
how long it will take to process some
instruction because you need to send the
signals, for example, in very very
precise way.
Uh have you ever tried to connect some
uh this one-wire thermometer to uh
Raspberry Pi?
Yeah, you did it? And you know that time
to time you need to read the data again
because you're getting the false
information, you know, the checksum
doesn't work. You need to do again. And
the problem is that the Raspberry Pi is
not a real-time stuff.
Because you have the operating system
and, you know, there are some sub
processes. So the one process needs to
wait to other process, so it's not a
real time.
But with this combination, you have a
very nice Linux computer together
with a real-time microcontroller.
And the latest generation
is called
Arduino Q.
So the Arduino Q is
very fancy board.
You have it here.
Can you see it? Uh sorry.
This is the
So this is the Arduino Q. And again,
there is a 32-bit microcontroller from
STM. And there is a Qualcomm A
53
or 35. You have it here somewhere.
A
ARM chip.
Actually, this the similar the same chip
you can find in some mobile phones.
And there is a running it running it
runs a Debian.
And on the same board you have the
STM32, which is a 32-bit
uh microcontroller.
So, again now you have a very powerful
Linux computer,
which can which cooperates with a very
powerful 32-bit microcontroller. So,
again now it's very easy to use the full
power of the Linux and the same time
real-time
options of uh microcontroller.
Of course, forget about low power here.
It consumes a lot.
You cannot feed it from a standard USB
port. You need to have a power delivery
up. You will see it in few moments.
But this is the way how you can get the
best from the both worlds. I have a full
Linux computer together with a 32-bit
microcontroller, which is a real-time
thing.
So,
if you want to if you want to try it, so
there are three options how to connect
to Arduino queue. The first option,
you need to have a power delivery USB
hub, and you feed it through the USB
hub, and then you connect it directly to
your computer.
Another option after the first
configuration is that of course there is
a Wi-Fi.
There's a Wi-Fi available. So, if your
computer and the board is on the same
network, they communicate over Wi-Fi.
And the third option is this the most
fun one.
You can directly connect it to screen
and a keyboard. So, let's try it. So, I
I'm I didn't test it here, so we will
see. So, what I will do now.
I take power delivery hub.
USB cable.
This little guy goes here.
Then we connect
HDMI here.
It worked at home, so we will see if it
will work here.
Uh no, this one is the one goes here.
And I need to connect the camera.
Uh if you will test it at home, I figure
out that it doesn't like to connect if
you try to connect some
uh additional devices like camera when
the board is already running, it's
stuck.
No, it stopped working.
So, we have a camera, we have a HDMI,
and now we need to
use some power here.
And actually, we will see what will
happen.
Hopefully,
we will see booting Linux in few
moments.
>> [clears throat]
>> Here we go.
Cool.
And I am stupid, I forgot to connect my
keyboard.
So, let's try to
connect it on the fly,
but I think it will not work.
Ah, it's working.
So,
mouse is working, too.
So, now everything runs from the Arduino
board.
If you want to write some application,
there is uh
tool which is called App Lab.
So, you will see it in a few moments.
And actually, you can see here is uh
You have a lot of applications already
there. It's a sta- It's a Debian running
on it, okay?
So, how to
how application works here. So,
Okay, so I can connect it to Wi-Fi here.
Here we go.
So, you will see. So, it's Wi-Fi on my
mobile phone.
Okay, so
if you want to
write the application, you need to use
this tool.
And actually, the application can have
up to three layers. So, the lowest layer
is Arduino sketch
running on the microcontroller.
If I open something very simple here,
uh
let's open this one.
So, the lowest layer
is uh Arduino sketch.
So, actually, it's a standard sketch
what you see here.
But the most important is there is uh
object called bridge.
And the bridge object is about exposing
functions
to
upper layer, which is a Python code.
So, you have a standard sketch, and then
you see this bridge, and you see there
is the bridge provide
name of There is the name. This is a
line 14. There is the name of a function
from line 18.
And this will be available for Python
code.
Another layer is Python code.
And again,
you can see that from Python code,
I I gain I have the object bridge.
So, and the bridge is calling
the Arduino sketch on microcontroller.
Okay? So, if I have a sketch on
microcontroller,
then you have a Python code controlling
or using the Python code to communicate
with the microcontroller. So, for
example, if you need to read data
from some sensors, so you connect the
sensors to board, you've write the
Arduino sketch to work, you know, to get
data from the sensors,
and then you will use the Python code to
get the data to upper layer, and for
example, use some REST API to send data
out of your board using the Wi-Fi and
internet connectivity.
And there is a one more option
if you need to do something, let's say,
special,
there is another layer which is called a
bricks.
Here is it under assets.
In code, you see it under assets.
In this case, and on the top here, you
see there is a brick called web UI HTML.
So, the brick is
a Docker container, actually, with some
dedicated functionality. So, in this
case,
this web UI HTML
creates a user interface
on the website,
and it can communicate the Python code
using the internal sockets
on the on the local loop and then from
Python you can control again the
physical hardware.
So this brick
the bricks are much more I will show you
in few moments the more bricks. So the
bricks are actually it's a Docker
container with some very specific
functionality.
If we speak about bricks
so if I go back here
and I go to bricks
so here you can see what bricks are
available
and you can see here there are a lot of
bricks using artificial intelligence.
You know, to process data from camera,
you will see it in few moments, to
process data from images, from video,
from some audio files and so on.
Some of the bricks needs internet
connectivity. Some of the bricks are
stand alone. And every single brick here
is actually Docker container. Okay, so
everything is packed in a Docker
container.
So if I return to my example
just blinking LED with UI
so if I run it
you'll see that it deploys. You will see
that there is some there will you will
see some deployment of the Docker
containers.
It takes some time.
Well, you can see it's not so super
fast. If you if you work with a common
laptop, it's much faster.
Okay.
It will open a web browser.
Hopefully.
Let's wait a moment.
It's running.
Here we go.
So
So, the user interface
is coming
from
the UI brick
and here in assets
you see it's a design of a web
application such as web application
design.
From
JSON code
Sorry, from JavaScript code
it calls a Python code
and the Python calls the Arduino sketch.
Okay? So, there is there is this kind of
a chain.
Communication between communication
between brick and Python it use some web
so some kind of a web socket. There is a
socket communication on a local on a
local loop.
What is communication between Python and
a
what is the communication between Python
and microcontroller? I'm not sure. I
didn't find it in
in documentation.
On Arduino Uno it was very simple serial
port communication.
Not sure what is here. I need to check
it I need to double check it but I'm not
not sure what is there.
So, now
if I do something let's try it.
So, now I am I should be able to
switch the
LED on
and LED off.
And there is this kind of a chain.
Uh
of course this is a very simple example.
Uh
the key usage here is that you can use
AI. So, you can easily process AI you
can process for example some images or
video locally and base what you see on
the image you can control some physical
devices for example. You know,
maybe let's say some kind of a simple
security system
or you can detect some the common the
common usage of the artificial
intelligence in for example in industry
is quality control. So you have a camera
taking you know checking if everything
is on place for example on a
diesel engine. I saw this technology in
Mlada Boleslav. So when they when they
finish a engine
for a car
they took a lot of pictures of the
engine and the artificial intelligence
detects if all cables are in place, if
all nuts are on the correct place, if
there is nothing missing on the engine
and so on.
So let's try some AI here.
So I can close this one.
There we go.
There was some video.
Just need to find the right example.
I think object camera.
So what we will do now
I connect a camera to Arduino Q and then
it will detect the objects in a live
stream.
Let's try it.
Again here you can see two bricks on the
left side. The one brick is about
detecting objects in a video stream
and the second one again it's a user
interface.
And you can see there is some missing
sketch because I am not using the the
microcontroller here. I'm just using the
Linux part.
So, just let's wait for user interface.
And
So, we will see what it will do.
There is our people.
Not bad.
For Arduino, of course.
Okay.
Uh there are more
uh bricks with AI.
So, there is for example, if I stop this
one.
This one actually works very well. There
is a one more.
Uh
Let's try this one.
So, image classification.
Uh majority of AI bricks doesn't need
the internet connectivity. Some of them
Some of the bricks, they need the
internet connectivity, but those AI
elements can run locally again Docker
container.
So, let's try this one.
Okay.
So, again, let's wait for user
interface.
There we go.
So,
let's try this one, for example.
Okay.
Let's see what we will see
if it will work if it
be able to recognize something.
No objects.
Let's change the confidence here.
You know the confi- probably you know
the confidence score means that, you
know, the artificial if is it not uh
generative AI visit, let's say common
AI,
uh usually it can tell you uh how
confident
is that the result is correct. So, now
you see that it tells me there's a
dining table, but the confidence is very
low. There's a wash basin,
better confidence, and a water jug,
very low confidence. You know, the
confidence score typically, if you are
analyzing some images or whatever you
are analyzing, is the confidence score
you set the limit. If you say, "Okay, I
I believe that the information is
correct." or I need to send it to
process it by humans. Okay, so this is
the uh this is the confidence score.
Okay.
So,
any questions here?
Yeah.
No, everything is processed on Arduino
here.
Even the video stream.
It is slow.
>> Yeah, it's just the way it is. So
>> Okay, so everything was the even the
video is processed directly on Arduino.
Actually,
if you speak about artificial
intelligence,
to
prepare a model, to train a model, it's
very time-consuming, it's very, you
know, process-intensive task.
But when the model is ready,
it's let's say very simple function
usually. It's nothing super complicated.
To train it is complicated, but the
result itself it's let's say very simple
function. You put there a frame it and
it gives you the results.
Even on microcontrollers
like this one here, here is a quite
powerful STM
32-bit
microcontroller which is quite powerful.
Even on microcontroller like this, you
can process images in real time.
But the model must be very simple. For
example,
uh
you probably know in security systems, I
don't see it here.
In security systems, you have very often
those movement detectors.
Okay?
The problem of the the detecting the
moves by using the common security
system,
uh you cannot design it that it will not
send
some signals where some animals are
moving. If you have for example, if you
have a dog,
and you have the movement sensor, you
can change a lens on it which moves the
vision of the
sensor like 1 m above the floor because
dogs are
moving usually on the floor.
If you have a cat, then you are in
troubles because cats moving everywhere
in the house. You know, I had we had a
cat 18 years old. The cat was
everywhere. So we were not able to have
those motion detectors at home on a
security system because of the cat.
But, if I use
camera,
even very simple microcontroller, I can
train the model
how it looks like empty room, someone is
in the room.
Only two options, binary classification,
empty room, room with some humans
inside. And this I can easily run on
real time on a simple microcontroller.
Now, we have here very powerful ARM chip
with a full operating system, so it can
process the camera stream very, very
easily. So, everything runs locally.
Okay?
>> And a different on on a different
direction. So,
traditionally, I would have
a
Raspberry Pi and an Arduino and some
serial link between them.
And here you are compact and together.
So, what is the price
difference between buying Arduino
>> [sighs]
>> I think I have the cheap one. The The My
Arduino Q is only two gigabytes of
operating memory
and 16 gigabytes of
flash disk on it.
And I think it costs like 2 1/2 thousand
Czech crowns, which is let's say 100
euro.
Buy separately, I think it would be
maybe more expensive, little more
expensive. I don't know.
>> Okay.
>> There was the question on the back.
>> Uh is there
is there any
home base
or anything
or is it something
like a scratch because from what you
showed
>> [clears throat]
>> us, it looks like it might have a
program to move
for education or
>> Unfortunately, not yet.
Maybe it will be there in future, but
now you need to Actually, if you want to
use this, you need to know how to write
sketches for Arduinos. You need to
understand C programming language. You
need to understand Python. And if you
want to have the user interface, you
need to understand
web front-end development. So, it's
really
from my point of view, it's now not
suitable for education.
Uh
time to time, I do trainings for high
school kids on one gymnasium on one high
school in Prague.
And for on the first class of gymnasium,
we typically use micro:bit. Because with
the micro:bit, you have those full
sketch stuff, then they can move to
Python, and then they can continue with
whatever programming language they want.
But this one, I think it's not suitable
for beginners.
Actually, even the setup
it's not easy. It's not just plug it.
Now, you need to have a power delivery,
uh USB hub, uh
you need to connect it to Wi-Fi. So,
even the basic setup is not so easy like
take the Arduino or micro:bit, just
connect it to computer and use it.
Yeah.
>> So, someone with normal Arduino
approach, you
are flashing this micro controller,
right?
And here in the setup, it's like just
a factor of
physical stuff what attached like
sensors, for example,
or any kind of sensors. So, so you are
not touching this STM directly by
flashing. You always use it as
an interface to the upper level, which
is the attached reference system like
>> Uh of course, you need to When you When
during the deployment process, you of
course deploy a sketch to a STM
microcontroller,
but you use this STM through the Python
code.
Okay.
Uh
There is one more thing I want to show
you.
Okay, so how to do it uh
Okay, I switch back to my laptop now.
Can you have some Can you have some
water?
So, I switch back to my laptop. It will
be easier.
So, I have a one example what I did uh
many years ago.
Uh where are my glasses?
So, sorry. It's just in uh
Uh sorry. It's just in check, but you
can use some translator.
Uh this is the article about Arduino
Yun, but exactly the same thing you can
do of course with
uh Arduino Yun.
And the idea of this project was that we
we share the garage with my wife, so we
have a one garage only.
And uh it was some project when I was
learning how to use Arduino Yun, how to
use the Amazon Web Services.
So, actually this is the description how
to use this kind of the device
to send data
to some cloud, then you sign in and you
can see if someone is parking in garage
or not. So, there was the distance
sensor
calculating the distance between the
ceiling and the
uh and the floor. And if the distance
was, you know, less than something, it
was clear that there is a car inside.
Actually, those kind of the sensors, if
you are if you go to any
shopping mall and you have those uh
red and green lights telling you if the
parking spot is empty or empty or
occupied. If you will go to to that
spot, you will see there is distance
sensor on the ceiling.
So, when my kids were were small, they
were running around and switching the
lights on and off, you know, and messing
the system.
Okay. So, this is exactly this this one.
So.
I use this one. You This is very old
project. This project
Yeah, of course it was just for fun.
You know.
It was just project for fun.
Okay.
Questions? Some more questions?
I have like 5 minutes.
Okay. So, if there are no questions,
just
we can close the speech. If you want,
just come here, you know, look to
Arduino queue. There is fancy display on
it. There are a lot of LEDs. So, just
come here if you want to see it and and
you know, touch it. Don't take it.
Thank you.