PicPgm USB Programmer v1.0

I get a micro-controller (Microchip PIC18F4550 – the first micro-controller ever programmed and tested by me) but I didn’t know what to do with it next. So, search on Internet more ideas about possibilities to put an application on it, run it, and eventually attach more electronic devices near the micro-controller … and in final to obtain a testing platform of the capabilities of PIC18F4550. For “write” an application on it I found that I need a programmer device. There are a lot of versions of this kind of devices. First I just search for programmers which I could buy, at a low price (since I didn’t get any money for research yet), and which to be compatible with this micro-controller.

I had another problem. My computer is a slow laptop and which doesn’t have a serial port, or parallel port (this kind of ports are used esspecially for programming). The convertors from USB to serial/parallel, from my research, doesn’t work very well with the programming devices. So, the single option was to found a USB programmer.

I didn’t found in my country one which to be conectable by USB and which to be achieved at a lower price (didn’t permit more than 30 euro in this moment). During the research I found something interesting, a schematic on how to build such a device and which is compatible with my micro-controller (also the schematic doesn’t look very complicated for realizing it). And more important, the cost should be lower than my budget.

The name of this device is PicPgm USB Programmer and it is presented very well on the PicPgm website (http://members.aon.at/electronics/pic/picpgm/index.html). On the website there are presented and another types of programmers and also a software application (PicPgm Development Programmer v1.3) which could be used for programming the micro-controllers (I used this application to put the bootloader application in the pic memory). Their website is very organized and clear information is presented (this is not for advertising but I was very pleased by them).

Another advantage of this programmer is that it could be used for low-power programming.

On the PicPgm website is presented only the schematic/layout of the micro-controller and not the PCB (Printed Circuit Board).

Schematic/layout of the PICPgm programmer

After I get all the necessary components (it takes about a week to get the most important of them: FT245Bl, 74LS14N) I started to create the PCB using the Target 3001 software application. It was a little hard for the first time of using it but I succeed 🙂 . I put the both PCB versions, at 100% size, with components and without, maybe they will help somebody.

– without components represented

– with components represented


From the initial schematic (layout) it was modified the order of the output pins and also the output connector (since I didn’t found a connector with 6 pins, but only with 20; if it is functional this is not such a big problem). I considered useful for myself the new order of the pins, as the ICSP connector  pins configuration and according to the new circuit which is under developing – based on PIC18F4550 .

The order of the output pins is:

  1. MCLR
  2. +5V
  3. GND
  4. DATA
  5. CLK
  6. PGM

I found it a little bit complicated to solder on the board the FT245BL (converter from USB to parallel) component, but with a sharp soldering tool I finish it quite quickly.

After finishing soldering the circuit I connected it to the USB port of the computer, using a proper cable. It was connected and … nothing. Windows OS doesn’t say anything about any new device connected to the computer. I start testing the connections from the board. I found one cold link and 2 pins connected together, by mistake, at the FT245BL component. I correct these problems and connect the board again to the computer. This time … success. Windows OS displayed a message that a Usb<->Serial device was found (the drivers for this device which should be installed could be found at  http://www.ftdichip.com/FTDrivers.htm – D2XX driver provided by FTDI).

– a photo of the board

The PicPgm Development Programmer application recognized the programmer device and I could go in weekend very happy …

PicPgm USB Programmer

PicPgm USB Programmer

PicPgm USB Programmer

PicPgm USB Programmer

ICSP connector

The ICSP (In Circuit Serial Programming) connectors give a possibility to program the micro-controllers without moving them from the developing/testing board. It is eliminated the possibility of accidentally damage the micro-processor when plugging or unplugging it from the slot.

Connector pins specification:

  1. Vpp (MCLR) – programming voltage
  2. Vcc – power (usually 5V)
  3. GND – ground (0V)
  4. PGD – data
  5. PGC – clock
  6. PGM – LVP(Low Voltage Programming) enable – for the micro-controllers which support this type of programming

Vpp – programming voltage

It specify a programming action and it is connected to the reset input of the micro-controller (labeled MCLR). It signal to the micro-controller that a programming or verify action is about to start.

Vdd/Vcc – power

It offer power to the micro-controller for permit this one to work properly. Ussualy this power is represented by a +5V input voltage.


These are connector which are dedicated for programming the device. Firstly it is deliverd the data (low or high) and after the clock signal is rises from low to high. In the moment when the clock signal is rises the data is  write into the device memory. The PGD connector is also used for verify the device.


It is optional and used especially for establish if it is used a Low Power Programming or not. It should be set on low for micro-controllers not to enter the LVP state (this could be done by link it to the gound by a 10k resistor).

Not sure about this …

I expected that the PGM signal of the programmer to be high, since it is dedicated for low-power programming, but it seams to be low. Maybe I have done something wrong. Hmmm … I had to connect the PGM pin of the micro-controller to the Vdd pin (just in this way the micro-controller is recognized by the PicPgm software application).

Late note: After more work I decided to pass to a new type of micro-controller, PIC24FJ64GB004, which provides many other services and have better characteristics than PIC18F4550. The new type of micro-controller was not compatible with the PicPgm Programmer and it came the necessity of a new USB programmer. The most simple solution was to buy a PicKit 3 Programmer, which is not quite expensive and till then I have used succesfully.


  1. eddie
    September 1, 2011 at 4:27 am

    great work! ,but if i have a usb to parallel port converter, by eliminating the other part of the schematic(usb-parallel converter)would i till be able to archive the same thing?

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: