PIC Projects

PIC programmers

A programmer is needed to flash the compiled binary file (a .HEX file) into the microcontroller memory. There are many such devices available in various stores in the price range from $30 up to $200 and more. You can save some money by building a programmer by yourself. The programmers typically use PC serial or parallel port, while modern programmers tend to switch to USB.

El Cheapo programmer

I am dealing so far with PICs manufactured my Microchip Inc. and one of the books written by Myke Predko was my first introductory book. I decided then to build the parallel port El Cheapo programmer designed by that author. HUGE mistake. The first confusing thing is that there are several versions of that programmer available on the Internet and it is not clear which one is the most recent one. I listed them according to my understanding from the oldest one to the newest one.

I put the last like to the third place because the version number 3.1 looks higher for me that 0.8. Furthermore, I hoped that the circuit connected to pins 14 and 15 of the parallel port would make the device less port dependent. This was a wrong assumption, as the programmer version 3.1 was not recognized by software on all my home computers. I then modified it according to version 0.8 by adding a 1-transistor inverter attached to pic 13 of the parallel port to make it compatible with the supplied software. This one worked under Windows, but can program just a few types of PICs.

El Cheapo El Cheapo

Brenner5 programmer

My second programmer was PIC-Brenner5 designed by Jörg Bredendiek. This is a serious device, well described and documented and capable to handle many PIC types. I still use it for programming PIC12 and PIC16 series along with the PBrennerNG software. I am happy with both - programmer and software - and highly recommend them. Here is my design, which is slightly different from the original one mostly because I built it on a perfboard. I did not install a 40-pin ZIF socket there yet, just left a space for it on the board.

Brenner5 Brenner5

Connection with PC

To connect a programmer with the PC parallel port one needs a special cable. The PC port has a 25-pin D-sub female connector installed and my version of Brenner5 has a 25-pin D-sub male connector. The connecting cable must be at most 6 feet long for a normal operation of the PC parallel port. I assembled the cable by myself from a standard printer cable purchased for $1 in a surplus store. I shortened it down to about 5', took off the printer Centronics connector, and soldered a new D-sub male connector. The wires connect the corresponding pins of the connectors on the both sides. Note that the cable has only 18 wires out of maximum 25. This does not matter for the programmer, as it uses just a few lines. I connected all ground pins in parallel. The right picture shows the assembled socket.

Cable Power supply

In order to power the programmer, a 9V AC power supply is needed. I use one from my old Robotics modem.

Brenner8 programmer

In order to use a programmer in a class room, I needed another device. Serial and parallel ports have a tendency to dissappear from modern PCs and it is not very convenient to connect to those ports which are usually located on a back side of computer case. Furthermore, Brenner5 turned out to be somewhat sensible to the parallel port electrical parameters, which vary a lot for desktop and laptop computers and this affects a programmer portability. All this led to a need to have a programmer that connects to PC via a USB port. I assembled another device also designed by by Jörg Bredendiek - Brenner8 (Brenner is burner in German). The USB port provides only 5V and a higher voltage (10V - 13V) necessary for PIC programming is produced on board by using an inductor and a transistor key controlled by PIC. Due to large variance of component parameters, the device must be calibrated before burning PICs to produce right programming voltages and prevent damaging of PICs. This process is very clearly described in an extensive over 60 pages manual available from the above mentioned Web page (all documentation is in German).

Brenner8 Back side of PCB

The device has a controlling PIC that contains a firmware used by burning algorithms for various PIC types. It supports all PIC12F6xx, PIC16Fxx and PIC16Fxxx (exclusions are PIC16F5x and PIC16F5xx), all PIC18Fxxx and PIC18Fxxxx, and all dsPIC30Fxxxx PICs (altogether over 170 chip types working from 5V). The accompanying US-Burn software for burning has a similar interface as the one from Brenner5. I used Brenner5 and P18 burning software in order to flash a 26Kb firmware into the controlling PIC of Brenner8. It is wonderful that the designer provides a PCB layout. I just used the supplied PCB image (a GIF file) to make a PCB even without also supplied Eagle files. The Eagle files have less filling of the ground area on PCB, which was the main reason for me to use the image. A tiny difference between my design and the original one is using 2N3906/2N3904 transistors.

Brenner8 mini

This is one another USB PIC programmer developed by Jörg Bredendiek - Brenner8mini. The difference between this one and the one above is that there is no ZIF socket and the programming is achieved only via the ICSP cable. This makes the device much more portable. In addition to that, the PCB fits well into a standard project case, which is important for carrying it and using in the lab. The programmer has the same parameters and the list of supported PICs as its big brother Brenner8.

Back side of PCB View on components USB connector ICSP connector

This is one more time I applaud Jörg for his design, software, and supporting documentation. His web side contains links to PCB layouts (I used one designed by other people) and the software is permanently updated. The project enclosure is PI-1901 manufactured by BUD Industries Inc. Its size is 3.54x1.97x.94".

JDM2 serial port programmer

From time to time I get a question to recommend a simple and inexpensive PIC programmer. JDM2 is one of them. It was first developed by Jens Dyekjar Madsen and extended afterwards. It looks to be one of the most widely spread programmers on the Web. Instructables.com have very detailed instructions on how to build it.

In addition to those instructions I just want to underline that the GND bus on schematic must NOT be connected with computer ground and with the serial connector ground. Also, it might not work with serial port on all computers. This particularly concerns some laptops, whose serial ports deliver about 5V instead of standard 13V required for JDM. Some new desktops nowdays also have this feature. Anyway, if you have a 3+ years old desktop, it will most likely work fine with it.

Here is my version of this programmer. The software I used with it - WinPIC by Wolfgang Büscher (DL4YHF) - is also very popular one. It recognized the programmer right away and I was able to burn a sample Flash-A-LED code into PIC16F648A without any problems. The serial port is even able to provide enough power for this circuit to flash a LED.

PCB Back side ICSP cable

The programmer is connected to the PIC via a 5-wire ICSP cable. Actually, my cable on the image is 6-pin: there is an extra ground wire between the data and clock wires for a better separation. For short cable length (15cm) this is not very important though and a 5-wire cable will work fine (tested). Note that I swapped the clock and data pins on the schematic and PCB in order to make it pin-compatible with BrennerX programmers I use (see above). Zener diodes I used are 1N5231B (5.1V) and 1N5237B (8.2V), both in DO-35 packages. The device to the right from the board on the middle image is a gender converter. My custom-made serial cable terminates with a male 9-pin D-Sub connector and I only had another male D-Sub for PCB mounting. To link together two male connectors I used two female 9-pin D-Sub connectors (e.g., RadioShack has them). Industry-made gender changes are available, of course, too. The rightmost red wire jumper on the PCB fits fine underneath the D-Sub connector on the PCB and does not lift it up.

Eagle Downloads


Last modified:Mon, Jan 23, 2023.

16697