MPLAB® Harmony v3 Libraries

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

This page describes some of the libraries that make up the MPLAB® Harmony software development framework. These are found in the MPLAB Harmony GitHub repository and can be downloaded inside the MPLAB X IDE using the MCC Content Manager.

Application Repositories

Audio LibraryThis repository contains a variety of audio drivers, encoders, decoders, and firmware projects that demonstrate the capabilities of the MPLAB Harmony v3 audio offerings. Each example application project describes its hardware setup, block diagram, requirements, hardware compatibility, and operation.
Bluetooth LibraryThis repository contains the MPLAB Harmony v3 Bluetooth Package (bt). It supports a fast-to-market Bluetooth development environment for 32-bit SAM and PIC microcontrollers.
Cryptography LibraryThe Cryptographic library includes functions to perform encryption, decryption, hashing, authentication, and compression within an embedded application. Random Number Generation (RNG) functions are also provided.
Graphics LibraryThe graphics repository contains the files for MPLAB Harmony Graphics Suite quick-start applications, drivers, tools, libraries, and templates.
Graphics Apps LibraryThe graphics apps repository contains the graphics application package (GFX Apps). This is a more extensive set of highly integrated, stand-alone applications that demonstrate some of the capabilities of graphics in MPLAB Harmony v3 for 32-bit PIC and SAM microcontrollers.
Motor Control LibraryThis module contains motor control demonstrations implemented on 32-bit microcontrollers.
Touch LibraryUse this software library for developing touch applications on 32-bit microcontrollers with a Peripheral Touch Controller. The library supports both self-capacitance and mutual-capacitance acquisition methods.
Networking (TCP/IP) LibraryThis repository provides a fast-to-market TCP/IP stack for 32-bit PIC and SAM microcontrollers. It contains multiple applications that demonstrate communication over TCP/IP using well-known protocols like TCP, UDP, HTTP, SMTP, etc.
USB LibraryThe USB module provides USB controller drivers for 32-bit PIC and SAM devices, as well as Host and Device middleware with support for common device classes.

Device Setup Repositories

CoreThe core module components provide the simple-to-use abstractions of 32-bit SAM and PIC device peripherals and shared resources on which the MPLAB Harmony 3 middleware is based, including drivers, services, and the Operating System Abstraction Layer (OSAL).
The CSP module contains independent, low-level Peripheral Libraries (PLIBs) that are simple functions to initialize and control peripherals and basic device features on which MPLAB Harmony 3 drivers and services are based. The CSP supports the initialization of 32-bit devices and the development of simple applications that directly control peripheral hardware with minimal external dependencies.
The BSP module provides initial configuration settings for PIC and SAM Xplained development boards.
The MHC repository contains the implementation of MPLAB Harmony Configurator (MHC), a Graphical User Interface (GUI) based configuration utility that accelerates the development of embedded applications using 32-bit SAM and PIC devices.

The bootloader module components provide a framework to develop bootloaders for SAM microcontrollers. The Bootloader Library can be used to upgrade firmware on a target device without requiring an external programmer or debugger.

Third-Party Repositories

wolfSSL embedded SSL libraryThe wolfSSL embedded SSL library (formerly CyaSSL) is a free-to-use, lightweight SSL/TLS library written in ANSI C and targeted at embedded, RTOS, and resource-constrained environments. It supports TLS 1.3.
wolfMQTTwolfMQTT is an implementation of the MQTT Client written in C for embedded use and that supports SSL/TLS via the wolfSSL library. This free-to-use library was built from the ground up to be multi-platform, space-conscious and extensible. It integrates with wolfSSL to provide TLS support.
wolfSSL's Embeddable SSH Server

wolfSSL's Embeddable SSH Server is a free-to-use, lightweight Secure Shell library that provides server-side support for SSH v2.0 capabilities. It is dependent on wolfCrypt.

Micrium OS-III

The Micrium OS-III repository contains µCOS-III port files and demonstrations implemented on 32-bit PIC and SAM microcontrollers.

FreeRTOSFreeRTOS, an industry-leading, open-source, real-time operating system is enabled by default with Harmony v3 drivers, middleware, and system services. It is accessed directly from the CMSIS FreeRTOS repository. This enables you to schedule tasks in your application quickly. If bare-metal development (without RTOS support) or the use of another supported real-time operating system is desired, simply select the desired option from the available RTOS configuration.