Tuesday, June 18, 2024

MPLAB Harmony 2.0: From in-House to Open Source

- Advertisement -

The Microchip design community has released its latest software for microcontroller code development, MPLAB Harm-ony. Owing to ease of portability and compatibility to navigate on any Internet browser, MPLAB is on its way to becoming an essential firmware for designers.

Earlier, MPLAB was designed in-house by Microchip itself, but its recent release has been developed using open source NetBeans IDE by Oracle. Thus, the new version has a set of libraries, drivers and system services that can be easily accessed for developing applications. MPLAB provides integrated development environment for embedded microcontrollers and digital signal controllers.

The significance of MPLAB Harmony

MPLAB is a flexible software that integrates firmware development platform for PIC32 microcontrollers and provides a framework of software modules. These frameworks are easy to use and can be configured at designers’ end as per their requirements. The flexibility to work in the real-time operating system (RTOS) adds to the value of MPLAB.
This open source firmware developer has peculiar features such as TCP/IP network stack and Wi-Fi support, fixed-point DSPk math libraries, graphics library, cryptographic library, peripheral library, file system, system devices, drivers, operating system abstraction layer and MPLAB Harmony Configurator tool.

- Advertisement -

Features of MPLAB

MPLAB IDE software program has both in-built components and plug-in modules to configure systems for various software and hardware tools. It allows users to create and edit source code, assemble, compile and link the source code, and view variables. Its features are described below.

New project window (Source: www.theengineertutor.com)
Fig. 1: New project window (Source: www.theengineertutor.com)

TCP/IP network stack and Wi-Fi support

The interaction between the physical network port and the user’s application is supported by MPLAB Harmony TCP/IP stack. Thus, it includes modules for several commonly used application layers such as SMTP for sending e-mails, Telnet, serial-to-Ethernet and HTTP for webpage server. It also includes light-weight implementations such as TCP and UDP transport layers, as well as supporting modules such as IP, ICMP and DHCP.

The system is fully dynamic, supporting multiple interfaces such as Ethernet and Wi-Fi. Similar to other electronic hardware/software, benchmarking is carried out. The run-time in MPLAB benchmarking is done using the industry-standard tool Iperf.

The software library of MPLAB consists of MRF24WG0MA and MRF24WN0MA modules, which either create an 802.11 Wi-Fi network or join an existing 802.11 Wi-Fi network.
USB device stack. MPLAB provides a user-friendly firmware to not only develop the software module framework but also a variety of USB devices. The IDE supports various USB device classes with options of full speed and high operating speed.

Similarly, the USB host layer in MPLAB IDE supports multi-configuration and composite USB devices. Its elements can operate in multiple windows. For example, the modular architecture of USB device stack allows multiple USB operations in one single application.

Fixed-point DSPk math libraries

Users need to develop algorithms for digital signal processing, which are supported by MPLAB library formats Q15 and Q31. Thus, the library makes functions such as complex math, vector math, matrix math, digital filters and transforms available in C-callable structure format.

Fig. 2: Debug disassembly window (Source: https://microchip.wdfiles.com)
Fig. 2: Debug disassembly window (Source: https://microchip.wdfiles.com)

Graphics and cryptographic libraries

MPLAB system allows the drawing to enable faster updates and reduces the need to screen painting. The draw tool window can be zoomed. Other facilities include copy/paste and add new resources, support for GPU-enabled MCUs and a display manager to quickly enable the use of displays.

While graphics library supports drawing window, cryptographic library helps to perform functions such as encryption, decryption, hashing, compression and authentication within an embedded application.

System services for managed shared resources include:


This library provides control of the oscillator module on microcontrollers during operation nodes.


It is required to debug or re-route errors from PIC32 microcontroller to terminal program. Thus it helps in diverting traffic from the console to the middle-layer application.


It allows users to fix bugs at global level.

Device control

This service initiates the developer with a simple application programming interface to configure and control device-specific functions.


It initialises the processor’s interrupt controllers and manages them.


This feature provides intra-process and inter-process communication by sending and receiving simple messages.

Many functions like DMA, ports, reset, timer and WDT are also listed in system services.

Use of pointer in MPLAB (Source: www.puntoflotante.net)
Fig. 3: Use of pointer in MPLAB (Source: www.puntoflotante.net)

MPLAB Harmony Version 2.0: One step ahead

WYSIWYG engine. Ranging from graphic asset utilisation management to image transformation, and from compression to editing, the What You See Is What You Get (WYSIWYG) engine helps in more accurate GUI representation.

MISRA-C:2012 compliance

MPLAB version 2.0 now complies with MISRA-C:2012 standards due to upgrades in peripheral code library.

Board Support Package (BSP) manager

Updates to the software framework also include additional tools and support such as Board Support Package (BSP) Manager and updated pin-manager.

Other updates

A new Graphics Composer suite and enhanced tools support easy GUI creation.

To conclude

MPLAB Harmony is an open source freeware designed to work with MPLAB XC32 compilers and PIC32 solutions. Its updated version includes libraries of peripherals, drivers and system services to support application development. Code operability, faster time to market, improved compatibility and quick support make MPLAB a complete software for end-product development.

Please visit the website to download MPLAB and know more about its features.



Unique DIY Projects

Electronics News

Truly Innovative Tech

MOst Popular Videos

Electronics Components