 Hello and welcome everybody in today's session, jointly between ST and QT. We are going to talk about high performing QT user interfaces on the STM32 microprocessors. With us, we have Sorin and Philippe from the ST, while Deepak and I are joining from QT OSes. And we are going to explain you how to get the best out of your products and projects going all the way from the design to development and deploying it on the ST hardware. Without further ado, I would like to welcome to Sage Sorin, who is going to be talking to you a little bit about the ST MP1 portfolio. So, Sorin. Thank you, Bruno, and hello everyone. I'll just take the screen sharing on my side and share my screen. And please confirm when it is visible on your side. Yes, we can see your screen. Excellent, excellent. So on behalf of ST, I would also like to welcome you to the webinar. My name is Sorin Meigels and I'm a business development manager for embedded graphics in ST. And I'm also joined here by my colleague, Philippe Parsh, who's an application engineer in ST graphics team. Feel free to write any kind of questions you might have. A kind of questions you might have, we'll try to answer them the best way in the end of the webinar. And I would also like to inform you that we'll launch some polls during the webinar to get the inputs for future development and also to see if you are still out there with us. The first portion of this webinar I'll have a short agenda here. It's covering the ST MP1 solutions we have for running embedded Linux based graphics user interfaces. Here we will start with from intro level graphics and end up with a product which has been announced but not yet mass market launched. I'll come back to this. At ST, we support the move or the evolution of embedded HMI's, which is continuously happening. Products are getting a smarter offer more features and this also requires a smarter and richer HMI. By choosing to include GUIs in your product, you get a more intuitive, safe, modern and valuable product. At least we believe this. And I think it's important that we all remember that the UI is the face of your product so it's a quite essential part of it. That being said, while jumping to the next slide, I think we should start the first poll. Eva, please launch this one and then we can see what it is. So the target resolution, what is your approximate target resolution for your next upcoming GUI project. So please put this in. So we put some standard ones, but of course there are deviations to this and also some going above and below. If you cannot find yours there, please put in one which is the most equivalent to what your target is. And I'll just let it hang there and just jump to the next slide. Let's give it 10 more, 15 more seconds. Great. Okay. So, first topic. Okay, we actually got the results there. Okay, jump over it. So as a company, you might have some or you do quite often have some requirements, high level requirements for your UI product. One could be we want to run a simple UI. Do we then you need to ask yourself do you really need a dedicated GPU. If you mentioned that you have a simple backgrounds and buttons sliders and you need to show some some updated values could be temperature, for example. Once one solution for this. As a platform could be the SDM filter in point three five, which were recently launched by ST. It's a cortex a seven at the 650 to one gigahertz. You have a rich set of connectivity. Ethan and USB 2.0 and so forth. And with the right level of security. But of course the main point of this webinar is we need to talk about graphics and what you can do here. So it's quite capable of running a UI, but you would not find any GPU on this device, but you have the 24 bit parallel display interface from the industry standard that display on this kind of interface. And three 2240 for the 272 and even up to 720p. But when you go up in resolution, the most simple the UI need to build. So to summarize, you can do nice you guys, which I'll show in a second video off on this MP135 with cute. There is a board support package available for this device right now. And you can run full color guise by utilizing the DDR3 and the one gigahertz CPU for you are rendering. So of course you will take up some CPU cycles for for doing this. And you can of course run the openness to Linux distribution beneath the cute. To show you the soft the capabilities of this board so we have the MP135 DK. And this is a discovery kit. You can buy online for a detusion to tune resolution and the UI here is a 24 pixel. And you have a cute UI running here with a EV charger, which is quite nice. So quite short and fast video here. Let me go ahead. So next up is could be that you're saying that our requirements are white VGA resolution with few animations. So step up in terms of performance requirements you have, and also resolution so these combined, of course, puts the requirements for the MPU and the possible GPU to a higher level. So next natural step up in performance in terms of the STM32 portfolio. It will be the MP157. This is a dual Cortex A7 up to 800 megahertz and then on the side you have Cortex M4 for real time operations. And the main graphics features which I would just like to highlight here so of course there's many other features in this product. But you have a MEPI DSI interface for display interface up to two lane. You have a LCD TFT controller which you show on the MP135. And then you have of course a dedicated GPU with OpenGL ES 2.0 and then a 32 bit DDR3 RAM interface at 533 megahertz. So step up in performance and to give you an idea of the capabilities. I'll show you this video here. I hope it's okay smooth on your side of course the internet connection can put a limit on the smoothness of the UI itself but it's quite smooth and doing full screen updates and animation zooming scrolling and so forth. This is a 800 480 MEPI DSI display, a four inch one, running Qt 5.14 I think it is, and it was implemented by KDAB, this UI on top of this board. This is the discovery kit available from us for this product. Good. All right. Next up. Let's take the next step here. So if you say your requirements are 720p 1080p and you also need to do some two and three d animations. Maybe a big portion of the screen could also be you need to run some larger videos. What is the most powerful SM32MP platform we have from ST. So recently announced the SM32MP 2.5 lines are the first of the MP2 series. These micro controls are built around a single or dual cortex A35 running up to one and a half gigahertz. And then you have on the side again cortex 733 core for up to 400 megahertz for real time. Let me just emphasize something for you so you will see a platform here capable of supporting 1080p at 60 FPS. You will also see a dedicated 3D GPU supporting OpenGL 3.1 and Vulkan. These two 64 video encode and decode and 1080p 60 FPS and Mephi DSi 4 lane, LVDS and RGB TFT 24 bit. So it's quite a step up in performance. You're seeing with the MP2 series. The DK and eval kit will be available on 24 once we have a more specific date. This will of course be announced on all side. So to summarize the MP1 3.5 entry level graphics on embedded Linux 482.72 you can also go up 720p. But again, have in mind that it depends on what kind of you are doing. Are you doing static one? Are you doing some small animations? I do need some full screen updates, you know, full screen transition and so forth have this in mind. But you can do nice 2D graphics RGB TFT small animations. You can set up advanced graphics for ADP also above 24 bit colors. Two and 3D animations are the VGFT and Mephi DSi display interface. And lastly, but not last the MP2.5 series advanced 1080p graphics 720 1080p 24 bit per color two and 3D full screen animations. And then you can go back to 264 video and all the important display interfaces used up there for this kind of resolution. Please launch a poll either one we added now. So which of the following statements do you find true and this is a multiple choice so you can you can select all of them one or two or three. So one I consider the MPU portfolio as a good platform for running any GUI. I consider the SDM32 MPU portfolio limited and not covering my needs. In the past I did not consider SDM32 MPU but with this enriched roadmap and QT integration I find it more relevant. And lastly, I consider using Qt on SDM32 in a future project. So let's leave it hanging there for some more seconds. So if you behind it makes sense for you and it also gives you some more clear direction in where or in which kind of product you could, could use, you can say combine your requirements. Excellent. Good. So last slide saying, yeah, thank you. Thank you very much. I'll jump over to Bruno now and Deepak and while doing this maybe we could launch one more poll while you would make transfer to your display Bruno and yeah and make this a run while we do this. Last point for me while we transfer. Please launch the last poll even and for any technical questions you might have. Please go to the SD community. We have a dedicated page actually for it, where you are able to ask any questions we have engineers ready to answer any questions or go to your local SD contact. So thank you. Over to you Bruno. Thank you very much so and speaking of questions. Feel free to pose them under the Q&A section in the zoom so just underneath on the bottom of your screen. And we are going to come back to them at the end of the video. So, you decide to go on one of the platforms and you decided which is the most suitable of the boards that you want to use. It's a matter of getting your design and your ideas into reality into first MVP into the first prototype. So what are the challenges that you may actually find yourselves in. We are going to talk about that then we are going to go into the workflow, how you can go from from the UI design and development into building this prototype and creating the backend for your application. And finally, we are going to show you a demo that was developed for the CES this year, demonstrating an HVAC unit where it was designed and developed in QT and put on the different hardware using put to QT and how it was deployed and debug. So, what are the challenges you most of the companies most of the teams face when they start developing on the embedded Linux devices. First is that when you take a look at how designers work and how the embedded engineers work those are two completely different roles. And designers work in the tools such as Figma or Adobe tools or sketch, and they need to transfer this design and this user experience into the product. And you can of course, either developer or designers can export manually different PNGs or BMPs or vector format graphics, hand them over exactly put where the locations are on X and Y axis. But this is all usually taking quite a lot of time. Finally, you will also encounter most of the times trouble with importing the 3D assets and how to get it across from designers into the developers hands. And we're going to talk how we saw that in a bit. Then, when you come to when it comes to creating your first prototype into testing if your application really runs correctly if it looks okay on the actual hardware. So if you are working with the embedded wise device, it's quite different to when you're just testing on your machine, and it would be maybe sometimes nice. If you could just one click deploy the application to your device and just see it live in action, bring it to your colleagues in the, who are in the project management or product management, bring it to the user experience colleagues and see how they like the product. Next slide. You will see that quite often we are faced with having to create a portfolio of devices where you will have low end device mid range device and high device. And you do not really want to recreate your whole application every time for every device and maintain it over the whole lifecycle, especially even if you have additional devices like companion apps, where you also want to retain the same user experience and the same code to run there. And finally, going from the smallest to the largest devices maybe in the future, going to something even more powerful or opting, optimizing it to something even with the lower hardware specifications. You're not going to be independent on the chip that you run on. So you do not really necessarily want to lock yourself in to a decision that you make today because things are going to change when your product comes up, and maybe you're going to create a new product or something like that. So all these problems are something that we as embedded engineers and designers face on a daily life in our daily lives and our daily work. And QT has actually quite a nice proposal how to solve most of these problems and especially working with our colleagues from DST. What we do is we have created QT bridge and design studio, which are which are going to demo to you a little bit later, which can take the design from Figma or from Adobe or from sketch and bring it basically to the QML to the application already that you can test it and run it on your Then your developers can can use QT creator and QT framework and the additional tools for debugging and flashing to run the application to test it in how it actually runs on the hardware to profile it. And then you can even pass it on to the quality assurance through likes of Squish and Cocoa to check if the if things are happening really how you want them to. And you can really check for the actual elements and inspecting the objects by property and not just by frame gravity. In the whole process, you can take a look at, for example, cute insight, which are going to show you how users are using your application. Maybe do a be testing and see in the funnels where the user interaction, maybe deviates from your intended ideas. So, the QT bridge is a standalone application, which allows you to import to the assets for mentioned sources, also 3D assets, and in some cases and some formats you're also going to be importing the animations. And this is also where you can create your user experience and your application journey, creating different states, different variants, animations, and really creating the application from the visual visual perspective. This is going to write everything into the QML. And if you have one of those, for example, STM devices, you are going to have a boot to cute images already available. So, what we're going to show a little bit later, Michael Deepak, is going to flash the board with a boot to cute image directly from Qt creator. And it will show you the IP address that runs on and he's going to be able to like, very quickly get from design into the prototype on the actual board so that you can immediately start working on it and checking how it works. And then you can use Qt framework and Qt creator, where you can develop your applications in C++, QML, get really good performance, low power consumption, you can interact with a lot of APIs for the connectivity for the sensors and so on. And you can also profile your application and debug it real time, being connected directly to the device, skipping line by line, and really seeing where the problem is. That wraps up the story from the problems to actually the solution. But this is just words. So let's maybe take a look at what Deepak prepared for us and how he's going to guide you through the whole workflow and in very few minutes showing you the whole process from start to the end and how everything nicely ties with one another. So Deepak, this is yours. Thanks Bruno. So today what we are going to look at is the HVAC demo which we demonstrated during CES and also the embedded world 2023. What we are trying to do here is to show you how easy it is to get started with, you know, product development using the STM microprocessors using the Qt workflow. So let's start with the first process, which is the UI design and development process. Let me skip to the slide. Yeah. So in this demo, you would see that we have chosen Figma as the UI design tool. But then if you are not preferring Figma, you could also use other design tools. But if you're using Adobe XD or Photoshop or other design tools, for example, Sketch, these four tools could be then used to just export these designs directly into Design Studio. But if you also don't want to use such a tool, then you can also start your UI design directly in the Design Studio itself. I'm just going to play the video. So in this video, you see that we have used Figma and the simple concepts and Figma of ellipses, lines, rectangles to create some components. And then we create the, you know, full end screens over here. You see that these are not just static images, but components. And we use the Qt Bridge plugin, which comes with it to export this into an intermediate format, which then can be imported in Design Studio. So in this video, we would not go so detailed into the whole import process itself because there are already a lot of videos which explains this process. So let's skip to the Design Studio part. Before going there, we could also, you know, use the advanced features of Figma. For example, there is auto layouts feature, which could then be converted into its equivalent format in QML, which is like Angus. Or we could also use the variants, you know, feature of Figma, then which would then be converted into states of Design Studio. Let's move it to Design Studio. So in the Design Studio, you see that we have kind of imported all these designs into Design Studio from the Asset Import option. And you see this UI.QML, which is basically a pixel perfect import from Figma. You could also see that we could import 3D elements, 3D assets or models from tools like Blender or Maya. And there is also a 3D editor which helps you to browse around the 3D model. You can actually change the light source, the camera source to produce cool effects over here. Now the next step is to see how this runs on the desktop. So I'm just going to run this project here and see if all my expected animations are running fine here. So you see the 3D model here, which is rendered on the desktop. I would also check by going into the other screens and seeing if the animations are working properly. Yeah, so all of them are working properly. What you also see is the capabilities of Design Studio to create animations, state management, and even if you can use advanced features like shaders, Qt Effect Makers, and also profile your application using the features of Design Studio. So the next step is to see how this looks like on a real device. So that is where the Boot to Qt comes into picture. To get started with Boot to Qt, first of all you need to have an installation. So I'll walk you through how to get this installed. The first option is to go to your Medians tool, log into your commercial Qt account. So once you go there, you would find the option for both the Boot to Qt stack. So it is available directly under 6.501. So you browse a bit below, you see the MP15, Discovery and Evaluation kits. You just select Next and this would be installed. The second option is to head to your Accounts of Qt and in there click on the downloads and you would find this under the QBSP option and you then go ahead and select the Qt version that you want to work with. I choose 6.302. You choose the host where you want to work with and then this would show you the list of devices. You download the QBSP niche that you want and then head back to the Medians tool where you can check if this is available under any of these Qt versions. If not, you can just go to the Browse QBSP files and select this file and Next and this would basically install the QBSP package as well over here. Now what is the Boot to Qt? So to explain it in an advanced fashion, so basically the Boot to Qt has mainly three features or three components to say. The first thing is that it has an embedded Linux, Yocto-based embedded Linux image, which then could be flashed onto these devices of 135 or 157. And this also includes a cross compiler toolchain that you could use to create images for this device. It also includes integration with the Qt Creator and we are going to see how it is integrated with the Qt Creator now. So you head to the Edit Preferences and you would see the different kits available and you see that already 6.5.1 and 6.3.2 is available under the section. Now the next point is about flashing this. So under the tools, you can just go and select Flash option and you would need to insert a USB or an SD card. In this case, I insert an SD card, choose the proper Boot to Qt image, click on Next. And this creates an image onto the SD card, which when completed, I plug it onto the device and then it starts like this. So this is the Boot to Qt image. You have multiple options here to get connectivity either through a LAN cable or a Wi-Fi network. So what is left now is to actually be able to do the prototyping even at the design phase without any C++ code available at this point. So this helps you to even understand how the independent UI is going to behave. Is there any performance issue or is there any phone which is not rendered properly on this particular screen. So that's the advantage that you get by trying out these designs at the design phase directly onto the Boot to Qt device. So you see I head back to the design studio. Inside the design studio, I have the option to select the different kits. So you see I can choose a desktop or a Boot to Qt device. So I then head to the edit preferences and here I can basically add a new device. So I added a device called SDM32MP157. I can give the IP address so that it is able to communicate with this device. So once this is done, basically I make sure that the Boot to Qt device is the selected kit for this particular QML project and I click on run. So you see the assets are now then copied onto the device and you would see the design already running on it at this point. So this is where I would use it to check whether all the transitions are proper. If the phones are rendered properly and all that stuff. So the next part is basically building the project, deploying and debugging issues on it. So we are still at the design studio. So you have a whole bunch of QML files. Now we have to pass this smoothly to the developer. So we have an option within the design studio to basically make a CMake based project out of this QML project so that the developers can start working on it. And when you click on this option, what happens is it creates a main.cpp and creates all the CMake list.txt in different hierarchies of the project includes all the QML files so that it is able to compile out of the box with Qt creator. So you see I go to file and then export project, generate CMake build files and click on OK. And so this would have created all the necessary files required for compilation. Now I head back to the Qt creator where as a developer, I'm going to check whether I have configured everything properly. So I'm going to add a device, which is a boutique device. I enter the IP address so that I can talk to it. The important thing also to check is whether you have mapped the kit with this particular device. So that's what I'm going to do. I head to the kit and I'm going to map this kit to this particular device. So once this is done, I can start loading the CMake list.txt, which is the format supported with Qt 6. So once you load this, it's going to parse the CMake file and look for errors. So here I have to check which all kits I need to select so you can choose Android desktop. In this case, I'm going to choosing the boutique kit and it goes through the CMake and finds that everything is fine and it is ready to build. So we go ahead and build it. So once the build is done, what is left is to deploy it onto the device and that is exactly what we're doing right now. So we clicked on the deploy, it's able to put it directly onto the device. So the difference from the last time and this time is that now it's actually a complete application and executable which is going to run on the device. So you see, yeah, it flashed or it started the application and now I'm going to just play around with the user interface. So I'm checking the different implementations which we had. We tried to move around the 3D, it's working fine. I tried to change the temperature and it crashed. So you have a bug already and now we have to start debugging it. In Qt Creator, we already have the debugger as an integrated product. So you can try to debug the application and reproduce the same scenario and then you would see that, hey, there is a bug or there's a crash. In this case, it was a segmentation fault and then it would tell you where exactly it failed. So it's just like the GDP but then integrated into the Qt Creator. Now you can just do, you know, check the values of the different variables whether it is proper at this point of time. And with some debugging, we were able to understand that, hey, there was an issue that this MQTT manager itself was not initialized. So we go back and fix this issue and then we try to rebuild it and run it again. I go back with the testing and go through the same sequence. Everything is working fine. I tried to change temperature and now it works fine. So one bug is solved. There could be more bugs. So we are trying to navigate through the whole system. This is a 3D part. So if you had seen this part, so these are the 3D models that were imported from Glendor and when you click on this, it's changing the layout. So you can actually do much more with it. For example, if you kind of like change the temperature, you can change the light source of this 3D object so that the room changes its color from red to blue. So there was a lot of possibilities that you could do with the 3D and this is running on the Steam 32157. Just go back to the other screens and see if all the animations are fine. Yeah, it seems to be working fine. All good. So now it is time to check the same implementation on a different product portfolio. And this is the Steam 32MP135. So as you have noticed, this doesn't have a GPU. So with QML, we basically could use the same QML so that it understands if there's a graphics accelerator back end and if yes, it's going to use that. But in this case, it doesn't have a GPU, so it's going to use a CPU for the rendering of the artifacts. And we also have replaced the artifacts of this project with some images instead of the 3D part so that everything works smooth. So you see that the 3D part is now replaced with static images. But apart from that, you see the performance is up to par with what we saw in the 157 as well. The features are working fine. The animations are cool. So we now go to the other screen and see if everything is also equivalently smooth over here. Yeah, this also appears to be smooth. And let's also check one other animation in the home screen and the settings. Yeah, okay, let's see how this works. Yeah, this is also smooth. So yeah, so basically what we demonstrated right now is the capability to use the same code and write it for different product portfolios, one as a low-end portfolio, one as a high-end portfolio. I hand over to you Bruno for the rest of the slides. Yes, thank you very much for this short rundown to the presentation. Yeah, so as you saw, it was very easy to get your designs onto the hardware and to really utilize the possibility that MP1 series from the SD provides. You can easily prototype and create designs that you can really check if they're working using Design Studio. Then you can put it into Qt Creator, create backend services, create the backbone of your application, run it, debug it, test it. And it is all possible on all the targets ranging from the low-end to the high-end devices. And Qt offers a long-term commitment to supporting the SD MP1 targets in the future with BSPs and all the releases that Qt is going to offer. Once of the release schedule, Qt is releasing a new version kind of every year, and some of the releases are marked as a long-term support, which have a support for roughly three-year cycles. If you choose a version now, you're going to be receiving fixes and security updates for the whole next three years without having to worry about any kind of API changes. And in terms of Qt, all the Qt6 libraries are binary compatible between one another. In terms of the new features that were introduced with Qt6.5, the libraries are now available directly on Debian, so what you can do is you can immediately try to run it on one of your favorite distributions. We introduced Qt effects and an effect maker, so you can simulate different particles and effects in the 3D and 2D spaces. We have added connectivity through the GRPC protobuf and CAN, so you can easily inspect the messages and objects. And those are marked as a test preview in the current version, and we're probably going to be propagated in fully supported versions in the next releases of Qt. Hopefully you can see Qt location and map view, so in case you have use cases where you need to show the map, you need to do a map interaction with zooming when we're panning the map with creating points of interest, points on the map. You can all do it out of the box using the tools that you have directly in Qt. No need to bring in big other APIs and break your head how this is going to be implemented. That would be all, and thank you very much for listening to this part. We have another poll, which will maybe be interested in learning in which of the devices would you maybe be interested in. There are also some devices which are microcontrollers here mentioned in the list. So feel free to fill it up and tell us what are your thoughts on the next harder targets. Also, feel free to ask the questions in the Q&A, we have already a few questions, and we are going to be answering them right now. So, Dmitry asks if we are going to share a live video or the event. Yes, it's going to be available in the Qt resources part, so you can just put this into your favorite search engine, and in a few days it's going to be available there. There's an anonymous attendee who is asking what if I prefer to use but acute Linux, are there any advantages for using open ST instead. It's nice if you prefer but acute but you can also use the open ST maybe Philip, you can tell me a little bit more about the open ST. Yeah, I mean, with the QBSP you have the advantage to have an already compiled image so you don't have to launch a big distribution compilation so it's much easier to use this QBSP. You also get the advantage to have a Qt creator environment setup that is really to use, and you also get the benefit of using the 6.5 release. For the open ST Linux distribution today it's on 5.15 release, so it's one limitation you don't have all the APIs that could be available for with the 6.5 release. In a few months we will also deliver a new X Linux package over the ST Linux distribution for dedicated for Qt on MP2, so we will have a much easier setup for debugging and launching application with Qt creator, but it will be still on 5.15 release. Okay, thank you very much for the info. So the next question is from Nicholas asking what is the pricing of Qt. Is it royalty based or there is a license. Qt has the licensing model, basically it is covered under the GPM V3 or using the commercial license. I, to be honest, I do not know the prices exactly, but in case of device creation if you are shipping the devices there is a bit of royalty. And in terms of the license, there are possibilities for different licenses with device creation, or if you're just creating application that you cannot, for example, on your phone or your PC, or even just for the designer. So it's something customizable and that is tailored always up to the customer so I would encourage you to, if you're interested in that topic to reach to us and we're going to connect you to one of our account managers who is going to be taking a look at your case and come to you with a quote or more information to me. Next question comes another from Anonymous and testing Qt, a boot to Qt on the MP157 and there were some frame drops, what could be the issue, maybe Philippe you can take that one. Yeah, we had an issue with the very last 6.5.1 with some performance or some visual artifacts we are debuting this so it will be corrected as soon as we can. So, yeah, let's see where we will fix the problem. I would encourage you to go to the community and to the SDMPU space and then the graphic space and then put in maybe more detailed what you're what the issue is and what you're experiencing and then we can maybe try and help you and also discover maybe some other things to optimize. Yeah, and this goes for everyone. Yeah. Another point, some of the polls were done. And we got a lot of answers from you and thank you very much for this. We also saw some of a lot of you are targeting 720p and 1080p. That's cool. And really a high resolution. So if you are targeting this kind of resolution I urge to encourage you to get in contact with your local SD representative for cute and then and then we can can disclose more information directly to you as a possible SD or already SD customer on the MP25 product. Okay, so maybe I have a question for you as well. What is for example the maximum resolution that I could run from the MP125 if I wanted to for example connect to some some larger screen. I did a bit about this earlier so it's not a one line question. So there are so many ingredients to defining what kind of resolution or any kind of UI you are able to do one on XY platform so if you take into consideration the resolution itself if you just have a white background is quite easy to draw. There are quite a lot of many. That's a rendering cycles or GPU features then it's quite fast and easy to do then you add some buttons and sliders and text, that's also fine. But once you start to do more, more animations requiring more GPU resources or CPU resources, scale rotation full screen updates and so forth. So it's less render time and less time to to do the update to the to the display. So it's always a trade off. So the MP135 for example could go much higher resolution than the 482 72 and 180. If you do a very static UI. But again, it's very dependent on what kind of you are you're doing. And I can also imagine you Bruno and Deepak you also have many customers where they have a platform and they develop the UI they have some performance issues because sometimes you do overshoot what the designers are aiming for and then you as an engineer needs to to figure it out how to solve it. So yeah. So it is not straightforward to do it. Okay, I mean, everything depends on the your use case. So the next question from Andre, maybe Deepak, do you want to take that on over. Yeah, definitely no issues. So the question is, whether there's an additional fee for using the cute bridge if you already have a commercial license. So basically depends on what kind of commercial license you have. There's a development portfolio where you can either have an application development professional or enterprise or device creation professional enterprise. So with all the different commercial offerings from cute what you get. It's a design studio professional, but this does not include the bridge. So if you want to use the bridge so there should be a separate purchase of design studio enterprise. Features like in the bridges for all the different applications and some external plugins as well. Yeah, so you can always talk to one of our managers we're going to describe a little bit more about that. That being the last question I would like to thank you for your attendance. And very happy to have you here. So feel free to reach to either of us when you're developing your next projects and new ideas, bringing it to the implementation, and we're going to be there to support you. Thank you very much and have a nice rest of the day. Bye.