Recently I was browsing some electronic sites looking at some of the development boards and kits that are available when I noticed the Chipkit UNO, this was advertised as being pin for pin compatible with arduino shields but useda Pic instead of an AVR chip which the ARduino uses. This intrigued me and I went and had a look at the specs.
The chipkit is based on the PIC32MX320F128 microcontroller from MIcrochip, looking at the specs it seems to be a fairly decent micro with plenty of features which we will look at, one thing I noticed that on the Chipkit Uno even though you can use Arduino shields, you also get access to all of the I/O lines of the PIC32MX320F128, 44 in total. This was instantly appealing. Here’s a summary of the micro at the heart of it
Max Speed MHz | 80 |
Program Memory Size (KB) | 128 |
RAM (KB) | 16 |
Auxiliary Flash (KB) | 12 |
Temperature Range (C) | -40 to 105 |
Operating Voltage Range (V) | 2.3 to 3.6 |
SPITM | 2 |
I2CTM Compatible | 2 |
A/D channels | 16 |
Max A/D Resolution | 10 |
Max A/D Sample Rate (KSPS) | 1000 |
Input Capture | 5 |
Output Compare/Std. PWM | 5 |
16-bit Digital Timers | 5 |
Parallel Port | PMP |
Comparators | 2 |
Internal Oscillator | 8 MHz, 32 kHz |
I/O Pins | 53 |
I’ve highlighted some of the key ones. This was enough to tempt me so I ordered one to play with.
Now for the software, you can use MPlab if you wish and you can even use a Pickit 3 to program it but the key feature is of course the Arduino compatibility and there is a download for the MPIde , Multi-Platform Integrated Development Environment. Once you follow the download steps and extract the contents of the zip file and start the program you will be greeted with basically the Arduino IDE. So a big thumbs up for making easy to get up and running. You can see the IDE below with the token hello world flashy LED example
Now for the code, here is the example to blink the ON board LED which is labelled LD5. You will see from the example code below that its identical to Arduino code even if this is just avery basic example
Code
[codesyntax lang=”cpp”]
void setup() { // initialize the digital pin as an output. pinMode(43, OUTPUT); } void loop() { digitalWrite(43, HIGH); // set the LED on delay(1000); // wait for a second digitalWrite(43, LOW); // set the LED off delay(1000); // wait for a second }
[/codesyntax]
In summary, this board is excellent if you like Arduino’s or would like to take advantage of PIC microcontrollers and has enough ‘extras’ to make it more powerful than the ARduino. In the UK you can pick up one of these for about £20.
Links