Colin Harrington

Archive for August, 2011

Running MPIDE (ChipKIT’s Arduino IDE remake) on 64bit Ubuntu

by on Aug.14, 2011, under General

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.

Chipkit Uno32 board

The Arduino IDE (hosted on google code) doesn’t work with ChipKit so They remade the the IDE and called it MPIDE (Multi-Platform IDE) and its hosted on Github. The released binaries are found here.

MPIDE BlinkThey have a decent wiki page on how to run MPIDE which helped.

The article cited issues with 64 bit systems:

64bit 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/lib/libelf-0.147.so to /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..

3 Comments :, , , , more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!