Submind YouTube summaries
Thumbnail for Bridging Embedded Linux and Real-Time Control with Arduino Q - DevConf.CZ 2026

Bridging Embedded Linux and Real-Time Control with Arduino Q - DevConf.CZ 2026

Watch on YouTube

Video 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.