We call PICKitPlusCommandLine for the Raspberry Pi PICKitCMD-Pi.


PICKitCMD-Pi is the Raspberry Pi application that provides support for the latest generation of Microchip microcontrollers and EEPROMs devices.  The software is feature rich and easy to use via the console.

See below for supported Pi Hardware.

PICKitCMD-Pi application is the replacement application for existing Raspeberry Pi Python scripts as this is fully supported software.

The intent of PICKitCMD-Pi  is enable operations using either a PICKit 2 or PICKit 3 programmers via the Raspberry Pi Linux 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.

PICKitCMD-Pi supports nearly 1000 different types of microcontrollers and EEPROMS. 

  • PIC10F, PIC12F, PIC16F, PIC18F, PIC24.
  • dsPIC30 and dsPIC33 family.
  • A wide range of EEPROMs.
  • MCP2502X/5X & HCSxx.
  • EEPROM 11LCxx, 24LCxx, 25LCxx and 93LCxx, M25Px and FL127x.
  • See here for the full list of supported parts.

New functionality

  • Turbo mode - optimised write and read operations.
  • Manages Microchip HEF and SAF memory with automatically merge of HEF/SAF memory into target part.
  • 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.

PICKitCMD-Pi features:

  • Supports the standard Microchip PICKit 2 and PICKit 3 programmer firmware.  PICKitPlus does not require an update to the Microchip PICKit 2 and PICKit 3 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.
  • Supports IDEs with hold-on-exit.
  • 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.


PICKitCMD-Pi 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.28 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.


Supported Pi Hardware

Raspberry Pi 4 is supported but the following constraint.  The Pi4 has a defect in its USB subsystem, which causes Microchip or clone PICKit 2 and PICKit 3 programmers to work poorly or not at all.   We provide a revised PICKit 2 programmer called PICKitPlus PI4 which resolves this issue. 


The PICKitPlus PI4 is a special variant programmer designed to work correctly on a Raspberry Pi 4.  It operate 4% slower than the standard  PICKitPlus model; but unlike the any PICKit2 or PICKIt3  the PICKitPlus programmer will function on a Pi 4.  The Raspberry Pi 4 USB subsystem has a subtle flaw that causes  PICKit2 or PICKIt3   programmer to "lock up" very frequently and need to be unplugged and replugged by hand.   Previous models of Raspberry Pi  and Raspberry 5 do not have this flaw.   The PICkitPlus PI4 solves this problem, and as a bonus also works everywhere a PK2 would.  Also, see here

Raspberry Pi 5 is fully supported using a Microchip or clone PICKit 2 and PICKit 3 programmer. 



What is the difference between the PICKitCMD-Pi and other Microchip console software?


The table below compares the capabilities.

  PICKitCMD-Pi Other Microchip software

Hex File Operations

  • program
  • extract and save
Same capability Same capability

Device Family - microcontrollers and EEPROMs

  • select part
  • recently used
  • 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
Operation features of the programmers PICkit2 PICkit3
  • maximum current draw

25 mA or lower

30 mA or lower


  • vdd 

Large VDD
capacitances should not be permitted.

Allowed VDD rise time is 500 us or less.

Large VDD
capacitances should not be permitted.

Allowed VDD rise time is 500 us or less.

  • vdd supply from PICkit

range of 2.5v to 5.0v

range of 2.5v to 5.0v

  • operating limits from external VDD

maximum external VDD is 5.0 v

minimum external VDD  is 2.5v

maximum external VDD 5.5 v. 

minimum external 1.8 v