delay(800) after Serial.begin(...) necessary

Between Serial.begin(...) and the first Serial.print(...) a delay of About 800 ms is necessary. Without that, the first print is not visible in the Serial Monitor.
I use this:

void setup() {
Serial.begin (38400);
while (!Serial) delay(10);
delay(800); // Without this delay the next print is not visible!
Serial.println("memcpy testen");


May be the delay is in the Serial monitor to start after programming.
Have you tried restarting the arduino with the reset button without the delay?


May be the delay is in the Serial monitor to start after programming.

It appears the Nano Every does not reset when the serial monitor is opened, so this would make sense. Pressing reset with the serial monitor already open works without the delay. The while (!Serial) is waiting for the USB connection to be established, not for the serial monitor to open. I tested this by adding the blink sketch to the above code. Powering the arduino from a USB power supply will wait forever because the USB connection is never established, plugging into a computer will start the blinking almost immediately without the serial monitor being open.

For precision:

  • edit the sketch while the Serial Monitor is open.
  • download the modified sketch, also with Serial Monitor open (it is cleared)
  • then the Serial output is only visible with that delay(800).

I did some experiments with the delay value, only delay(800) works reliable.

So I see only the behaviour described above, but not the technical background for it.

This happens to everyone, but it is normal.

It is the same serial port for programming and serial monitor and cannot be opened for both at the same time.

The IDE automatically closes the port for the serial monitor while programming the Arduino and reopens when it finishes. This 800 ms is the time your computer needs to reopen the port, meanwhile all data send by Arduino are lost (this not happens if you reset the Arduino).

In the Arduino Nano (not Every) when the serial monitor opens the port, a reset is sent to the Arduino, but this does not happens with Every.

OK - the Arduino IDE is taking off more and more from the requirement "for beginners". The variety of supported processors probably makes this necessary.