Business Card PIC Programmer

 by ian
Featured
This was my entry for the Hack A Day business card size circuit contest. I just zipped up the files and put them on my website. I'm posting it here because all the other entries seem to be on a blog for easy access. Hopefully this will make the project more accessible and reduce the load on my server.

The attached archive is the contest entry as it was on my server, minus the images. The text is taken from the included document.



This PIC/EEPROM programmer is so simple and small it fits on a business card with enough room left for assembly instructions...

Project:
Simple JDM2 style PIC ICSP programmer (on a business card).
  • all through hole
  • less than 2USD worth of parts (in 1s and 2s!)
  • easy single sided construction at home (with 3 jumpers)
  • enough room left for assembly instructions
  • extra space on the back for even more business-cardy goodness
  • also programs/reads serial EEPROMS
Skill level:
Easy/beginner.

Assembly time:
About an hour.

 
Remove these adsRemove these ads by Signing Up

Step 1: Description

Anyone can build this simple programmer and learn about PIC microcontrollers. The JDM2 programmer is super simple (about 10 parts), but programs a huge variety of PICS and serial EEPROMs. I've programmed everything from an 8 pin 12F629 to a new 18F4550 USB PIC with the JDM2. This programmer has an ICSP interface, meaning it can program PICs and read EEPROMs while they are attached to a circuit board. Start your hacking!

The PCB can be made single sided (with three jumper wires), but a two layer design makes assembly even easier. All the traces are nice and fat for easy toner-transfer or photo-process at home.

The JDM2 design is quite old, the original JDM2 circuit can be found here:

http://www.jdm.homepage.dk/newpic.htm

This design stays true to the old schematic, but the diode numbering now starts at 1, rather than 2.
1-40 of 146Next »
epson800 says: May 2, 2013. 4:28 AM
Hi guys, im trying to make this on a budget. The clad boards seem a tad expensive, and lots of labor in making it. Bottom line is i was going to make this on a piece of cardboard or something similar.

I have a question however how exactly do grounds work on circuit boards? Ground is just a piece of metal that all componets requiring ground need to touch to? Does this ground require anything outside of that, for example the DB9 is that grounded to the PCB ground as well, and in turn does the DB9 somehow ground the PCB to the computer?

In otherwords is there anything special i need to do because im using cardboard instead of clad?

Lastly i noticed an explosion warning in the document and placing a diode between the programmer (this pic programmer i assume) and the system (the computers DB9 i assume), just for clarification where exactly do i put this diode and why wasn't it simply put into the PCB design? I assume this is in regards to just programming a pic. I also see mention of master clear and a resistor, i assume the resistor isn't needed unless i need to clear the pic due to some error programming it.

Anyways im obviously a noob just getting my feet wet so could use a bit of help
swass says: Mar 3, 2013. 11:48 PM
Hi. First off, thanks to Ian for a great Instructable. I have just constructed this circuit and am trying to do the hello world of PIC programming (The lit LED). this is my first attempt at PIC programming and Im fairly new to electronics also.

The circuit seems to be constructed properly, I am using a desktop tower with COM1 port and under Linux, running the command line version of picpgm. Picpgm autodetects it as a JDM programmer and I tell it to read the PIC to verify if it is blank or not. I get an error

"picpgm: /home/christian/picpgm_1751/picpgm/src/common/pic10fxxx.cpp:640: virtual UINT32 CPic10Fxxx::GetOSCCAL(): Assertion `(m_nOSCCAL & 0x0F00) == 0x0C00' failed."

I then went back and measured the voltage across the VSS pin and VPP pin whilst it is trying to program/read the PIC, It was 15.2V, quite high considering most people seem to report problems where they have too low a voltage here.

BUT; then something very odd happened, whilst I had the multimeter pressed against the VSS and VPP pins, measuring the DC voltage, the programmer worked!! I was able to read the chip, what's more, I was actually able to program the chip (as long as I had my multimeter leads testing DC voltage between VSS and VPP throughout?!).

Does anyone have any idea why that might be? I thought it might be impedence, so tried a variety of 10M, 1M, 100K 22K resistors across VPP and VSS but that did not recreate the same effect as using the multimerer. Can anyone hazard a guess as to why my VPP voltage is also so high?

The only difference to Ian's schematic is that for some reason I ended up with a 5.6V zener diode in mine as opposed to a 5.1V zener. I didnt think it would make that much difference to the voltage though. I also have an LED between D1 and Q1 to show when it is programming. Many other JDM circuits also have this LED in them so i didn't think it was a big deviation from the design.

Any help appreciated. Thanks in advance, sorry for the length.
chetancc says: Dec 28, 2012. 9:48 PM
Hi,
I want to program PIC12F629 with readymade .hex code. Which programmer should I use? I would like to know the best and cheapest programmer available. I bought PICKIT2 clone from India but I had very bad experience with it. I couldn't program with it.
Can you please suggest me good programmer?
Regards,
Chetan
the_prototype says: Nov 23, 2010. 1:57 PM
would a BC546B do it? I got an BC546B and BC557B but no BC547B X_X
mhenriksen1 in reply to the_prototypeSep 9, 2012. 11:53 AM
BC546 would do yes, NOT a BC557 as that is a PNP type transistor.
the_prototype in reply to the_prototypeNov 23, 2010. 2:09 PM
I got the same question for the Diode... I got the PH4148, can I use this one?
mhenriksen1 in reply to the_prototypeSep 9, 2012. 11:57 AM
No clue what a PH4148 is, but when googeling it all I get is that it is a Zener Diode, and in that case, NO it will not work.
Do you have the datasheet for your diode?

You could use 1n4007 or similar diodes though.. what else have you got?
black_demon_31 says: Jul 8, 2012. 8:12 AM
The most easiest Programmer i have found after researching!
Im not an expert in electronics, but i just want to Program PIC10F200 and PIC12F629, for an InfraRed Controlled Airplane.
Could you please tell me How to Connect the DB9 Cable to Laptop? My laptop doesnt seem to have a DB9 connection, not even my desktop computer.
I have a 15 pin connection. How to connect it?? Thank you.
mhenriksen1 in reply to black_demon_31Sep 9, 2012. 11:48 AM
Well if your laptop doesnt have a DB9 connector, obviously you need an adapter. Look for a USB to Serial adapter.
moustafa11780 says: Apr 8, 2012. 4:11 AM
hi;
i'm starting muc world. and will start with this project. Did anyone test this project?
safetec says: Aug 18, 2011. 12:42 AM
Hi there, where have all the pdf's gone. I wanted to download the circuit to print it.
Music_Man608 says: Apr 22, 2011. 2:01 PM
Hi there, forgive me but I'm new at electronics and I'm scratching the surface right now. Having said that, what is this used for? What is a PIC controller. What can you do with the device you built? Thanks very much and sorry for my lack of education.
coolmike8789 in reply to Music_Man608May 2, 2011. 8:37 PM
A microcontroller is a small, programmable device that can interface with switches, LEDs, USB, ect.
MadBricoleur says: Apr 10, 2011. 6:23 PM
Will this programmer work with all PIC's? I need to program a PIC16F684.
dirkandterra says: Mar 25, 2011. 9:46 PM
I built a programmer off of your schematic and it works great. Thank you! Now I can program newer PIC microchips without buying an expensive programmer.
shane11 says: Feb 2, 2011. 11:18 AM
How would I go about making this a usb programmer.

Thanx in advance,
Shane
dirkandterra in reply to shane11Mar 25, 2011. 9:45 PM
You can take this JDM programmer and load a bootloader program into a PIC with USB capabilities. Wire up the USB and use the bootloader program to load programs to the PIC over USB
nadav says: Feb 23, 2011. 2:11 PM
can i use a 2N2222 NPN transistor instead of the BC547B?
TheEnemy says: Jan 18, 2011. 4:16 PM
so what good does this do?
thealeks in reply to TheEnemyFeb 1, 2011. 10:42 PM
its a PIC/EEPROM programmer
Dyer13 says: Aug 1, 2007. 1:28 PM
Does it have to be a tantalum capacitor? What difference would it make from a tantalum cap to an aluminum electrolytic cap?
ian (author) in reply to Dyer13Aug 1, 2007. 1:36 PM
Paanz asked this question below: Yes, as far as I know, C2 MUST be tantalum. Did you try something else? It would be interesting to confirm if the circuit worked/didnt work with other caps.
steve5006 in reply to ianJan 5, 2011. 8:07 PM
I tried this circuit on a breadboard with a 22uF electrolytic cap and BC547C transistors. I noticed that with this configuration the voltage on the dat pin is 3.3v with the data lines low and 9.5v with the data lines set to high. I am unsure if this is caused by the electrolytic capacitor as I have no tantalum capacitors to try out
brycetron in reply to ianOct 3, 2009. 12:46 AM
I breadboarded this circuit with a 22uF Electrolytic, and it programmed the 18F2550, and 12F683 without issue (also a 16C745). I then proceeded to etch a board, presto I can program the 18F2550, but NOT the 683, the 16F84A wouldn't work either way. Just odd, but I'll get the Tantalum cap and try again! P.S. you should mention that fill layer button within Eagle. I have used Eagle on a few different occasions, but ended up making a manual fill because I didn't know about that fill button. Great Instructable, by the way!
Dyer13 in reply to ianAug 1, 2007. 6:58 PM
I didn't build it yet, I am trying to see what parts I will need to buy, and which I have laying around. Before reading this, I have never heard of Tantalum capacitors, so I was wondering exactly why it needs to be one, and what the difference is between them and regular electrolytic caps.
TechnoMancer in reply to Dyer13Aug 30, 2007. 4:35 AM
they are made with tantalum, a superconducting metal that is not the most abundant metal ever.
Dyer13 in reply to TechnoMancerAug 30, 2007. 10:05 PM
Yea, I understand that, but that still doesn't explain to me why two different caps with the same value would have a different effect. idk though, unless maybe they charge and discharge at a different rate...
ian (author) in reply to Dyer13Aug 30, 2007. 11:17 PM
They do. Do a quick google for tantalum caps.
scarabeetle101 says: May 31, 2009. 9:56 AM
I know nothing about electronics. what does this do?
robot797 in reply to scarabeetle101Nov 23, 2010. 3:06 AM
relay i dont beleve you know electronicks

(and you havent read it good enough)
WhiteTigerTails in reply to scarabeetle101Nov 22, 2010. 11:02 PM
I second this...
lenmorvash says: Nov 22, 2010. 4:08 PM
can I use it for PIC16F628A and Other 18-pin Low Voltage PIC?

the link u gave from the Understanding ICSP instructable said that this JDM2-style PIC Programmer has some problems with those type of PICs


http://www.belza.cz/digital/jdm.htm

I also noted he added some capacitors, does his modified version functions same as your circuit for F628A's and other PICs?

by the way, thanks very much for all your help, I understand ICSP a bit because of your instructables,

God Bless
nedim155 says: Nov 18, 2010. 8:06 AM
could i use two 2n2222 transistors instead of these neded
murray484 says: Dec 29, 2009. 9:12 AM
Is this the proper way to connect a PIC12C508 to the programmer?  If it is not, what is the correct way?

Thanks
Picture 2.png
ian (author) in reply to murray484Dec 29, 2009. 9:16 AM
VPP, VDD, and GND look fine. I can't tell from the graphic if data and clock are on the correct pins (PGD=data, pgc=clock).
murray484 in reply to ianDec 29, 2009. 9:24 AM
There is not a PGD or pgc on the datasheet for the PIC12C508, but there is a GP5/OSC1/CLKIN, a GP4/OSC2, a GP2/T0CKI, a GP0 and a GP1.  Here is a link to the datasheet: http://www.datasheetsite.com/extpdf.php?q=http%3A%2F%2Fpdfdata.datasheetsite.com%2Fpdf1%2FMicrochip%2FPIC12LCE519T-04-SN.pdf

Thanks again
ian (author) in reply to murray484Dec 29, 2009. 9:51 AM
Check page 46 - ICSP. It looks like GP0 and GP1.
murray484 in reply to ianDec 29, 2009. 10:30 AM
Thanks
Regax says: Nov 11, 2009. 2:03 PM
How did you go about adding your skull image into Eagle? I have not been able to figure this out.

Thanks
magusjonny42 says: Jul 23, 2009. 11:43 PM
Hey I was wondering if this breadboard layout I made is correct. The following link is to a .png format of the layout.

http://www.instructables.com/files/orig/FQ8/KE6D/FXA3D43B/FQ8KE6DFXA3D43B.png
1-40 of 146Next »
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!