how console usage hinders uboot

It is known that when the console is in use and the linux side is rebooted (reboot command or reset button) the Yun will not boot (old uboot version). I know there is a newer uboot version that checks for some characters, to make this less of a problem. However I do not want to risk this upgrade (yet).

Why is this not a problem when the Yun is powered on? Is it because the MCU needs to be 'booted' too and this takes long enough for uboot to finish?

If in some way I can temporarily 'stop' the MCU side using the bridge would this also let me (re)boot the linux side correctly?

It's usually not an issue at power on, since the Arduino sketch is not already using the bridge, it takes some small amount of time to set it up.

On the Linux side, you can issue the command "/usr/bin/reset-mcu" to reset the Arduino processor. So if you execute this command immediately before rebooting the Linux side, it might help your situation?

The Bridge.begin() function (running on the 32u4) starts with:

void BridgeClass::begin() {
  if (started)
  started = true;

  // Wait for U-boot to finish startup
  do {
  } while (stream.available() > 0);


This will prevent the 32u4 sending any data to the AR9331 until the AR9331 has been silent for 1 second on the serial interface. So on power up or after a reset-mcu you should be ok. The problem occurs when the AR9331 is reset while the Bridge is in operation or if a sketch is writing to the serial port directly.