Creating Advanced Applications using MPLAB® Harmony


This class on creating advanced PIC32 embedded applications using MPLAB® Harmony was taught at the Microchip MASTERS Conference in 2017. Some of the slides may not be easily understood because they are intended to be presented by an instructor. That said, you should still be able to learn a lot from it.

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 the hands-on 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 build on each other. 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 you 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, MPLAB Harmony Configurator Plugin v2.0.3.5

Because we regularly update our tools, occasionally you may discover an issue while using newer versions. If you suspect that to be the case, we recommend that you double check using the same versions that the project was tested with.

Archived versions of our tools can be found on the following Microchip websites:
MPLAB Harmony (see "Archived Downloads" tab)
MPLAB X IDE and XC32 Compiler (see "Downloads Archive" tab)
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
© 2017 Microchip Technology, Inc.
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.