chipKIT™ Pi - Review

Table of contents

RoadTest: chipKIT™ Pi

Author: gregoryfenton

Creation date:

Evaluation Type: Independent Products

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?:

What were the biggest problems encountered?: Lack of documentation

Detailed Review:

Today I received the ChipKit Pi from those nice folks at for review purposes.

chipKIT Pi

My initial out of box thoughts are:
“it is very red” – the PCB is very reminiscent of graphics cards from the turn of this century(!) as there was a great demand for red graphics cards at that time. Yes I had one too image
“Last time I saw this many jumpers it was on an ISA card” – there are no less than 14 jumpers on the board (15 if you count JP3 which I will discuss later)
“It has an unpopulated space for a CR2032 battery” – Maybe the board can be used as a real time clock if it is battery powered? I will investigate this later.
“There are several of unpopulated capacitor and diode pads” – C14 and D5, C9, C6 and R22. I will investigate these later
“There is room for a second crystal” – X2 looks like it may be for a 32768Hz oscillator, which backs up my theory of a potential RTC.
“The soldering on the underside is very well done” – Wave soldering used?
“The soldering on the component side is in the main good” – Generally soldering is well done, apart from J2 which had poorly formed joints and several pieces of solder floating and breaking off.
“The PIC32 chip is inserted into a socket” – This is great if you wish to use the board as a PIC32 programmer
“There is no structure to the pin and LED layout and numbering” – Whoever labelled the board could have called the LEDs whatever he or she wanted but chose not to which is clear when the LEDs are laid out from top to bottom as LED3, LED1, LED2, RX, TX (why not LED1, LED2, LED3, RX, TX?) and trying to find a jumper is a massive test of one’s sanity. The row of 7 jumpers are numbered from left to right as: JP1, JP4, JP8, JP14, JP6, JP11, JP15. Why not simply JP1, JP2, JP3, JP4, JP5, JP6, JP7? The same haphazard pin labelling continues throughout the board.
“Where are the instructions and board layout?” – the board comes in a white box with a picture of the board on which would appeal to the “maker” section of the community. It does not contain any information about the board such as maximum voltages, pin and LED layout.
“Oh it’s only 3.3v” – While reading the “key features and benefits” section on the back of the box I noticed that the bottom line just happens to mention that the board is 3.3v. That is a vital piece of information and should really be brought to attention clearly and prominently.

Jumper layout and position:
JP1 (RX2/PGC) [RX2] Located in the row of 7 jumpers, first jumper, furthest from PIC32 IC.
JP2 (DC=5V/DC>5V) [DC>5V] Located next to DC jack.
JP3 (ICSP) [unpopulated] Located between DC jack and USB port.
JP4 (TX2/PGD) [TX2] Located in the row of 7 jumpers, second jumper, furthest from PIC32 IC.
JP5 (RPi Power SW) [RPi Power SW] Located between RPi-Connect and USB port.
JP6 (BLEN/TD0) [BLEN] Located in the row of 7 jumpers, fifth jumper, towards PIC32 IC.
JP7 (TX1/SI) [TX1] Located at rear of board in the row of 3 jumpers, first jumper, furthest from rear of board.
JP8 (MISO/TCK) [MISO] Located in the row of 7 jumpers, third jumper, furthest from PIC32 IC.
JP9 (RX1/SO) [RX1] Located at rear of board in the row of 3 jumpers, middle jumper.
JP10 (D2/TMS) [D2] Located at rear of board in the row of 3 jumpers, third jumper, at rear of board.
JP11 (LED2/A1) [LED2] Located in the row of 7 jumpers, sixth jumper, towards PIC32 IC.
JP12 (D-) [D-] Located in the 2 jumpers above PIC32 IC, top jumper.
JP13 (D+) [D+] Located in the 2 jumpers above PIC32 IC, bottom jumper.
JP14 (SS/TDI) [SS] Located in the row of 7 jumpers, fourth jumper, towards PIC32 IC.
JP15 (LED1/A0) [LED1] Located in the row of 7 jumpers, seventh jumper, towards PIC32 IC.

LED Layout and position:
RX1 LED #4
TX1 LED #5

Socket layout and position:
JA1 (Arduino) Top centre of board above PIC32 IC
JA2(Arduino) Top right of board above PIC32 IC
JA3 (Arduino) Bottom right of board next to JA4
JA4 (Arduino) Bottom right of board next to RESET switch
RPi-Connect Top left of board next to USB port and J5

JTAG position: As arduino layout, centre right of board next to JP10

PIC32 IC orientation: Clearly marked on the board, the cutout end of the IC goes next to the bank of 7 jumpers. Pin 1 goes to the bottom left next to JP15.

Switch layout:
BOOTLOAD-EN bottom left of board next to JP2
RESET bottom centre of board next to JA4

USB port: top left of board, type mini-b connector

Power socket: 2.1mm centre positive, bottom left of board

PIC32 information:
The IC on board is a 28 pin DIP, model PIC32MX250F128B-50I/SP.
Pin count: 28
Program memory: 128KB + 3KB of bootloader memory
Data memory: 32KB
Remappable pins: 19
Timers/Capture/Compare: 5/5/5. Note that 4 of the timers are remappable.
UART ports: 2
SPI/I2S ports: 2
External interrupts: 5. Note that 4 of the timers are remappable.
Analogue comparators: 3
Supports USB-OTG (USB On The Go): Yes
I2C ports: 2
Supports PMP (Parallel Master Port): Yes
DMA Ports: 4 programmable, 2 dedicated
Supports CTMU (Charge Time Measurement Unit): Yes
ADC Channels: 9x 1MSPS 10 bit (0-1023) ADC channels
RTCC (Real Time Clock Connector): Yes
I/O Pins: 19
JTAG compatible: Yes

Going from the above list a couple of things have rather piqued my interest:
* The IC supports USB On The Go (USB-OTG). If this feature can be utilised I could be able to use the board as a USB host controller rather than a slave device, which means basically that I could plug other devices such as keyboards, printers, USB sticks and drives into the USB socket and be able to use their functionality to extend the board.
* The IC supports PMP (Parallel Master Port) which while designed to read to and write to external memory (external RAM anyone?) it can be tasked for example to read from and write to an external LCD display. A very interesting and undoubtedly useful piece of functionality that I hope I figure out soon.

The next part of this review will be me using the board and playing with the features.

Manufacturer: Chipkit
Model: chipKIT Pi


I have taken some time to play with the board and have found it to be very reliable in use. Having the main IC (PIC32MX 250F128B-50I/SP) mounted in an IC socket is great should anything damage the IC such as overvoltage, a common problem with microcontrollers.

I used the board as a drop-in replacement for an Arduino and Wiznet 5100 ethernet board in one of my previous projects, a twitter enabled candy dispenser.

Using the Raspberry Pi to handle the networking made the code a lot easier and gave me a massive potential for flexibility should I choose to use it.

The hardware side and using the board as an Arduino meant I could keep the pinouts and a lot of the arduino code the same as my original design, saving time and effort.

The board now has the potential to monitor several sources such as email, twitter, facebook, web sites and no matter how complex the code gets it is running on a Raspberry Pi rather than on an Arduino which is limited by memory constraints which have now neatly been sidestepped.

This board is a great step up from an Arduino and is a massive plus for Raspberry Pi users.

Get some documentation sorted and you've got a real winner on your hands.

I heartily recommend this for anybody banging their heads on the Arduino glass ceiling or where their ideas have outgrown the hardware.