aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Igoe <tom.igoe@gmail.com>2013-05-26 08:28:56 -0400
committerTom Igoe <tom.igoe@gmail.com>2013-05-26 08:28:56 -0400
commit2427e3398a5686e275b7a98f78de5437cec7b862 (patch)
tree2ba198814e6cc1130bf318e4f7017f68661ec0ca
parentedd241fe050427a5a3e0b0d98cf571473a50898c (diff)
Added possible boot watcher
-rw-r--r--libraries/Bridge/examples/BootWatcher001/BootWatcher001.ino90
1 files changed, 90 insertions, 0 deletions
diff --git a/libraries/Bridge/examples/BootWatcher001/BootWatcher001.ino b/libraries/Bridge/examples/BootWatcher001/BootWatcher001.ino
new file mode 100644
index 0000000..7833d54
--- /dev/null
+++ b/libraries/Bridge/examples/BootWatcher001/BootWatcher001.ino
@@ -0,0 +1,90 @@
+
+/*
+ Arduino Yun Boot watcher
+
+ Allows you to use the Yun's 32U4 processor as a
+ serial terminal for the linino processor
+
+ Upload this to an Arduino Yun via serial (not WiFi)
+ then open the serial monitor at 115200 to see the boot process
+ of the linino processor. You can also use the serial monitor
+ as a basic command line interface for the linino processor using
+ this sketch.
+
+ The circuit:
+ * Arduino Yun
+
+ created March 2013
+ by Massimo Banzi
+ modified 26 May 2013
+ by Tom Igoe
+
+ This example code is in the public domain.
+ */
+
+long baud = 115200;
+
+// Pin 13 has an LED connected on most Arduino boards.
+// give it a name:
+int led = 13;
+int ledState = HIGH; // whether the LED is high or low
+
+String bootString = "";
+int bootLineCount = 0;
+boolean booting = true;
+
+void setup() {
+ Serial.begin(baud); // open serial connection to Linino
+ Serial1.begin(baud); // open serial connection via USB-Serial
+
+ // initialize the digital pin as an output.
+ pinMode(led, OUTPUT);
+ digitalWrite(led, ledState); // turn the LED on (HIGH is the voltage level)
+ while(booting) {
+ listenForBoot();
+ }
+ delay(500);
+}
+
+
+void loop() {
+ // After booting, become a serial terminal:
+ if (Serial.available()) { // got anything from USB-Serial?
+ char c = (char)Serial.read(); // read from USB-serial
+ Serial1.write(c); // write to Linino
+ ledState=!ledState; // invert LED state
+ digitalWrite(led, ledState); // toggle the LED
+ }
+ if (Serial1.available()) { // got anything from Linino?
+ char c = (char)Serial1.read(); // read from Linino
+ Serial.write(c); // write to USB-serial
+ }
+
+}
+
+void listenForBoot() {
+ char c;
+ if (Serial1.available()) { // got anything from Linino?
+ c = (char)Serial1.read(); // read from Linino
+
+ if (c == '\n') { // clear the bootString every newline
+ bootLineCount++; // increment the boot line counter
+ Serial.println(bootLineCount); // print the count
+ bootString = ""; // clear the boot string
+ }
+ else { // anything other than newline, add to string
+ bootString += c;
+ }
+ }
+
+ // look for the final boot string message:
+ if (bootString.endsWith("entered forwarding state")) {
+ Serial1.println();
+ }
+
+ // look for the command prompt:
+ if (bootString.endsWith(":/#")) {
+ Serial.println("Ready for action.");
+ booting = false;
+ }
+}