chipKIT Uno32 Road Test

Electronic components distributor Newark recently asked me to road test the chipKIT Uno32, a 32-bit Arduino UNO compatible development board based on the Microchip PIC32MX320F128H Microcontroller.

chipKIT Uno32

The chipKIT Uno32 is a 32-bit development board that is software and hardware compatible with the popular 8-bit Arduino boards. The chipKIT is manufactured by Digilent. It is also sold by Microchip under the far less appealing name of TDGL002. Digilent also makes an Arduino Mega2560 compatible board based on the based on the Microchip PIC32MX795F512L called the chipKIT MAX32 which Microchip calls the TDGL003.

The chipKIT is not the first 32-bit board with an Arduino form factor. The 48MHz Netduino and the 72MHz GHI electronics FEZ Panda II and FEZ Domino are all based on a 32-bit ARM7 microcontroller. However, they are programmed with the Microsoft's .NET Micro Framework and so are only hardware compatible with Arduino. The Leaf Labs Maple board is based on a 32-bit 72MHz ARM Cortex M3 processor. The Maple is programmable with a version of the Arduino language, but requires its own IDE which does not work with standard Arduino boards.

What Diligent is offering is unique. They have a single IDE that can program their 32-bit boards as well as standard 8-bit Arduino boards. The multiplatform IDE runs on Windows, Linux and Mac OS X. It is open source and can be downloaded from github. It was not developed by Diligent, but by Mark Sproul and Rick Anderson of FUBAR Labs, based on the Arduino 0022 source code. The hope is that the Arduino project accepts their methodology as a standard for supporting alternate hardware in the official Arduino IDE. The chipKIT boards are also compatible with Microchip’s MPLAB IDE and their PICKit3 in-system programmer/debugger.

Hardware Comparison

chipKIT Uno32 Ardunio Uno chipKIT Max32 Ardunio MEGA
Processor PIC32MX320F128H ATmega328 PIC32MX795F512L ATmega1280/2560
Architecture 32-bit 8-bit 32-bit 8-bit
Speed 80 MHz 16 MHz 80 MHz 16 MHz
Program Memory 128 KB 32 KB 512 KB 256 KB
RAM 16 KB 2 KB 128 KB 8 KB
EEPROM none* 1 KB none* 4 KB
Timers 16 32-bit 8 16-bit 16 32-bit 8 16-bit
PWM 16/32-bit 8-bit 16/32-bit 16-bit
ADC channels 16 10-bit 8 10-bit 16 10-bit 16 10-bit
ADC speed 1 Msps 77 Ksps 1 Msps 77 Ksps
Comparators 2 1 2 1
i2C 2 1 5 1
SPI 2 1 4 1
UART 2 1 6 4
RTCC Yes no Yes no
USB no no Device/Host/OTG no
Ethernet no no Yes no
Available I/Os 42 14 83 54

* Can be emulated by writing to program memory.

As the chart shows, the PIC processors in the chipKIT are much more powerful than the ATmegas. The difference in ADC (analog to digital converter) speed is particularly notable. In addition, the PIC32MX processors have a 32-bit, single cycle, hardware integer multiply and divide unit which should make math-intensive programs far faster. Floating point libraries are emulated for both processors, so the actual speed will be determined by the quality of the emulation routines.

My Testing

In my tests, the chipKIT was virtually indistinguishable from a standard Arduino board. I was able to compile the same programs and download it to both the chipKIT and my Arduino Duemilanove (the predecessor to the Uno). The programs worked correctly on both boards. My test applications interfaced to an LCD display, external chips, buttons and a rotary encoder. The rotary encoder was actually more responsive with the chipKIT than the Arduino. I did not notice any speed differences, however the applications that I tested were not math-intensive.

I also tested the chipKIT with a shield (a daughter board that plugs into the development board) and that also worked fine. One caveat is that the chipKIT runs at 3.3 volts and so is not compatible with Arduino shields that require 5 volts. The double row of I/O sockets is a great feature, however it would have been nice if they had put the extra I/O sockets outside of the standard ones so they would not get covered when a shield is inserted.

Final Thoughts

Should you buy one? I would say "yes." As an electronics hobbyist, I am sure you are like me and want to try out every new gadget that comes along. From a more practical standpoint, which board you use for your next project would depend on your application. At about $27 dollars, the chipKIT Uno32 costs approximately the same as an Arduino Uno, so price is not a deciding factor. If you need a faster processor, a faster math unit, faster ADC speed, then the chipKIT is a clear winner. However, what has sold me on the chipKIT are the extra I/Os – 42 versus 14 for the same price. That alone justifies it in my book, because you can never have enough I/Os.

Links: