Creating Advanced Applications using MPLAB® Harmony v2


This is a class on creating advanced PIC32 embedded applications using MPLAB® Harmony. Some of the slides may not be easily understood because they are intended to be presented by an instructor.

Class Abstract

MPLAB Harmony is a modular framework that provides interoperable firmware libraries for PIC32 application development. These libraries include drivers, system services, and middleware.

In this class, you will learn how to control two PIC32 peripherals (SPI) using one Harmony Driver (multi-instance driver). You will also learn how easy it is to use Harmony to add an RTOS to a bare metal (non-RTOS) application.

For exercises, you will use the Curiosity PIC32MZEF Development Board and two MikroElektronika Click boards™:

  • Ferroelectric Random Access Memory (FRAM) Click board (part number MIKROE-1486)
  • Humidity, Pressure, and Temperature (Weather) Click board (part number MIKROE-1978)

The three labs are have been created to be used in the same order. In Lab 1, you will read the temperature from the Weather Click board and send the value to a terminal emulator over USB. In Lab 2, you will store the temperature value in the FRAM Click board. In Lab 3, you will add an RTOS (FreeRTOS) to the project.

The lab manual provides step-by-step instructions for the following:

  • Lab 1: Create an MPLAB Harmony application using an SPI Driver, USB console and Timer System Service.
  • Lab 2: Control two PIC32 SPI Peripherals using one driver.
  • Lab 3: Add an RTOS to the application created in Lab 2.

Training Slides, Lab Manual, Source Files, and Solutions

This project has been verified to work with the following versions of software tools: MPLAB X IDE v3.61, MPLAB XC32 Compiler v1.43, MPLAB Harmony v2.03b, and MPLAB Harmony Configurator Plugin v2.0.3.5.

Note: As the tools are regularly updated, there may be occasional issues while using newer versions. If that is the case, we recommend you to use the same version as specified in the project.

The archived versions of our tools can be found below:
MPLAB Harmony.
MPLAB X IDE and XC32 Compiler.
Note that multiple versions of all these tools can co-exist on the same computer.


Hardware Tools

Tool About Purchase
Curiosity PIC32MZEF
Development Board
MikroElektronika FRAM Click board FRAM click >
MikroElektronika Weather Click board Weather click >

Development Software Required for Labs

Tool About Installers
Windows Linux Mac OSX
Integrated Development Environment
C/C++ Compiler
MPLAB® Harmony 2.xx
Integrated Software Framework
© 2024 Microchip Technology, Inc.
Notice: ARM and Cortex are the registered trademarks of ARM Limited in the EU and other countries.
Information contained on this site regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights.