Detect arduino yun's start

Hi, i would like to know is there is a way to program atmega to know when the linux processor has started.
Thanks for your replies !

I wait for 60 minutes seconds, and then call Bridge.begin(). That is not what you wanted to know, but as far as I know that is the only way to start the Yun safely.

One way to get around this is to arrange for the Linux side to restart the Arduino side - as happens when you use an Uno with your PC.


There is a handshake line between the AR9331 Linux processor, and the 32U4 sketch processor. This is normally disabled, but it’s easy to enable it on the Linux side. I use it as a signal to the sketch that Linux is fully up and running. It makes synchronization between the two much more reliable. I only use it as the sketch is starting up, but once you are up and running and synchronized, you could also use it as a hardware signal between the processors, over and above the serial port.

I start to describe my method near the middle of post #2 of this thread: >>LINK<<

And then I post an improved version of the process in the next post of that thread.

I wait for 60 minutes, and then call Bridge.begin().

I assume you meant to say 60 seconds? :wink:

I simply call "Bridge.begin()". The sketch will stop there until linux is up and the command can be executed.

I simply call "Bridge.begin()". The sketch will stop there until linux is up and the command can be executed.

And if the Linux side is in the early stages of booting, that will interrupt the Linux boot process, prevent Linux from ever starting up, and permanently hang the sketch until both processors are reset. You can usually get away with simply doing that, but it is not a robust process and is not fault tolerant. (There are two places in the Linux boot process where typing any character will stop the boot operation - calling Bridge.begin() too early sends data that could stop the boot process at either of those points.)

The other issue is that when it does work, it hangs the sketch for a full minute waiting for the Bridge to start. Sometimes you would like the sketch to be able to do something else during that time. For example, using the handshake wait code I mentioned earlier, I have a project where the Yun is a master using SoftwareSerial to talk to two intelligent display units. In addition to blinking an LED as a pacifier to let me know the sketch isn't hung, the sketch is sending out keep-alive packets to the displays. If I were to just hang the sketch on a Bridge.begin(), the displays would time out during the Linux boot period and display communications lost messages. By polling for the handshake signal, I can still be processing the communications protocol and do useful processing while waiting.

I don't know the OP's reason for why he wants to know when Linux is fully booted, but there are two good reasons right there.

ShapeShifter, 60 seconds indeed, not minutes :-[
During those 60 seconds, I wait for the serial monitor to get active.