Piklab is an open source integrated development environment (IDE) for applications devised on Microchip PIC and digital signal processor IC (dsPIC) microcontroller (MCU) that can be compiled only with Qt on Linux and Windows. Qt, being a cross platform framework, allows Piklab to develop non-graphical user interface (non-GUI) programs. Based on general public licence version 2 (GNU GPL v2), Piklab is a complete development environment, providing access to different toolchains.


Piklab, although compatible with all versions of Windows and Linux, is only compatible with K-Desktop Environment 3 (KDE3) and KDE4 from version 0.16.0.

Explore Circuits and Projects Explore Videos and Tutorials

Why use Piklab
Every tool has some specific features that make it essential enough to be used over its competitors. The features that Piklab can be related to are as follows:

524_Box_11. Provides tools for the complete development process that includes editing and compilation of the source, programming the device and debugging.

2. Integrates with several types of compilers, assembler toolchains and gpsim simulators.

3. Supports most common programmers, ICD2 debugger and several types of bootloaders. It also supports some direct programmers for most of the devices with PIC18F MCUs and PIC24C EEPROMs.

Other advantages of Piklab

Apart from the key essentials, Piklab has certain other advantages that may be present in other IDEs as well.

Fig. 2: Device selector
Fig. 2: Device selector

Command-line tool. Piklab is a command-line tool that provides a console for user interface, i.e., it allows the users to issue successive lines of text.

Checks validity of hex files. This tool checks the validity of a hex file to confirm if it complies with the INHEX- Standard defined by Intel Corporation, returns the information to the console, cleans the file and fixes the errors. It also compares two hex files.

What’s Hot in Electro-medical T&M?

Supports gputils. It is a collection of tools from Microchip PIC MCUs that includes gplink, gpasm and gplib. It allows a direct conversion of Assembly language into hex files for the programmer using gpasm.

Fig. 3: Hex file editor
Fig. 3: Hex file editor

Erases selected memory. Piklab performs multiple functions. It can read, program, verify and erase the whole device or only the selected memory ranges.

Easy debugging and simulation. Piklab allows an easy and faster simulation of PIC MCUs and also enables an easy debugging with three control options: graphical user interface (GUI), remote processor and command line interface (CLI) using the gpsim simulation tool.

Make yourself familiar
Working with any tool becomes easy if we know its different parts and their functions, before actually starting a project. Read on to know more.

Z99_Box_21. Project window. The main window of Piklab gives information about all the files in the project being worked on, allowing one to open all the project files and change the processor type.

2. Editor window. The upper section of the main window contains an editor window that allows one to read and change the source code and hex files.

3. New project. The new project window (in the project window) allows one to make the basic settings to start a new project. It further allows one to either create a new source file by writing the codes in the assembler or to add an existing source file. In case one is not familiar with coding in assembler, he/she can download them from the Internet, which can then be added to the new project.

How To do Interpolated DDS Technique in SDG2000X

4. Compile button. Pressing the compile button at the top of the editor window allows one to compile the project. The messages such as compiling and linking can be seen in a small area called compile log, which is present at the lower quarter of the computer screen. Once the compilation is complete, one should be able to see the message ‘successful’ as the last line in the compile log.

378_Box_35. Connect button. The connect button above the editor window allows one to virtually connect to the gpsim simulator so as to start the simulation of the program. This button is to be pressed only after the compilation is successful.

6. Run. Once the simulation is over, press the run button available at the top to see the output of the simulation.

What do the users have to say
Although we can see some benefits of using Piklab, the actual users have mixed reviews about it. The communities such as edaboard.com, Bit Bang Theory and ReviewStream have the following users’ perspective:

Fig. 4: Register view
Fig. 4: Register view

1. “I have personally used Piklab to program 16f628a and 16f88 devices, writing the code in ASM and programming them with a JDM serial programmer and haven’t faced any problem ever. I find Piklab very easy to use and it is really a very powerful tool. It does not support MPLAB’s directives so, if you have previously written any code on MPLAB using directives, you need to remove them and change them for standard mpasm code to be able to compile that code on Piklab.”

How To Build An EMC Test Kit

2. “That’s the best IDE available for programming microcontroller. It can be used to write code, compile it, test it using simulation and debugging tools and even programming the actual microcontroller.”

Fig. 5: Source code editor
Fig. 5: Source code editor

395_Box_33. “Piklab does not always work with the Tiny Bootloader. I had it working when I used Ubuntu 11.04 Natty Narwhal and some version of Piklab that I cannot remember now. But since I upgraded to Oneiric Ocelot and a new version of Piklab, the Tiny Bootloader programming interface stopped working. However, there is another easy way to use Tiny Bootloader with Piklab, which involves installing Tinybldlin, the Linux interface for the Tiny PIC bootloader.”

4. “I love Piklab! It is the best solution to program and debug PIC microcontroller under Linux, but it still has some road to go before it can reach Microchip’s MPLAB IDE.”

Download the latest version of the software: click here

The author is a technical journalist at EFY. The article is based on the Piklab document available at Sourceforge.net