# PICkit

PICkit is a family of programmers for PIC microcontrollers made by Microchip Technology. They are used to program and debug microcontrollers, as well as program EEPROM. Some models may also feature logic analyzers and serial communications (UART) tools.

## Versions
### PICkit 1

The PICkit 1 was a rudimentary USB programmer for PIC microcontrollers, produced by Microchip Technology, the manufacturer of the PIC series of microcontrollers. It was introduced on March 31, 2003, priced at US$36.
The PICkit 1 was integrated into a demonstrator board, featuring eight LEDs, a switch, and a potentiometer. Its default program, explained in the documentation, rotates the LEDs in series. The light display's direction and speed of rotation can be changed with the button and potentiometer on the PICkit board.

### PICkit 2

The PICkit 2 was introduced in May 2005 to replace the PICkit 1. The PICkit 2 has a separate programmer/debugger unit which plugs into the board carrying the chip to be programmed, whereas the PICkit 1 is a single unit. This makes it possible to use the programmer with a custom circuit board via an in-circuit serial programming (ICSP) header. This feature is not intended for so-called "production" programming, however.
The PICkit 2 uses an internal PIC18F2550 with FullSpeed USB. The PICkit 2 firmware allows the user to program and debug most of the 8 and 16-bit PICmicro and dsPIC members of the Microchip product line.
The PICkit 2 is open to the public, including its hardware schematic, firmware source code (in C language), and application programs (in C# language). End users and third parties can modify both the hardware and software. e.g. Linux version of PICkit 2 application software, DOS-style CMD support, etc.
The PICkit 2 has a Programmer-To-Go (PTG) feature, which enables the PIC MCU memory image to be downloaded into on-board memory (128 KB I²C EEPROM or 256 KB I²C EEPROM). Once the image has been downloaded, devices can be programmed with this memory image without a PC.
The Microchip version of PICkit 2 has 128 KB memory as standard. 256 KB memory can be accommodated by modifying the hardware or by using a third-party clone.
A 500 kHz three-channel logic analyzer and a UART tool are built into the PICkit 2. These features are not available in the PICkit 3.
Since the release of V2.61, PICkit 2 PC software now supports a maximum of 4 megabytes of memory for the programmer-to-go feature. With this modification, the PICkit 2 supports eight times as much memory as the PICkit 3. This enhancement has been contributed by Au Group Electronics and the PICkit 2 firmware is also reported to be submitted to the Microchip PICkit 2 team in the middle of March 2009.

### PICkit 3

In January 2009, Microchip released the PICkit 3, a variation of the PICkit 2 with the same form factor and a new translucent case. It features a faster 16-bit PIC24F processor and a wider voltage regulation range.
Both PICkit 2 and PICkit 3 have internal, switch-mode voltage regulators: from a 5 V USB supply at around 100 mA, the PICkit 2, generates 2.5 to 5 volts, and the PICkit 3 generates 2.5 to 5.5 volts. On both units, accuracy may be increased by calibrating the output with a multimeter. For some PICs, the MCLR programming voltage can be generated, at around 13 to 14 volts. This voltage is required to reprogram the flash memory.

### PICkit 4

In February 2018, Microchip released the PICkit 4, which supports ICSP and JTAG debugging/programming. At the time of launch, not all PIC devices are supported, but the firmware is continually being upgraded to add support for new devices.
PICkit4 also supports programming/debugging of AVR devices with UPDI/PDI/JTAG/SPI/debugWIRE interfaces by enumerating in "AVR mode" which makes its USB communication interface compatible with that of Atmel-ICE.

### PICkit 5

In July 2023, Microchip released the PICkit 5. It supports ICSP and JTAG debugging/programming for Microchip devices and UPDI/PDI/JTAG/SPI/debugWIRE for AVR devices.
PICkit 5 appears almost identical to the PICkit 4 and both share a similar feature set. The only functional differences are the use of the USB-C connector (instead of the older micro-B USB) and Bluetooth connectivity.

## Software
### PICkit 2 and PICkit 3

The software for the Microchip PICkit 2 and PICkit 3 in-circuit debugger/programmers was released by Microchip in 2009 and 2012 respectively. The software is open source and not maintained by Microchip. Consequently, there is no support for modern operating systems or new PIC microcontrollers.

## Clones and open sources

PICkit 2 can program and debug most PICs (as of May 2009, only the PIC32 family is not supported for MPLAB debugging). Ever since its first release, all software source code (firmware, PC application) and hardware schematics are open to the public. This makes it relatively easy for an end user to modify the programmer for use with a non-Windows operating system such as Linux or Mac OS. It also creates much DIY interest while allowing clones to be created easily. The open-source structure brings many features to the PICkit 2 community, such as Programmer-to-Go, the UART Tool, and the Logic Tool, which have been contributed by PICkit 2 users. Users have also added such features to the PICkit 2 as 4 MB Programmer-to-go capability, USB buck/boost circuits, RJ12 type connectors, and more. It even penetrated into the Atmel community as it is able to be configured into an AVR ISP tool.

### PICkit 3.5

PICkit3.5 is a description of a clone not made by Microchip. The device claims to offer some improvements over the PICkit 3 from MicroChip and Clones from other manufacturers.

### PICKitPlus

In 2018, PICKitPlus software was released to support the newer 8-bit microcontrollers that were not supported by the original Microchip software — including, but not limited to, the 16F18xxx and 18F2xKxx ranges. The software is donateware.
The intent of PICKitPlus is to facilitate the programming of any 8-bit PIC microcontroller using the PICkit™ 2 and PICkit™ 3 (ICSP) In-Circuit Debuggers/Programmers. The software extends the life of the existing PICkit2 and PICkit3 hardware devices by allowing them to work with the newer 8-bit PIC microcontrollers.
The capabilities include:
* Three applications:
* Updated PICkit 3 graphical interface for the PICkit3 hardware;
* Updated PICkit 2 graphical interface for the PICkit2 hardware; and
* A new command-line application that supports both PICkit2 and PICkit3 devices.
* New programming protocol support for new classes of Microchip's 8-bit PIC microcontrollers.
* Updated and managed 8-bit microcontroller database, to keep the software current with future microcontroller products.
* Improved user interface.
* Improved reliability (bug fixes).
* Improved help and users PDFs.
* Software is compatible with existing integrated development environment (IDE) software.
* Supports low-voltage (2v to 6v) programming (LVP), and high-voltage (9v to 12v) programming (HVP)
* Can read, write or erase program- and data memory of microcontrollers, with verification.
* Supports Windows 10, Windows 8.1, Windows 8.0, Windows 7 and Windows XP.
There are plans in the future to support MacOS and Linux.