2013-05-26 14:28:45 +02:00
|
|
|
/*
|
|
|
|
Arduino Yun USB-to-Serial
|
2013-10-21 09:58:40 +02:00
|
|
|
|
2013-05-26 14:28:45 +02:00
|
|
|
Allows you to use the Yun's 32U4 processor as a
|
2013-06-05 14:51:15 +02:00
|
|
|
serial terminal for the linino processor.
|
2013-10-21 09:58:40 +02:00
|
|
|
|
|
|
|
Upload this to an Arduino Yun via serial (not WiFi)
|
2013-05-26 14:28:45 +02:00
|
|
|
then open the serial monitor at 115200 to see the boot process
|
|
|
|
of the linino processor. You can also use the serial monitor
|
2013-10-21 09:58:40 +02:00
|
|
|
as a basic command line interface for the linino processor using
|
2013-05-26 14:28:45 +02:00
|
|
|
this sketch.
|
2013-10-21 09:58:40 +02:00
|
|
|
|
2013-06-05 14:51:15 +02:00
|
|
|
From the serial monitor the following commands can be issued:
|
2013-10-21 09:58:40 +02:00
|
|
|
|
2013-06-05 14:51:15 +02:00
|
|
|
'~' followed by '0' -> Set the UART speed to 57600 baud
|
|
|
|
'~' followed by '1' -> Set the UART speed to 115200 baud
|
2013-06-27 15:44:20 +02:00
|
|
|
'~' followed by '2' -> Set the UART speed to 250000 baud
|
|
|
|
'~' followed by '3' -> Set the UART speed to 500000 baud
|
2013-07-10 20:37:31 +02:00
|
|
|
'~' followeb by '~' -> Sends the bridge's shutdown command to
|
|
|
|
obtain the console.
|
2013-10-21 09:58:40 +02:00
|
|
|
|
2013-05-26 14:28:45 +02:00
|
|
|
The circuit:
|
|
|
|
* Arduino Yun
|
2013-10-21 09:58:40 +02:00
|
|
|
|
2013-05-26 14:28:45 +02:00
|
|
|
created March 2013
|
|
|
|
by Massimo Banzi
|
2013-06-05 14:51:15 +02:00
|
|
|
modified by Cristian Maglie
|
2013-10-21 09:58:40 +02:00
|
|
|
|
2013-05-26 14:28:45 +02:00
|
|
|
This example code is in the public domain.
|
2013-10-21 09:58:40 +02:00
|
|
|
|
2013-09-09 20:56:15 +02:00
|
|
|
http://arduino.cc/en/Tutorial/YunSerialTerminal
|
2013-10-21 09:58:40 +02:00
|
|
|
|
2013-05-26 14:28:45 +02:00
|
|
|
*/
|
|
|
|
|
2013-09-09 20:56:15 +02:00
|
|
|
|
2013-06-27 15:44:20 +02:00
|
|
|
long lininoBaud = 250000;
|
2013-05-26 14:28:45 +02:00
|
|
|
|
|
|
|
void setup() {
|
2013-06-05 14:51:15 +02:00
|
|
|
Serial.begin(115200); // open serial connection via USB-Serial
|
|
|
|
Serial1.begin(lininoBaud); // open serial connection to Linino
|
2013-05-26 14:28:45 +02:00
|
|
|
}
|
|
|
|
|
2013-06-05 14:51:15 +02:00
|
|
|
boolean commandMode = false;
|
2013-05-26 14:28:45 +02:00
|
|
|
|
2013-06-05 14:51:15 +02:00
|
|
|
void loop() {
|
2013-05-26 14:28:45 +02:00
|
|
|
// copy from virtual serial line to uart and vice versa
|
|
|
|
if (Serial.available()) { // got anything from USB-Serial?
|
|
|
|
char c = (char)Serial.read(); // read from USB-serial
|
2013-06-05 14:51:15 +02:00
|
|
|
if (commandMode == false) { // if we aren't in command mode...
|
|
|
|
if (c == '~') { // Tilde '~' key pressed?
|
|
|
|
commandMode = true; // enter in command mode
|
|
|
|
} else {
|
|
|
|
Serial1.write(c); // otherwise write char to Linino
|
|
|
|
}
|
|
|
|
} else { // if we are in command mode...
|
|
|
|
if (c == '0') { // '0' key pressed?
|
|
|
|
Serial1.begin(57600); // set speed to 57600
|
|
|
|
Serial.println("Speed set to 57600");
|
|
|
|
} else if (c == '1') { // '1' key pressed?
|
|
|
|
Serial1.begin(115200); // set speed to 115200
|
|
|
|
Serial.println("Speed set to 115200");
|
2013-06-27 15:44:20 +02:00
|
|
|
} else if (c == '2') { // '2' key pressed?
|
|
|
|
Serial1.begin(250000); // set speed to 250000
|
|
|
|
Serial.println("Speed set to 250000");
|
|
|
|
} else if (c == '3') { // '3' key pressed?
|
|
|
|
Serial1.begin(500000); // set speed to 500000
|
|
|
|
Serial.println("Speed set to 500000");
|
2013-07-10 20:37:31 +02:00
|
|
|
} else if (c == '~') {
|
|
|
|
Serial1.write((uint8_t *)"\xff\0\0\x05XXXXX\x0d\xaf", 11);
|
|
|
|
Serial.println("Sending bridge's shutdown command");
|
2013-06-05 14:51:15 +02:00
|
|
|
} else { // any other key pressed?
|
|
|
|
Serial1.write('~'); // write '~' to Linino
|
|
|
|
Serial1.write(c); // write char to Linino
|
|
|
|
}
|
|
|
|
commandMode = false; // in all cases exit from command mode
|
|
|
|
}
|
2013-05-26 14:28:45 +02:00
|
|
|
}
|
2013-10-21 09:58:40 +02:00
|
|
|
if (Serial1.available()) { // got anything from Linino?
|
|
|
|
char c = (char)Serial1.read(); // read from Linino
|
2013-05-26 14:28:45 +02:00
|
|
|
Serial.write(c); // write to USB-serial
|
|
|
|
}
|
2013-09-09 20:56:15 +02:00
|
|
|
}
|