Piklab

Installation on Debian-based Distributions

Including Ubuntu 16.04 and Older


Piklab is a mature and extraordinarily well-designed IDE (integrated development environment) for Microchip's PIC series of microcontrollers. Piklab is more convenient (and faster!) than Microchip's own MPLAB. Even better, Piklab is a Linux program. Microchip recently introduced MPLAB-X, apparently recognizing the need for a cross-platform IDE. Piklab has one major advantage over MPLAB-X: it works.

Unfortunately, the KDE developers have moved on to a new version of QT (the underlying UI library) without maintaining backward compatibility. Consequently, most Linux distributions, such as Ubuntu 11.04 and later, no longer support software that is based on QT version 3. This includes Piklab.

This guide is a list of steps it took me to install Piklab on Ubuntu 14.04 through 16.04 with a separate set of instructions for older Ubuntu 11.10 and 12.04. It is likely going to work with Ubuntu 11.04, Mint 12, and similar distributions.

Acknowledgements: Adnan Mustafic contributed significantly to this list. Similar instructions can be found at the Big Bang blog.


Installation on Ubuntu 14.xx/15.xx/16.04


The instructions differ for Ubuntu 14.04 and older versions, because kdelibs4c2a is no longer installable starting with 14.04 -- it conflicts with kdelibs-bin. Fortunately, there is now a new Piklab version (0.16.x) that is QT4 compatible. Presently, it is available only as rpm, so we'll convert it to a deb package.

First, get your version of Piklab here.

Next, install the program alien, for example with

sudo apt-get install fakeroot alien
We need fakeroot in the next step, that is, the creation of a deb package. Depending on the Piklab version you downloaded, the version numbers may differ. Adjust the version numbers ("-0.16.1...") accordingly.
fakeroot alien --scripts -d piklab-0.16.1-6.fc20.x86_64.rpm 
The result is a new package, piklab_0.16.1-7_amd64.deb. You can now use dpkg to install:
sudo dpkg -i piklab_0.16.1-7_amd64.deb
Click on this link to download the .deb file that I created by following the above steps. No warranty, and ... YMMV.

To install the command-line utilities related to the PIC family: Install gputils and sdcc. Look for related stuff you may like, such as JAL. This can be done with Aptitude. Alternatively, use

sudo apt-get install sdcc gputils

To install the bootloaders: Download MPLAB 8 from the Microchip web site and install it, for example, under WINE. Choose a suitable location for the hex8 files, for example with

sudo mkdir /usr/share/kde4/apps/piklab/hex8
Use the WINE desktop to copy all files from C:\Program Files\Microchip\MPLAB IDE\ICD2 to the new directory /usr/share/kde4/apps/piklab/hex8. Next, open Piklab, choose "settings" and "configure programmers". Select the ICD2 programmer, set to USB port, and select the "specific" tab. There, enter /usr/share/kde4/apps/piklab/hex8 in the Firmware Directoy entry field.

Now, ensure that the new files in .../hex8/ are world-readable:

sudo chmod -R a+r /usr/share/kde4/apps/piklab/hex8

To enable non-privileged USB access: Create a new file in /etc/udev/rules.d as follows:

sudo nano /etc/udev/rules.d/99-microchip_icd2.rules
and copy and paste the folowing two lines into the file:
SUBSYSTEM=="usb" ATTR{idVendor}=="04d8" ATTR{idProduct}=="8000" GROUP="plugdev" SYMLINK+="mcidc2"
SUBSYSTEM=="usb" ATTR{idVendor}=="04d8" ATTR{idProduct}=="8001" GROUP="plugdev" SYMLINK+="mcidc2"
for your convenience, you may download the file 99-microchip_icd2.rules by right-clicking on this link. Just copy the file into /etc/udev/rules.d

Finally, add your login name to the group "plugdev" in /etc/group. Start Piklab and try to connect to the ICD-2.


Installation on Ubuntu 11.04 Through 13.10


These instructions are valid for all distributions that allow concurrent installation of the QT4 and QT3 libraries, and the main challenge is to get all required QT3 libraries installed.

  1. Install the command-line utilities related to the PIC family: This can be done with Aptitude. Alternatively, use "sudo apt-get install sdcc gputils"
  2. Install several packages that are available in the Ubuntu repositories: Once again, this can be done with Aptitude. Aptitude has the advantage that is selects packages compatible with your architecture and distribution.
  3. Next, obtain packages that are not in the repositories. Links are provided here for the amd64 architecture. You can search for the i386 versions by subsituting i386 for amd64 in the file names. This completes the installation of package dependencies for Piklab
  4. Obtain a Piklab Debian package. One valid name to search for is "piklab_0.15.7-1_amd64.deb".
  5. Now install Piklab: "sudo dpkg -i piklab-0-15.xxx-xxx.xxx.deb", where you need to replace the xxx by whatever version you downloaded
  6. Start Piklab by typing "piklab" in a shell.
If you got to this point, Piklab is ready and needs to be configured for the programmer or debugger that you use. For the ICD-2 debugger, two steps are necessary. The proprietary bootloaders from Microchip needs to be installed, and a rule to access the ICD-2 via USB needs to be created.

To install the bootloaders: Download MPLAB 8 from the Microchip web site and install it, for example, under WINE. Choose a suitable location for the hex8 files, for example with

sudo mkdir /usr/share/apps/piklab/hex8
Use the WINE desktop to copy all files from C:\Program Files\Microchip\MPLAB IDE\ICD2 to the new directory /usr/share/apps/piklab/hex8. Next, open Piklab, choose "settings" and "configure programmers". Select the ICD2 programmer, set to USB port, and select the "specific" tab. There, enter /usr/share/apps/piklab/hex8 in the Firmware Directoy entry field.

To enable non-privileged USB access: Create a new file in /etc/udev/rules.d as follows:

sudo nano /etc/udev/rules.d/99-microchip_icd2.rules
and copy and paste the folowing two lines into the file:
SUBSYSTEM=="usb" ATTR{idVendor}=="04d8" ATTR{idProduct}=="8000" GROUP="plugdev" SYMLINK+="mcidc2"
SUBSYSTEM=="usb" ATTR{idVendor}=="04d8" ATTR{idProduct}=="8001" GROUP="plugdev" SYMLINK+="mcidc2"
Finally, add your login name to the group "plugdev" in /etc/group. Start Piklab and try to connect to the ICD-2.