I recently got a ChipKIT Uno32 for a LED project that I’m working on. The ChipKit is basically compatible with most Arduino code, but has a 32 bit chip with a clock rate that is 5x the speed of my Arduino Uno, as well as much more Flash & SRAM space. I am really excited about it because we ran into performance issues with a slower 8-bit processor, and we are hoping that 32bit + 8x clock speed will put us back into the workable range.
They have a decent wiki page on how to run MPIDE which helped.
The article cited issues with 64 bit systems:
The binary packages for MPIDE are all built for 32bit Linux distributions, if you are running 64bit you need to have some additional libraries installed. You’ll need to have 32bit versions of libelf.so and libreadline.so to be able to program the chipKIT, these need to be in /usr/lib32. You may well need to sym-link these latest versions manually, installing these libs is a fairly advanced operation and will vary significantly between distributions.
So this is what I had to do to get it running on 64 bit Ubuntu (Maverick/10.10):
1) Download the Linux Version and unpack it somwehere.
2) Getting librxtx-java and other jni items loadable via the LD_LIBRARY_PATH or CLASSPATH, which I wrote a post about.
3) The next issue that I ran into was a permissions issue
Cannot run program “/home/username/mpide-0022-chipkit-linux32-20110619/hardware/pic32/compiler/pic32-tools/bin/pic32-g++”: java.io.IOException: error=13, Permission denied
I initially solved it by chmodding everything in that directory, but that resulted in:
pic32-g++: error trying to exec ‘cc1plus’: execvp: No such file or directory
So I followed the advice in this forum post and executed
chmod +x -R ./hardware/pic32/compiler/ and that seemed to do it for me. I think I was able to compile/verify the blink example at this point.
4) Add 32bit versions of libelf and libreadline6 to /usr/lib32:
The first error I ran into was:
/home/username/mpide-0022-chipkit-linux32-20110619/hardware/pic32/compiler/pic32-tools/bin/../pic32mx/bin/gcc/pic32mx/4.5.1/cc1plus: error while loading shared libraries: libelf.so.1: cannot open shared object file: No such file or directory
I solved this by downloading the i386 deb from here, opening it with archive manager and copying
/usr/lib32/libelf-0.147.so. after this I creating the versioned symbolic link via
ln -s libelf-0.147.so libelf.so.1
Tried it again and was onto my next error:
/home/username/mpide-0022-chipkit-linux32-20110619/hardware/tools/avrdude: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory
Repeat the same process for libreadline6 (which contains another required lib too) And I was able to upload the and run the blink example.
Now on to making the TLC Library work..
I found the Arduino IDE in package manager, and went to install it
sudo apt-get install arduino
Or Via Synaptic:
When I went to run it died with the following exception:
A little googling turned up the this bug. It basically describes that there is an issue with Ubuntu 10.10 + sun-java not including the jni directory in the classpath. There are several solutions, but basically this comment sums it up the best:
1) don’t use sun-java but default-jre instead. This bug is actually a known bug in sun-java. (bug #325506)
2) add export LD_LIBRARY_PATH=/usr/lib/jni to your .bashrc, the .deskop file (in /usr/share/desktop), or on the command line before starting arduino
3) add the new package (instructions are above).
I opted for #2 so far…Â The idea flow for potential projects are unending.Â I should try some CI build Lights/lamps next