JDM2 based PIC Programmer

JDM2 based PIC Programmer
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 1Design enhancements

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.
« Previous StepDownload PDFView All StepsNext Step »
116 comments
1-40 of 116next »
Jan 23, 2012. 7:57 AMwimpieA says:
Is this programmer going to work with MikroC?
Jan 19, 2012. 4:41 AMaaim says:
Thanks mann..... I wanted to ask if i could connect a rs-232 to USB cable with it....
May 16, 2010. 8:29 PMlevonTech18 says:
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
Jan 4, 2012. 9:53 AMdhiraj_dt says:
did it work for pic18F4550 ?? please reply on dhiraj_dt@yahoo.co.in
Mar 11, 2011. 7:24 AMlenmorvash says:
hey, did it work? I really need to program an 18F2550 for my project.... thanks

Dec 23, 2011. 2:52 AMviswanathmarachi says:
Hey,

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

Thanks...
Oct 15, 2011. 9:38 AMnoxx says:
Ian I can't open the files that have .brd and .sch extensions. which application do i use to open to them?
Oct 16, 2011. 12:14 PMnoxx says:
pls can someone answer me. how can i view the .sch and .brd files?
Oct 9, 2011. 4:26 AMefdat says:
please tell me the soft ware you use to draw your pcb circuits
Oct 7, 2011. 3:29 AManatesan says:
can we program pic18f4550 and pic18f2550 using this
Oct 5, 2011. 6:34 AMC.H says:
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.
Sep 6, 2011. 5:36 AMmujtaba ali says:
hey,
is it program to 16f877a microcontroller ic?plz reply

Thanks.....
Jun 21, 2011. 7:18 PMzacknie says:
is it working on PIC16F84?..
Oct 21, 2010. 1:51 PMcavemen says:
Can i replace rare BC547B with 2n3904?
I already did.
the board ain't working with my pic16f628
trying to figure out why
Feb 8, 2011. 11:21 PMfalseadress says:
Try flipping transistor around. the BC547B is CBE and i think the 3904 are EBC
Apr 25, 2011. 1:22 AMrobot1398 says:
U ARE CORRECT
Feb 19, 2011. 8:16 PMinstbubba says:
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.
Nov 19, 2010. 12:47 PMnikon95 says:
Will this work with my 16f877 and picpro (linux)???

Αny tips would be appreciated .

:-)
Aug 14, 2010. 3:18 AMhomermike says:
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...
Aug 8, 2010. 4:58 PMobie87 says:
hi, i want to know if this Programmer can program PIC 16LF628A, Thanks
May 16, 2010. 8:08 PMlevonTech18 says:
D2- must be : 1N4733 5.1v 1w  .....And D6-Must be : 1N4738 8.2v 1w

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

YOU ARE COOL MAN THANK YOU FOR THIS PIC PROGAMER

Jan 19, 2010. 10:32 AMcm6lar says:
I think that the Q1 transistor is not corrected placed.. the emisor an collector are bartered.
Dec 3, 2009. 11:06 AMmonsterman says:
dous anyone know if this will work with a 18F2550
Aug 20, 2009. 7:04 PMforte1994 says:
will this work with vista 64x
Aug 9, 2009. 11:04 PMJohnnyVegas says:
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.
Jul 1, 2009. 11:38 AMmoraru says:
Hi ian, I want to write a dsPIC30F4012, can' I with JDM2? Tanks. Moraru.
May 21, 2009. 3:50 PMhesperaux says:
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.
May 19, 2009. 7:00 AMbeeshyak says:
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.
Apr 1, 2009. 5:15 AMjuans says:
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
Jan 25, 2009. 5:57 AMMicRoelelectronica says:
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.
Jan 26, 2006. 3:06 PMcurioussole says:
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?
Jun 12, 2006. 11:42 AMsim says:
hi!i think that the pin 1 and 2 of the jumper must be conncted? if it's not right what's the role of this pin?thank you!
1-40 of 116next »

Pro

Get More Out of Instructables

Already have an Account?

close

All Steps Viewing
View all steps of an Instructable on the same page when you're a Pro Member.

Upgrade to Pro today!
125
Followers
30
Author:ian(DangerousPrototypes.com)