[Update August 24, 2019: Added information about expected release date and license]
About Qt for MCUs
Qt- The well known opensource toolkit for creating graphical interface announced their new release: Qt for MCUs, targeting MCU’s. The new graphical toolkit will be capable of running on devices without operating system.
This may be a game changer in the entire MCU world, since Qt for MCUs allows developers to create fluid user interfaces on cost-effective micro controllers. This means we will be able to see smartphone like GUI’s which are running on low-end MCU’s with limited resources. With reference to their press release, assuring that Qt-GUI will consume less power to save the battery life.
Qt for MCUs Software Stack
While developing any applications for MCU, developers still can use their powerful declarative UI language QML and rich set of ready-made Qt Quick controls. And the C++ APIs, helps the user interface with C++ based back-end.
applications are being rendered by Qt’s optimised graphics run-time with low memory foot print. This makes Qt for MCUs capable of running on resource constrained devices. This new run time engine allows the application to run directly on the processor without an operating system.
Providing Qt Quick Control 2 along with Qt offers features to start the development with Qt for MCUs. Qt’s design and development tools – Qt Design Studio and Qt Creator will support development on the new graphical toolkit. The Qt team is also ensuring that the current users of Qt can continue using their existing workflows to develop applications for micro-controllers. You can download demo binaries and try them out with a supported hardware platform.
Qt for MCUs Hardware Compatibility
Currently, Qt for MCUs is specifically developed for Arm Cortex-M microcontrollers, with a limited set of tested hardware platforms, mentioned below.
A thermostat demo can run on NXP I.MX RT1050-EVKB with the following specifications and resources consumed.
- Screen Resolution of 480×272, Color -16 bit
- Frame Rate 60 FPS
- SRAM Used 1625 KB
- FrameBuffer 522KB
As demonstrated by the videos published by the Qt team, a GUI developed with the graphical tookit is capable of running on somewhat low-end hardware.
The company targets a mid-September release for the evaluation version to be available for download, and it will be licensed under a commercial license.
References
An Entrepreneur, an Opensource Enthusiast and Researcher in the domain of Embedded Systems, Wireless and IoT – Has over 16+ years of experience in managing and contributing enterprise Research Projects, in Embedded Systems, Software Technologies, Product Conceptualizations and development, Telecommunication, Media and Entertainment and Consumer Electronics.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
” very low-end hardware” really?! a Cortex M7 CPU is low end…. ?! And the demo is very responsive! Lololol
This must be sponsored by CPU vendors to force users to move from MCUs to CPUs just for their graphics capabilities. Because personally I found the video an excellent argument AGAINST using this on a low-end CPU! For anything other than week-end projects, it seems definitely better to develop something lighter in-house and make substantial savings on hardware costs!
I’ve just noticed the video was made in June. I’ve changed the video to a more recent one, and it looks much smoother.
Yes now the demo is more responsible and polished ( they chose wisely what to show this time…) Anyway, an M7 Cpu is not low end… at least in my book.
They should take some lessons from the crappy devices(with GUIs and touch) that china sells with much weaker Cpus.
Anyway using QML in a deeply embedded device make me shivers, maybe I’m just too old school ….
Come on…It just has started. Since it is just ported to MCU from Linux it is natural to start with M7.
Also, Qt promise QML will be a compiled language in the future release (take a look at Qt6 loadmap), making it much more native. So let’s see.
If it’s a compiled programming language, it fails. The reason why script is a script language is that they don’t need to be compiled for ease of use.
Of course they said it will be optional.
That’s an argument for a language for web sites… not for a language for UIs on embedded devices. For the latter, the overwhelming majority of developers WANT it to compile. Besides, even after the introduction of compiled QML, you can still use interpreted QML (or, the more likely case, interpreted just during development… and then compile it for release as you probably don’t want qml files dangling there).
Yes, way better. At least now they enumerate some requirements. From quarter a megabyte of SRAM to 2 MB. Definitely not low-end though, I’d rather call these SoC. I’ve run a linux-based internet gateway on a PC with 1.6 MB of RAM in the past, I’m sure I won’t do it on an ATMega328 which I rather consider a mid-low end MCU đŸ™‚
If they can run this stack on a little Kendryte K210 or a cheap iot soc, it’s very promissing.
For hobbyist, hard to be competitive with a cheap android for GUI with BT or wifi connectivity (with QT5).
Glad my teacher say long time ago : learn QT, it’s future and it’s a good pratice to learn c++, thanks bro đŸ˜‰
Very, True. C & C++ always makes you very close to the Hardware. And of course you may not even dream to run Android GUI stack without an Operating System.
I don’t know what you people are complaining about. To me this is one really cool thing. Sure it’s not that low end and it’s more like SOC and stuff but seriously , you can buy these for dirt cheap probably so if you really want a GUI it’s not that much or an issue. Unless of course you’re looking at power requirements and want to go lower with those but then you don’t want Qt anyway.
Really happy to see this, I think it opens up some new possibilities and I might even use it one day.
You probably didn’t see the first video. It was basically not working (1 second response time is not what I call working).
Those are really high end microcontrollers. But fairly low end in terms of hardware these days.
The question is given the cost of these boards for the average application, surely it would be easier to run the app on a SBC and pair it with a low end microcontroller for the real time tasks.
Graphical tasks would be handled by the SBC running full fat Qt quick.
From the performance point of view of course, we can’t compare SBC (Micro Processor based with OS) with Micro-Controllers.
Btw, just wants to high-light that the cost of the hardware cant not be defined based on the cost of the development boards. So any product which is running on MCU without OS and required GUI, believe Qt for MCU will play big role.