If you use Microchip microcontrollers you really have to try out the new MPLAB.X ide Microchip is working on. It is already up to beta5 where all major problems and all major functionalities are fixed.

Major improvements MPLAB.X offers differently from MPLAB v8.x are

  • It is multiplatform so it works on Windows, Linux and OSX
  • It uses modern GUI that works and does not crash (like old ugly mplab 8 does) based on NetBeans (initially made by Sun, now owned by Oracle)
  • Bunch of stuff that comes with NetBeans (code coloring, code expansion, syntax checking, different plugins, multiple projects in project group, versioning …)

Major news in MPLAB.X beta5 compared to MPLAB.X beta4

  • The parsing of the “core” terms works properly now
  • PicKit2 is now supported
  • C18 works now on OSX too

Major problems with MPLAB.X (current beta5 version)

  • It does not work “properly” on 64bit Linux

This is why I’m writing this post. What does “properly” means here. If you have 64bit linux with 64bit java (jdk or jre) MPLAB.X will use this 64bit java and everything will work except MPLAB.X will not be able to see your PicKit2 or PicKit3 (I assume the same problem will be with other programmers but I use PicKit2 and PicKit3). The work around is to compile your own pk2cmd and use it outside of the MPLAB.X ide but it is really ugly solution, not to mention, there is still no open source version of pk3cmd so if you have PicKit3 there is no work around. The only way around this problem is to install 32bit java.

As I do use java a lot and I use it for memory hungry applications too I really need 64bit java to be default on my system (as 32bit java cannot use more then 2G of RAM) so I did following.

  1. Download 32bit java from Oracle
  2. Be sure to get .bin and not .rpm.bin even if you are using rpm based distro!
  3. Execute downloaded bin file in some directory and it will unpack itself
  4. Rename the extracted directory by adding a -32bit suffix to it (for e.g. mv jdk1.6.0_24 jdk1.6.0_24-32bit ) and move the new directory to a place of your choosing (for e.g. mv jdk1.6.0_24-32bit /usr/java/ )

Now create a script that will start the mplab_ide with 32bit java:

#!/bin/sh
JAVA_HOME=/usr/java/jdk1.6.0_24-32bit
PATH=/usr/java/jdk1.6.0_24-32bit/bin:$PATH
/usr/bin/mplab_ide

Start the script and voila, now your MPLAB.X detects your PicKit2 and your PicKit3 properly :)

MPLAB.X HW Tool Selector

MPLAB.X HW Tool Selector