emWin Graphics Library and GUI for PSOC™

emWin is an embedded graphic library and graphical user interface (GUI) framework

nobutton

About

emWin is an embedded graphic library and graphical user interface (GUI) framework. It provides an efficient, processor- and display-controller-independent graphics platform for applications that need a display. Examples include home appliances as well as automotive, IoT, and industrial applications. emWin is compatible with single-task and multitask environments. Developed by SEGGER Microcontroller, emWin is extremely popular in the embedded industry. CYPRESS™ has licensed the emWin library from SEGGER and offers it free to PSoC™ customers.

emWin can be used with PSoC™ 3, PSoC™ 4, PSoC™ 5LP, and PSoC™ 6 MCUs.

The block diagram below (in Image gallery - img 2) shows the high-level details of how emWin integrates into an application.

emWin Library has two parts, the GUI framework and the display drivers. The GUI framework has functions like displaying text, bitmap images, widgets and drawing 2D graphics (lines, rectangles, circles etc). The display drivers interface with different types of display controllers. Peripheral drivers are the hardware interface to the display like SPI, UART, parallel interface, etc. The application layer implements Port API functions that control the hardware interface and perform operations like command write, single byte data write, multiple byte data writes, etc. The emWin display driver uses these functions to communicate with the display. The application layer allocates display memory that is used by the display driver. The application layer uses the functions provided by the emWin GUI framework to perform graphic operations on the display.

The block diagram below (in Image gallery - img 3) shows the emWin design flow. Some of these steps may be optional depending on the device family and design platform.

  1. Select emWin core: emWin supports various combinations of OS and Touch support. The method to select the option for different platforms can be found in the respective Getting Started documentation.
  2. Select display driver: The list of display drivers and display controllers supported by these drivers can be found in the emWin user guide. From the user guide, select the display driver.
  3. Copy library and configuration files: Depending on the selected core option and display driver, copy the relevant files into the project.
  4. Port APIs and display configuration: Write Port API functions to communicate with the display and update emWin’s Port access functions with pointer to these functions. Configure display parameters like number of pixels, orientation, color profile, number of bits per pixel etc. in emWin’s configuration file.
  5. Application code: In application code, call emWin’s graphic functions to draw graphics.
  1. Bitmap Converter: The Bitmap Converter converts common image file formats like BMP, PNG or GIF into the desired emWin bitmap format. That can be a C file that can be compiled and linked with the project, or a binary format that can be loaded at runtime. Simply load an image into the application. Convert the color format if necessary and save it in the appropriate format.
  2. emWinView: The emWin viewer allows viewing the display output while stepping through (debugging) the simulation. The display output normally could not be seen while stepping through code. When the debug thread is halted, all other threads of the process are also halted. This includes the thread that outputs the simulated display on the screen.
  3. GUIBuilder: The GUIBuilder application is a tool for creating dialogs. Instead of writing source code the widgets can be placed and sized by drag and drop. Additional properties can be added by context menu. Fine tuning can be done by editing the properties of the widgets. This does not require any knowledge of the C programming language. The dialogs can be saved as C files which can be enhanced by adding user defined code.

AppWizard is a desktop application for creating complete, ready-to-run applications for use with the emWin embedded graphics library.  AppWizard features an intuitive “What You See is What You Get” (WYSIWYG) editor and provides its own built-in resource management capabilities. It facilitates the use of all of emWin's core functions, such as the rendering of animations, language management, widgets, etc.

AppWizard is available for download from the online Infineon Develop Center for use with PSoC devices,LIN

emWin is an embedded graphic library and graphical user interface (GUI) framework. It provides an efficient, processor- and display-controller-independent graphics platform for applications that need a display. Examples include home appliances as well as automotive, IoT, and industrial applications. emWin is compatible with single-task and multitask environments. Developed by SEGGER Microcontroller, emWin is extremely popular in the embedded industry. CYPRESS™ has licensed the emWin library from SEGGER and offers it free to PSoC™ customers.

emWin can be used with PSoC™ 3, PSoC™ 4, PSoC™ 5LP, and PSoC™ 6 MCUs.

The block diagram below (in Image gallery - img 2) shows the high-level details of how emWin integrates into an application.

emWin Library has two parts, the GUI framework and the display drivers. The GUI framework has functions like displaying text, bitmap images, widgets and drawing 2D graphics (lines, rectangles, circles etc). The display drivers interface with different types of display controllers. Peripheral drivers are the hardware interface to the display like SPI, UART, parallel interface, etc. The application layer implements Port API functions that control the hardware interface and perform operations like command write, single byte data write, multiple byte data writes, etc. The emWin display driver uses these functions to communicate with the display. The application layer allocates display memory that is used by the display driver. The application layer uses the functions provided by the emWin GUI framework to perform graphic operations on the display.

The block diagram below (in Image gallery - img 3) shows the emWin design flow. Some of these steps may be optional depending on the device family and design platform.

  1. Select emWin core: emWin supports various combinations of OS and Touch support. The method to select the option for different platforms can be found in the respective Getting Started documentation.
  2. Select display driver: The list of display drivers and display controllers supported by these drivers can be found in the emWin user guide. From the user guide, select the display driver.
  3. Copy library and configuration files: Depending on the selected core option and display driver, copy the relevant files into the project.
  4. Port APIs and display configuration: Write Port API functions to communicate with the display and update emWin’s Port access functions with pointer to these functions. Configure display parameters like number of pixels, orientation, color profile, number of bits per pixel etc. in emWin’s configuration file.
  5. Application code: In application code, call emWin’s graphic functions to draw graphics.

  1. Bitmap Converter: The Bitmap Converter converts common image file formats like BMP, PNG or GIF into the desired emWin bitmap format. That can be a C file that can be compiled and linked with the project, or a binary format that can be loaded at runtime. Simply load an image into the application. Convert the color format if necessary and save it in the appropriate format.
  2. emWinView: The emWin viewer allows viewing the display output while stepping through (debugging) the simulation. The display output normally could not be seen while stepping through code. When the debug thread is halted, all other threads of the process are also halted. This includes the thread that outputs the simulated display on the screen.
  3. GUIBuilder: The GUIBuilder application is a tool for creating dialogs. Instead of writing source code the widgets can be placed and sized by drag and drop. Additional properties can be added by context menu. Fine tuning can be done by editing the properties of the widgets. This does not require any knowledge of the C programming language. The dialogs can be saved as C files which can be enhanced by adding user defined code.

AppWizard is a desktop application for creating complete, ready-to-run applications for use with the emWin embedded graphics library.  AppWizard features an intuitive “What You See is What You Get” (WYSIWYG) editor and provides its own built-in resource management capabilities. It facilitates the use of all of emWin's core functions, such as the rendering of animations, language management, widgets, etc.

AppWizard is available for download from the online Infineon Develop Center for use with PSoC devices,LIN