Upgrade Programmers Firmware

Dear reader,

i have bought two [AVRisp or USBasp] programmers, so i can program my atiny45 with the arduino IDE.
now i have the problem i have to upgrade the firmware of the programmer.

the story:
i bought 2 of these programmers: Link. the reason why i bought two was because i read in a review that the firmware had to be upgraded.
the way to upgrade one's firmware is to have another programer to program the firmware of the other programmer. there are no datasheets, electrical circuit, etc.. (or they are hard to find)

once i received them it was a real struggle getting the correct driver running. i happend to found the correct drive, but it wouldn't instal through device manager.
lucky me found an installer wich did some magic for me and installed the driver (wich i found 4 hours before) sucsessfull!

once i take a look on my adapter i notice it says AVRISP while my windoes 7 64bits tells my it is conected under the name USBasp. (anyone an idea about this?)
now when i open my arduino IDE and try to upload the BLINK example to my atiny45 (ofcource i changed pin for the led) my compiler is telling me the following: (yes i had selected: atiny45 1Mhz + USBasp)

Binaire sketch-grootte: 824 bytes (van een 4.096-byte maximum)
avrdude: Warning: Found USB device "USBasp" with old VID/PID! Please update firmware of USBasp!
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: programm enable: target doesn't answer. 1 
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

Now how do i upgrade one firmware with the other programmer? how do i hook them up (just connect them with the isp cable)?
do i need to solder something? i read something about Jumper 2 needed to be set or something (if this is crucial info ill look for the file and link to it)?

if any questions, please feel free to ask.

nick
EDIT: see the files i uploaded. these are the files containing the correct driver installer. and i geus the firmware is within this file

Driver Firmware.zip (1.18 MB)

The USBasp should have a jumper position that connects the Reset line of the ICSP header to the Reset pin. This allows the ICSP cable connector to be used as an ICSP header to update the firmware in the USBasp using another ICSP programmer.

I found 2 'silvery-solder-spots' (dont know their name) realy close together and they are marked with: "JP3" are these the Jumper positions?
based on this image i concluded that this "JP3" was about 4mm away of the VCC pin of the ISP connector

are ICSP and ISP the same? and why is "AVRisp" printed on my adapter and on my windows it says "USBasp".
anyway, what program do i use to upload the firmware after i connected the reset jumper from one adapter to the ISP header?

nick

Well, i've been away fore awhile now and still stuck on the exact same situation as before,
i have made some photo's, ill post them, and i would like some awnsers on mine questions of mine previous post as well :wink:

i have searched on youtube for about two hours now, it seems really hard to find some video where someone is upgrading the firware of an usbasp programmer using an other of the same programmer.

@johnwasser
it seemed you have enough experince to help me out here :wink:

i am trying not to be impatience, but it feels the procedure to solve this problem it really simple if you know how to do it.. hehe :roll_eyes:

nick

PS: actuly this was some kind of bump-post.
if someone can just help me understand some other basic problems i am having (mentioned above) to keep
the the this topic alive i wont need to bump everytime while still solving some smaller problems :grin:

There was a thread about this not long ago

http://arduino.cc/forum/index.php/topic,149668.0.html

thank you very much, i will look into it. i must have mist it because i was away for some time.
if i stumble upon any trouble i'll let you you know in this topic.

nick

something wrong here. there is absolutely no need to upgrade firmware for tiny45. the oldest versions and the newest versions support that chip fine. for some the moto is "if it aint broke... fix it til it is".

Can you trace where Pin-5 on the 10-pin header is going to on the USBasp board? Is it going to one of the pads on "R3"?

A lot of these programmers use resistor pads for jumpering the reset from the 10-pin header to the reset on the ATmega8 chip.

You can upgrade one with the other. Just connect the 10-pin headers back-to-back with the two programmers. The target programmer should be jumpered with the reset. The programming one will connect normally to USB. Then use avrdude to program.

Note: They use the term AVRISP as a generic name for ISP programming AVR chips. You have a USBasp programmer, which shows up under Windows.

@john1993: well, it is just as you say: something is wrong here.. everywhere i look, there is people mentioning the need of firmware upgrade, so it is very likely to suggest this is the cause of the problem.

@hiduino:
i have tracked the trace of pin 5 of the icsp, i am very sure that it won't go to the r3 pads. following the trace will end at the center of the board: the track ends at a hole witch is located underneath the atmega8 chip.
i have made some closeup pictures with an magnifier, and painted the track with my software so it is easier for you to find. you can find both original as painted pictures in this post

A lot of these programmers use resistor pads for jumpering the reset from the 10-pin header to the reset on the ATmega8 chip.

once i flip the board multiple times i notice that the track of jp3 (see earlier photos) on the back of the board will end up at an hole, this hole is located realy close to the r3 pads on the other side, i am not sure, but i think these are conected, it is hard to see. if this is interesting ill look further into it, just need some advice first hehe

Note: They use the term AVRISP as a generic name for ISP programming AVR chips. You have a USBasp programmer, which shows up under Windows.

this is much more clear now. thanks

You can upgrade one with the other. Just connect the 10-pin headers back-to-back with the two programmers. The target programmer should be jumpered with the reset. The programming one will connect normally to USB. Then use avrdude to program.

yes, just as i thought. so i need to find out how to set these jumperes for the reset. and if i cannot find the pads, cant i not just hook up a wire directly to the atmega8 chip's pins?

note: i am confused about the start of the trace from pin5. that is because the trace is 'invisable' for a short distance where the white paint is covering the trace :frowning:

nick

Is one of the pad from JP3 on the back going to the 4th pin down from the dot on the chip? The 4th pin down (pin-29, couning couter clock-wise from the dot) is reset on the ATmega8. If so then you probably need to short these pads.
Otherwise it may be the R3 pads.

You can just try testing shorting either the JP3 or R3 pads. One of them should make it respond to avrdude and read the fuse bits correctly.

avrdude -c usbasp -p m8 -v

Before updating the firmware I'd be verifying the pinout of your device. Your original error is telling you that it cannot communicate with the chip ("avrdude: error: programm enable: target doesn't answer.") and I'll bet money it's because you have your USBAsp pins connected to the wrong pins on the ATTiny.

Regarding the "avrdude: Warning: Found USB device "USBasp" with old VID/PID! Please update firmware of USBasp!", I understand that this had something to do with the original developer of the USBasp using an inappropriate ID (the vendor ID of another vendor). It's not important at all. Unless you're a lawyer.

The "avrdude: warning: cannot set sck period. please check for usbasp firmware update." always occurs on mine as well but it has never caused any issues.

I always have to burn the correct speed into new ATTinys by selecting "burn bootloader" under Tools.
Doesn't really burn a bootloader, just sets the correct fuse bits.
TomJ

Chagrin:
The "avrdude: warning: cannot set sck period. please check for usbasp firmware update." always occurs on mine as well but it has never caused any issues.

Yes, for the most part you can ignore this message. However, this USBasp firmware version does not support manual sck clock selection with the avrdude -B option. Which is needed if your AVR is running very slow at 128KHz internal clock. If the AVR chip is running this slow then you need to slow down the sck clock by using avrdude -B250 option. Otherwise you get the same type of error "target doesn't answer".

Only newer USBasp firmware from 2009 or 2011 supports the avrdude -B option. So it's worth a try to update the firmware to see if the slow sck clock option will work for the m2560. Upgrading firmware is not difficult but you do need another programmer to do it with.

out of literally hundreds of usbasp from china used with dozens of different part numbers (including t45) ive yet to find the need to upgrade firmware. unlikely op is getting parts w/128khz clk. i suspect other issues. chagrin seems to have a grip on the situation.

i have been testing around because i had to install the driver for my USBasp agian for some reason. and while doing so, i have extracted a little bit more information wich might come in handy:

output of the IDE whit ditailed uploading info

Binaire sketch-grootte: 808 bytes (van een 4.096-byte maximum)
C:\Users\nick\Desktop\hobby's\arduino\hardware/tools/avr/bin/avrdude -CC:\Users\nick\Desktop\hobby's\arduino\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -pattiny45 -cusbasp -Pusb -Uflash:w:C:\Users\nick\AppData\Local\Temp\build85975423425650053.tmp\Blink.cpp.hex:i 

avrdude: Version 5.11, compiled on Sep  2 2011 at 19:38:36
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "C:\Users\nick\Desktop\hobby's\arduino\hardware/tools/avr/etc/avrdude.conf"

         Using Port                    : usb
         Using Programmer              : usbasp
avrdude: seen device from vendor ->www.fischl.de<-
avrdude: seen product ->USBasp<-
avrdude: Warning: Found USB device "USBasp" with old VID/PID! Please update firmware of USBasp!
         AVR Part                      : ATtiny45
         Chip Erase delay              : 4500 us
         PAGEL                         : P00
         BS2                           : P00
         RESET disposition             : possible i/o
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65     6     4    0 no        256    4      0  4000  4500 0xff 0xff
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           flash         65     6    32    0 yes      4096   64     64  4500  4500 0xff 0xff
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           calibration    0     0     0    0 no          2    0      0     0     0 0x00 0x00

         Programmer Type : usbasp
         Description     : USBasp, http://www.fischl.de/usbasp/

avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9206
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: programm enable: target doesn't answer. 1 
avrdude: reading input file "C:\Users\nick\AppData\Local\Temp\build85975423425650053.tmp\Blink.cpp.hex"
avrdude: writing flash (808 bytes):

Writing | ################################################## | 100% 18.66s

avrdude: 808 bytes of flash written
avrdude: verifying flash memory against C:\Users\nick\AppData\Local\Temp\build85975423425650053.tmp\Blink.cpp.hex:
avrdude: load data flash data from input file C:\Users\nick\AppData\Local\Temp\build85975423425650053.tmp\Blink.cpp.hex:
avrdude: input file C:\Users\nick\AppData\Local\Temp\build85975423425650053.tmp\Blink.cpp.hex contains 808 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 4.63s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0x20 != 0xff
avrdude: verification error; content mismatch

avrdude done.  Thank you.

still have those anouying errors about my firmware hehe. however, it shows me that the hex file have been uploaded/written to the flash memory, but still, when i test with an LED and blink sketch ("int led = 1;") none of my pins are blinking. the led is working just fine when hooked up to power suply.

i am new to the command line avrdude usage, so i won't be very good at using it if i need to.
at this point i am confused about what steps to take because i am having very many replies and much information to process in my head (headaches hehe).

regarding the post of @chagrin:

Before updating the firmware I'd be verifying the pinout of your device. Your original error is telling you that it cannot communicate with the chip ("avrdude: error: programm enable: target doesn't answer.") and I'll bet money it's because you have your USBAsp pins connected to the wrong pins on the ATTiny.

i am checking my connections double, triple and even more times. but stil that error will not be solved. maybe i am using a wrong refernce to connect mine jumper wires from the icsp cable header to mine attiny45.
the refernce is in the bottom of this post. please tell me if that is a wrong reference to use for mine connections.

i will also look into the other mentioned information from all you other guys. still not sure how to upgrade the firmware if this is needed. what software do i use to upload the firmware file, is it just avrdude + firmware.hex?

thank you very much so far!
nick

USBASPISPpinout.jpg

its still saying "target doesnt answer" usually caused by bad cmd line or wiring. your command looks ok and if youve connected reset, miso, mosi, sck, vcc, and ground right that should work. if you dont have any other avr chips to try then programming the other usbasp with new firmware might be a good next step. to do this you short j2 on the one to be programmed and connect reset, miso, mosi, sck, vcc and ground to same signals on the other. then tell avrdude which chip (mine are all either mega8 or mega8a) and it should work.

its good that you post the verbose output which hepls others to help you. closeup pics of the wiring is also a good idea.

i suggest reading fuse instead of programming hex which is safer and easier than other operations. if it helps heres a proven line for mega8:

avrdude -q -q -pm8 -cusbasp -Uhfuse:r:-:h -Ulfuse:r:-:h -Ulock:r:-:h -F

good luck.

ps note that this same line works with tiny45 and any other avr chip w/o modification. so might be a good idea to try it on your tiny before getting into the upgrade bit which is much more complicated and problematic.

its still saying "target doesnt answer" usually caused by bad cmd line or wiring. your command looks ok and if youve connected reset, miso, mosi, sck, vcc, and ground right that should work. if you dont have any other avr chips to try then programming the other usbasp with new firmware might be a good next step. to do this you short j2 on the one to be programmed and connect reset, miso, mosi, sck, vcc and ground to same signals on the other. then tell avrdude which chip (mine are all either mega8 or mega8a) and it should work.

i do not fully understand what you mean perhaps i am misunderstand you but, you mean " j2 on the one to be programmed and connect reset ..." i do not have anything market J2.
and about telling avrdude to tell wich chip and "it should work..", i do not understand what should work. it is probobly either uploading sketch or uploading firmware. please add some details.

at this moment i have a very busy life and cannot test much around, so sorry for the late responses you may get.
nick

Actually, I would hold off on trying to upgrade the firmware. It just so happens that I have one of the very same USBasp programmer. It is JP3 that you jumper to upgrade. However, it seems this version of USBasp programmer hardware is not compatible with the official fischl.de firmwares. Fortunately I saved off the original firmware to put back.

Interestly I have the same error trying to program my ATtiny45. I can use the same setup but with another type of USBasp programmer fine.

I am trying some other AVRs to test with this programmer. I will let you know how it goes.

realy interesting indeed! i thought that i might be doing something wrong here for real, now that you have the same problem it gives me some sort of relief :open_mouth: !

Please let me know where you end up.
Nick