embOS-MPU

embOS-MPU uses the hardware's memory protection unit as well as additional software mechanisms implemented with embOS-MPU to prevent one task from affecting the entirety of the system. This guarantees that even in case a bug occurs in one task, all other tasks and the operating system itself continue execution.

emCrypt

emLib

Internet of Things

Secure, connected, embedded devices build with SEGGER solutions

Software IP components from SEGGER such as emSSL, emSSH, emSecure Crypto libraries, HTTP Web server, and embOS/IP to name a few, can be used as foundations for your securely, connected IoT device. Our software works on any MCU.

Flasher ST7

Flasher ATE

Flasher ATE is an in-circuit-programmer for high volume mass production. The interfaces to start and monitor the programming tasks have been designed with the implementer of the production system in mind.

The professional embedded GUI emWin enables the creation of highly efficient, and high quality graphical user interfaces on any embedded system. emWin empowers even resource-constrained microcontroller-based systems to run stunning interactive interfaces. emWin is independent from any target, and display — It Simply Works!

emWin, the embedded GUI solution, is compatible with single-task and multitask environments with a proprietary operating system or with any commercial RTOS such as embOS. The GUI is shipped as "C" source code. emWin can be adapted to any size, either physical or virtual display, not dependent of the display controller and target CPU. Making it a professional GUI for the embedded market, usable for multiple different scenarios.

Reliability

SEGGERs GUI emWin is deployed in a huge number of mass market devices. It is considered the industry standard for user interface and graphic software in the embedded industry.

Efficiency

emWin is a high-performance graphics package that has been optimized for minimum memory consumption in both, RAM and ROM, as well as high speed, and versatility. Making it a state-of-the-art solution for GUIs.

Availability

emWin supports virtually any display and display controller. The GUI can use any type of display controller. If a controller is not yet supported, please contact us to create a working solution for your needs.

Output Quality

The embedded GUI solution emWin provides high quality graphic functions that create the highest level of detail as required by the application.

Resources

One GUI Solution for all Applications

emWin can be used in any application from battery-powered single chip products with basic graphic needs, to high-end embedded systems demanding ultra-high performance, and sophisticated animations. emWin, the professional GUI by SEGGER is used in many different target markets such as industrial controls, internet of things (IoT), networking, consumer electronics, safety critical devices, automotive, medical devices, and avionics, making it a state-of-the-art GUI solution in the embedded industry.

Industrial Controls

emWin is an essential component of every industrial control.

Smart Home/ Internet of Things

emWin is designed for ultra low power consumption and can be used in any battery-powered application.

Home Appliances

emWin is the first choice for major white goods companies.

Consumer Electronics

emWin is the first choice for any consumer electronics device. Consumer electronics include devices used for entertainment or communications.

Safety Critical Devices

emWin provides the user-interface for access control and any other safety critical device.

Automotive

emWin is the perfect graphics package for dashboard applications.

Medical Devices

emWin is the perfect solution to display health data.

Avionics

Engineers building aerospace systems know that they can rely on emWin for their graphical needs.

Getting Started

Adding emWin to the Target Program

You basically have a choice between including only the source files that you are actually going to use in your project, which will then be compiled and linked, or creating a library and linking the library file. If your tool chain supports "smart" linking (linking in only the modules that are referenced and not those that are not referenced), there is no real need to create a library at all, since only the functions and data structures which are required, will be linked. If your tool chain does not support "smart" linking, a library makes sense, because otherwise everything will be linked and the program size will be excessively large. For some CPUs we have example projects available to help you get started.

Generally speaking, you need to include the core C files of emWin, the display driver, all font files you plan to use, and any optional modules you have ordered with emWin.

Configuration

Before emWin can be used on a target system, the software needs to be configured. Configuring means, modifying the configuration files which usually reside in the configuration sub directory. We try to keep the configuration as simple as possible, but there are some configuration routines which need to be modified in order for the system to work properly.

The following items need to be configured: 

Memory area to be used by emWin 

Display driver to be used for drawing operations 

Color conversion routines to be used 

Display controller initialization 

Hardware acceleration

Writing Applications

emWin comes with an extensive collection of samples and tutorials which could be easily used as starting point. To get something on the display the typical 'Hello World' application looks as follows:

A: All requested elements are supported by emWin and provided as so-called widgets. For more information please visit the emWin Widgets page.

Is it possible to design my own widgets with emWin?

A: Yes! You can freely determine and design widgets and windows by overwriting the callback feature or setting an owner-draw feature. Please visit the emWin Samples page for more information.

I want to apply a capacitive touch. We want to address the given touch control unit directly. Is this supported by emWin?

A: Yes capacitive touch is supported by emWin. You just need to transfer the data to emWin which you get from the touch controller. These are typically x- and y- coordinates and the ID. The processing of the data will be handled by emWin automatically. Additionally emWin offers the option to calibrate the touch controller.