ChipKIT Max32, An Arduino Mega Upgrade With A PIC32 Under The Hood

For those of you who are looking to put some power behind your Arduino shields,  Digilent just released their chipKIT Max32 prototyping platform. The board  features a Pic 32 microcontroller, USB programmer and all the things you would typically expect from a development board.

The PIC32MX795F512 is a  32-bit MIPS processor core running at 80Mhz, 512KB flash memory and packs 128KB of SRAM data memory. Digilent also mentions utilizing the Pic’s built in USB 2 controller, 10/100 Ethernet and dual CAN controllers, but these will require shields specific to the chipKIT Max32. The board is also fully compatible with Arduino IDE and libraries as well as MPLAB  and the PICKit3 in-system programmer/debugger.

With a price point just below the Arduino Mega 2560 this looks like a great resource for anyone looking to upgrade their Arduino webserver, or just embarrass their Arduino Arduino shield. Maybe it’ll just spawn some interesting gameduino upgrades. It can certainly cut down on extraneous Arduino usage. Either way we’ll be on the lookout to see what this performance bump can bring to table!

91 thoughts on “ChipKIT Max32, An Arduino Mega Upgrade With A PIC32 Under The Hood

  1. @SpecV Microchip is not the best at up-keeping with their documentation. You may also find in 2-4month that the “default” register values may not be “recommended values” Get into habit of explicitly stating all register values even when they state that there is a default. If you think there is a bug…there probably is. Fix it and don’t waste time waiting on official fix. They are also in a habit of jumping ships. So while PIC32 is the latest fad your in luck. But once they come up with their next “big thing” they will drop PIC32 to back burner. All in all the micro’s are good, biggest issue is lack of good documentation. You’ll resort to combing forum posts for bits of information to get the complete picture.

  2. Jesse,
    I’m the PR person with Microchip. We’d like to ship a chipKIT(tm) board to you. What is your shipping address, including phone #?

    Also, I’m putting together a Virtual Press Conference to discuss the chipKIT platform. Would you like to attend?

    Michelle
    PR Person, Microchip Technology

  3. @Roman Dulgarov –

    They probably did it because the entire community freaks any time anything changes. I remember a thread on the Arduino forums where an admin asked why there are always conspiracy theories when they change stuff.

  4. >> Why is there a FTDI on it period?
    To implement simple serial communications (as used on Arduino) on a chip with built-in USB would require a significant amount of “background kernel” to be running on the chip, which is still sort of a researchy area (in Arduino-land) (as in “we don’t quite know how we’d like to do that”) (I think. What does teensy do ?)

  5. WestfW is correct regarding FTDI. There was too much work to get the ‘background’ USB stack working properly, in the time frame needed, and FTDI was seen as a safe, low risk way to go. Not really anything special about FTDI – other USB to serial chips could easily be used instead.

    Having said that, I know that it’s possible to make this work with just a PIC32 – no FTDI needed. I demonstrated it on my UBW32 board (which has no FTDI chip). The big piece left is the PC side of the bootloading process – avrdude does not support FTDIless PIC32 bootloading, so a new tool needs to be put into place for that to happen. Hopefully it will, eventually.

  6. Here are various answers to various questions above

    I did all of the porting of the core files for the PIC32 and I was the architect behind the multiple cpu implementation of the IDE.

    I will be at Maker Fair at the Microchip booth

    CROSS PLATFORM

    ALL of the development for pic32/chipkit was done on Mac. So the cross platform issue is resolved. In fact, from the IDE side, Mac was much easier to do than Windows.

    FTDI CHIP

    You cant use the on chip USB interface because the Arduino IDE resets the board to do a download. When you reset a chip running as a usb device, it disappears then comes back. There have been arduino boards that get around this (the Teensy) but they use a non-standard downloader.

    The reason for the FTDI chip instead of a microchip based USB support is again because of reset. The microchip M2200 could not do the reset correctly. Believe me, they tried to make the M2200 work.

    LIBRARIES

    Most of the libraries are ported and working. The rest of them should be ready on release date.

    Mark

  7. The LeafLabs Maple line boards dont have the additional FTDI chip. It definitely adds a layer of complexity (to have the USB running the background, and dealing with RESET and bootloader effects), but also flexibility – users can control the USB peripheral if they wish. Uno uses a secondary chip to offer configurable USB, which is nice too but adds another chip to the design.

    In the end, I think the “use the onboard USB” approach turned out to be much harder than expected, but eventually it has become quite stable.

  8. @Mark

    Do you guys plan to make a shield that contains USB A host, USB B device, ethernet magjack, and possibly microSD card and RTC battery backup? I would like to see this shield for ChipKit Max32. Thanks.

  9. @Alex – forget all that on a shield. I want a version with all that on the main board! Kind of like the Freetronics Etherten (which looks awesome but is not available in the USA, frustratingly… )

  10. @Alex and @ X

    I had my phone briefing with the people at Digilent and Microchip yesterday, and let me just say there’s a pretty awesome shield coming out for the Max32 this summer :)

  11. @Will

    Would that “pretty awesome”-ness include what I wanted plus Google ADK support and XBee/Bluetooth/Mifi, but with a good and honest price to boot. It’ll be the “Internet of Best Things”. Thanks. :)

    Can’t wait for the official press release with more details.

  12. The software is now ready to download

    https://github.com/chipKIT32/chipKIT32-MAX/downloads

    All 3 OS versions are ready to go (Mac, Windows, Linux)

    As far as how it works, the core files and library files of course have been re-written to use pic32 hardware instead of avr hardware

    The ide has been modified to have a platforms.txt in addition to the boards.txt. This allows multiple compilers to be used. The design idea is that any gcc compiler can now be made to work just by adding a text file (platforms.txt) Everything about the compiler is driven by that file.

    The biggest difference in what we did compared to what maple did, is now you can select back and forth between AVR and PIC32 without changing programs. Just go up the boards menu and select a different board. Mega2560, Arduino-UNO, chipKit-MAX32 or chipKit-UNO. and click download. Thats all there is to it.

    We are calling it MPIDE for Multi-Platform IDE

    For anyone that has looked inside of the java ide code, the section that drives the compiler has been COMPLETELY re-written. This was a MAJOR undertaking.

    I am at Maker fair this weekend if anyone wants to stop by and see it and learn more how it works

    Mark
    lead programmer in the pic32 chipkit/Arduino project

  13. thanks Mark! I’ll watch for the reviews and then place my order. This is HUGE for me because I was almost tempted to go with Netduino (more power than Arduino, but saddly incompatible… And old Linux dog like me could never switch to Visual Studio).

    I also have to comment in general, this looks like a FINE beginner board even if you want to avoid Aduino. It has everything you want on a development board. 128k and Ethernet for $50? Wow. No more hacking consumer routers for me….!

  14. The chip using on the larger board includes an Ethernet “Mac”, but it will need a daughter card containing an “Phy” and the magnetics/connector to actually talk to an ethernet. Semiconductor economics being what they are (weird), I can’t see a Phy+connector “shield” being much cheaper than a ENC28J60 (which includes both Mac and Phy) shield. Potentially MUCH faster, though (no SPI bottleneck!)
    And a “combo” shield that includes the missing bits of Ethernet + USB host + other stuff might make for an interesting combination…

  15. i saw the combo usb/ethernet shield at the maker faire, SF yesterday.
    Talked with Mark Sproul from Rutgers U. /Fubar labs for a few minutes about it (Hes the guy who did all the software development, and Rick Anderson did the compiler modifications.
    Basically he said the Ethernet shield has some IC’s that talk on the physical level, and is going to be out in July ’11

  16. @makomk – See, it does what I asked. :)

    It may not be in the official Arduino tree YET, but suddenly the “Arduino environment” is CPU agnostic. That’s just perfect – people can start with small boards, learn their own platform, and work their way up. Plus, traditional ARM boards tend to be rather expensive… this isn’t.

    This is like learning xmas is happening twice this year!

  17. Is there an official statement somewhere about the origins of this project and how the pieces are related? I’m curious as to whether Microchip engaged Digilent and Fubar, and etc. There’s nothing wrong with a company funding an open source effort, after all, and it would be nice to know who to credit or blame depending on how this works out…
    (“Mark Sproul from Rutgers.” Click. Any relation to Keith from “back in the days”?)

  18. @WestfW

    Microchip started the project from the Academics division. They approached Digilent to do the hardware design. Digilent had dealt with me and knew I had the ability to pull off the software side.

    Yes, Keith is my twin Brother….

  19. There will be a chipKIT Ethernet shield released sometime in June. The details I have are: Ethernet PHY and transformer, USB OTG, 32 KHz oscillator, 256 Kbit I2C EEPROM, and 2 CAN interfaces

    There will also be a Basic I/O shield released around the same time. Details on it are: 4 switches, 4 buttons, I2C™ temperature sensor, 256 Kbit I2C EEPROM, 128×32 OLED display, 4 open drain channels, 1 potentiometer, and 8 LEDs

  20. Actually this is not so compatible. First of all the Arduino IDE doesn’t support it, second the Arduino libraries are not compatible and some shields that are designed for the regular Arduino won’t work.

    This is going to create a lot of confusion with noobs

    It’s kind of pathetic that a big company like this has to copy a lame open source platform instead of innovating (given they have plenty of cash to hire proper engineers)

  21. solar32

    There is a modified version of the Arduino IDE that supports BOTH the ATmega and the PIC32 chips

    Many of the libraries such as LCD and Stepper work exactly as is. Libraries that deal directly with the hardware such as Wire(TWI) and SPI have to be re-written, then they will be fully compatible libraries.

    Mark

  22. I really think they should remove any reference to Arduino from the project until things are really working correctly. I agree with solar32, this is going to be a mess. I am one that almost placed an order for the board, just to find out the SPI and TWI libraries are not made yet. So how come they say is Arduino compatible, when a lot of projects uses SPI and TWI?! That’s just lame for such a bit company indeed.

  23. You are much too kind Mark. I would simply have pointed out to solar32 that his comment was false, and and unnecessary actually had he bothered to actually read all the follow-up comments (such as yours, which added those details to the original breaking-news HAD post).

  24. twi /i2c working on beta release of mpIDE (the arduino ide for chipkit32). Mark and Rick are hauling A-word to get these things fixed. I think they need to make a video explaining how this works. Mark made it sound simple , saying it was just a text config file that separates us from compiling for other chips (think ARM Coretex)

  25. j_jwalrus

    I am working on getting the maple compiler chain to work under MPIDE, the compile process is working completely, I have a bug in the link command some place. Once this is working, we should be able to program the maple arm boards directly from MPIDE.

    I am going to put documentation to platforms.txt on the wili (www.chipkit.org/wiki)

    Mark

    I also am working on several other cpu families. If anyone wants to help, let me know and find me gcc compilers for the mac for your favorite cpu.

  26. Z

    I am not sure what you meant “to program another distinct micro-contoller”, The chipkit IDE is designed so that any cpu that you have a gcc C++ compiler for you can drop into it and use it like an arduino. A lot of work has to be done to make this work, create the platforms.txt file which drives the compiler and make sure you have a compatible bootloader, but then yes, you could use the MPIDE (chipkit version of Arduino IDE) to program other CPUs

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.