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.
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:
- Newark’s Arduino and Arduino-compatible product page
- Information, libraries and code samples can be found on Digilent’s chipKIT Forum and the chipKIT Wiki