Choosing an Embedded GUI: A Comparative Analysis of UI Frameworks Jeff Tranter jtranter@ics.com Integrated Computer Solutions (www.ics.com) December 12, 2024
Introducing ICS Powering Innovation for High-Impact Products
About ICS Established in 1987, Integrated Computer Solutions, Inc. (ICS) delivers innovative software solutions with a full suite of services to accelerate development of successful next-gen products. ICS is headquartered outside Boston in Waltham, Mass. with offices in California, Canada and Europe. Currently 160 people.
● Many GUI frameworks and toolkits available for embedded systems. ● Vary widely (functionality, cost, platforms supported, programming languages, etc.) ● Selection can be critical to your project (development cost, time to market, performance, reliability, etc.) ● No single best choice; all have pros and cons and trade-offs Introduction 4
● In this talk will discuss the key features of embedded GUI frameworks. ● Define just what is meant by an embedded GUI framework or toolkit. ● Discuss considerations for deciding which one is the best fit for your project. ● Compare a number of popular GUI toolkits and their characteristics. Hopefully, you will find this helpful in making the right decision for your project! Introduction 5
● Jeff Tranter, Consultant and Consulting Manager at Integrated Computer Solutions (www.ics.com) ● ICS offers software development, UX design, device cybersecurity, cloud, and regulatory services for high-performance industries, including medical, transportation, manufacturing, aerospace and defense, and IoT. Who Am I? 6
What is a GUI Toolkit or Framework? Toolkit Versus Framework? What Makes a GUI Framework Suitable for Embedded Systems? Why is it Important to Select a Suitable Framework? Criteria for Selecting Toolkits for Comparison Overview of Each Toolkit Comparison Table Strategies for Selecting a Toolkit Considerations for Safety-Critical and Regulated Devices Licensing Cybersecurity Outline 7
● Software that supports developing graphical user interfaces. ● Typically today this is an LCD display with touchscreen, keyboard, hardware keys, or mouse. ● Usually implemented as one or more software libraries. ● May include additional support tools like GUI builder, IDE, test and debug tools, etc. What is a GUI Toolkit or Framework? 8
● A toolkit typically just provides facilities for developing user interfaces. ● A framework can provide additional support for non-GUI facilities (file i/o, containers, string support, math functions, threads, networking, etc.). ● A cross-platform framework can allow your application to be portable across multiple platforms. ● No clear dividing line between the two (sometimes more product marketing). Toolkit Versus Framework 9
● A simple definition of an embedded system is a dedicated device that performs a single function. ● Range of embedded systems today varies widely from $1 microcontrollers to very expensive multi-core servers with specialized hardware. ● Toolkit/framework features that are desirable for embedded systems: ○ Support the specific hardware platform (e.g. cross-compiled for CPU, support for rendering to display). ○ Support the chosen operating system (e.g. embedded OS, RTOS, bare metal). ○ Often desire "pixel perfect" touchscreen interface rather than using standard UI components from the OS. ○ Optimize performance of hardware (compiled language, leverage multiple CPU cores, GPU). ○ High level of reliability. What Makes a GUI Framework Suitable For Embedded Systems? 10
● Impact on time to market (learning curve, developer productivity). ● Impact on product cost (licensing cost of tools and run-time). ● Impact on product reliability. ● Impact on ability to support software over your product's lifetime. Why Is It Important To Select A Suitable Framework? 11
For purposes of this talk, selected toolkits that: ● Run on multiple embedded platforms. ● Support native/compiled development (e.g. C, C++). ● Actively being maintained. ● Open Source/free or commercial/proprietary. Criteria For Selecting Toolkits For Comparison 12
For each toolkit I summarize it in these areas: ● Name ● Latest Version ● Vendor ● Web Site ● Platforms Supported ● Programming Languages Supported ● License Model ● Cost ● Key Features ● Pros Overview Of Each Toolkit 13
Name: Crank Storyboard Latest Version: 8.1 Vendor: Crank Software Inc. (division of AMETEK) Web Site: https://www.cranksoftware.com Platforms Supported: Linux, Windows, Android, FreeRTOS, iOS, bare metal. GUI demo images for a number of hardware platforms (NXP, ST, TI, Toradex, Boundary Devices, etc.) Programming Languages Supported: Lua or JavaScript. Optional C API for hardware backend. License Model: Commercial with free trial version, dev licenses, run-time. Subscription and perpetual license models. Cost: Need to request quote Key Features: GUI builder that supports flow, events, properties, animation effects. Can import UX designs from tools like Figma, PhotoShop, Sketch. Simulator. GUI executes under a run-time engine. Pros: GUI builder and run-time minimize amount of coding needed. Support for MCUs. Commercially supported. Supported by a number of hardware vendors. Cons: License cost. Requirement to use scripting language (Lua). GUI toolkit only. Crank Storyboard 14
Name: Dear ImGui Latest Version: 1.91.5 (or git) Vendor: n/a Web Site: https://www.dearimgui.com or https://github.com/ocornut/imgui Platforms Supported: Platforms that support DirectX, Metal, OpenGL, or Vulkan. Programming Languages Supported: C++ (other language bindings available) License Model: Open Source (MIT license) Cost: Free Key Features: Optimized for GPU rendering and visualization. Pros: Lightweight. Leverages GPU for rendering. Cons: Relies on GPU. Small development team. Incomplete documentation. GUI toolkit only. Comments: Primary use cases are games and other applications with a GPU and 3D pipeline. Dear ImGui 15
Name: Embedded Wizard Latest Version: V13 Vendor: TARA Systems Web Site: https://www.embedded-wizard.de Platforms Supported: Bare Metal and OS independent (tools generate platform package specific to chipset). Programming Languages Supported: Chora. Tools generate C or JavaScript. License Model: Commercial and Free Editions. Developer and run-time license. Cost: Free/evaluation: €0, Professional (IDE plus platform): €8,300 per year, Small Business: €2,990. Key Features: Embedded Wizard Studio WYSIWYG IDE. Pros: Suitable for microcontrollers. Embedded Wizard 16
Name: emWin Latest Version: 6.46 Vendor: SEGGER Microcontroller Web Site: https://www.segger.com/products/user-interface/emwin Platforms Supported: Many MCUs. RTOS and bare metal. Programming Languages Supported: C, C++. License Model: Commercial. Cost: Need to request quote ($3,000 to $15,000 per developer) Key Features: GUI creation tool (AppWizard), 2D graphics, Fonts, Bitmaps, Widgets, Window Manager, Animations. Pros: Commercially supported. AppWizard GUI builder. Cons: Cost. Not a full cross-platform framework. emWin 17
Name: Fast Light Toolkit (FLTK) Latest Version: 1.4.0 Vendor: n/a Web Site: https://www.fltk.org Platforms Supported: Linux/X11/Wayland, macOS, Windows Programming Languages Supported: C++ (other bindings available) License Model: Open Source (GNU LGPLV2 with static linking exception) Cost: Free Key Features: Open source widget-based UI toolkit. 3D support. Pros: Small, lightweight. Limited use of advanced C++ features. Includes a GUI designer. Cons: Few widgets supplied. Non-native look and feel. UI toolkit only. Fast Light Toolkit (FLTK) 18
Name: Flutter Latest Version: 3.24.0 Vendor: Google Web Site: http://flutter.dev Platforms Supported: Android, iOS, Google Fuchsia, Web, Linux, macOS, Windows Programming Languages Supported: Dart License Model: Open Source (New BSD license) Cost: Free Key Features: Open source cross-platform toolkit supporting mobile, web, desktop, embedded platforms. Pros: Free. Widely used. Widgets styled for Android (Material Design) and iOS (Cupertino). Some cross- platform support via Dart Foundation library. Cons: Uses Dart language. Not commercially supported. Requires an OS. Not suitable for MCUs. Flutter 19
Name: LVGL (Light and Versatile Graphics Library) Latest Version: v9.2.3 (or git) Vendor: LVGL Web Site: https://lvgl.io Platforms Supported: Most MCUs and MPUs. Not dependent on OS. Programming Languages Supported: C. Bindings available for MicroPython, C++, and others. License Model: Open source (MIT license) Cost: Free Key Features: Provides standard widgets, rendering engine, styling, layouts, transformations. Pros: Free. Supports MCUs. Cons: UI toolkit only. No GUI builder. Not commercially supported. LVGL 20
Name: MicroEJ MicroUI Latest Version: 14.2.0 Vendor: MicroEJ Web Site: http://microej.com Platforms Supported: Many commercial boards/SOMs/MCUs. MPUs are directly supported. Programming Languages Supported: C, Java, JavaScript, Kotlin. License Model: Commercial. SDK uses license manager tied to machine ID or hardware dongle. Cost: Need to request quote. Key Features: 2D graphics, I18N, test, hardware events, MVC architecture, font engine. IDE support. Pros: Large number of tools and utilities. Cons: Cost. Large and complex. Mostly aimed at Java. MicroEJ 21
Name: Qt Latest Version: 6.8.1 Vendor: The Qt Company Web Site: https://www.qt.io Platforms Supported: Desktop, Mobile, Embedded Programming Languages Supported: C++ (other language bindings available) License Model: Commercial and Open Source Cost: Varies (starts at about $4,000 per year for a developer license) Key Features: Cross-platform UI framework suitable for desktop and embedded. Pros: Full cross-platform framework. Reliable and well-documented. Cons: Cost. Requires adequate C++ knowledge. Proprietary QML language. Learning curve due to large number of classes provided. Different version (Qt for MCUs) for microcontrollers. Qt 22
Name: Simple DirectMedia Layer (SDL) Latest Version: 2.30.9 Vendor: n/a Web Site: https://www.libsdl.org Platforms Supported: Linux, Windows, macOS/iOS, Android. Programming Languages Supported: C (other language bindings available) License Model: Open Source (zlib license) Cost: Free Key Features: Cross-platform library for video, audio, input devices, threads, networking, timers. Pros: Free. Simple API. Cons: Not a full cross-platform framework. No commercial support. Simple DirectMedia Layer (SDL) 23
Name: Scalable, Lightweight, Intuitive, and Native Toolkit (SLINT) Latest Version: v1.8 Vendor: SixtyFPS Web Site: https://slint-ui.com Platforms Supported: Embedded Linux on ARM, some MCUs. Desktop (Windows, Linux, Mac) in progress. Programming Languages Supported: C++, Rust, JavaScript License Model: Commercial or Open Source (GNU GPLV3) Cost: Free/EUR 59 per month/EUR 5900 per month depending on plan. Key Features: Similar to Qt, but implemented in Rust. Pros: Alternative to commercial Qt for implementing UIs. Supports multiple platforms. Scales from MCUs to desktops. Similar markup language to QML. SLINT 24
Name: TouchGFX Latest Version: 4.24.1 Vendor: STMicroelectronics Web Site: https://www.st.com/en/embedded-software/x-cube-touchgfx.html Platforms Supported: STM32 Microcontrollers Programming Languages Supported: C, C++ License Model: Proprietary Cost: Free Key Features: GUI designer, predefined widgets, animations. Runs on RTOS or bare metal. Pros: Free. Supported by STMicroelectronics. Cons: Supported on STM32 platforms only. Source code not available. TouchGFX 25
Name: Unity Latest Version: 6000.0.28f1 Vendor: Unity Technologies Web Site: https://unity.com Platforms Supported: Mobile (iOS, Android), Desktop (Windows, Mac, Linux)K, Web (WebGL) and various game and VR platforms. Programming Languages Supported: C# License Model: Free and paid versions. Cost: Varies by version. Key Features: Cross-platform 2D and 3D UX support. Pros: Free (depending on use). Widely used. Cons: Supports C# only. Unity 26
Name: wxWidgets Latest Version: 3.2.6 Vendor: n/a Web Site: https://wxwidgets.org Platforms Supported: Windows, macOS, iOS, Linux. Programming Languages Supported: C++ (other language bindings available) License Model: wxWindows license (similar to LGPL) Cost: Free Key Features: Open source cross-platform widget-based GUI library. Pros: Cost. Stable. Cons: Aimed more at desktop/mouse-driven UIs. wxWidgets 27
Comparison Table 28 Name Type Commercial? Open Source? Suitable for MCUs? Primary Language Crank Toolkit Y N Y Lua Dear ImGui Toolkit N Y N C++ Embedded Wizard Toolkit Y N Y Chora emWin Toolkit Y N Y C, C++ FLTK Toolkit N Y N C++ Flutter Toolkit N Y N Dart LVGL Toolkit N Y Y C
Comparison Table (continued) 29 Name Type Commercial? Open Source? Suitable for MCUs? Primary Language MicroEJ Toolkit Y N N Java Qt Framework Y Y Y C++ SDL Toolkit N Y N C SLINT Toolkit Y Y Y Rust TouchGFX Toolkit Y N Y C, C++ Unity Toolkit Y N N C# wxWidgets Toolkit N Y N C
These were omitted from the list but might be worth looking at: ● CEGUI (https://cegui.org.uk) ● GTK/gtkmm (https://gtk.org) ● CopperSpice (https://www.copperspice.com) ● FELGO (https://felgo.com) ● GLUI (https://github.com/libglui/glui) ● neoGFX (https://neogfx.org) ● Tcl/Tk (https://www.tcl.tk) ● TkInter (https://wiki.python.org/moin/TkInter) ● GL Studio (https://disti.com/gl-studio/) Other Toolkits Not Evaluated 30
Suggest this criteria for narrowing down the list of options: ● Are you looking for a toolkit or a cross-platform framework? ● Does it support for your hardware and OS platform? ● Does it support your preferred programming language? ● Does it meet your cost target? ● Performance. ● Stability. ● Overall vendor support. Strategies For Selecting A Toolkit 31
● Medical. ● In-vehicle. ● Cybersecurity. Considerations for Safety-Critical and Regulated Devices 32
● You should review licensing, particularly if using software under an open source/free software license. ● This includes third-party software that may be pulled in as a dependency. ● Subtle differences between GPL, LGPL, and versions of each license. Particularly difficult to comply on embedded systems. ● May also be restrictions on developer and run-time licenses. Licensing 33
● Increasingly important (witness a number of recent incidents of outages and data breaches). ● Regulatory agencies like the FDA are now requiring a Cybersecurity plan for medical devices. ● Increasingly important even for consumer products. ● Movement toward memory-safe languages such as Rust. Cybersecurity 34
● May drive UI changes in the future. ● Hardware support for LLM, speech recognition, machine vision. AI And Machine Learning 35
● Many UI toolkits to choose from. ● All have their pros and cons. ● Making a suitable choice is critical to the success of your project. ● By evaluating some criteria you can limit the number of options. Summary 36
1. https://www.ics.com/blog/comparison-ui-frameworks 2. https://www.ics.com/blog/choosing-gui-framework-your-microcontroller References 37
Questions and Answers 38

Choosing an Embedded GUI: Comparative Analysis of UI Frameworks

  • 1.
    Choosing an Embedded GUI: AComparative Analysis of UI Frameworks Jeff Tranter jtranter@ics.com Integrated Computer Solutions (www.ics.com) December 12, 2024
  • 2.
    Introducing ICS Powering Innovationfor High-Impact Products
  • 3.
    About ICS Established in1987, Integrated Computer Solutions, Inc. (ICS) delivers innovative software solutions with a full suite of services to accelerate development of successful next-gen products. ICS is headquartered outside Boston in Waltham, Mass. with offices in California, Canada and Europe. Currently 160 people.
  • 4.
    ● Many GUIframeworks and toolkits available for embedded systems. ● Vary widely (functionality, cost, platforms supported, programming languages, etc.) ● Selection can be critical to your project (development cost, time to market, performance, reliability, etc.) ● No single best choice; all have pros and cons and trade-offs Introduction 4
  • 5.
    ● In thistalk will discuss the key features of embedded GUI frameworks. ● Define just what is meant by an embedded GUI framework or toolkit. ● Discuss considerations for deciding which one is the best fit for your project. ● Compare a number of popular GUI toolkits and their characteristics. Hopefully, you will find this helpful in making the right decision for your project! Introduction 5
  • 6.
    ● Jeff Tranter,Consultant and Consulting Manager at Integrated Computer Solutions (www.ics.com) ● ICS offers software development, UX design, device cybersecurity, cloud, and regulatory services for high-performance industries, including medical, transportation, manufacturing, aerospace and defense, and IoT. Who Am I? 6
  • 7.
    What is aGUI Toolkit or Framework? Toolkit Versus Framework? What Makes a GUI Framework Suitable for Embedded Systems? Why is it Important to Select a Suitable Framework? Criteria for Selecting Toolkits for Comparison Overview of Each Toolkit Comparison Table Strategies for Selecting a Toolkit Considerations for Safety-Critical and Regulated Devices Licensing Cybersecurity Outline 7
  • 8.
    ● Software thatsupports developing graphical user interfaces. ● Typically today this is an LCD display with touchscreen, keyboard, hardware keys, or mouse. ● Usually implemented as one or more software libraries. ● May include additional support tools like GUI builder, IDE, test and debug tools, etc. What is a GUI Toolkit or Framework? 8
  • 9.
    ● A toolkittypically just provides facilities for developing user interfaces. ● A framework can provide additional support for non-GUI facilities (file i/o, containers, string support, math functions, threads, networking, etc.). ● A cross-platform framework can allow your application to be portable across multiple platforms. ● No clear dividing line between the two (sometimes more product marketing). Toolkit Versus Framework 9
  • 10.
    ● A simpledefinition of an embedded system is a dedicated device that performs a single function. ● Range of embedded systems today varies widely from $1 microcontrollers to very expensive multi-core servers with specialized hardware. ● Toolkit/framework features that are desirable for embedded systems: ○ Support the specific hardware platform (e.g. cross-compiled for CPU, support for rendering to display). ○ Support the chosen operating system (e.g. embedded OS, RTOS, bare metal). ○ Often desire "pixel perfect" touchscreen interface rather than using standard UI components from the OS. ○ Optimize performance of hardware (compiled language, leverage multiple CPU cores, GPU). ○ High level of reliability. What Makes a GUI Framework Suitable For Embedded Systems? 10
  • 11.
    ● Impact ontime to market (learning curve, developer productivity). ● Impact on product cost (licensing cost of tools and run-time). ● Impact on product reliability. ● Impact on ability to support software over your product's lifetime. Why Is It Important To Select A Suitable Framework? 11
  • 12.
    For purposes ofthis talk, selected toolkits that: ● Run on multiple embedded platforms. ● Support native/compiled development (e.g. C, C++). ● Actively being maintained. ● Open Source/free or commercial/proprietary. Criteria For Selecting Toolkits For Comparison 12
  • 13.
    For each toolkitI summarize it in these areas: ● Name ● Latest Version ● Vendor ● Web Site ● Platforms Supported ● Programming Languages Supported ● License Model ● Cost ● Key Features ● Pros Overview Of Each Toolkit 13
  • 14.
    Name: Crank Storyboard LatestVersion: 8.1 Vendor: Crank Software Inc. (division of AMETEK) Web Site: https://www.cranksoftware.com Platforms Supported: Linux, Windows, Android, FreeRTOS, iOS, bare metal. GUI demo images for a number of hardware platforms (NXP, ST, TI, Toradex, Boundary Devices, etc.) Programming Languages Supported: Lua or JavaScript. Optional C API for hardware backend. License Model: Commercial with free trial version, dev licenses, run-time. Subscription and perpetual license models. Cost: Need to request quote Key Features: GUI builder that supports flow, events, properties, animation effects. Can import UX designs from tools like Figma, PhotoShop, Sketch. Simulator. GUI executes under a run-time engine. Pros: GUI builder and run-time minimize amount of coding needed. Support for MCUs. Commercially supported. Supported by a number of hardware vendors. Cons: License cost. Requirement to use scripting language (Lua). GUI toolkit only. Crank Storyboard 14
  • 15.
    Name: Dear ImGui LatestVersion: 1.91.5 (or git) Vendor: n/a Web Site: https://www.dearimgui.com or https://github.com/ocornut/imgui Platforms Supported: Platforms that support DirectX, Metal, OpenGL, or Vulkan. Programming Languages Supported: C++ (other language bindings available) License Model: Open Source (MIT license) Cost: Free Key Features: Optimized for GPU rendering and visualization. Pros: Lightweight. Leverages GPU for rendering. Cons: Relies on GPU. Small development team. Incomplete documentation. GUI toolkit only. Comments: Primary use cases are games and other applications with a GPU and 3D pipeline. Dear ImGui 15
  • 16.
    Name: Embedded Wizard LatestVersion: V13 Vendor: TARA Systems Web Site: https://www.embedded-wizard.de Platforms Supported: Bare Metal and OS independent (tools generate platform package specific to chipset). Programming Languages Supported: Chora. Tools generate C or JavaScript. License Model: Commercial and Free Editions. Developer and run-time license. Cost: Free/evaluation: €0, Professional (IDE plus platform): €8,300 per year, Small Business: €2,990. Key Features: Embedded Wizard Studio WYSIWYG IDE. Pros: Suitable for microcontrollers. Embedded Wizard 16
  • 17.
    Name: emWin Latest Version:6.46 Vendor: SEGGER Microcontroller Web Site: https://www.segger.com/products/user-interface/emwin Platforms Supported: Many MCUs. RTOS and bare metal. Programming Languages Supported: C, C++. License Model: Commercial. Cost: Need to request quote ($3,000 to $15,000 per developer) Key Features: GUI creation tool (AppWizard), 2D graphics, Fonts, Bitmaps, Widgets, Window Manager, Animations. Pros: Commercially supported. AppWizard GUI builder. Cons: Cost. Not a full cross-platform framework. emWin 17
  • 18.
    Name: Fast LightToolkit (FLTK) Latest Version: 1.4.0 Vendor: n/a Web Site: https://www.fltk.org Platforms Supported: Linux/X11/Wayland, macOS, Windows Programming Languages Supported: C++ (other bindings available) License Model: Open Source (GNU LGPLV2 with static linking exception) Cost: Free Key Features: Open source widget-based UI toolkit. 3D support. Pros: Small, lightweight. Limited use of advanced C++ features. Includes a GUI designer. Cons: Few widgets supplied. Non-native look and feel. UI toolkit only. Fast Light Toolkit (FLTK) 18
  • 19.
    Name: Flutter Latest Version:3.24.0 Vendor: Google Web Site: http://flutter.dev Platforms Supported: Android, iOS, Google Fuchsia, Web, Linux, macOS, Windows Programming Languages Supported: Dart License Model: Open Source (New BSD license) Cost: Free Key Features: Open source cross-platform toolkit supporting mobile, web, desktop, embedded platforms. Pros: Free. Widely used. Widgets styled for Android (Material Design) and iOS (Cupertino). Some cross- platform support via Dart Foundation library. Cons: Uses Dart language. Not commercially supported. Requires an OS. Not suitable for MCUs. Flutter 19
  • 20.
    Name: LVGL (Lightand Versatile Graphics Library) Latest Version: v9.2.3 (or git) Vendor: LVGL Web Site: https://lvgl.io Platforms Supported: Most MCUs and MPUs. Not dependent on OS. Programming Languages Supported: C. Bindings available for MicroPython, C++, and others. License Model: Open source (MIT license) Cost: Free Key Features: Provides standard widgets, rendering engine, styling, layouts, transformations. Pros: Free. Supports MCUs. Cons: UI toolkit only. No GUI builder. Not commercially supported. LVGL 20
  • 21.
    Name: MicroEJ MicroUI LatestVersion: 14.2.0 Vendor: MicroEJ Web Site: http://microej.com Platforms Supported: Many commercial boards/SOMs/MCUs. MPUs are directly supported. Programming Languages Supported: C, Java, JavaScript, Kotlin. License Model: Commercial. SDK uses license manager tied to machine ID or hardware dongle. Cost: Need to request quote. Key Features: 2D graphics, I18N, test, hardware events, MVC architecture, font engine. IDE support. Pros: Large number of tools and utilities. Cons: Cost. Large and complex. Mostly aimed at Java. MicroEJ 21
  • 22.
    Name: Qt Latest Version:6.8.1 Vendor: The Qt Company Web Site: https://www.qt.io Platforms Supported: Desktop, Mobile, Embedded Programming Languages Supported: C++ (other language bindings available) License Model: Commercial and Open Source Cost: Varies (starts at about $4,000 per year for a developer license) Key Features: Cross-platform UI framework suitable for desktop and embedded. Pros: Full cross-platform framework. Reliable and well-documented. Cons: Cost. Requires adequate C++ knowledge. Proprietary QML language. Learning curve due to large number of classes provided. Different version (Qt for MCUs) for microcontrollers. Qt 22
  • 23.
    Name: Simple DirectMediaLayer (SDL) Latest Version: 2.30.9 Vendor: n/a Web Site: https://www.libsdl.org Platforms Supported: Linux, Windows, macOS/iOS, Android. Programming Languages Supported: C (other language bindings available) License Model: Open Source (zlib license) Cost: Free Key Features: Cross-platform library for video, audio, input devices, threads, networking, timers. Pros: Free. Simple API. Cons: Not a full cross-platform framework. No commercial support. Simple DirectMedia Layer (SDL) 23
  • 24.
    Name: Scalable, Lightweight,Intuitive, and Native Toolkit (SLINT) Latest Version: v1.8 Vendor: SixtyFPS Web Site: https://slint-ui.com Platforms Supported: Embedded Linux on ARM, some MCUs. Desktop (Windows, Linux, Mac) in progress. Programming Languages Supported: C++, Rust, JavaScript License Model: Commercial or Open Source (GNU GPLV3) Cost: Free/EUR 59 per month/EUR 5900 per month depending on plan. Key Features: Similar to Qt, but implemented in Rust. Pros: Alternative to commercial Qt for implementing UIs. Supports multiple platforms. Scales from MCUs to desktops. Similar markup language to QML. SLINT 24
  • 25.
    Name: TouchGFX Latest Version:4.24.1 Vendor: STMicroelectronics Web Site: https://www.st.com/en/embedded-software/x-cube-touchgfx.html Platforms Supported: STM32 Microcontrollers Programming Languages Supported: C, C++ License Model: Proprietary Cost: Free Key Features: GUI designer, predefined widgets, animations. Runs on RTOS or bare metal. Pros: Free. Supported by STMicroelectronics. Cons: Supported on STM32 platforms only. Source code not available. TouchGFX 25
  • 26.
    Name: Unity Latest Version:6000.0.28f1 Vendor: Unity Technologies Web Site: https://unity.com Platforms Supported: Mobile (iOS, Android), Desktop (Windows, Mac, Linux)K, Web (WebGL) and various game and VR platforms. Programming Languages Supported: C# License Model: Free and paid versions. Cost: Varies by version. Key Features: Cross-platform 2D and 3D UX support. Pros: Free (depending on use). Widely used. Cons: Supports C# only. Unity 26
  • 27.
    Name: wxWidgets Latest Version:3.2.6 Vendor: n/a Web Site: https://wxwidgets.org Platforms Supported: Windows, macOS, iOS, Linux. Programming Languages Supported: C++ (other language bindings available) License Model: wxWindows license (similar to LGPL) Cost: Free Key Features: Open source cross-platform widget-based GUI library. Pros: Cost. Stable. Cons: Aimed more at desktop/mouse-driven UIs. wxWidgets 27
  • 28.
    Comparison Table 28 Name TypeCommercial? Open Source? Suitable for MCUs? Primary Language Crank Toolkit Y N Y Lua Dear ImGui Toolkit N Y N C++ Embedded Wizard Toolkit Y N Y Chora emWin Toolkit Y N Y C, C++ FLTK Toolkit N Y N C++ Flutter Toolkit N Y N Dart LVGL Toolkit N Y Y C
  • 29.
    Comparison Table (continued) 29 NameType Commercial? Open Source? Suitable for MCUs? Primary Language MicroEJ Toolkit Y N N Java Qt Framework Y Y Y C++ SDL Toolkit N Y N C SLINT Toolkit Y Y Y Rust TouchGFX Toolkit Y N Y C, C++ Unity Toolkit Y N N C# wxWidgets Toolkit N Y N C
  • 30.
    These were omittedfrom the list but might be worth looking at: ● CEGUI (https://cegui.org.uk) ● GTK/gtkmm (https://gtk.org) ● CopperSpice (https://www.copperspice.com) ● FELGO (https://felgo.com) ● GLUI (https://github.com/libglui/glui) ● neoGFX (https://neogfx.org) ● Tcl/Tk (https://www.tcl.tk) ● TkInter (https://wiki.python.org/moin/TkInter) ● GL Studio (https://disti.com/gl-studio/) Other Toolkits Not Evaluated 30
  • 31.
    Suggest this criteriafor narrowing down the list of options: ● Are you looking for a toolkit or a cross-platform framework? ● Does it support for your hardware and OS platform? ● Does it support your preferred programming language? ● Does it meet your cost target? ● Performance. ● Stability. ● Overall vendor support. Strategies For Selecting A Toolkit 31
  • 32.
    ● Medical. ● In-vehicle. ●Cybersecurity. Considerations for Safety-Critical and Regulated Devices 32
  • 33.
    ● You shouldreview licensing, particularly if using software under an open source/free software license. ● This includes third-party software that may be pulled in as a dependency. ● Subtle differences between GPL, LGPL, and versions of each license. Particularly difficult to comply on embedded systems. ● May also be restrictions on developer and run-time licenses. Licensing 33
  • 34.
    ● Increasingly important(witness a number of recent incidents of outages and data breaches). ● Regulatory agencies like the FDA are now requiring a Cybersecurity plan for medical devices. ● Increasingly important even for consumer products. ● Movement toward memory-safe languages such as Rust. Cybersecurity 34
  • 35.
    ● May driveUI changes in the future. ● Hardware support for LLM, speech recognition, machine vision. AI And Machine Learning 35
  • 36.
    ● Many UItoolkits to choose from. ● All have their pros and cons. ● Making a suitable choice is critical to the success of your project. ● By evaluating some criteria you can limit the number of options. Summary 36
  • 37.
  • 38.