Friday, June 3, 2011

chipKIT PIC32MX based boards by Microchip and Digilent

Well, after some anxious waiting the new chipKIT™ development boards finally arrived this week. I'm obviously talking about the chipKIT™ Uno32™ and the chipKIT™ Max232™ boards produced by Digilent and co-developed with Microchip.
First of all notice that chipKIT™ is a registered Trademark by Microchip Technology, Inc. (they seem to be very cautious to include the ™ everywhere.)


These boards feature Microchip's PIC32MX 32-bit microcontroller family and claim to be somehow "the first 32-bit microcontroller-based platforms that are compatible with existing Arduino™ hardware and software" (more about the compatibility thing later).


The boards are produced by Digilent, Inc., and they share the same high quality and detail I've seen on other development boards produced by them. No need to say that the new chipKIT™ platform has behind it the marketing machinery of Microchip, and that the development of this new platform seems to have been originated within the Academic Exchange group to meet the demand for a 32-bit solution requested by the hobbyist, academia and embedded engineering communities.


(Hey look !! Microchip even produced and uploaded a video on YouTube.)
Update: For some reason the original video has been removed from YouTube.


As you may probably know "Arduino™ is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software", and until now all Arduino™ hardware has been based on Atmel 8-bit microcontrollers.


Hmmm "open-source", that's sort of new territory for Microchip, and obviously generated some buzz when the first rumors about these boards hit the development community, where Microchip licensing terms for most of the "License Free" stuff they make available for download and use are very well known for not allowing you to share or redistribute any changes or contributions to their stuff, kind of totally opposed to the spirit of the Arduino community.


Ian Lesnet from Dangerous Prototypes had a great initiative to collect questions from the community to be asked during a phone interview with the people involved in the chipKIT™ platform development. Ian was very kind to make the recording of the interview available on-line, you can find the recording and an interesting exchange of comments on this thread of Dangerous Prototype's forum.


OK, how compatible are the new boards with the existing Arduino™ stuff ?.


First of all notice that we are talking about a completely different Microcontroller, that means you need a different compiler and integrate it with the development environment. What Microchip did ? (something they not let you do with their stuff) took the open-source Arduino™ IDE and modified it to include support for the PIC32MX and redistributed it renamed as MPIDE (for Multi Platform IDE) with what seems to be an open-source license.


The key question is if the existing Arduino™ libraries will fully work on the new platform and if Microchip adds new libraries to support the new features introduced by using the PIC32MX will also be open-source and freely modifiable and distributable.


There are some folks already testing how well the existing libraries work and doing some performance testing as related on this article at Hack a Day, and some pin compatibility analysis by the Rugged Circuits folks.


About the hardware, the fine letter says "footprint compatible", and the intention here is to have the same form factor and approximate pinout so you may be able to use many of the already existing Arduino™ shields, but keep in mind the the chipKIT™ boards are 3.3V and there may be some shields that require 5V, remember always to check the schematics and documentation of each particular shield to avoid the unpleasant blue smoke.


Now taking a quick look at the new boards, this is a quick and preliminary first look at them, I'll post more articles as I power them and start doing some developments and tests.


The chipKIT™ Uno32™


Inspired and "footprint compatible" with the Arduino™ UNO. It features a 64-pin PIC32MX320F128H 32-bit Microchip microcontroller with 128KB of internal FLASH program memory and 16KB RAM, instead of a Type-B as the original Arduino™ UNO it has a mini-USB connector for the serial interface to the FTDI USB-Serial converter.


One thing that bugs me being one of the nice features of the PIC32MX family that you can have a nice chunk of program memory, why for one more dollar they didn't populate the Uno32™ with a PIC32MXF340F512H that has 512KB of FLASH and 32KB of RAM? It will probably be the first mod on my board.




The chipKIT™ Max32™


Inspired and "footprint compatible" with the Arduino™ Mega2560. It features a 100-pin PIC32MX795F512L 32-bit Microchip microcontroller with 512KB of internal FLASH program memory and 128KB RAM.


One nice feature of this member of the PIC32MX family is that it includes an 10/100 Ethernet MAC module, it requires and external PHY chip for a 10/100BaseTX but Digilent said to expect an shield that will take advantage of the Ethernet and USB interfaces by July.






Both boards include direct access to the PIC32MX ICSP interface in case you need to program the PIC32MX directly. The boards are preprogrammed with a bootloader and the classic flashing LED demo. In case you wonder why the ICSP header pins are not in line read this tutorial article from SparkFun.


One nice change on the layout of the new boards is the position of the RESET button, as you can see on the pictures if you have a shield installed on top of the Arduino™ boards unless you have a hole on the shield it is almost impossible to hit the RESET button, the new chipKIT™ boards have it in one of the corners where even with a shield on top it makes the button accessible from the side.


I'll start playing with the boards and post additional articles. As Microchip, I took care to include the stinking TM mark on all references which they make explicitly clear that are trademarks of Microchip and just saying that other trademarks are from their respective holders blah blah blah without mentioning that Arduino™ is a registered trademark of the Arduino team.


Hope this incursion of Microchip in this arena brings a change of attitude and helps they learn from this experience and embrace some of the practices of the open-source community.


BTW, even when it is a registered trademark the boards and associated software are not "official" Microchip products so don't expect direct support from Microchip, if you need help visit the chipKIT Forum (how original !! they also registered the chipKIT.cc domain, well it goes in companion with the originality of the packaging too).


Some links to keep handy:
You can currently purchase the boars via Digilent or Microchip Direct, I'm sure there will be other distributors in the near future.


Looking forward to see the first batch of clones :-), hey it is open-source after all !!


Cheers
Jorge