Microstick Road Test

Electronic components distributor Newark recently sent me a Microchip Microstick to road test. The Microstick is a tiny $25 development board for getting started with Microchip's 16-bit microcontroller families.

Microchip Microstick Top View
Microstick Top View

Microchip Microstick Bottom View
Microstick Bottom View


The Microstick is about the size of a stick of gum (20 x 76mm or 0.8 x 3 inches). On the top there is a 28-pin dip socket to hold the target microcontroller as well as general support circuitry, a power regulator, a USB port, reset button, status LED and a general purpose LED connected to pin 26 (RB15). On the bottom are a PIC18F67J50 microcontroller chip and a 25LC010A serial EEPROM chip which handle communication with the MPLAB programming environment and the programming of the target microcontroller, so no external programmer is needed.

The pins of the microcontroller are brought out to a DIP socket mounted on the bottom of the Microstick. The included header pins are then inserted into a breadboard, protoboard or printed circuit board and the Microstick's socket plugs into the pins. It does not work the other way around. That is, you cannot plug the pins into the socket first, then into the breadboard because the pins are short and will not stay in place. After the headers are inserted into the breadboard, the Microstick does snap onto the pins securely enough to stay still while you are working with it. However, it is not at all suited for permanent installation in a prototype or one-off device. I find the use of a socket an unusual choice. In my opinion, a better choice would have been to have pins directly soldered to the board which could be either inserted into a breadboard or permanently soldered to a protoboard or PCB. In fact, several users have mentioned on the Microstick forums that they desoldered the socket and soldered the headers in its place.

There are several microcontroller pins that are not available on the socket. Those are pin 4 (RB0/PGED1/Target Data), pin 5 (RB1/PGEC1/Target Clock), pin 13 Vdd and pin 28 AVdd. Pins 4 and 5 are used in the debugging header, so that is understandable. The lack of power pins is a little frustrating, but also understandable. Microchip wants the users to supply their own power to any external circuitry connected to the Microstick, and not use the USB power. This is another design issue that can make it difficult to integrate the Microstick into a finished device, which is, in all fairness, not what the Microstick is designed for.

The Microstick is compatible only with the dsPIC33FJ64MC802 and PIC24HJ64GP502 (a sample of each is included) or the dsPIC33FJ128MC802 and PIC24HJ128GP502, which offer the same functionality with twice the RAM (128K vs 64K). Given the similarity in architecture and pinout it seems odd that the Microstick is not compatible with other 28 pin dsPIC33 and PIC24 microcontrollers. Perhaps support for additional microcontrollers will be added in the future. Even so, those chips are very powerful and are representative of their respective chip families and code written for dsPIC33 or PIC24 chips is compatible across the other chips in the family. The purpose of the Microstick is for learning the capabilities of the Microchip 16-bit microcontrollers and not as a universal 28-pin programming board, which would be a lot to ask of a $25 product anyway. The dsPIC33 and PIC24 microcontroller have an amazing array of on-chip peripherals including two UARTS, SPI, I2C, CAN/ECAN, 16-bit PWM, two quadrature encoder interfaces, five 16-bit timers which can be ganged to form 32-bit timers and reconfigurable pin functions. They also have built-in multiply and divide instructions that make them well suited for applications such as digital signal processing and encryption/decryption. If you are used to working with the older 8-bit chips or Atmel-based Arduinos, these chips will be a big step up.

Microchip Microstick in a breadboard
Microstick in a breadboard

Closeup of pins inserted into breadboard before attaching Microstick
Microstick Pins Closeup


The Microstick is programmed (via the included USB cable) using the Microchip's MPLAB programming environment. The MPLAB software is downloadable for free from Microchip's web site. It is a very mature and full-featured integrated development environment (IDE) with all of the features you would expect in a modern IDE. From within MPLAB, you can write your program, compile it, send it to the target chip and debug the program. The debugging functionality is very powerful allowing setting of breakpoints and watch variables and single-stepping through the program. MPLAB includes a free assembler and C compiler and is extendable with other compilers and add-ins. MPLAB only runs on Windows, however there are third party and open source options for Linux or Mac users.

Screen shot of MPLAB IDE
MPLAB IDE Screenshot


The only printed documentation included with the Microstick is a one page information sheet which covers installation of MPLAB and a partial schematic of the board. However, there is a wealth of information online about how to use MPLAB and how to program Microchip's 16-bit microcontrollers, including many software libraries to help with complex tasks such as digital signal processing and USB protocols. There are also many excellent books available.


In summary, the Microchip Microstick is a great device at a great price. The only limitations would be its support for a small number of target microcontrollers and its unsuitability for embedding in a finished device. Neither of those limitations should be perceived as negatives given that the purpose of the device is to get started quickly with Microchip's 16-bit microcontroller families. The Microstick does contain everything you need to do just that, and at a very reasonable price. In fact, an external PIC programmer alone would cost more than the Microstick. Users who already have experience with Microchip's 16-bit microcontroller line will probably not find the Microstick very useful. However, users who would like to move up from Microchip's 8-bit line or from another microcontroller platform will find the Microstick the perfect stepping stone.