PICkit 2 has a separate programmer/debugger unit which plugs into the board carrying the chip to be programmed, whereas the PICkit 1 was 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[3] for so-called "production" programming, however.
The PICkit 2 uses an internal PIC18F2550 with FullSpeed USB. The latest 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 easily modify both the hardware and software for enhanced features. e.g. Linux version of PICkit 2 application software, DOS style CMD support, etc.