Turn around time for flashing

In order to decrease turn around times for flashing the controller I have switched from the boot loader to avrisp quite some while ago. My current time for flashing a 644 (aka Sanguino) is roughly 12 seconds

avrdude: writing flash (37470 bytes):                                           

Writing | ################################################## | 100% 11.73s

avrdude: 37470 bytes of flash written

Is there any board out there that can flash faster? Maybe the teensy? I am just very impatient :wink:

Another question along the same line: has anyone an idea why avrdude takes more than ten times longer to read the flash than to write it? That is if I dump the flash with avrdude it takes very much longer than reading it inside a loop a pushing it through the serial interface. Any comments on this?

In all cases I use a 644 @ 16 MHz

Maybe the teensy?

On my computer, it takes about 3 seconds to upload a 7484 byte Sketch to a Teensy 1. Most of the time seems to be from the USB removal / insertion that occurs when the Teensy reboots. If you provide a sample Sketch, I'm willing to perform a crude time test for you.

I can't help with the other questions.

I was more impatient than you, so I decided to find the fastest way to upload on to my Arduino Diecimila (with upgraded ATMega328 chip).

I used a modified Arduino bootloader (Loading...) and adjusted the serial baud rate to 1 Mbaud. Of course, avrdude (atleast on Windows) doesn't support non-standard baudrates, so I had to make my own uploader program.

The end result (uploading a 11794 byte sketch):

Writing | ######################################################## | 100% 1.32s
Reading | ######################################################## | 100% 0.38s

@coding badly: here comes a small upload benchmark

#define d(s) s s 

void setup()   {                 
    char s[] = d(d(d(d(d(d(d(d(d(d(d(d(d(d("s"))))))))))))));
    char t[] = d(d(d(d(d(d(d(d(d(d(d(d(d("t")))))))))))));
    char u[] = d(d(d(d(d(d(d(d(d(d(d(d("t"))))))))))));
    Serial.print(s);
    Serial.print(t);
    Serial.print(u);
}

void loop(){ }

how long does this take for the teensy?

@waffle: I definitely have to try this :slight_smile:

@coding badly: here comes a small upload benchmark

Nice. Still takes just less than 3 seconds.

I found this thread:

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1223527587

fiddling around I set sck to 1 --> big improvement
then I set sck to 0 --> this was stupid, now I need to figure out how to fix my programmer ...

OK, so now I entered the draded OS needed to run AVR studio, upgraded the ISP and set the programmer frequency to 4 MHz. Now it uploads very satisfactory:

avrdude: writing flash (37470 bytes):

Writing | ################################################## | 100% 2.07s

avrdude: 37470 bytes of flash written

@coding badly: I think I definitely have to give the teensy a try

Thanks for any help :slight_smile:

Now I played again with avrdude and set SCK to 1 again --> now it requires one second more for flashing.

Has anyone any clue for my why this takes one second longer?