Arduino startup time

Hi

The Arduino has a startup time of around 8-10 seconds before it responds. If you send it any serial data before this it tends to lockup. Whats the best way to make the Arduino boot up as quickly as possible?

Thanks Chris

Hi Chris, my arduino works fine if it is being bombarded with serial data when it starts. To see if the problem is in your sketch you could try this one. It lights led 13 when it gets a '1' (ascii 49) and turns the led off on any other character. Feeding a string of continuous '1's and '0's into the board when its reset does not lock up on my board.

int ledPin = 13;

void setup()
{
  // begin the serial communication
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
}

void loop()
{
  byte val;
  
  // check if data has been sent from the computer
  if (Serial.available()) {
    val = Serial.read();
    // set the brightness of the LED
    if(val == '1')
       digitalWrite(ledPin, HIGH);
    else   
      digitalWrite(ledPin, LOW);   
  }
}

What hardware are you using and how are you generating the serial data?

We are using Arduino Mini.

some digging on google...

"If you have an NG Arduino you'll have to wait 7 seconds for the sketch to start. "

"Some of the Diecimila boards were accidently burned with the wrong bootloader (that has a ~7 second delay instead of ~2 seconds)."

"Program will start running after 7 seconds, once is loaded it can run stand-alone from the computer provided that it has its own power source"

That helps explain the delay, but not the lock-up. Does it lock up with the test sketch posted above?

If you want it to start up as quickly as possible, delete the bootloader and program it with an ICSP.

  • Ben

As far as I know, if you send serial data during the start-up delay, you can overwrite the program.

It also explains the lockup because the bootloader sees the serial data and goes into program mode.

The delay is to give the bootloader time to sense serial data and go into programming mode. As Ben says, if you delete the bootloader and program via the ICSP header, it will start up instantly. You'll also have 16k of program space instead of 14k.

Hi,

how do you delete the bootloader and program it with an ICSP?

any help much appreciated.

http://www.arduino.cc/en/Hacking/Programmer

thanks Mellis :-) I missed that page :-(