Pickit 2 Download & Develop Your own USB pickit ii programmer


PICkit 2 Introduction:

PICkit 2

There are many PIC programmer available, commercial and DIY devices. As Microchip introduces the new microprocessors the programming software got to be updated accordingly playing catch-up with the PIC manufacturer. That is the root of the problem with third-party PIC programmers. Microchip’s PICkit 2 is the low cost ICSP programmer for Flash PICs with USB interface introduced by Microchip. Only subset of PIC microcontrollers is supported, but the list is including all the recent devices from PIC16, PIC18 and PIC24 families and certainly covers all the PICs you are most likely want to use. It is fully integrated with Microchip’s MPLAB IDE and allow not only program but debug applications as well. As alternative you can use the standalone programmer applet, see picture below.

ICSP Pinout

The pin-out for Microchip standard 6-pin connector for In-Circuit Serial Programming (ICSP) is listed in table below:

Pin Function
1 _MCLR/Vpp (programming voltage)
2 Vcc(+5V)
4 Data
5 Clock
6 LVP (low-voltage programming mode control)


Pickit 2 Schematic / Circuit Diagram:

Schematic PICkit 2


DIY Guide to Build PICkit 2

DIY PICkit 2

PICkit 2 was originally built by Microchip as open design programmer with the schematic, source code and firmware available to boost the popularity of the PIC devices. Because of that it is easy to build a clone version of the original device. Most of the clones will produce unregulated 5 volt VPP where the original Microchip PICkit 2 provides adjustable VPP output to allow 3.3 and 2.5 volt parts programming. The schematic I have used is based on the original PICkit 2 without programmer-to-go functionality. That functionality allowing a hex file to be downloaded to the PICkit 2 to later program PIC microcontrollers without a PC with a simple pressing programmer’s push button. I do not think that functionality is required for a hobbyist but allows simplify the schematic by omitting two 24C512 EEPROM chips.

PICkit 2 Programmer Software

PICkit 2 Programmer

The PICkit 2 has USB bootloader and capable of updating the programmer firmware directly from Microchip web site. Every time the PICkit 2 programmer application is launched, it will check the firmware version of the PICkit 2 to see if it is the latest version. If not, it will attempt to automatically download the latest version. The software upgrades are free and Microchip updates them in timely fashion. Even more, the firmware and schematic are freely available. Apparently Microchip has made the open design intentionally, see it as the way to boost using the popularity PIC microprocessors. With such simplicity of design it is easy to build a clone version. The Sure Electronics is making a good clone and it comes with ICSP cables, see the Products page. My first PIC programmer was Melabs EPIC device with parallel port interface. After upgrading my PC I have realized that parallel port became legacy these days, as the most of new PC motherboards do not have it all. The another annoying part about Melabs programmers in general is that even if you buy the full package (hardware + software) upgrades are not free and only beta stuff available for download. I have successfully burned all my PIC18 and PIC24 chips using PICkit 2 and would definitely recommend it. PICkit 2 v2.61

Pickit 2 PCB File

The Eagle Files designed using only thru-hole mounting parts.

Pickit 2 Firmware / Hex file

Building PICKit 2 clone is facing a chicken-egg problem as another programmer is required to program the firmware into the PIC18F2550. Once the PIC18F2550 chip for PICKit 2 is programmed, you can the upgrade the firmware as it includes USB bootloader. The latest PICkit 2 firmware version is available from Microchip and the current version is also is available on the site – click here to download!

Pickit ii Parts List

Pickit 2 component layout

The DIY PICkit 2 part list for the two the most popular electronic components vendors, Mouser and DigiKey is shown below.

Part Description Mouser # DigiKey #
J1 USB type B connector 737-USB-B-S-RA 609-1039-ND
IC1 PIC18F2550 579-PIC18F2550-I/SP PIC18F2550-I/SP-ND
IC2 MCP601P 579-MCP601IP MCP601-I/P-ND
Q1,Q4,Q6 BS250P 522-BS250P BS250P-ND
Q2,Q3,Q5,Q7 2N7000 512-2N7000D26Z 2N7000FS-ND
D1,D2 BAT85 78-BAT85S 568-1617-1-ND
D3 Green 5mm LED 604-WP7113SGD 754-1263-ND
D4 Yellow 5mm LED 604-WP7113YD 754-1284-ND
D5 Red 5mm LED 604-WP7113ID 754-1264-ND
X1 Crystal, 20.000Mhz 815-ABL-20-B2 XC1723-ND
R1,R3,R4 10K Ohm 291-10K-RC 10KQBK-ND
R6,R10,R13 10K Ohm 291-10K-RC 10KQBK-ND
R2,R7,R8 470 Ohm 291-470-RC 470QBK-ND
R5,R14 100 Ohm 291-100-RC 100QBK-ND
R9,R12 2.7K Ohm 291-2.7K-RC 2.7KQBK-ND
R11,R16 4.7K Ohm 291-4.7K-RC 4.7KQBK-ND
R15 1K Ohm 291-1K-RC 1.0KQBK-ND
R17,R18,R19 33 Ohm 291-33-RC 33QBK-ND
C1,C4,C7,C10,C11 0.1uF 871-B32529C104K189 495-2532-ND
C2,C3 22pF 140-50N2-220J-RC 490-4175-ND
C5,C8 10uF 647-UVR1V100MDD1TA 493-1036-ND
C6 0.47uF 871-B32529C474J 495-2560-3-ND
C9 47uF 16V 647-UVR1C470MDD1TD 493-1039-ND
L1 680uH 652-RLB0608-681KL 811-2051-ND
S1 Pushbutton 506-FSM4JH 450-1665-ND

Setting Unit ID

The programmer can be assigned a Unit ID to identify it uniquely. After the fresh firmware programming the device applet is always showing the funny ID
“ID= OIHoss”. It could be reset to not-assigned or set to any value by selecting “Tools>Calibrate VDD & Set Unit ID” menu, see picture below.

PICkit 2 Programmer OIHoss


Calibration allows greater the VDD voltage accuracy. Note that as the calibration is dependent on the USB voltage and moving the PICkit 2 unit to a different USB port, to or from a USB hub or to another computer port may invalidate the calibration. To calibrate the PICkit 2 unit, a digital multi-meter is required. Disconnect the PICkit 2 unit from the target and select “Tools>Calibrate VDD & Set Unit ID”. to bring up the calibration wizard. Follow the steps in the wizard to complete the calibration process.

PICkit 2 Programmer Calibratation

Troubleshooting DIY PICkit2 assembly

You can use “Tools->Troubleshoot” menu to help with resolving connectivity from the PICkit 2 to the target device. This is also useful where there are the device assembling errors, as providing step-by-step output validation process.

Pickit 2 Supported device list:

= NOTE: This list shows support for the PICkit 2 Programmer     =
= software application.  It does not show support for using the =
= PICkit 2 within MPLAB IDE.  For a list of MPLAB supported     =
= parts, see the MPLAB IDE PICkit 2 Readme.                     =
= (Typically in C:\Program Files\Microchip\MPLAB IDE\Readmes)   =

* Indicates new parts supported in this release with v1.61 of the
  device file.

+ Indicates parts that require 4.75V minimum VDD for programming.
  PICkit 2 may not be able to generate sufficiently high VDD,
  so an external 5.0v power supply may be required.

# indicates Midrange parts that support low Vdd programming

Baseline Devices
PIC10F200       PIC10F202       PIC10F204       PIC10F206
PIC10F220       PIC10F222
PIC12F508       PIC12F509       PIC12F510	PIC12F519 
PIC16F505       PIC16F506       PIC16F526 
PIC16F54        PIC16F57        PIC16F59

Midrange/Standard Devices
>> All 'LF' versions of devices are supported
PIC12F609       PIC12HV609 	
PIC12F615       PIC12HV615      
PIC12F629       PIC12F635#      PIC12F675       PIC12F683#
PIC16F610       PIC16HV610      PIC16F616       PIC16HV616
PIC16F627       PIC16F628       PIC16F639 
PIC16F627A      PIC16F628A      PIC16F648A
PIC16F630       PIC16F631       PIC16F636#      PIC16F676
PIC16F677       PIC16F684#      PIC16F685#      PIC16F687#
PIC16F688#      PIC16F689#      PIC16F690#      
PIC16F73+       PIC16F74+       PIC16F76+       PIC16F77+
PIC16F737+      PIC16F747+      PIC16F767+      PIC16F777+
PIC16F785       PIC16HV785      
PIC16F84A       PIC16F87#       PIC16F88#
PIC16F818#      PIC16F819# 
PIC16F870       PIC16F871       PIC16F872       
PIC16F873       PIC16F874       PIC16F876       PIC16F877 
PIC16F873A      PIC16F874A      PIC16F876A      PIC16F877A
PIC16F883#      PIC16F884#      PIC16F886#      PIC16F887#
PIC16F913#      PIC16F914#      PIC16F916#      PIC16F917#

Midrange/1.8V Min Devices
PIC16F722       PIC16LF722 
PIC16F723       PIC16LF723      PIC16F724       PIC16LF724 
PIC16F726       PIC16LF726      PIC16F727       PIC16LF727 

PIC16F1933      PIC16F1934      PIC16F1936      PIC16F1937 
PIC16F1938      PIC16F1939 
PIC16LF1933     PIC16LF1934     PIC16LF1936     PIC16LF1937 
PIC16LF1938     PIC16LF1939 

PIC18F Devices
>> All 'LF' versions of devices are supported
PIC18F242       PIC18F252       PIC18F442       PIC18F452
PIC18F248       PIC18F258       PIC18F448       PIC18F458
PIC18F1220      PIC18F1320      PIC18F2220  
PIC18F1230      PIC18F1330      PIC18F1330-ICD    
PIC18F2221      PIC18F2320      PIC18F2321      PIC18F2331      
PIC18F2410      PIC18F2420      PIC18F2423      PIC18F2431
PIC18F2450      PIC18F2455      PIC18F2458      PIC18F2480
PIC18F2510      PIC18F2515      PIC18F2520      PIC18F2523  
PIC18F2525      PIC18F2550      PIC18F2553      PIC18F2580
PIC18F2610      PIC18F2620      PIC18F2680      PIC18F2682  
PIC18F4220      PIC18F4221      PIC18F4320      PIC18F4321  
PIC18F4331      PIC18F4410      PIC18F4420      PIC18F4423      
PIC18F4431      PIC18F4450      PIC18F4455      PIC18F4458
PIC18F4510      PIC18F4515      PIC18F4520      PIC18F4523 
PIC18F4525      PIC18F4550      PIC18F4553      PIC18F4580
PIC18F4610      PIC18F4620      PIC18F4680      PIC18F4682  
PIC18F4685      PIC18F6310      PIC18F6390      PIC18F6393 
PIC18F6410      PIC18F6490      PIC18F6493      PIC18F6520
PIC18F6525      PIC18F6527      
PIC18F6585      PIC18F6620      PIC18F6621      PIC18F6622
PIC18F6627      PIC18F6628      PIC18F6680      PIC18F6720
PIC18F6722      PIC18F6723 
PIC18F8310      PIC18F8390      PIC18F8393      PIC18F8410
PIC18F8490      PIC18F8493 
PIC18F8520      PIC18F8525      PIC18F8527      PIC18F8585 
PIC18F8620      PIC18F8621      PIC18F8622      PIC18F8627
PIC18F8680      PIC18F8720      PIC18F8722	PIC18F8723

PIC18F_J_ Devices
PIC18F24J10     PIC18LF24J10     
PIC18F24J11     PIC18LF24J11    PIC18F24J50     PIC18LF24J50 
PIC18F25J10     PIC18LF25J10        
PIC18F25J11     PIC18LF25J11    PIC18F25J50     PIC18LF25J50 
PIC18F26J11     PIC18LF26J11    PIC18F26J50     PIC18LF26J50 
PIC18F44J10     PIC18LF44J10
PIC18F44J11     PIC18LF44J11    PIC18F44J50     PIC18LF44J50 
PIC18F45J10     PIC18LF45J10
PIC18F45J11     PIC18LF45J11    PIC18F45J50     PIC18LF45J50 
PIC18F46J11     PIC18LF46J11    PIC18F46J50     PIC18LF46J50 
PIC18F63J11     PIC18F63J90     PIC18F64J11     PIC18F64J90
PIC18F65J10     PIC18F65J11     PIC18F65J15     PIC18F65J50
PIC18F66J10     PIC18F66J11     PIC18F66J15     PIC18F66J16 
PIC18F66J50     PIC18F66J55     PIC18F66J60     PIC18F66J65    
PIC18F67J10     PIC18F67J11     PIC18F67J50     PIC18F67J60 
PIC18F83J11     PIC18F83J90     PIC18F84J11     PIC18F84J90 
PIC18F85J10     PIC18F85J11     PIC18F85J15     PIC18F85J50
PIC18F86J10     PIC18F86J11     PIC18F86J15     PIC18F86J16 
PIC18F86J50     PIC18F86J55     PIC18F86J60     PIC18F86J65 
PIC18F87J10     PIC18F87J11     PIC18F87J50     PIC18F87J60
PIC18F96J60     PIC18F96J65     PIC18F97J60 

PIC18F_K_ Devices
PIC18F13K22     PIC18LF13K22    PIC18F14K22     PIC18LF14K22 
PIC18F13K50     PIC18LF13K50    PIC18F14K50     PIC18LF14K50 
PIC18F23K20     PIC18F24K20     PIC18F25K20     PIC18F26K20 
PIC18F43K20     PIC18F44K20     PIC18F45K20     PIC18F46K20  

PIC24 Devices
PIC24F04KA200   PIC24F04KA201 
PIC24F08KA101   PIC24F08KA102 
PIC24F16KA101   PIC24F16KA102 
   NOTE: To program PIC24F-KA- devices with MCLR used as IO,
         Tools > Use High Voltage Program Entry must be enabled.

PIC24FJ16GA002       PIC24FJ16GA004 
PIC24FJ32GA002       PIC24FJ32GA004 
PIC24FJ32GA102       PIC24FJ32GA104 
PIC24FJ48GA002       PIC24FJ48GA004 
PIC24FJ64GA002       PIC24FJ64GA004 
PIC24FJ64GA102       PIC24FJ64GA104 

PIC24FJ64GA006       PIC24FJ64GA008       PIC24FJ64GA010 
PIC24FJ96GA006       PIC24FJ96GA008       PIC24FJ96GA010 
PIC24FJ128GA006      PIC24FJ128GA008      PIC24FJ128GA010 
PIC24FJ128GA106      PIC24FJ128GA108      PIC24FJ128GA110 
PIC24FJ192GA106      PIC24FJ192GA108      PIC24FJ192GA110 
PIC24FJ256GA106      PIC24FJ256GA108      PIC24FJ256GA110 

PIC24FJ32GB002       PIC24FJ32GB004 
PIC24FJ64GB002       PIC24FJ64GB004 

PIC24FJ64GB106       PIC24FJ64GB108       PIC24FJ64GB110 
PIC24FJ128GB106      PIC24FJ128GB108      PIC24FJ128GB110 
PIC24FJ192GB106      PIC24FJ192GB108      PIC24FJ192GB110 
PIC24FJ256GB106      PIC24FJ256GB108      PIC24FJ256GB110 

PIC24HJ12GP201       PIC24HJ12GP202 
PIC24HJ32GP202       PIC24HJ32GP204 
PIC24HJ32GP302       PIC24HJ32GP304
PIC24HJ64GP202       PIC24HJ64GP204
PIC24HJ64GP206       PIC24HJ64GP210       
PIC24HJ64GP504       PIC24HJ64GP506       PIC24HJ64GP510 
PIC24HJ128GP202      PIC24HJ128GP204
PIC24HJ128GP206      PIC24HJ128GP210      
PIC24HJ128GP306      PIC24HJ128GP310      
PIC24HJ128GP502      PIC24HJ128GP504
PIC24HJ128GP506      PIC24HJ128GP510 
PIC24HJ256GP206      PIC24HJ256GP210      PIC24HJ256GP610 

dsPIC33 Devices
dsPIC33FJ06GS101     dsPIC33FJ06GS102     dsPIC33FJ06GS202 
dsPIC33FJ16GS402     dsPIC33FJ16GS404 
dsPIC33FJ16GS502     dsPIC33FJ16GS504 

dsPIC33FJ12GP201     dsPIC33FJ12GP202 
dsPIC33FJ32GP202     dsPIC33FJ32GP204 
dsPIC33FJ32GP302     dsPIC33FJ32GP304 
dsPIC33FJ64GP202     dsPIC33FJ64GP204 
dsPIC33FJ64GP206     dsPIC33FJ64GP306     dsPIC33FJ64GP310 
dsPIC33FJ64GP706     dsPIC33FJ64GP708     dsPIC33FJ64GP710 
dsPIC33FJ64GP802     dsPIC33FJ64GP804 
dsPIC33FJ128GP202    dsPIC33FJ128GP204 
dsPIC33FJ128GP206    dsPIC33FJ128GP306    dsPIC33FJ128GP310 
dsPIC33FJ128GP706    dsPIC33FJ128GP708    dsPIC33FJ128GP710 
dsPIC33FJ256GP506    dsPIC33FJ256GP510    dsPIC33FJ256GP710 
dsPIC33FJ128GP802    dsPIC33FJ128GP804 

dsPIC33FJ12MC201     dsPIC33FJ12MC202 
dsPIC33FJ32MC202     dsPIC33FJ32MC204 
dsPIC33FJ32MC302     dsPIC33FJ32MC304 
dsPIC33FJ64MC202     dsPIC33FJ64MC204 
dsPIC33FJ64MC506     dsPIC33FJ64MC508     dsPIC33FJ64MC510 
dsPIC33FJ64MC706     dsPIC33FJ64MC710    
dsPIC33FJ64MC802     dsPIC33FJ64MC804 
dsPIC33FJ128MC202    dsPIC33FJ128MC204  
dsPIC33FJ128MC506    dsPIC33FJ128MC510    dsPIC33FJ128MC706 
dsPIC33FJ128MC708    dsPIC33FJ128MC710 
dsPIC33FJ256MC510    dsPIC33FJ256MC710 
dsPIC33FJ128MC802    dsPIC33FJ128MC804 

dsPIC30 Devices
dsPIC30F2010         dsPIC30F2011         dsPIC30F2012
dsPIC30F3010         dsPIC30F3011         dsPIC30F3012
dsPIC30F3013         dsPIC30F3014 
dsPIC30F4011         dsPIC30F4012         dsPIC30F4013
dsPIC30F5011^        dsPIC30F5013^        dsPIC30F5015
dsPIC30F6010A        dsPIC30F6011A        dsPIC30F6012A
dsPIC30F6013A        dsPIC30F6014A        dsPIC30F6015

^ These 2 devices are not supported for low VDD programming.

dsPIC30 SMPS Devices
dsPIC30F2020         dsPIC30F2023

PIC32 Devices
PIC32MX320F032H      PIC32MX320F064H      PIC32MX320F128L 
PIC32MX340F128H      PIC32MX340F128L
PIC32MX360F256L      PIC32MX360F512L 
PIC32MX440F128L      PIC32MX440F128H 
PIC32MX440F256H      PIC32MX440F512H 
PIC32MX460F256L      PIC32MX460F512L 

HCS200     HCS201     HCS300     HCS301      HCS320 
HCS360     HCS361     HCS362 

	HCSxxx File -> Import HEx Notes:
		The first line only may be imported from SQTP
                *.NUM files generated by the KEELOQ tool in 

        Connections for HCS devices
        PICkit 2 Pin             HCS Device Pin
        (2) Vdd                  8
        (3) GND                  5
        (5) PGC                 /3            HCS20x, 320
                                \3 -or- 4     HCS30x, 36x
        (4) PGD                  6
        (1) VPP                  2            HCS360, 361 only

MCP250xx CAN Devices
MCP25020       MCP25025 
MCP25050       MCP25055 

!!IMPORTANT!! - MCP250xx devices are OTP and can only be
                programmed once.

        Connections for MCP250xx devices
        PICkit 2 Pin             MCP Device Pin (DIP)
	(1) Vpp                  11 Vpp
        (2) Vdd                  14 VDD
		- The MCP device MUST be powered from PICkit 2!
        (3) GND                  7 Vss
        (4) PGD                  5 DATA
        (5) PGC                  6 CLOCK

Serial EEPROM Devices
NOTE: Other supported voltage grades are listed in parentheses
      next to the device.  Select the "LC" part number to program
      these other voltage grades.

11LC010 (AA) 
11LC020 (AA) 
11LC040 (AA) 
11LC080 (AA) 
11LC160 (AA) 

24LC00   (AA)(C)                  25LC010A (AA) 
24LC01B  (AA)                     25LC020A (AA) 
24LC02B  (AA)                     25LC040A (AA) 
24LC04B  (AA)                     25LC080A (AA) 
24LC08B  (AA)                     25LC080B (AA) 
24LC16B  (AA)                     25LC160A (AA) 
24LC32A  (AA)                     25LC160B (AA) 
24LC64   (AA)(FC)                 25LC320A (AA)
24LC128  (AA)(FC)                 25LC640A (AA) 
24LC256  (AA)(FC)                 25LC128  (AA) 
24LC512  (AA)(FC)                 25LC256  (AA) 
24LC1025 (AA)(FC)                 25LC512  (AA) 
                                  25LC1024 (AA) 

93LC46A/B/C  (AA)(-C) 
93LC56A/B/C  (AA)(-C) 
93LC66A/B/C  (AA)(-C) 
93LC76A/B/C  (AA)(-C) 
93LC86A/B/C  (AA)(-C) 

        Connections for 11LC devices
        PICkit 2 Pin             11LC Device Pin (DIP)
        (2) Vdd !                8 Vcc
        (3) GND                  4 Vss
        (6) AUX                  5 SCIO

	! 11LC devices may not program properly below 3.6V VDD.
          This is a limitation of the PICkit 2 AUX IO pin.

        Connections for 24LC devices
        PICkit 2 Pin             24LC Device Pin (DIP)
        (2) Vdd !                8 Vcc
        (3) GND                  4 Vss
        (5) PGC                  6 SCL (driven as push-pull)
        (6) AUX                  5 SDA (requires pullup)
                                 7 WP - disabled (GND)
                                 1, 2, 3 Ax pins
                                    Connect to Vdd or GND per
                                    datasheet and to set address

	! 24LC devices may not program properly below 3.6V VDD.
          This is a limitation of the PICkit 2 AUX IO pin.

        Connections for 25LC devices
        PICkit 2 Pin             25LC Device Pin (DIP)
        (1) VPP                  1 nCS
        (2) Vdd                  8 Vcc
        (3) GND                  4 Vss
        (4) PGD                  2 SO
        (5) PGC                  6 SCK
        (6) AUX                  5 SI
                                 7 nHOLD - disabled (Vdd)
                                 3 nWP - disabled (Vdd)

        Connections for 93LC devices
        PICkit 2 Pin             93LC Device Pin (DIP)
        (1) VPP                  1 CS
        (2) Vdd                  8 Vcc
        (3) GND                  5 Vss
        (4) PGD                  4 DO
        (5) PGC                  2 CLK
        (6) AUX                  3 DI
                                 7 PE - enabled (Vdd)
                                 6 'C' Device ORG 
                                    Set to select word size


For more information about PICkit 2 Partlist: (http://ww1.microchip.com/downloads/en/DeviceDoc/PICkit%202%20Readme%20v2-61-00%20%28a%29.txt)

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us: