Sunday, June 5, 2011

chipKIT PIC32MX Competitive Analysis

Following up from my previous article about Digilent/Microchip's new chipKIT boards, despite the fact that they are footprint "Arduino compatible", they also are a new addition to the collection of PIC32MX development boards in the market, so I did some searching and put together a basic comparative analysis since the chipKIT boards are apparently priced with low margin to put some competitive pressure, the chipKIT Uno32 is even being promoted as being about $3.00 cheaper than the Arduino Uno.

While being "compatible" with Arduino, the PIC32MX has a fantastic feature set that could be crippled for some applications within the MPIDE environment. The good news is that if you don't care about Arduinio you can directly program the PIC32MX via the ICSP interface and you have sort of a generic PIC32MX development board at a very reasonable price.

What is out there ? Check the following table (click on it to download the pdf version with live links to each product page).

As you can see the chipKIT Uno32 is currently one of the cheapest options in the market, obviously there are a range of features to cover all boards, including the humongous dip switch flooded boards from MikroEletronika (I've the LV-32MX v6, like it for some work but it requires a modification to work properly with Microchip's REAL ICE).

The chipKIT Max32 falls more or less in the same price range of Microchip's Starter Kits, not that I think they are a bad product but if you want to go beyond the few LEDs and buttons on the starter kit, without the I/O expansion board (that at $72 I consider it a robbery from Microchip), they are practically useless, so the chipKIT boards may become a better solution for quick prototyping where you need to use some GPIO or analog pins.

In summary, I believe that the chipKIT boards are very well positioned not only to attract  Ardunio community enthusiasts looking for more juice and a more feature rich processor, but also current and future developers interested in the Microchip PIC32MX family.

Did I tell you that behind all the yada, yada, Microchip's marketing is running the show ?

Ohhh, just in case, chipKIT claims to be a registered trademark of Microchip Technology, Inc, other mentions to stuff that may/could/might/will/is/are registered marks of their respective holders or pure coincidence.


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.

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 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 !!


Sunday, July 4, 2010

Project pages and new Blogs

Over the past few years I've published several pages about some of my experiences trying to put together different projects related to electronics, particularly using microcontrolles and one of my hobbies:  retrocomputing.

I've been always convinced that sharing and teaching what you learn is a way to keep learning, to find others with common interest and exchange experiences, ideas. No doubt, being an Internet pioneer, I always loved to use the network for that purpose, in the old days it was just electronic mail and FTP, later we had archie, gopher, WAIS, the noisy USENET News, but the big bang was "The Web".

Maintaining several sites in the old fashion way was becoming a big time consuming effort, time that I'd prefer to use to develop and publish new projects and comments about what I learn or find interesting in this constantly evolving field of digital electronics, microcontrollers and networking.

So then, I decided to upgrade myself to Web 2.0+.

The old plain HTML project pages do not exist anymore, I'm gradually moving all the content and in the process updating it to Blogger, but to facilitate indexing and keep my brain organized I'm splitting the content in three different blogs:

  • Electronics Projects, Reviews and Gossip
    The "official" LJCV Electronics Blog, for products and services I develop through LJCV, and general comments, reviews and news in the electronics industry.
    I'll also post here announcements if I publish something new somewhere else.
  • eProjects
    For all detailed electronic projects related to microcontrollers, embedded networking, mods, etc.
  • ReTr0ByTeS
    Dedicated to retrocomputing experiences, old computers, calculators, instruments, components, etc.
I hope you find the new format and content useful, and as always if you have comments or suggestions feel free to drop me a line.

Best Wishes

Friday, October 30, 2009

Microchip PICKit 3, Web 2.0 and social networks, Check it out mate

Short time ago Microchip Technologies introduced a new Programmer/Debugger tool, the PICkit 3. The plan is that this new programmer will replace the previous PICkit 2 version.

In the engineering community we were very excited about this new product because it now has a PIC24FJ256 MCU, much faster and with more memory than the one used on the PICkit 2. But we've got a little bit disappointed since the new product didn't seem to take advantage of the new MCU and many of the features available for the PICkit 2 were not present on the PICkit 3.

It didn't took long until comments started to show up on the Microchip User's Forum, but Dave Jones from Sydney who runs a very interesting electronics video blog put together a this video with an entertaining review of the PICKit3.

While some argue that Dave's review is not 100% accurate, he really pointed out many of the issues with the PICkit 3.

What Microchip did ?

Did they sue Dave ? No
Did they force him to remove the video ? No
Did they threaten him to shutdown his video blog and You Tube account ? No

They took it as a serious and honest message from the engineering community, and their response started with a direct call from Microchip's CEO, Steve Sanghi.

Dave provided the following update on his blog:

"Since this blog has gone to air and made it’s way all around the Microchip HQ, I have received a phone call from none other than the Microchip CEO Steve Sanghi. In a totally unexpected and rare show of honesty from any corporate person, let alone the CEO, he thanked me for the blog and for raising the issues. They took it as serious constructive criticism (as it was intended). He pointed out a few factual errors on my part which was fair enough, but admitted they could have done the PICkit 3 better and most importantly are working to fix the issues and give customers what they expect.

Any other huge multi-billion dollar corporation probably would have got their lawyers to give me a dressing down, if they cared at all, but Microchip really do care about their products and will happily take constructive criticism seriously at the top level. Such a thing has to be unprecedented surely?

I am absolutely blown away by Microchip’s honesty, and it starts from their CEO down.

Two thumbs up to Steve Sanghi and Microchip!

Not only that, in the era of the Internet, Web 2.0 and social media, Microchip is using the same tools as its customers for a two way dialog. There are several groups on Facebook, you can follow Microchip on twitter, they constantly add videos on YouTube, and guess what, Dave got his video response from Microchip ... Check it Out !!

This shows not only that Microchip is alert at what their customers say, it also shows that with a good sense of humor and recognizing what needs to be done, they do really care about their customers.

By the way, the product development team for the PICkit 3 is active and providing updates on the Microchip User's Forum, and not only they are planning to add the features we expected for the PICkit 3, they also plan to release all source material for the programmer, just like with the PICkit 2, including the source code for the stand-alone GUI that is under development.

This is not only a good example of a company that thrives for excellence, it also shows how the Internet empowers people to have a voice and be listened, and a good way, even after a mishap and what could be perceived as a negative comment, how a company with a right attitude can turn it around and get positive comments of its reaction such as this article.

Wish other large companies had the same attitude and appreciation for their customers.

Thanks Dave, and congratulations Microchip.


Thursday, October 22, 2009

eip-24 and eip-24/100 Preview

After few rounds of feedback from colleagues and debating with myself, I completed the final design for two new embedded TCP/IP boards.

The first batch of printed circuit boards are in the final steps of fabrication and I'll have them soon to complete assembly and testing.

Both boards will have a 16-bit Microchip PIC24HJ128GP202 as the main processor, same form factor and almost identical pcb layout, and same pin-outs.

The eip24 shown above will have a Microchip ENC28J60 10BaseT Ethernet Controller, a 16Mbit SPI Flash memory and a Microchip 25AA02E48 EEPROM with a unique Ethernet MAC Address.

The eip24-100 shown above will have aMicrochip ENC424J600 10/100BaseT Ethernet controller, a 32Mbit SPI Flash memory, and a Microchip 23K256 SPI RAM memory.

Both boards will also have three LEDs for heartbeat status indication or other use, and an RS232 transceiver for the serial interface.

On the drawing board and prototype bench I've right now a piggy-back board that will be compatible with both the eip24 and eip24-100 and that will have a 3x16 DOGM LCD, a microSD card socket, a temperature sensor, a 3.3V voltage regulator, some pushbuttons and a RJ11-6 for ICSP connection to an ICD2/3 or similar PIC programmer.

I'll post another article with additional details of the piggy-back board and an update as soon as the final docs and the eip24 boards become available.

Now it's time to go back to work on the firmware for them that will essentially be based on Microchip's TCP/IP Stack v5.10.



Monday, October 12, 2009

ENC424J600 - nic424 Board in production !!

It took me a while but finally the nic424 boards featuring the new ENC424J600 Ethernet Controller from Microchip are in production and available for ordering.

I had the first batch of boards ready for sale but I wanted to expedite and improve the test and validation process, for it then I designed a small customized "tester" using a PIC24HJ128GP202 as the "brains" for it, taking also avdantage of the analog features to measure voltage and current for the device under test.

Given the similarities of the nic424 with the nic28 boards, and the fact that I had some extra space on the prototype pcb I was using, I allocated some space and added the test pins for the nic28.

Here is an ugly picture (well it's not supposed to be pretty since it's internal stuff) of the finished tester in action.

Connection to all the test points are implemented with retractable pogo-pins which are kept in alignment with a small layer of plexy-glass, once the board to test is in place four large hexagonal separator act as nuts to keep the board in place and apply pressure to the pogo-pins for optimal contact.

The PIC24HJ128 controls power to the device under test (DUT), and using the ADC module measures the supply voltage to the DUT and supply current using a four-leads current sense resistor that feeds the voltage differential over the resitor to an MCP6022 operational amplifier that connects to one of the analog inputs of the PIC24HJ.

The LCD displays the measured values, the DUT MAC Address and together with two push buttons on the side acts as the user interface for several options and parameters of the test firmware.

When the test is finished the firmware that uses the Microchip TCP/IP stack, generates a complete test report that as a dynamic web page.

If you are interested in additional information about this application or the nic424 feel free to contact me.



Friday, August 21, 2009

Microchip ENC424J600 - Preliminary Tests

Finally the printed circuit boards and all parts arrived and I've got some time to put together the first batch of nic424 boars featuring the new Microchip ENC424J600 Ethernet Controller.

Based on the firmware code distributed with the latest (v5.10) Microchip TCP/IP Stack I customized a MAC driver module specifically for the nic424 and started to run some preliminary tests.

To my surprise I didn't have any problems getting the board up and running on the first try.

To test the Ethernet controller I mounted the nic424 on a solderless prototype breadboard alongside a ProtoPIC28 board populated with a Microchip PIC24HJ128GP202 Microcontroller.

For this first set of tests I'm using the SPI interface with a clock speed of 10MHz and the PIC24HJ running at 80MHz clock speed.

I compiled the TCP/IP Stack with the drivers for the nic424 and only included the ICMP Server module and the TCP Performance Test module.

The first test consisted in sending ICMP ECHO Requests (pings) packets to the PIC24HJ + nic424 from a dual core Pentium machine with Linux running at 2.4GHz, and connecting the Linux server and the nic424 through a Cisco Catalyst C2950 Ethernet Switch.

The Cisco C2950 didn't have any problems negotiating 100Mbps and Full Duplex with the ENC424J600 so I started playing with the payload sizes of the ping packets, going from 32 bytes up to 512 bytes. For each test the Linux server sent over a million packets in flood ping mode, packet loss with all payload sizes was 0% and the TCP/IP Stack didn't hang or reset during the tests.

To have a comparative test, I replaced the nic424 with a nic28 using the Microchip ENC28J60 Ethernet Controller and ran the same tests.

The graph below shows the average Round Trip Time results of the tests with both Ethernet controllers, clearly the ENC424J600 even at the same SPI clock performs faster than the ENC28J60.
After running the ICMP tests, I ran the TCP Performance Test with both controllers. The configuration using the ENC28J60 reported 97,100 Bytes/sec when the configuration using the ENC424J600 reported 134,100 Bytes/sec.

I'm planning to run some additional tests to get some metrics for packets per second and bytes per second taken from the five minute averages computed by the Cisco switch.

I'll mount a nic424 on a PICtail+ prototype board and do some testing with different processors on a Microchip Explorer 16 development board, and also try different parallel interface modes and see how well the crypto engines included in the chip perform.

So far things look very good, average current for the ENC424J600 was consistent with the values shown in the datasheet, around 200mA and the chip does not get too hot.

Don't have a firm date yet but I'll soon make the nic424 available for purchase through the LJCV Electronics site.