We call PICKitPlusCommandLine for Linux Operating Sytems PKCMD-LX.


PKCMD-LX is a new Linux operating systems application that provides support for the latest generation of Microchip microcontrollers.  The software is feature rich and easy to use via the console.

PKCMD-LX application is the replacement application for the existing Microchip PICkit2 Open Source command line application and the MPLAB Java based PICkit3 command line application. 

The intent of PKCMD-LX  is enable operations using either a PICkit2 or PICkit3 programmers via the Linux Operating System console interface. Console arguments are passed to the software to configure the operation of write, reading, verify.  The software capabilities are shown in the table.

PKCMD-LX supports nearly 1000 different types of microcontrollers. 

  • PIC10F, PIC12F, PIC16F, PIC18F, PIC24.
  • dsPIC30 and dsPIC33 family.
  • See here for the full list of supported parts.

New functionality

  • Manages Microchip HEF and SAF memory with automatically merge of HEF/SAF memory into target part.
  • Certified for specific Linux distributions.
  • New programming protocols to support for new classes of Microchips  microcontrollers.
  • Simple of command line arguments.
  • Part type, revision and family displayed during read operations.
  • Reset of Bandgap.
  • Updated and managed database for Microchip and other EEPROM devices.
  • Automatic programming of programmer firmware.

PKCMD-LX features:

  • Supports the standard Microchip PICkit2 and PICkit3 programmer firmware.  PICKitPlus does not require an update to the Microchip PICkit2 and PICkit3 programmer firmware.
  • Supports multiple voltages within constraints of physical programmer - noting that some clone programmers do not support voltage control.
  • Read/write program and data memory of microcontroller.
  • Erase of program memory space with verification.
  • Write/Read and Verify options.
  • Control power on and off independent of programming state.
  • OSCCAL support

Safe Usage Enhancements

  • Generation of log file.
  • Generation of error log file.
  • Internet connection not required.

User licensing

  • Single named user license.
  • One year software support/maintenance.

What is the difference between the PKCMD-LX and other Microchip console software?


The table below compares the capabilities.

  PKCMD-LX Other Microchip software

Hex File Operations

  • program
  • extract and save
Same capability Same capability

Device Family - microcontrollers 

  • specific part
  • supports legacy and recent Microchip microcontrollers
  • display list of supported parts
Legacy parts and latest parts

PICkit2 software limited to legacy parts.

PICkit3 supports legacy and latest parts via MPLAB-X Java interface. 

Programmer Operations

  • manage Progmem/Config/UserID
  • manage EEPROM
  • read/write/verify/erase/blank check
  • verify on write
  • manage power
Same capability Same capability
  • display device ID and revision
Yes Partial
  • select specific name PICkit2 or PICKit3 programmer as target programmer for operations
  • exit delay
  • support specific ISCP frequency
Yes No
  • HEF&SAF merger management
  • reset Bandgap
  • reset OSCCAL
  • errorlog support
  • logfile support
Yes No

Tool Operations

  • install firmware to programmer
  • change MPLAB and MPLAB-X modes
Yes No




PKCMD-LX Prerequisites and Constraints

PICkit2 and PICkit3 Device Programmers supported. 

Tested on  32-bit and 64-bit Debian-based Linuxes, but should work on all flavours, within specific constraints:

  • Requires libc v2.13 or above. This is linked to specific distro.  If the libc version is too low, only recourse is to install a newer distro.

  • Requires root (or sudo) during installed and configuration.

  • Requires fuse (i.e. fusermount), if you want to run PKCMD-LX without root privileges.

  • Expects libfuse v2.9.0 or greater, although older versions may work. For example, v2.8.5 prints warning messages but does function.

Distros known to have a compatible version (and later) of libc include:

  • Arch 2011.08.19

  • CentOS 7.8.2003 (released in 2020)

  • Debian 7 (Wheezy)

  • Fedora 15 (Lovelock)

  • Gentoo 11.2

  • Mint 11 (Katya)

  • openSUSE 12.1

  • Slackware 13.37

  • Ubuntu 11.04 (Natty)

Distros that do not use libc (such as Abyss, Alpine, Sabotage, Vanilla and Void) are not compatible unless libc is install on those distros - but, this is not supported.