Getting Started with Microchip Graphics Suite (MGS) Harmony
Introduction
This section provides an introduction to the Microchip Graphics Suite (MGS) Harmony and a description of the general development workflow when developing embedded applications with MGS.
This section also provides tutorials on how to quickly get started with designing a basic Graphical User Interface (GUI) using the MGS tools.
Overview of MGS Harmony
MGS Harmony is a tightly integrated suite of tools and library to help you easily and quickly develop embedded GUI applications.
The suite consists of four major components:
- Designer
- Graphics Library
- Drivers
- Configurator
Designer
The Designer is a what-you-see-is-what-you-get (WYSIWYG) screen design tool that lets users easily design a UI screen. The tool is called MGS Harmony Composer.
Composer provides a suite of widgets that are ready-to-use and configurable and can be used to build more complex UI controls. It also provides a comprehensive set of tools for managing graphics assets and optimizing them for the target embedded platform.
For more information about the MGS Harmony Composer, see the "Microchip Graphics Suite (MGS) Harmony Composer User Guide" page.
Graphics Library
The Graphics Library is the runtime engine that processes the screen designs and converts them into pixels in the frame buffer. The content of the frame buffer is what is eventually displayed on the screen. This engine is called the MGS Harmony library, also known as Legato Library.
The MGS Harmony library runs as a task alongside other tasks in the application. In most cases, the other application tasks will interface with the MGS Harmony library to integrate the GUI with the rest of the embedded system.
For general, high-level information on how to design the system application to work with the MGS Harmony library, view the "Designing an Application with Microchip Graphics Suite (MGS)" page.
Drivers
MGS Harmony drivers are used to configure hardware (HW) peripherals so that pixels rendered in the frame buffer are displayed properly on the LCD module. These HW peripherals may be integrated internally or could be external to the device.
Configurator
The configurator enables users to configure the various SW and HW components in the application, including peripheral libraries, drivers and middleware. The configurator will also generate the code based on this configuration. The configurator for MGS Harmony is the MPLAB® Code Configurator (MCC) Harmony.
For more information about MCC Harmony, view the "MPLAB Harmony v3" page.
Development Workflow
Embedded GUI development is a highly iterative process.
In MGS, this process starts with importing assets in the designer tool (MGS Harmony Composer), and then using the tool to design the GUI screens.
Next, the configurator (MCC) is used to configure the rest of the system, including the display driver and other peripherals like clocks, pins, and memory. MCC is then used to generate the GUI design and driver code.
The developer then integrates the GUI with the rest of the application. This process includes handling user input events from the touchscreen, as well as handling relevant system events that need to be displayed on the GUI.
Once the application is integrated with the GUI, the application is traditionally run on the embedded target and evaluated on the display. If the evaluation determines that the GUI needs to be updated or corrected, the process repeats.
With MGS, this entire process is accelerated by the tight integration of the tools. MGS Harmony Composer is tightly integrated into MCC Harmony, which means that code updates from the GUI design are automatically generated and integrated into the MCC Harmony project and into the rest of the system software. This eliminates the need for manual code integration which can take time and introduce bugs.
The MGS Simulator further accelerates this process by reducing the dependency on the availability of the target board and display. This means that GUI development can start before and in parallel with development on actual HW.
Getting Started
To get started with GUI development using MGS Harmony, we recommend starting with the MGS Harmony Quickstart demo applications.
Quickstart demo applications are available for all combinations of graphics-capable Microchip MCU32 and MPU development board and display modules supported in MGS Harmony. Refer to the "Microchip Graphics Suite (MGS) Development Kits" page for information on how to download and run the Quickstart applications.
This course shows how to quickly get started and use MGS Harmony to design a GUI application on Microchip graphics development platforms.
Getting Started with a New MPLAB Harmony Graphics Application
MHGS is a powerful and royalty-free, user interface design and development suite for Microchip’s 32-bit microcontrollers and microprocessors. MHGS is tightly integrated into the MPLAB X IDE and MPLAB Harmony software development framework, which leads to lower development costs, shorter time-to-market, and higher-quality embedded graphics products. After completing this class, you will be able to use MHGS to design a simple touch-enabled user interface application on any Microchip 32-bit Graphics Development Kit.
Creating a Dynamic UI with Event Handling
MGS provides all the necessary event-handling functionality which enables developers to create dynamic user interface applications. This page will show developers how to create applications to handle different types of events, how these types of events can be triggered, and how to process these events within MGS Harmony.
Graphics Quick Start Application Guides
A collection of application Quickstart tutorials is provided with MGS to help users understand and create applications quickly.
These applications are available in the MPLAB Harmony GFX applications repositories. Each device that MGS Harmony supports will have its own repository.