j. ICSP Programmer for PIC32 microcontroller family

PIC32 ICSP Programmer v1.0 is based on a simple PIC32MX270F256B microcontroller basic circuit. It connects to a PC via USB 2.0 port and therefore needs no external power supply. It may be used to program a PIC32 microcontroller on a circuit via ICSP interface or you may add a programming header. It basically works similar to PICkit3 when programming a PIC32 microcontroller. The programmer uses the right hand side ICSP port (see the schematic) to program PIC32 microcontrollers. The left hand side port is a service ICSP port and it is intended only for programming a new firmware. PICkit3 also has s service ICSP port. but it is hidden inside the plastic cover and you also have to solder an appropriate connector to use it.ICSP Programmer for PIC32 microcontroller family

NOTE: PIC32 ICSP Programmer v1.0 has no voltage adapter on MCLR, PGD and PGC pins. Though all of them are 5.5 V tolerant and operate on TTL compatible voltage levels, the target microcontroller power supply voltage should not be below 3.3 V and should not exceed 5.5 V. The first condition is to prevent damage to the target microcontroller and the second condition is to prevent damage to the programmer. It is advisable to connect the programmer and the target microcontroller to the same power supply (ex. to a PC via two USB ports). PIC32 ICSP Programmer can therefore program PIC microcontrollers with power supply voltage ranging from 3.3 V up to 5.5 V and ICSP interface (like PIC18F4550). However, the current programming application only supports PIC32 microcontrollers.

The PGEC1 and PGED1 pins enable PIC32 ICSP Programmer v1.0 firmware updates. They operate only on 3.3 V, so a 3.3 V ICSP programmer should be used to upload the firmware. You can use a commercial programmer with PIC32 support (like PICkit3), or program a PIC32MX270F256B microcontroller chip with JTAG PROGRAMMER FOR PIC32 FAMILY or other ICSP or JTAG programmer with a programming header.


Use a PIC32MX270F256B programmer to program PIC32MX270F256B firmware v2.9.3 – 8 MHz XT.hex (download PIC32MX270F256B firmware v2.9.3 – 8 MHz XT.zip and extract the HEX file) into a PIC32MX270F256B microcontroller. Use the ICSP port on the left hand side of the schematic to transfer the firmware to the programmer, or program PIC32MX270F256B with a programming header.


PIC Programmer v4.0 application (PIC Programmer – v4.0 x64 with source code.zip) is based on PIC Programmer v3.2 application for JTAG PROGRAMMER FOR PIC32 FAMILY which was built for PIC18F2xJ50 microcontrollers, so the programming library SVLIB_PIC18F24J50 v2.7c.st.NET4x64.dll) is still used. It will be replaced with a newer library in a future version of the programmer software.

The current version of the application software supports PIC32MX1xxFxxxx and PIC32MX2xxFxxxx microcontrollers only, but you can easily add your support for other PIC32 microcontrollers. Source code is included.

ICSP Programmer for PIC32 microcontroller family schematic


It is cheap to build. The PIC32MX270F256B microcontroller costs only about 5 €. The other electronic components are much cheaper, so all the programmer parts including the prototyping PCB cost just about 10 €. You may also omit the target voltage gauge (the voltage divider beside the service ICSP port with two 4.7 k ohm resistors connected to target Vdd – see the schematic) and service ICSP port connector, if you intend to program the firmware with a programming header.

See also:

– Making a PIC32 programmer considerations



For more detail: j. ICSP Programmer for PIC32 microcontroller family 

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: