Microchip logo
  • All
  • Products
  • Documents
  • Applications Notes


MPLAB® Harmony v3 - Integrated Embedded Software Development Framework

Release Includes Support for PIC32 MCUs, SAM MCUs and SAM MPUs with Faster Development Options

Users of MPLAB® Harmony, a flexible, fully integrated embedded software development framework for 32-bit microcontrollers (MCUs) and microprocessors (MPUs), are now able to use MPLAB Harmony v3. This release extends software framework support for SAM MCUs and MPUs in the MPLAB development environment for the first time. The first 32-bit families to be supported in MPLAB Harmony v3 include the PIC32MZ EF, PIC32MZ DA, PIC32MK, SAM E7x, SAM V7x, SAM S7x, SAM C2x , SAM D2x, SAM D5x/E5x MCUs and SAMA5D2 MPUs. For additional information, click on the Learn More and Device Family Support buttons on the right.

MPLAB Harmony v3 includes the MPLAB Harmony Configurator (MHC) tool, a set of modular device and middleware libraries and numerous example applications, all of which are designed to help you quickly and easily develop powerful and efficient embedded software for Microchip’s 32-bit PIC® and SAM devices.

MHC is an easy-to-use development tool with a Graphical User Interface (GUI) that simplifies device set up, library selection, configuration and application development. The MPLAB Harmony Configurator 3 is available as a plugin that directly integrates with the MPLAB X Integrated Development Environment (IDE).  To provide additional flexibility to your programming experience, MPLAB Harmony can now also be used as a stand-alone tool outside of MPLAB X IDE. This enables you to start a new project in your native development environment.


  • Support for 32-bit SAM microcontroller devices
    • Enhanced MPLAB Harmony Configurator (MHC)
    • Board Support Package (BSP) updates for SAM Xplained boards
    • Support for SAM device startup, interrupt and exception code
    • Support for SAM device peripherals
  • Project portability
    • Generate code for MPLAB X IDE or standalone projects
    • Enables importing of MPLAB Harmony libraries into other development environments
  • Device drivers and system service updates
    • Drivers and system services updated to use MPLAB Harmony Configurator 3-generated PLIBs
    • Improved efficiency, simplicity, code readability and debug ability
  • Board support package updates
  • Supports multiple, compatible design models
    • Simple device configuration and initialization using MHC
    • MCC-like peripheral library-based projects
    • Powerful, conflict-free drivers
    • Same great MPLAB Harmony middleware
    • RTOS-based projects for optimum Central Processing Unit (CPU) utilization
  • Improved user experience
    • GitHub-based download manager simplifies installation
    • Intuitive project graph makes it easy to connect library components
    • RTOS enabled by default for a simpler programming model

Get MPLAB Harmony v3

Content is maintained in a set of GIT repositories on Microchip-MPLAB Harmony - Github that can be downloaded (or cloned) to your computer. Use the MPLAB Harmony v3 Downloader to obtain MPLAB Harmony v3 content. Please follow the steps highlighted below to get started. 

If you already have the free, downloadable MPLAB X IDE installed, simply select the MPLAB Harmony Configurator 3 from the extensive plugin library. If you don’t already have the MPLAB X IDE on your machine, you can use the links below to download the right version. After downloading MPLAB X IDE, follow the four steps below.

Step 1: Open MPLAB X IDE.
Step 2: Select Tools > Plugins Download and click Go to MPLAB X Plugin Manager.
Step 3: Check the Install box next to MPLAB Harmony Configurator 3, click Install and follow the directions given by the Plugin Installer.
Step 4: From within the MPLAB X IDE, select Tools > Embedded > MPLAB Harmony Configurator to install the plugin.

Porting from v2.XX

MPLAB Harmony v3 provides applications that work without any user changes.  The considerations below may be needed to port user code created in previous versions depending on customization or direct use of peripheral libraries.

Additional porting information
  • Middleware, driver and service interfaces remain unchanged.  No porting effort should be necessary if interface abstractions were not violated and common only features were used. 
  • Drivers and services were re-implemented to support SAM devices.
    • Updates may be required to take advantage of additional features of SAM devices.
    • Updates may be required for code using features not supported on SAM devices.
  • Code using MPLAB Harmony v2 PLIBs directly will have to be re-implemented. 
    • PLIB interfaces may not be identical from version-to-version or from device-to-device.
    • Only drivers and services (or higher-level libraries) provide interface consistency across different devices (if the feature used is supported) and across minor releases.
    • Interface changes may occur in driver, service, and middleware libraries if a major release version number changes, but ease of migration will be a priority.
    • For maximum portability and reusability, the MPLAB Harmony team recommends using the library with the highest level of abstraction that provides the needed capabilities.