Microchip, makers of PIC mircocontrollers, must feel left out of the hobby buzz surrounding the Arduino. Unable to buy Atmel outright, they did the next most sensible thing and released a duo of open source Arduino-compatible boards. Microchip got the guys at Fair Use Building and Research to add PIC support to the Arduino IDE. Existing Arduino sketches will compile, without changes, and play on cheaper, more powerful hardware. On Friday we talked to a bunch of people involved in the project and asked your questions from the forum.
chipKIT source code was released over several days after a huge launch at Maker Faire. There was a lot of internet speculation that Microchip wasn’t being entirely open. Some components, like the bootloader, weren’t released until the end of last week. Other stuff, like the hardware files, are distributed by Digilent instead of the project github.
Everyone on the chipKIT team seems genuinely dedicated to making this project fully open source, that’s great news from traditionally-closed source Microchip. The software, including bootloader, IDE, and compiler, are licensed GPL with source hosted at github. Multiplatform hacks to the Arduino IDE will be merged back into the official client. Both PCBs are done in Eagle and licensed CC BY-SA, but note that they are multi-page and require the non-free version of Eagle to edit.
Microchip still has some work to do. Some of the features advertised on the Max32 box, such as USB and Ethernet, can only be supported with free-as-in-beer-but-not-as-in-speech closed source drivers. This means you can’t share a cool project using the Max32’s ethernet if it includes Microchip’s driver. The community is also barred from porting Microchip’s ‘free’ drivers to Microchip’s own open source development platform. Digilent will release an ethernet/USB shield soon, it will be interesting to see what drivers they provide.
We’re hopeful that the new platform and Arduino IDE integration helps fill the void in open source support for Microchip’s stuff. We’ve been testing Honken and JTR’s open source USB stack on the MAX32, we encourage Microchip to donate a driver to the community as well.
Markus and LisandroP both get a chipKIT board for their excellent questions, and teedeeus and jamodio get free PCB coupons.
Thanks for your questions, and thanks to everyone at Microchip and FUBAR Labs for talking with us.
You put a lot of work into adding multiplatform support to the Arduino IDE. Is Microchip working with the Arduino crew to unify efforts?
Yes, post v1. Arduino team is super busy right now.
When the Arduino team releases a new version of the IDE what will be the lag for an updated chipKIT MP(multiplatform)IDE?
Development version is kept at parity with the main trunk.
The PIC on the Max32 boasts USB 2.0, CAN, and 10/100 Ethernet MAC. Are these already supported by open source libraries with MPIDE?
Not yet. Want it to be open source. Just core library support for now.
Microchip already supplies excellent drivers for this hardware, but the licenses don’t allow sharing, which is a big part of the Arduino community. Do you have any suggestions for users who want to make projects that support the USB, CAN, or Ethernet and share their code?
A shield with USB and ethernet are coming. Community can come up with it, how long will it take? Port LUFA. Corporate guys see source changes as bug not a feature. [ed: the shield is from Digilent, it will be very interesting to see what the driver situation is at launch]
How do you take advantage of the speed and the extra capabilities of a PIC32 in existing Arduino projects?
Computational things are faster, maker faire Mandelbrot LCD graphic demo
Any suggestions to port libraries with strict timing requirements?
Some potential to use a separate clock on peripherals.
What’s the difference between the ChipKIT compiler, and the C32 compiler? Both based on GCC, but C32 has optimization restrictions after a 60 day demo, chipkit supports C++?
No restrictions, all optimizations, no debug. Different compiler than C32, called chipkit compiler instead.
Microchip is known for keeping parts of the compiler closed. We could only find a license file in your github repository that forbids modification. What gives?
Is open source, in different repository. Putting everything out under the same license. Giving to community. If you see other licenses tell us, we’ll fix it.
Can we talk a little about shield compatibility. chipKIT is a 3.3volt system, and most shields are designed with 5volt IO in mind. The PIC pins are 5volt tolerant, but what about CMOS 5volt inputs that need 3.7volts or more?
? [ed: we were looking for a discussion of TTL vs CMOS inputs, Microchip’s appnotes usually recommend open collector outputs with a 5volt pullup resistor in these situations]
Why not PIC 24 with PPS (ability to move hardware to different pins)?
Possibility, 32bits to start.
Any plans for PPS on PIC 32?
See us in 6 months.
Do you plan to track shield incompatibilities? Ruggedcircuits.com notes a few issues with the pinout: there’s no PWM on D11 so it doesn’t work with their rugged motor driver, and the PIC doesn’t have interrupts on every pin.
Start a thread in the chipKIT forum.