Review: ChipKIT Uno32
Name: ChipKIT Uno32
Price: £18.94 ~ $30
Evaluation Type: Development Board, PIC32
Application you used the part in: Arduino form-factored development/prototyping
Was everything in the box required?: The box only contains the board itself, nothing else
What were the biggest problems encountered?: Shield compatibility with other Arduino shields (should be 3.3V compatible)
Product Performed to Expectations: 8
Specifications were sufficient to design with: 10
Demo Software was of good quality: 6
Demo was easy to use: 9
Support materials were available: 7
The price to performance ratio was good: 10
When the Arduino were developed as a university project some years ago nobody knew that it would become such a big invention. Since then many different companies, including Google and Texas Instruments recently, have tried to cream off some of the profit in this great invention by making their own Arduino form-factored boards but with their processor family.
Another manufacturer who has decided to try that is Digilent. Digilent teamed up with Microchip and designed the Chipkit family which consists of a PIC32 device with a number of different peripherals.
In this review we are going to look at one of the Chipkit boards sold by Farnell, the Chipkit Uno32 which is a look-a-like of the Arduino Uno. We will compare the board to the original Arduino of course but also compare it against some of it other “form-factored” competitors.
Most of the review is done in video to show you the board and the comparison in real. The written review here is a summation of the video presentation.
So I recommend you to watch the Video review first and then get back to this written review.
In the heart of the ChipKIT Uno32 there is a PIC32MX320F128. This 32-bit PIC processor is running at 80MHz compared to the Arduino Uno 16MHz and with this processor you also get an astonishing amount of 128KB Flash and 16KB RAM. The peripherals are the same though with an improvement in the numbers BUT the PIC32 is running at 3.3V while the Arduino is running on 5V. This might induce problems with some shields not compatible with 3.3V systems.
Please refer to the “Comparison” section for a deeper look on the changes.
One negative aspect of the Uno32 board is the missing USB functionality. Some of the PIC32 devices comes with USB OTG functionality except for the device chosen for the Uno32. Its’ larger brother, the ChipKIT Max32, holds a PIC32 device with USB OTG functionality, so if this is required you have to spend some more money on the larger version of the board.
Seen from the top the board has the exact same form-factor as the Arduino Uno.
The board contains the same IO connectors at the same spots as the Arduino Uno. When designing the board Digilent decided to route PIC32 pins with specific features to the right pins on the IO connectors making the board an ideal replacement for the Arduino as your shields will be pin-compatible. As mentioned though you have to make sure that the shield can run on 3.3V – but in most cases it can. Here I should remember to mention that all of the IOs of the board is either 5V compliant inside the PIC or made 5V compliant thru a series resistor and the internal clambing diode. So you should not be afraid of connecting the ChipKIT boards to 5V electronics. The only problem that can be is if the 5V electronics doesn’t sense a 3.3V signal as a High.
An IO routing chart with comparison against the Arduino Uno, Arduino Mega and the ChipKIT Uno32 can be found here: ArduinoChipKitPinMappings.pdf
In the video we tested the old Ethernet Shield (without the SPI connector at the bottom) and this worked out of the box with the Ethernet library.
For the newer Ethernet Shields with the SPI connector you have to make a small fix either on the Uno32 or on the Ethernet Shield. The fix cuts the reset trace which is shared both on the SPI connector and on the shield reset pin – unfortunately the SPI connector on the Uno32 doesn’t have the common reset pin but a normal IO instead, so if connected the PIC32 will be resetting itself.
I decided to make a comparison against the Arduino Duemilanove and the iTeadMaple which is another Arduino form-factored board with an ARM Cortex-M3 processor (review can be found here). In the chart below we have tried to compare most of the processor specific features of all three boards.
One of the noticable things is the number of PWM outputs. The ChipKIT Uno32 does actually have one less than the Arduino Uno which is very bad indeed.
Though compared to the iTeadMaple the ChipKIT Uno32 hasn’t got far from as many peripherals as that board. So if you are looking for great many peripherals, IOs etc., you should have a look at the Maple boards.
The Arduino is well know for its’ easy programming language in C (combined with C++) and the easy IDE. The programming language is exactly the same for the ChipKIT Uno32, and the IDE is looking the same though named MPIDE and you just have to download it from the Digilent homepage.
The common Arduino functions like Delay, digitalWrite, analogRead, Serial etc. have all been ported to the ChipKIT family so you should be able to compile Arduino sketches for the ChipKIT as long as it doesn’t rely on any processor specific register writes etc.
The PIC32 processor is programmed thru a serial Bootloader and like on the Arduino the ChipKIT Uno32 also contains a USB to serial converter chip. The IDE integrates nicely with the board, just like with the Arduino, and with a press of the upload button the board is programmed.
To optimize the GPIO speed it is recommended to use direct port register writes instead of the digitalWrite. For PIC devices the output port setting register is called LATx, where X is the port identifier.
To show how fast the ChipKIT Uno32 really is I decided to port the LCD Library for the iTeadStudio ITDB02 LCD display. This library makes use of the direct port writes which makes a great increase in the display refresh rate.
The download link for the library can be found in the bottom of this post.
So to do a better speed comparison I decided to try measure the generated toggling frequency using the digitalWrite function versus the direct port writing versus direct port toggling registers.
When using digitalWrite High and then Low on the ChipKIT Uno32 it were able to generate a 650KHz signal. This is not much compared to the processor running at 80MHz.
So instead I tried toggling a bit doing LATx writes and this generated a much faster signal. The frequency were now 4MHz so that was a big increase!
In the video I also compare the ChipKIT Uno32 against the iTeadMaple and at toggling of IOs with direct port register writes the iTeadMaple did only generate a signal of 1.3MHz.
But yet again if doing the toggling with digitalWrite the iTeadMaple were actually around 9% faster than the ChipKIT Uno32.
So if you need speed and knows how to do the register port writes you should go for the ChipKIT Uno32. But if you need a decent speed and would like to stick to the built in functions you should go for the Maple family.
Pros and Cons
- Really inexpensive but powerful Arduino form-factored board
- Easy replacement for the Arduino
- Same programming language and IDE layout
- Well done I/O similarity to Arduino UNO/Duemillanove
- Fair compatibility with other shields
- No on board pull-up resistors on the I2C lines
- Maximum current draw of 18mA pr. IO or 200mA total
- The Wire library is not working yet (as pr. 26th May 2012)
- No USB peripheral due to the selection of PIC32
To say it in short the ChipKIT Uno32 board is a great replacement for the Arduino if you need some more power but still would like to stick with the Arduino “environment”.
Even though there are many other Arduino form-factored board the ChipKIT Uno32 stands out by using a PIC microcontroller as the PIC microcontrollers are the counterpart to the AVR family.
The supported hardware libraries are still a bit limited regarding the number of different shields you can get for the Arduino – but hey, it’s a matter of time when they get ported.
For many electronics enthusiasts and hobbyists the price is certainly one of the most important factors. At a price of around $30 the ChipKIT Uno32 costs the same as a new Arduino UNO so there is definitely no reason not to take a closer look on this faster and more powerful variant.
Thank you to Farnell for letting us test this board and hopefully you have got some useful information for your upcoming development board selection.
As demonstrated in the video review we’ve ported the LCD Library for the iTeadStudio ITDB02 LCD display to the ChipKIT Uno32. This library can be downloaded here: ITDB02_Graph.zip
The speed testing code for the ChipKIT Uno32 can be found here, including comments on the measured speed: ChipKIT_Uno32-SpeedTest.pde
To download other materials of the board, including schematics, datasheets and of course the compiler please refer to the Digilent product page: Digilent CHIPKIT-UNO32