Release Notes for PICkit® 2
Development (Nonproduction) Programmer &
In-Circuit Debugger

MPLAB® X IDE v1.95

DLL and Firmware versions:

 PICkit 2 (OS, FW)   v02.32.00  (PK2V023200.hex)


October 29, 2013


Table of Contents

1       Device Support

2       Other Support

3       Reference Documents

4       What's New in v1.5

5       Repairs and Enhancements Made in v1.5

6       Known Problems


1      Device Support

Click the link below to see device support for “PICkit 2 Debugging” (PK2D) and “PICkit 2 Programming” (PK2P).

·         Device Support List

1.1      Debugging Considerations

For low pin-count devices (8 to 28 pins), a Header board is usually required. See the Header Board Specification (DS51292) or Header help file (hlpHeader.chm) for a list of available headers by device.

For high pin-count devices (40 to 100 pins), a Header board may be available, but is not required. See the Header Board Specification (DS51292) or Header help file (hlpHeader.chm) for a list of available headers for a particular device.

PICkit 2 does not support the optional header for the following devices at this time:



NOTE: To connect PICkit 2 to a debug header board requires the AC164110 RJ-11 to ICSP Adapter.

NOTE: PICkit 2 reserves 64 bytes less flash memory than the MPLAB ICD 2 for the following devices:





2      Other Support

See the Readme for MPLAB X IDE.htm for other support information.

3      Reference Documents

The following documents may be found on our website or MPLAB IDE CD-ROM:

·         PICkit 2 Development Programmer/Debugger User's Guide for MPLAB X IDE (Help Only)

·         Low Pin Count User's Guide (DS51556)

·         44-Pin Demo Board User’s Guide (DS41296)

·         Development Tools Design Advisory (DS51764)

·         Header Specification (DS51292)

·         Transition Socket Specification (DS51194)

·         Programming Specifications for devices (various DS numbers)

·         Development Tools Selector (

On-line help may be found in MPLAB X IDE under Help>Help Contents.

4      What's New in v1.5


5      Repairs and Enhancements Made in v1.5


6      Known Problems

The following is a list of known problems. For more information on operation, please see the on-line help file for the PICkit 2. Bolded prefix represents internal tracking numbers.

6.1      General Issues

·         Do not change the selected device in the Project Properties when PICkit 2 is actively selected as the Debugger. Doing so may cause PICkit 2 to hang at the next debug operation. Deselect PICkit 2 as the Hardware tool (e.g. select the Simulator) before changing the device, and then reselect PICkit 2 as the Hardware tool afterwards to ensure proper operation.

·         The Programming Executive (PE) for PIC24H and dsPIC33F parts may fail on certain programming ports of certain 44-Pin devices. Known problems exist with using the PGC3/PGD3 port on the following devices:

PIC24HJ16GP304, PIC24HJ32GP204, dsPIC33FJ16GP304, dsPIC33FJ32GP204, dsPIC33FJ16MC304, dsPIC33FJ32MC204

If a “PE Error” is frequently encountered in the MPLAB X IDE Output Window, try using a different PGC/PGD programming port pair on the device.

·         To use the PICkit 2 as a debugger, two 4.7KW pull-down resistors are needed on pins ICSPDAT and ICSPCLK for units with a black pushbutton. Units with a red pushbutton have the pull-down resistors already internal to the unit.

·         Freeze Peripherals for PIC16F devices are not supported at this time.

·         PIC18F2520 MCUs: Table Read Protect (EBTRx) will not work unless Code Protect (CPx) is enabled. Also, once Table Read Protect is enabled, you cannot perform a Verify on the protected block.

6.2      System Service Requests


GUI does not restore test memory when performing chip erase on Baseline devices

Baseline architecture


GUI exports EEPROM data in hex file incorrectly. "Export" feature does not correctly export EEPROM data for Midrange devices.

Standalone GUI


Filenames are not properly escaped in "recently used" list

Standalone GUI


PICkit 2 is having problems programming certain revisions of PIC16F628A



Firmware changes necessary to support K80 devices

PIC18F66K80 datasheet family, PIC18F87K90 datasheet family, PIC18F87K22 datasheet family


Program Exec fails to read or verify with certain PIC24 devices

PIC24FJ64GA004, PIC24FJ64GA002


PICkit 2 does not detect the device ID of aPIC16F884 device



PICKit 2 fails to program a PIC12F629 device



Programming frequently fails for dsPIC33FJ256GP710 if not using PE



PICkit2 has the max Vdd for the PIC18F14K50 as 3.6V when in actuality 5.5 is the max Vdd. It won't let you program if the board Vdd is detected above 3.6V.



PICkit 2 settings does not have a checkbox to program in High Voltage mode.


MPLAB PICkit 2 hangs when target is self-powered but PK2 set to a low voltage


pk2cmd does not correctly program the MCP25050



PICkit2 GUI crashes when selecting Word or Byte View of memory



PICkit 2 does not enter debug mode with PIC16F722 at 20 MHz



MPLAB IDE hangs because a message box is not Modal and waiting for a response from the user


Data EEPROM written into in the code fails to program the first specified location.



PICkit 2 emits PK2 error 30 when the internal oscillator frequency is changed to 16MHz



Failed PICkit2 operation: Halt



Programming the device after Download OS, gives Failed verify

PIC24FJ Device


Unable to change values in SPBRG and SPBRGH when using PICkit2 with the PIC18F4620 device



Unable to enter debug mode with the clock frequency as 32kHz

PIC16F505, PIC12F508, PIC12F509


Download OS operation brings MCLR to VDD when PICKit2 is selected as programmer



PICkit2 can't do a verify successfully for the PIC18F8680 when the oscillator is HS x4 PLL and the PWRT is on.


MPLAB PICkit 2 fails to program/verify the PIC24FJ128GA010 device when user code does runtime flash erase /write operation. It appears the device is executing code before the full programming cycle is complete.

For PIC24F devices during a programming/verify operation (or subsequent verification operation) of user code that performs self-writes and/or self-erases to program space, a verify sequence may fail if the code execution occurs within the first execution cycles following reset.

Workaround: Place a delay in your code before the code section that performs the self-write and/or self-erase.

The specific delay value may need to be adjusted, but 100 ms would be a conservative value to start

out with. Here is a C language example that illustrates the workaround:

int main (void)


// Place 100 ms delay here before any self-write/self-erase code

. . .

. . .

. . .




PIC24FJ256DA210 Family: Data Memory not functional unless 96 MHz PLL is enabled. This is a silicon issue that is being worked on.