About us Expertises Offer References Contact us Blog
FR EN

Qt Open Source for Embedded Systems – LGPL License

Developing an embedded system with Qt can be very expensive. The Qt for Device Creation offering involves the payment of costly distribution licenses. However, it is possible to save with Qt open source, which can be used for free.

10/01/2023

Nathanaël Landais

image blog Qt Open Source for Embedded Systems

Qt for Modern Embedded Systems

I won't surprise anyone by saying that Qt is today the reference in the development of embedded systems equipped with a user interface. This framework allows the development of modern and fluid user interfaces on systems with contrained resources.

Thus, many of our clients contact us to develop their system with the intention of using Qt for their UI.
They often target very specific markets and do not intend to sell tens of thousands of units of their product each year, but rather dozens or hundreds of units.

However, Qt for Device Creation, the offering highlighted on the official Qt website, but also the one that will be proposed to you by their sales representatives if you contact them directly, is too expensive for this type of project.

Qt for Device Creation Pricing

Using Qt for Device Creation involves acquiring several types of licenses with recurring fees:

Distribution licenses are sold in batches of several hundred to tens of thousands, starting at a very high price (with a minimum package of 2,000 units sold for 15,000 euros), but decreasing rapidly based on quantity (about 3 euros / unit for a batch of 20,000 licenses).

This last point is often a stumbling block, developing with Qt under these conditions is not profitable for projects sold in too few units. Qt refuses to sell less than its minimum package.

So what do we do?

If developing with Qt under these conditions is not feasible for you, you have two options left:

As you may have guessed from the title of this article, it is this last possibility that I want to talk about today.

Qt Open Source

You probably didn't even think it possible to develop your embedded system with Qt Open Source. After all, the Qt website systematically refers to the commercial offering Qt for Device Creation whenever it comes to embedded systems. And it's certainly not the Qt salesperson who would have suggested this possibility to you either.
Yet, it's entirely possible. Indeed, Qt is available under the LGPL license (More precisely LGPLv3), which is an open-source license and allows you to use Qt for free for your IoT project. So, there's no obligation to go for a commercial license, even if you're creating a commercial product!

Constraints

There are several constraints to heading in this direction that are worth listing.

What's not available in open source

Firstly, the tools developed by The Qt Company (the company behind Qt) are not all available under the LGPL license. Thus, some Qt modules cannot be used in an open-source project.
Fortunately, these modules are few, and it's entirely possible to do without them.

Qt has also developed tools to facilitate development for embedded systems, these tools are part of the Qt for Device Creation offering and will therefore be inaccessible to you. I'm talking specifically about Boot2Qt, which allows you to have a Linux embedded system ready to run your Qt application in just a few hours, provided that you use a platform supported by the tool. This second point is, in my opinion, the most important; getting Qt to work within your embedded project can be difficult, and its implementation (within a Yocto or Buildroot system) takes some time.

To see what's available in open source, Qt provides a tool.
To use it:

Select the type of license you want (For open source, try LGPLv3 for modules, GPL3 and GPL2 for tools.).
You can ignore the "Qt Packages" field, which automatically defaults to "Qt for Application Development":
This distinction makes no sense outside of the commercial license.

LGPLv3 License Constraints

Finally, distributing a system using open-source components under a commercial license also involves certain constraints.
The LGPLv3 license is quite open to this kind of usage and allows you to distribute your system without opening its sources under certain conditions:

All these constraints lead to an obvious result, the initial development cost will be higher if you want to use Qt as open source. However, the recurring additional cost of Qt for Device Creation distribution licenses can quickly exceed this amount.

So, Qt Open Source or not?

As you can see, you can develop your product with Qt Open Source and thus save on the price of commercial licenses. It's a choice that comes with some constraints, which I find quite limited.

There will be a higher initial development cost because you won't have certain tools to facilitate startup, and you'll have to set up certain systems to comply with the requirements of the LGPLv3 license.

But then, does this additional cost make sense? It all depends on the context and scale of your project; in some cases, the recurring cost of Qt for Device Creation distribution licenses will be less problematic if you plan to sell very large quantities of your product, the license fees can drop. It's up to you to do your calculations.

Are you determined to develop your system with Qt Open Source? One thing's for sure, it's a choice that requires careful consideration; you must absolutely comply with the license you choose.

Don't go it alone, contact us directly to discuss the best solution for your project. We have ourself developed many successful embedded systems using Qt under the LGPL license.

Article suivant

Enhancing your embedded Linux updates reliability - OTA