USB Programmer can also possible to make. I am using USBasp programmer since September,2009.
I saw it first at http://www.fischl.de/usbasp/
USBasp is a USB in-circuit programmer for Atmel AVR controllers. It simply consists of an ATMega48 or an ATMega8 and a couple of passive components. The programmer uses a firmware-only USB driver, no special USB controller is needed. The circuits is given in the web, The .hex files for Atmega8 and atmega48 are given too. One have to load the hex to Atmega48 or Atmega8 first. this chip will be the driver of the programmer. dont forget to change fusebit. (HFUSE=0xc9 LFUSE=0xef)
it is not tough actually,
Now I am giving the circuit from http://www.fischl.de/usbasp/ see below..
You can download all these from http://www.fischl.de/usbasp/
My one looks like,
The PCB looks like
The board has a provision to set both USB A and USB B type Port. I made it just because I found sometimes A type or B type is unavailable in the local market.
The software for it to load program, Extreme Burner or Avr Burn O Mat. Frankly saying if you choose it as your first handmade programmer you cant do that. The circuit is bit complicated, possible to make in breadboard. Search for PCB, or make it your own if you can. You can also mail me.
When you have complete the board, you need to write the hex given in http://www.fischl.de/usbasp/
And must change the fusebits. Its better to do with another usb programmer. May be I am wrong, Ponyprog is not a robust software in the sense of fuse writing. I dont feel comfortable writing fuse with ponyprog. I always do with AVR Burn O Mat. It has a FUSE HEX editor. You can set the Hex numbers (2, high and low fuse), it will make the "Check" and "Uncheck" for you. Note that,
1 = Un-programmed = No tick , ya no tick
0 = Programmed = tick
If your PCB, connections and loaded program ie everything is right, Connect the device to port, Your PC will recognize the DEVICE as ""USBASP"". If anything wrong, anything can happen :) . The common problem is showing message "USB POWER SURGE!", disconnect the device immediately. You have made major mistake in the connections. Somewhere in your soldering/connection made device short circuited. check it again..
If your device is recognized as "USBASP", Set the driver for it..(given in the web, libusb0.dll and libusb0.sys) Windows will say its compatibility click "continue anyway".
Note that you have to use everything from the same compressed folder. I mean your loaded hex version and the win driver version must have to be same..
Avr Burn o Mat is a little more complicated than Exterme Burner. Extreme Burner is developed by Avinash Gupta (http://extremeelectronics.co.in). His GUI Software for USBasp based USB AVR Programmers is one of the best. You can download this software from his site.....
I think you will find all the answers about installations and its use there. Dont forget, If you are getting this error, "No Supported Programmer Found" then please delete "libusb0.dll" and "libusb0.sys" from the folder where you have installed the software. Ex "C:\Program File\eXtreme Burner - AVR"
If you want to use of AVR Burn o mat, then download it
After installation open the start.bat file. A cmd.exe will appear and stay sometimes. then
will come. Now the additional problems are coming. You need to install Win AVR to use this. You can find it free too, problem is you have to match the version of this software to loaded hex version to your firmware driver (atmega8/48).
Click setting ~~ AVRdude, a new window will appear. Locate the avrdude.exe from your installed drive by clicking 'file' button.
and then locate the configuration file in similar fashion. Select the Programmer type
"usbasp(USBasp,http://www.fischl.de/usbasp/)" and "USB" as port. Uncheck all the rest options and click apply. Your software is ready now.
Some of my students informed me that it doesnt work on Windows Vista. I didnt try vista. But all the USB softwares/drivers run well in Windows 7(tested).
One important thing please be careful about the version of hex file you loaded on driver chip and the version of software you use to communicate it (Winavr : avrdude.exe, avrdude.conf)
here it goes, you can use it like pendrive..
You can contact with me for PCB (email) or can make ur own. But do not try it on breadboard it will not work but only harm ur port. I am sharing a picture see below
Interesting thing is, the upper one doesnt work, where solder line assisting over the pcb lines.thickness of wires/buses are so important....thought i use these like pendrive (without extension cable), upper one never worked once it soldered like pcb lines..
mail me, email@example.com, if you have any question.
I always appreciate to use dedicated programmer from manufacturer. Try AVR dragon