Cant program Arduino single sided serial s3v3

Hi all,

I've been working on making the arduino single sided serial board S3v3 for the past 15 days , i etched , soldered all the components and also managed to load the bootloader using USBasp and the ICSP headers.

But when i try uploading the sketches to the board its giving me the following errors.

avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x00 avrdude: failed to write flash memory, rc=-4 avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x54

ive googled a lot on this but it seems to be a less frequent error ( ? ).

ive been trying to sort this problem for the past one week so any inputs would be very useful.


PS: I followed the instructions on the official Arduino page for the S3v3 schematics.

and also i followed this for uploading the bootloader

Im using an Atmega168. (if it helps)

I hope the Serial Enable and Auto Reset jumpers are installed. Do the TX an RX LED's blink at all? Could the baud rate be incorrect for the bootloader? Did you try doing a manual reset, in case the auto-reset isn't working for some reason?

yes the Serial enable and auto-reset jumpers have been installed , both the Tx and Rx LED’s do indeed blink.

As for " Could the baud rate be incorrect for the bootloader? Did you try doing a manual reset, in case the auto-reset isn’t working for some reason?"

How do i verify the Correct baudrate for the bootloader? As in how do i know what the value is supposed to be ? Also what exactly do you mean by manual reset? Am i supposed to continuously hold down the reset button during the uploading of the sketch ?

thank you so much for your reply!

According to the Arduino site the current bootloaders uses 19200 baud. Then they say "Some ancient versions of the bootloader run at 9600 baud (instead of 19200). In order to successfully upload sketches to boards with this bootloader, you'll need to change the serial.download_rate in your preferences file to 9600." If the 19200 default isn't working you should try 9600, just in case you have an ancient bootloader.

The serial programming software (avrdude) pulses one of the serial lines (CTS?) to force the Arduino to reset and give the bootloader temporary control. The software then tries to communicate with the bootloader. If the bootloader doesn't get a message within a short period of time it releases control to whatever sketch is in FLASH. If for some reason the serial line is not pulsed properly you can get the same effect by holding the reset button UNTIL JUST BEFOE THE SKETCH STARTS TO DOWNLOAD. I think releasing the button when you see the "sketch size' message is close to the correct time.

The manual for the board said the baud rate was 19200 , and i changed the settings for the COM port in the device manager(which was initially and by default 9600) .

Also , i noticied that there was a discontinuity on one of the serial lines ( can’t believe i missed this one) after soldering a jumper on it , I tested it out and it actually works !

There still is a problem with the auto-reset, but hard reset works perfectly and im able to upload sketches without any problems.

Thank you for everything especially the hard reset tip!