JDM2 based PIC Programmer

 by ian
Schematic & layout for an updated JDM2 PIC Programmer. Includes clock & data filter, Vpp voltage divider for modern PIC microcontrollers (eg USB PIC 18F2455/4455).

Prior to reading sites like www.hackaday.com & www.makezine.com/blog I had worked only with the Amtel/AVR line of microcontrollers. After seeing all the cool projects people were doing with Microchip PICs, I HAD to have a PIC programmer. About a year ago I made my first PIC programmer based on the uJDM design (http://www.jdm.homepage.dk/newpic3.htm ). This programmer uses 6 common components. Though the link says '16F84(a)' only, I used it for the more modern (and cheaper) 16F628(a) processors without problems. This programmer has served me extremely well, but it is limited to (less than) 18 pin PICs with a programming Vpp of 13 volts.

This 'instructable' covers my new design that programs 8/14/18/28/40 pin PICs. The circuit is based on the JDM2 programmer (http://jdm.homepage.dk/newpic.htm ), with two enhancements: clock and data line filtering & selectable programming voltage.

The ZIP archive contains all the project files. The uJDM schematic and layout are included as well.
 
Remove these adsRemove these ads by Signing Up

Step 1: Design enhancements

Clock and Data Filter:

Newer PICs are programmed so fast that the clock and data lines can experience cross-talk. According to the author of WinPic programming software(http://www.qsl.net/dl4yhf/winpic/ ):

"There was a note on the Microchip forum (by Olin Lathrop) about programming the dsPIC30F201, suggesting to put 22..47 pF on the PGD and PGC lines to ground near the target chip. In addition, put a 100 ohm resistor in series with the PGD line between target chip and the cap. The resistor and cap on the PGD line low pass filter the PGD signal when it is driven by the target chip. This reduces the high frequencies that can couple onto the PGC line. The cap on the PGC line makes it less suceptible to coupled noise. We later found out that this important note also applies to the PIC18Fxxxx family. A user of a Velleman PIC programmer reported success with a PIC18F4520 after adding 2 * 33 pF caps and a 100 Ohm series resistor." (LINK:http://www.qsl.net/dl4yhf/winpic/#pgd_pgc_filtering )

This note applies primarily to programming PICs through a cable while they are soldered into a circuit. When using this type of programming the extra capacitors and resistor must be near the target chip - it does not help to have them on the programmer:

"This means that this problem can not be solved at the programmer end of the cable. No amount of clever circuitry at the programmer can make this issue go away. It must be dealt with at the target circuit. (LINK: see PGD to PGC Crosstalk at http://www.embedinc.com/picprg/icsp.htm )

I emphasize this so it is clear you CANNOT slap a ICSP header on this board without issue. I included the filters in my new programmer because the data/clock traces are long. The capacitors are situated in the circuit so that they can be excluded without weakening the trace. The resistor can be replaced with a jumper wire.

Selectable Programming Voltage (Vpp):

Programming voltage (Vpp) is applied to the MCLR pin to place the PIC in programming mode. Older PICs (12F/16F/some 18Fs) require a Vpp of 13 volts. Newer PICs (such as the USB enabled 18F2455/4455) have a lower Vpp of 12.5 volts. A voltage divider was added to the JDM2 design to provide 12.5 volts from the original 13 volt output. A diode prevents leakage through the voltage divider when it is bypassed. Vpp is selectable by the three pin jumper at the lower left of the programmer. In practice it doesn't seem to matter: I can program 13 volt parts with 12.5 volts, and 12.5 volt parts at 13 volts without damage.
1-40 of 117Next »
jomar_00012 says: Apr 8, 2012. 10:55 AM
Is PIC16F690 supported? please reply. It is for my thesis. Thanks!
wimpieA says: Jan 23, 2012. 7:57 AM
Is this programmer going to work with MikroC?
aaim says: Jan 19, 2012. 4:41 AM
Thanks mann..... I wanted to ask if i could connect a rs-232 to USB cable with it....
levonTech18 says: May 16, 2010. 8:29 PM
Are you really sure this jdm2 proggramer supports:18F2xx0, 18F2x21, 18F2xx5, 18F4xx0, 18F4x21, 18F4xx5: 18F2221, 18F2321, 18F2410, 18F2420, 18F2423, 18F2450, 18F2455, 18F2458, 18F2480, 18F2510, 18F2515, 18F2520, 18F2523, 18F2525, 18F2550, 18F2553, 18F2580, 18F2585, 18F2610, 18F2620, 18F2680, 18F2682, 18F2685, 18F4221, 18F4321, 18F4410, 18F4420, 18F4423, 18F4450, 18F4455, 18F4458, 18F4480, 18F4510, 18F4515, 18F4520, 18F4523, 18F4525, 18F4550, 18F4553, 18F4580, 18F4585, 18F4610, 18F4620, 18F4680, 18F4682, 18F4685

Today i will program Pic18F4550.. i hope it work
dhiraj_dt in reply to levonTech18Jan 4, 2012. 9:53 AM
did it work for pic18F4550 ?? please reply on dhiraj_dt@yahoo.co.in
lenmorvash in reply to levonTech18Mar 11, 2011. 7:24 AM
hey, did it work? I really need to program an 18F2550 for my project.... thanks

viswanathmarachi says: Dec 23, 2011. 2:52 AM
Hey,

Thanks for the simple design... Can I program attiny2313 which is a 20 pin IC with this programmer??

Thanks...
ian (author) in reply to viswanathmarachiDec 23, 2011. 3:22 AM
I think only PICs.
noxx says: Oct 15, 2011. 9:38 AM
Ian I can't open the files that have .brd and .sch extensions. which application do i use to open to them?
ian (author) in reply to noxxOct 19, 2011. 1:00 AM
Cadsoft Eagle.
noxx says: Oct 16, 2011. 12:14 PM
pls can someone answer me. how can i view the .sch and .brd files?
efdat says: Oct 9, 2011. 4:26 AM
please tell me the soft ware you use to draw your pcb circuits
anatesan says: Oct 7, 2011. 3:29 AM
can we program pic18f4550 and pic18f2550 using this
C.H says: Oct 5, 2011. 6:34 AM
Great!
I have not built this yet and I read you mentioned using a ZIF socket. Using a ZIF socket instead of several different sockets will spare resources and ease the design I guess. :)
I have a ZIF socket and am wondering where you would put it to make your programmer work as intended. (I have yet to build anything electronic, this PIC programmer will probably be my first project)


Thank you!


- C.H.
mujtaba ali says: Sep 6, 2011. 5:36 AM
hey,
is it program to 16f877a microcontroller ic?plz reply

Thanks.....
ian (author) in reply to mujtaba aliSep 6, 2011. 5:41 AM
should be ok
zacknie says: Jun 21, 2011. 7:18 PM
is it working on PIC16F84?..
cavemen says: Oct 21, 2010. 1:51 PM
Can i replace rare BC547B with 2n3904?
I already did.
the board ain't working with my pic16f628
trying to figure out why
falseadress in reply to cavemenFeb 8, 2011. 11:21 PM
Try flipping transistor around. the BC547B is CBE and i think the 3904 are EBC
robot1398 in reply to falseadressApr 25, 2011. 1:22 AM
U ARE CORRECT
instbubba says: Feb 19, 2011. 8:16 PM
The Eagle schematic has a problem, the transistor's pinout for the one that goes to Vpp is backwards. The collector and emitter are reversed. It may not affect the board, but the schematic could not possibly work the way it is apparently wired.

FYI, for an easy to understand diagram of this circuit, take a look at the Olimex PIC-PG2. This circuit is essentially identical with the addition of the filtering networks.
nikon95 says: Nov 19, 2010. 12:47 PM
Will this work with my 16f877 and picpro (linux)???

Αny tips would be appreciated .

:-)
homermike says: Aug 14, 2010. 3:18 AM
Hello... We'v been dealing a lot of projects using PICs... and now we come up to a project that we could do the PIC programming on AIR using GSM module.. So i would like to ask if someone had an idea on how to make a system that have 2 PICs.. one PIC is the MAIN PIC and the 2nd PIC would be the program or HEX loader PIC to the MAIN PIC...
obie87 says: Aug 8, 2010. 4:58 PM
hi, i want to know if this Programmer can program PIC 16LF628A, Thanks
levonTech18 says: May 16, 2010. 8:08 PM
D2- must be : 1N4733 5.1v 1w  .....And D6-Must be : 1N4738 8.2v 1w

Thanks < i hope this can help you to build ..
levonTech18 says: May 14, 2010. 12:03 AM
Hi< do you really think this is working and can program PIC18F4550..
naveen.a019 says: Apr 9, 2010. 9:17 AM
hi,  why do u need ...sv3...i am a newbie to electronics hobby...can any bdy..help...
silverplated says: Feb 5, 2010. 11:39 AM

YOU ARE COOL MAN THANK YOU FOR THIS PIC PROGAMER

cm6lar says: Jan 19, 2010. 10:32 AM
I think that the Q1 transistor is not corrected placed.. the emisor an collector are bartered.
monsterman says: Dec 3, 2009. 11:06 AM
dous anyone know if this will work with a 18F2550
forte1994 says: Aug 20, 2009. 7:04 PM
will this work with vista 64x
JohnnyVegas says: Aug 9, 2009. 11:04 PM
Just built this and must say it worked great on a 16F628A @ 13v. Did not try 12.5 For C2 I used a 22uF 16v Mini Alum Elect CAP. For C3 and C4 I used 68 pF ceramic. That's what I had around. winPic800.
moraru says: Jul 1, 2009. 11:38 AM
Hi ian, I want to write a dsPIC30F4012, can' I with JDM2? Tanks. Moraru.
hesperaux says: May 21, 2009. 3:50 PM
This is fantastic. I just programmed a PIC16F72. I was able to dump it's memory, erase it, and program it without any issues. I did this in Arch Linux using picprog (works very well and is easy to use). Unfortunately I can't yet test the program I burned onto it because all my tools and parts are not yet mailed (on vacation). But according to picprog, it burned properly. Also, it takes about ..2 seconds to burn a small program.

Thanks for your PCB design, Ian. It was very helpful. And thanks for using Eagle, cuz it has a Linux version. =) I'm very excited because this is my first PCB and my first programmer and it works.
beeshyak says: May 19, 2009. 7:00 AM
I have downloaded WinPIC 800 from the WinPIC website. I scrolled the hardware programmer selection. Within the list, I only see JDM but no JDM2. Will this work with selection of JDM only? I plan to use it on 18F26K20 but it's Vpp is lower.
juans says: Apr 1, 2009. 5:15 AM
hi everybody , is it possible to if i change tantalum capacitor with other ordinary electronic capacitor?, it's so hard to find it in my place. thanks best regard juan rio sipayung
MicRoelelectronica says: Jan 25, 2009. 5:57 AM
nice thingy maar er is toch iets wat ik niet begrijp C3 en C4, welke waardes moet je hebben? i dont quite know how to say that in english.
ian (author) in reply to MicRoelelectronicaJan 25, 2009. 6:24 AM
Any of those values should work. Kies een van de waardes.
curioussole says: Jan 26, 2006. 3:06 PM
Why do none of the part lists ever include the wattage on the resistors? Are they 0.5W or 1/4Watt? Don't diodes and capacitors also have wattages? Why are the full specs on the parts not listed?
ian (author) in reply to curioussoleJan 25, 2009. 6:23 AM
Everybody assumes 1/4watt if not specified.
1-40 of 117Next »
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!