Using Arduino to program my pic

I'v been searching around to find a solution that allows me to use my arduino to program a pic.

Any solutions og partial solution out there? Any tips to helpe me in the tight direction?

Im a beginner to microcontrollers so i cant figure this out my selfe.

What pic do you want to program?

pic 16F648a

If its possible to come up with a solution for icsp that can cope with different pics its greate

Figgured I have to explane more precicely what I'm trying to accomplish.

The reason I'm trying to use my arduino as pic programmer is because i want use the arduino usb connection so that i'm able to program pics using USB.

If this aint possible fore the pic16F648a it dos not matter realy. I just want to be able to program som kind og pic.

If you’re a beginner to microcontrollers, why are you trying to run before you can walk?

You’re asking the equivalent of “Hey guys, I’m new to auto mechanics, and I have never changed my own oil, but I want to swap my engine out - can you tell me how to do this?”.

If you are new to micro-controllers, I would suggest you start out by playing with the Arduino, learning what it can do and how to do it. You didn’t say whether you had any knowledge of electronics, but if you do, once you get the hang of the Arduino, and review its capabilities, and find out what you need to do to program a PIC, then you may be able to figure out how to do so (hmm - a PIC programming shield might be interesting).

Then move on to the PIC and play with that, with the knowledge you have gained from using the Arduino and interfacing to various circuits.

Good luck in your efforts!


Im an experienced software programmer, and i do understand the capabilityes of the arduino. I also know some abaout how programming a pic works. but i'm saying am new because I dont fully understand the serial kommunication involved in programming a pic.

OK, so i realise It might look stupid to aske this question. But as convinient as it would be to have a pic programming shield I could not help thinking that there has to be som other then me that has toght of this..

I will soon be realising my dream of programming one arduino from another (using an rMP3 board as the SD reader).

It will be taking a compiled hex file and sending it to the other (unmodified arduino) along with all the other serial rubbish that the arduino needs to communicate properly.

I had not thought about it for a PIC though. Why would you want to? Can't you just plug in the board or are you using standalone chips?


I'm using standalone chips and i dont have a pic programmer yet. Figured it sould be possible to program pics from my arduino

Yeah well I think it would be better to purchase the programmer and then think about trying to do it using the arduino :)

It will probably take a lot of work...


You could just make this simple JDM programmer:

oh... I guess you need usb, though.

Most PICs are going to need a 12V (approx) on some pin to initiate programming (newer PICs have a "low voltage programming mode", but it takes an extra pin and I don't know if it's enabled by default.) This makes implementing a PIC programmer somewhat more difficult than a programmer for other AVR chips. There would also be significant software effort required; to work with PIC tools, you'd have to emulate some existing PIC programmer. To start from scratch, you'd ... have to start from scratch...

Yes, the new pics have low voltage programming, and it is enabeled from the factory. Also there wil be no truble conecting a secondary poversuply with 12v on Vpp.

But i se that quite some code wil be needed to emulate some existing programmers. An alternative is to create som software outside mplab to take hex files and burn them on to the pic. This is the aprotch that many of the third party programmers out there use.

I might use Jimpic( as a beginnig and modify this to worke with the arduino in sted of a paralell port. I will also have to make some code on the arduino to push on the data to the pic.

Yes, the new pics have low voltage programming

Well you can program them from USB and I had never seen a stepup transformer on any of the boards...


you can program them from USB and I had never seen a stepup transformer on any of the boards.

PICkit2 for instance has a classic uc-timer-driven boost converter (using just an inductor.) See the schematics in the appendix of the picKit 2 user’s guide (fig 6-2 ?)
I assume that the other programmers contain a similar circuit (the modern PICs don’t require much current on Vpp; just enough to signal that it should enter programming mode.)

Hmm, anyway are we getting an further with if it can be programmed from an arduino?


For the record, the PICs need 13 volts on VPP to enter programming mode, or 5v if the chip is being run off 3v3.