We detect you are using an unsupported browser. For the best experience, please visit the site using Chrome, Firefox, Safari, or Edge. X

MPLAB® Code Configurator

MPLAB® Code Configurator (MCC) is a free, graphical programming environment that generates seamless, easy-to-understand C code to be inserted into your project. Using an intuitive interface, it enables and configures a rich set of peripherals and functions specific to your application. It supports 8-bit, 16-bit and 32-bit PIC® microcontrollers. MCC is incorporated into both the downloadable MPLAB X Integrated Development Environment (IDE) and the cloud-based MPLAB Xpress IDE.

MCC Features

  • Free graphical programming environment
  • Intuitive interface for quick start development
  • Automated configuration of peripherals and functions
    • Minimized reliance upon product datasheet
    • Reduces overall design effort and time
  • From novice to expert
    • Accelerates generation of production ready code

Three Ways to Get MCC

It's easy to add MCC to your development environment. Just choose one of the following options:

Option 1: Use MPLAB Xpress Cloud-Based IDE

Requiring no downloads, no machine configuration and no waiting, MPLAB Xpress is the easiest way to get started using MCC. 

Option 2: Install the MPLAB X IDE Plug-In

If you already have the free, downloadable MPLAB X IDE installed, all you have to do is select MCC from the software’s extensive plug-in library. If you don’t already have MPLAB X IDE on your machine, use the link below to download it.

Option 3: Manually Install the MPLAB X IDE Plug-In

If you wish to use a previous version of MCC, or if you prefer to manually install the plug-in, please use the “Current Download” and “Archive Download” tabs at the bottom of this page.

MCC Supports Click boards™

To help you bring your ideas to life even faster, we’ve added quick-start software libraries for MikroElektronika click boards into MCC. Now, you can easily incorporate sensing, control, or communication functionality to your prototype design without the stress and hassle of low level code development and validation.

Here's What Our Customers Have to Say

"It was quite easy. You could graphically see what you wanted to do and then go in and decide how you wanted to set things up and it took care of all the details." 

- Kevin Rochford, Senior Principal Engineer, Autoliv


"We use the MCC all the time. It allowed us to do in 2 hours what took several days of digging through datasheets in the past."

- Patrick Marcus, President, Marcus Engineering

"I had five peripherals running in less than 30 minutes and this was the very first time I used this tool." 

"I have configured registers by hand and I can safely say this program saves at least 90% of project startup time."

- Craig Beiferman, Electrical/Software Engineer, Universal Laser Systems


"It was the tool I was looking for to speed up development with new boards."

- Saul Ollenides, General Electric

MPLAB Code Configurator Downloads

MPLAB® Code Configurator

Title Version Date Download Release Notes
MCC v4.0.2 4.0.2 2020-10-08 Download Release Notes

Device Libraries

Title Version Date Download Release Notes
AVR® MCUs 2.7.0 Download Release Notes
PIC10 / PIC12 / PIC16 / PIC18 MCUs 1.81.7 Download Release Notes
MCP19XXXX 1.4.0 Download Release Notes
PIC24 / dsPIC33 / PIC32MM MCUs 1.170.0 Download Release Notes
PIC32MX MCUs 1.35 Download Release Notes

Application Libraries

Title Version Date Download Release Notes
UCS211x 1.3.0 Download Release Notes
MCP802X 1.0.0 Download Release Notes
AVR IEC60730 Class B Diagnostic Library 4.0.1 Download Release Notes
AVR IoT Google Sensor Node 2.0.1 Download Release Notes
Crypto Authentication Library 2.0.1 Download Release Notes
AVR IoT AWS Sensor Node 1.0.1 Download Release Notes
8-bit Bootloader 2.3.3 Download Release Notes
PIC16/18 IEC60730 Class B Diagnostic Library 4.0.1 Download Release Notes
Data Encryption Routines 1.0.1 Download Release Notes
RN4870 | RN4871 BLE Module 1.0.1 Download Release Notes
SMPS Power Library 1.4.0 Download Release Notes
MikroElektronika Click Library 1.1.2 Download Release Notes
Message Queuing Telemetry Transport (MQTT) 2.0.1 Download Release Notes
LIN 2.3.3 Download Release Notes
Foundation Services 0.2.2 Download Release Notes
TCP/IP Lite Stack 2.2.13 Download Release Notes
WINC15XX Library 1.1.1 Download Release Notes
Board Support Library 1.12.0 Download Release Notes
PIC-IoT WG Sensor Node 1.2.0 Download Release Notes
16-bit Bootloader 1.18.4 Download Release Notes
USB Framework Lite 1.27.0 Download Release Notes
File System 1.1.0 Download Release Notes
motorBench® Development Suite 2.35.0 Download Release Notes
X2C 1.11.1 Download Release Notes
Temperature Sensor 2.0.0 Download Release Notes
PAC193x Library 2.2.1 Download Release Notes
DAC 2.0.0 Download Release Notes
Serial Memory Products 2.4.0 Download Release Notes
CoAP 1.0.0 Download Release Notes
MCP794XX I2C RTCC 1.00 Download Release Notes
MegunoLink 1.0.0 Download Release Notes
mTouch® Capacitive Sensing 2.90.1 Download Release Notes
Turnkey Touch 1.0.1 Download Release Notes

Archive Download Methodology forthcoming

Design Resources

Easy-to-Install MPLAB® X IDE Plug-In

Figure 1a

All plug-ins are free, available and ready to install once MPLAB X IDE has been installed. Just follow the simple steps below to see all the available plug-ins and install MPLAB Code Configurator (MCC).
  1. Select the 'Tools' menu, and click on 'Plugins'
  2. In the MPLAB X IDE Plugins window, click the 'Available Plugins' tab
  3. Select MPLAB Code Configurator and click 'Install'
Provides a List of Available Peripherals

Figure 1

The graphical user interface displays all of the available peripherals for the device in the Device Resource area. Simply click on the peripheral you want to add to your project. The peripheral moves to the MCC Project Resources area and is ready to be configured to your project's requirements.
Easily Select the Peripheral to Configure

Figure 2

The MPLAB Code Configurator Project Resource area displays all of the peripherals currently configured for your project. Selecting a peripheral here, and the peripheral is ready to be configured in the Composer area.

In the Project Resource area, the System module is always present. The System module simplifies the setting of configuration bits and configuring the system clock.

Integrate MCC Code into Your Existing Project or Start a New Project from Scratch

Figure 3

With MCC, you can add code for a peripheral to your existing project or you can get started on a new project. If MCC detects a main.c file already in the project, it will not create one. You only need to add two lines to your main.c file to start using the generated drivers. If your project does not have a main.c, MCC will create one for you.
Integrated with MPLAB X IDE

Figure 4

The code generated by MCC is automatically added to your project. When a peripheral is added to MCC, the generated code, the new files and code are automatically added to your project. All MPLAB X IDE features, like auto-completion, and code navigation, work with code generated by MCC.
Quickly Set Configuration Bits

Figure 5

The system clock and configuration bits can be quickly configured in the Composer area. The system clock rate configured here will be used automatically by MCC to calculate timer periods, duty cycles and baud rates as required by other peripherals.

Generates Standardized Driver Code

Figure 6

MCC generates custom standardized driver code based on the selections made in the Composer area. This is real code that is automatically added to your project. The code can be debugged, edited and reviewed, just like any other code. It can be modified manually or reconfigured in the MCC Composer window and regenerated.

Simple to Remove Peripherals

Figure 7

Removing a peripheral is simple. Any device in the Project resource area can be removed from the project by clicking on the X to the right of the peripheral.

Retain Your Changes to Generated Code

Figure 8

Code generated by MCC can be edited like any other code. The generated code is real code. If you choose to modify the code after it is generated you are free to do so. But what happens if you also change the configuration in MCC and generate the code again? No problem. MCC  detects your changes and displays a comparison window that allows you to select whether to keep your changes, or the newly generated code.

Your code is shown on the left, and the newly generated code is shown on the right. Navigation buttons at the top let you move to each difference found. An arrow along the center margin allows you to copy your changes into the generated code.

Easily Configured GPIOs

Figure 9

Port pins can be configured as GPIO pins simply by clicking on the Pin Manger. Every pin can be given a custom name. That name is then used in the Pin Manger display and in the generated code.

The direction of a pin, input or output, as well as the starting value, can be configured with a few clicks. For input pins. the Weak Pull-Up (WPUE) and the Interrupt On Change (IOC) can also be configured.

Configure thePPeripheral Interrupts Used by the System

Figure 10

Easily change the order in which interrupt service routines are called in the Interrupt Manager. Select a peripheral interrupt and click on the up or down arrow to set the execution priority.

Configure Pins Used by Peripherals

Figure 11

When a peripheral is added to the Project Resources area, the pins associated with the peripheral are displayed in the Pin Manager. Clicking on a pin in the Pin Manger locks that pin to the selected peripheral.

Package View of the Pin Configuration

Figure 12

The Pin Manger includes a package view of the device showing the configuration of the pins. When pins are assigned custom names in MCC, the package view displays the custom name. The package view can be copied and printed for use in other documentation.

Generate and Use Specialized Drivers

Figure 13

Specialized peripheral drivers focus on specific functions of a peripheral. For example the MSSP can be used for I2C or SPI. Both of these functions can be used as a Master or a Slave. MCC  provides specialized drivers to let you focus on the desired function of a peripheral instead of requiring you to configure the individual control registers.

Title Download
MPLAB Code Configurator Sell Sheet Download

MPLAB® Code Configurator

Title Download
Microchip Minutes Episode 6: Basic Comparator Setup Application Lab Download
Title Download
Microchip Minutes: helloWorld Application Lab Download
Microchip Minutes: blink Application Lab Download
Title Download
MPLAB® Code Configurator v3.xx User's Guide Download
MegunoLink Library UG Download

A Closer Look At - Episode 1 - Installing the MPLAB® Code Configurator

This video demonstrates how to install the MPLAB® Code Configurator graphical programming plugin into MPLAB® X IDE