Hands on: MPLAB Xpress board


A brand new MPLAB Xpress has landed in my mailbox. This new board and the accompanying schematics came in a small cardboard package, and my first thought was “this thing is so small”.

MPLAB Xpress board vs. similar development boards

MPLAB Xpress board vs. similar Microchip development boards

In the above picture wee see the new MPLAB Xpress Evaluation Board side by side with some old development boards PCBs and a PICkit3 programmer. The 44-pin demo board comes with a PIC18F45K22 microcontroller in the PICkit3 Debug Express kit, and the 28 pin demo board was part of the (now obsolete) PICkit2 starter kit.

All of those boards feature a potentiometer connected as voltage divider, allowing to experiment with A/D conversion, and a push-button. The DM164140 MPLAB Xpress board has four LEDs, the 44-pin demo board has eight LEDs, while the old 28-pin demo board also has four LEDs. An advantage here is that one can easily adapt programming lessons written for the old demo boards to work with the new MPLAB Xpress Evaluation Board.

A closeup view of the new development board reveals a lot of new features. The board is split in two different zones: the programmer section features one PIC18LF25K20 microcontroller, with 32kb of FLASH memory and 1,536 RAM Bytes. It is more powerful than the PIC16F18855 microcontroller in the application area, but for a reason: this microcontroller emulates the external drive used to program the boards, acts as programmer for the PIC16F18855 and it also performs the USB-UART function.

In this area we also have the power stage, with a MCP1703 low quiescent current regulator, capable of providing a current of up to 250mA and a voltage of 3.3V. The board can be powered via the USB cable or from an external power supply of up to 16V.

On the USB side please note that there is no resettable fuse, so if you screw things up you might damage the USB port of your computer. Using a powered USB hub in-between is a good precaution measure.

Also note there is no 5V regulator, so the click boards will receive the unregulated voltage on the 5V pin when using an external power supply – keep this in mind when using click boards that require 5V voltage.

MPLAB Xpress board - programmer area

MPLAB Xpress board – programmer area

In the application area we find a PIC16F18855, an 8-bit microcontroller from the new generation, with 14kb FHASH memory and 1024 bytes of RAM, Analog, Core Independent Peripherals and communication peripherals with Peripheral Pin Select (PPS), four LEDs with the corresponding current limiting resistors, one potentiometer, and one button plus the corresponding pull-up resistor.

MPLAB Xpress Evaluation Board

Close-up view of the MPLAB Xpress demo board

We also find one EMC1001-AFZQ-TR temperature sensor which uses I2C communication protocol and has its slave I2C address set via the 20kΩ pull-up resistor on pin ADDR/THERM pin.

MPLAB Xpress board - temperature sensor

MPLAB Xpress board – temperature sensor

We also find one mikroBUS socket, the proprietary format of MikroElektronika, which allows the use of over 150 click boards. If you used Arduino boards before and are familiar with the shield format, you can just view the click boards as mini-shields.

MPLAB Xpress board with 8x8 click installed

MPLAB Xpress board with 8×8 click installed

We also find two unpopulated header rows, allowing for an ever greater flexibility. Just install some header sockets, get a breadboard and you can start building your own projects.


The backside of the board reveals two sets of pads for an ICSP programmer – pogo pins can be used with a PICkit3 or ICD3 to “unbrick” the board if needed. A small issue here is that the pins from the mikroBUS socket can scratch the desk surface. I highly recommend to install some rubber feet to keep those pins at a distance.

Xpress Board back side

Xpress Board back side

Working with MPLAB Xpress IDE

For the given moment I’ve made a run through the provided examples. Here’s what I found:

  • Serial monitor example: it runs just fine. Just use Putty or TerraTerm, set baud rate to 19200 and everything will be OK.
  • Hello world example, LED brightness control, Hardware blink – all OK
  • 8×8 click example: change line 20 to puts(“8x8R Click Demo \n\r”); It will look better in the UART terminal.
  • Temperature sensor: change from \n to \n\r everywhere in the code for better display.

Remember to set the CONFIG words to “LVP mode = ON”! Or else…

A few final thoughts

THIS BOARD IS GREAT!!! I definitely like it!

As a board designed to accompany the MPLAB Xpress IDE, and focused towards the ones who make the first steps in PIC programming, I think this board is a great alternative to the PICkit3 Debug Express, especially as it comes at a fraction of its price – just 9.99$. It’s also easy to expand either using click boards, or by building your own hardware.



Leave A Reply