MPLAB® Harmony v3 Configurator (MHC) Overview

Last modified by Microchip on 2023/11/09 09:12

This tutorial describes the previous Harmony graphical configuration tool, MPLAB® Harmony Configurator (MHC).  MPLAB Harmony v3 is now configurable through MPLAB Code Configurator (MCC). See the "MPLAB® Harmony v3 Software Framework" page to access updated tutorials using MCC.

This page shows you how to download the MPLAB® Harmony framework and launch the MPLAB Harmony v3 Configurator. It also provides a brief overview of the MPLAB Harmony Configurator (MHC) user interface.

MPLAB Harmony Configurator is a graphical user interface for the MPLAB Harmony framework. It dramatically simplifies 32-bit (SAM and PIC32) core and peripheral configuration. It also allows you to enable and configure any of the specific Harmony framework libraries (e.g., device drivers, system services, USB, TCP/IP, graphics, etc.) you may need for your project.

You must first install the MPLAB X IDE and XC32 C compiler to use MPLAB Harmony v3 Software Framework.

Download MPLAB Harmony Framework

The first step is downloading the MPLAB Harmony Content Manager (MHCM) tool. This tool includes a downloader that reads the MPLAB Harmony GitHub repository to create a list of available packages. You choose which packages you want to download from this list. The MHCM is a standalone Java application in the “contentmanager” MPLAB Harmony package.

If you haven't yet downloaded the "contentmanager" Harmony package, download it by manually cloning it from GitHub. To manually clone a repository, follow the instructions available on the "Cloning a repository" page.

Based on your operating system and processor architecture, download JRE 8 with FX support from Azul.

Extract the compressed jre to any location in your system and set the "PATH" variable to "/bin"

*.jarJava libraries.
harmony-content-manager.jarMain Java executable (run: java -jar harmony-content-manager.jar)
runme.batWindows shell script to run standalone MHCM GUI.
runme.shnon-Windows shell script to run standalone MHCM GUI

Open the command prompt and navigate to the location where harmony-content-manager.jar is present and execute the command "java -jar harmony-content-manager.jar"

Alternatively, you could run the shell script runme.bat (on a Windows® operating system) or (on non-Windows operating systems)

Choose a folder in which to download the Harmony framework. You can navigate to an existing Harmony framework folder or create a new one. Click Next.
Click image to enlarge.

Wait while the content manager tool queries the repository and generates a list of all available packages. If this is your first time using this tool, or if you've selected a new folder to download the framework into, the Content Manager window will look like the accompanying image.

Note the Local Packages list is empty (you haven't downloaded any yet), and the Remote Packages list shows all packages found on the MPLAB Harmony GitHub site. Also, note that the packages are selected for download by default as these are required for all Harmony projects. Add the "mhc" package.

Package NameDescription
mhcContains the implementation of the MHC tool.
dev_packsDescribes all peripherals, memory, etc… of each supported 32-bit device.
cspChip support package: includes the Peripheral Libraries (PLIB).

Check the boxes beside all packages you want to download, then click Download Selected (top left corner). You may want to check the Select All box (top left corner) so you can access all the demonstration applications included in the Harmony framework. After accepting the license agreements, the download will start.

​If you've previously downloaded packages into the folder you specified, the content manager will show those packages in the Local Packages list. The Remote Packages list will show the following:

  • All packages not found in the folder you specified.
  • All packages that have an update available.
Click image to enlarge.

Back to Top

Launch MPLAB Harmony Configurator

The MPLAB Harmony Configurator functionality is now integrated into the MPLAB Code Configurator (MCC). It is suggested to use MCC for new and improved features. However, for existing users who want to use MHC, MHC is available as a standalone Java application.

If you haven't yet downloaded the "mhc" Harmony package, download it using the MPLAB Harmony Content Manager tool by following the instructions mentioned in the "Download MPLAB Harmony Framework" section above.

Navigate to the local directory where you have downloaded the "mhc" repository

Open the command prompt and execute the command "java -jar mhc.jar -mode=gui -fw=../".

Alternatively, you could run the shell script runmhc.bat (on Windows operating system) or (on non-Windows operating systems). This will launch the MHC as a standalone application.
Click image to enlarge.

Back to Top

MPLAB Harmony Configurator Overview

MHC window nameDescription
Active ComponentsDisplays activated/instantiated components.
Available ComponentsComponents shown are based on the framework libraries you included in your project. The list of available peripherals is based on the target device you selected for the project.
Project GraphShows the instantiated components. You can instantiate available components by double-clicking on the component. After successful component instantiation, you can see the instantiated components under the Active Components panel.
MHC PluginsConsists of AFEC, DMA, MPU, NVIC, Clock and Pin configuration plugins. To open any of these plugins, go to MHC > Tools and select above mentioned available plugins.
Configuration OptionsDisplays the tree view of the selected component under the Project Graph area. You can do the component configuration from here.
ConsoleDisplays the MHC operation results.

MHC panes

The MPLAB® Harmony 3 Configurator user's guide provides details on:

  • The GUI
  • How to use MHC to generate code
  • How to merge this code with your project
  • How to use these MHC tools:
    • Clock Configuration
    • DMA Configuration
    • Nested Vectored Interrupts Configuration
    • Pin Configuration
    • Event System Configuration
    • MPU Configuration

Back to Top