Green Digit Technologies

Creative Commons License

RCD Programmer

RCD Programmer

I got my idea from Feng on creating this Programmer.

This programmer allows you to use your serial port to program several (older) PIC microcontrollers (microcontrollers from Microchip Technology).
The power required comes from the RS232 port, thus from your pc.

Note that some USB to RS232 cables does not provide enough power.

The schematic is fairly simple and can be explained in a few lines, so here we go.


The DB9 connection used has, obviously, 9 connections. Only 5 of them are going to be used.

  • Pin 5: GND
  • Pin 3: Transmit Data (TD or Tx)
  • Pin 4: Data Terminal Ready (DTR)
  • Pin 7: Request To Send (RTS)
  • Pin 8: Clear To Send (CTS)
The 5V required to power the PIC is created from the Transmit data pin using a 5V1 Zener diode (D6) and a 1N4148 (D5), or similar, general purpose diode.
The Vpp, Programming voltage, is created using that same pin, this time using a 13V zener diode (D7) and a 100μF capacitor (C1).
The Programming Data (PGD ord ICSPDAT) and Programming Clock (PGC or ICSPCLK) are created from the RTS, resp. the DTR pins.
Both using 2 diodes clamping the voltage to a maximum of 5V7 and -0V7.
The excess voltage is taken care of by the resistor.
Note that the Data is also read back using the CTS pin.

The following PIC's has been tested by me and found to be working:

  • PIC12c5xx
  • PIC12c67x
  • PIC16C55X
  • PIC16C61
  • PIC16C62X
  • PIC16F628(A)
  • PIC16C71
  • PIC16C71X
  • PIC16C8X
  • PIC16F8X
In some cases a custom adapter is required for programming depending on the model.

Finished Project: