FAQ

Common chipKIT Platform Questions

What is the chipKIT Platform?

The chipKIT Platform is a high-performance computing environment designed for ease-of-use and rapid prototyping. Based on Arduino-style hardware abstraction and PIC32 MCUs, the platform is intended for beginners as well as experienced engineers who are looking for more power in the familiar Arduino environment. The system also provides a clear migration path to professional engineering tools using the MPLAB X and Harmony development environments by Microchip.

Interested developers and community members are encouraged to join the chipKIT forum to ask questions, post projects, and suggest improvements to the chipKIT Environment. Contributions of sample code, documentation, libraries, etc. are always welcome and will help improve these useful tools for others. 

Where do I buy chipKIT hardware?

Purchase chipKIT hardware by visiting the associated page in our Products page. 

What is the Multi-Platform Integrated Development Environment (MPIDE) and how does it differ from the Arduino™ IDE?

The MPIDE is a simple development environment ported from the original Arduino IDE that simply adds support for PIC32 devices while still supporting many of the existing Arduino boards. Therefore, users can use many of the existing code examplesreference materials, tutorials and other resources found on the www.arduino.cc website with minimal to no alteration.

However, as of January 2016, MPIDE has been replaced by the chipKIT core, which plugs in to the official Arduino IDE v1.6.7 and later versions. See the Getting Started: Install Software page for more info.  

Where do I download MPIDE software for my particular chipKIT Board?

Download MPIDE from the GitHub repository.  

If I need support, where should I go?

Our Support page will direct you to the support you need.  

What operating systems will the MPIDE software run on?

The MPIDE is compatible with Mac OS X, Windows, and Linux operating systems. 

What original Arduino IDE libraries and functions are supported in the MPIDE?

Great efforts have been taken to port existing Arduino™ core functions and libraries so that they work on the chipKIT Platform. This means that any sketches and application examples that make use of these core functions and libraries should be interchangeable between your Arduino™ and compatible chipKIT board. For a complete list of supported functions and libraries, please visit our learning page. 

Can I use any other software to program my chipKIT Board? If so, how much does it cost?

Yes. Provided that your chipKIT board has connectivity for an ICSP™ header that can accommodate a Microchip Programmer/Debugger, you may also use Microchip’s FREE MPLAB® X Integrated Development Environment (IDE) and Microchip’s free MPLAB® XC32 Compiler to develop chipKIT applications. Please refer to your hardware user’s manual or datasheet for more information.

What’s the difference between the chipKIT platform and Arduino™ ?

The Arduino platform has historically been based on 8-bit microcontrollers from Atmel. The chipKIT platform on the other hand uses Microchip Technology’s 32-bit PIC32 devices based on the MIPS architecture. Some of the generic differences can be viewed in the following table:

 

Platform

Flash Program Memory (KB)

SRAM Data Memory (KB)

Operating Speed

Common Peripherals

Advanced Peripherals

Arduino Platform up-to 256 up-to 8 20 Mhz 8/16-bit Timers, 16-bit PWM, 76 ksps 10-bit ADC, (1)Comparator, (1)IIC, (1)SPI, (4)UART
chipKIT Platform up-to 512 up-to 128 80 Mhz 16/32-bit Timers16 or 32-bit PWM1 Msps 10-bit ADC(2)Comparators(5)IIC™(4)SPI(6)UART(with IrDA® encoder and decoder) Real-Time Clock Calendar*USB(FS Device/Host/OTG)*(2)CAN*Ethernet ControllerDirect Memory Access Controller
*indicates this is found on the PIC32MX795F512H device. Check your chipKIT board documentation to determine which PIC32 device is populated. 

 

Will my Arduino shield work on a chipKIT board?

Great effort has been made to ensure that chipKIT boards based on the Arduino form-factor are pin compatible and many existing shields that can operate at 3.3V should work with minimal to modifications. However, users should always refer to the shield and the chipKIT hardware manufacturer documentation to ensure compatibility. 

I’ve seen other 32-bit boards that look like an Arduino board. So why do you claim that the chipKIT platform is the first 32-bit Arduino compatible?

Many manufacturers have claimed “Arduino compatibility” but refer only to the hardware. The chipKIT team feels that compatibility implies more than simply have the same form factor as an Arduino board. When we use the term “compatible” we mean that the core existing code examples, reference materials, tutorials, curriculum and other resources found on the www.arduino.cc site should work with minimal to no alterations on the chipKIT board. 

Is the chipKIT hardware open source?

Yes. Boards that contain the chipKIT name (such as chipKIT Uno32 and chipKIT Max32) are open source. The hardware design files, schematics, etc. are available for download from the manufacturer’s website, in agreement with the Creative Commons Attribution Share-Alike License. Anyone is free to copy or make derivative works from these.

There is currently one exception: a programming tool designed to work with chipKIT boards, called chipKIT PGM. This programmer is based on a licensed design, and is not available as open source. Other boards may be described as “compatible with the chipKIT system” and these may or may not be released as open source. 

I heard that the chipKIT software isn’t completely open-source. Is this true?

The MPIDE is a extended version of the original Arduino IDE and is therefore covered by the GNU General Public License (GPL). The chipKIT compiler, assembler and linker are based on GCC v4.5.1 and are also covered by the GPL. The C runtime library is based on Newlib v1.19.0, and is covered by a variety of open source licenses. The PIC32 device files are covered by an open source BSD license.

Early releases of the chipKIT compiler included certain low-level peripheral libraries that were covered by a proprietary license from Microchip. Those libraries have since been removed.  

I want to use the chipKIT name on my original board. What do I need to do?

The chipKIT Name is trademarked by Microchip Technology but is available for licensing at no charge to parties wishing to build their own chipKIT boards. You can request a license agreement by contacting us via the Contact Us page.  

What is the impact of the chipKIT boards being 3.3V?

The PIC32 Microcontrollers operate the i/o at 3.3V, so all outputs will have a 3.3V logic level. All of the digital pins are 5V tolerant, the analog pins are not explicitly 5V tolerant, so some but not all chipKIT boards have a 200 ohm resistor to limit current and a diode to clamp the pin voltage to the 3.3V rail to protect the chip from 5V inputs (the PIC32 parts have an absolute max pin voltage of 4V).

If possible, you should get a 3.3V shield, as it will have the best chance at complete compatibility. Many boards were designed to be safe to use with 5V shields, and generally 5V shields should work, but get a 3.3V one if you have the option. 

I noticed the chipKIT boards don’t have as many hardware PWM (analogWrite()) pins as the Arduino boards. Can I not run a PWM signal on any of those pins?

This is a difference between the devices populating the chipKIT boards and the Arduino boards. However, MPIDE and chipKIT-core include a SoftPWMServo Library created by Brian Schmalz of Schmalz House. This library can generate an analogWrite()-PWM style output, as well as RC Servo output, on all pins simultaneously (up to 85 at once) providing greater flexibility to your designs that the limited hardware analogWrite()-PWM pins on existing Arduino hardware. 

Are there libraries specific to the chipKIT platforms?

Yes, with the added performance, memory and advanced peripherals found on the PIC32 MCUs that populate the chipKIT Platform boards, there are libraries that demonstrate these capabilities that may not work on traditional Arduino boards. To see the latest libraries, please visit Contributed chipKIT Libraries. 

What to do when there is a verification error or content mismatch in AVRdude?

There is a known issue with the PIC32MX3XX/4XX series parts that affects the flash programming timing. If your board is affected by this problem, there is a newer version of the boot loader available with a newer version of the NVM library that adjusts the timing. If you are getting this error when you try to program a known working sketch (such as blink), and the sketch fails to load and run properly, you are probably affected by this problem. If it’s reporting the mismatch error, but the sketch runs, it’s another problem.

Reprogramming the board with the new boot loader requires the use of an external Microchip device programmer, such as the PICkit 2 (Uno32) or PICkit 3 (Uno32 or Max32). Unless you have some kind of programmer like that (or are interested in buying one) you won’t be able to do it yourself.

The Uno32 product page on the Digilent web site has the hex file for the new bootloader in the support documents section at the bottom of the page. This bootloader corrects the problem for some (possibly all) affected Uno32 boards. If you do not have access to a capable PIC device programmer, you will probably have to RMA your board.