Bootloader problem on custom arduino

Hi,

I've built several custom Atmega328P-based arduino boards. All of them have been flashed with the arduino bootloader via ISP and have been proven to work well except one of the boards. On the faulty board, flahing via ISP works flawless and USB comms work well too. However, with the bootloader in place, loading a new image from the Arduino IDE returns a bunch of

"avrdude: stk500_getparam(): (a) protocol error, expect=0xNN, resp=0x90"

followed by one "avrdude: stk500_initialize(): failed"

What is this "getparam" error supposed to report?

Thanks!!

What is this "getparam" error supposed to report?

It covers things like HW and SW version of the programmer firmware (if you had a real STK500)
Optiboot returns 03 for all possible sub-options :slight_smile:

I can't imagine what would cause one chip out of many turn return 0x90 instead of expected values.

My STK500 is not the original one but a cheap clone. Anyway, the problem only appears with one of the boards...

The expected value is always 0x14:

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x90

And, at the end of the verbose output I get:

avrdude: stk500_initialize(): (b) protocol error, expect=0x10, resp=0x90
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

I've checked fuses, signature and lock bits on the affected atmega and everything seems to be fine. This atmega comes from a batch purchased from eBay so I'm beginning to think that this uC is somehow faulty.

Following with my researches, I've just forced the serial download with the "-F" option:

avrdude -c arduino -p m328p -P /dev/ttyUSB1 -b 57600 -U -F flash:w:serial.hex

I'm now getting the following output:

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x90
avrdude: AVR device initialized and ready to accept instructions

Reading | | 0% 0.00s
avrdude: arduino_read_sig_bytes(): (a) protocol error, expect=0x10, resp=0x90
avrdude: error reading signature data for part "ATMEGA328P", rc=-3
avrdude: error reading signature data, rc=-1
avrdude: stk500_disable(): unknown response=0x90

Having checked from avrstudio that the signature is correct for this atmega (0x1E 0x35 0x0F), the problem should be in the chip itself. Anyway, I can always program the faulty board from ISP :slight_smile:

Thanks westfw!!

im aslso having the problem..
im try to program atmga8 with arduino Uno but failed..

avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

anyone now what the problem?