Update 13-Jul-2014: Corrected part about Serial2, as it’s now supported by Intel’s Arduino IDE.
Galileo, being a Linux-based computer, uses standard Linux names and drivers for hardware and virtual serial devices that are available on the board.
There are two UARTs in the Quark SoC itself + there’s a virtual device created by cdc-acm driver for communications with the IDE.
I keep forgetting what the mapping is and have to dig up the forum thread where I’ve once posted this information. Here’s a short summary and a link to that thread where you can find more details.
Quark UART0 is routed to Arduino pins 0 and 1, is called /dev/ttyS0 (ttyQRK0 on
newersome images, looks like this name was abandoned after one software release) in Linux and is mapped to Arduino’s Serial1.
Quark UART1 is routed to 3.5mm jack, is called /dev/ttyS1 (ttyQRK1 on
newersome images, looks like this name was abandoned after one software release) in Linux and is not mapped to any Serial* objectsmapped to Serial2 as of Galileo software release 1.0.2. If you activate it with
Serial2.begin(), you need to call
Serial2.end()to be able to see the Linux console output again. Thanks to DinoT from Intel’s Makers community for highlighting that change: https://communities.intel.com/message/241313#241313
- Virtual device created by cdc-acm driver on the Client USB port is called /dev/ttyGS0 in Linux and is mapped to Arduino’s Serial object. It’s used for Galileo<->Arduino IDE comminucation (sketch upload, firmware update, Serial Monitor).
Arduino’s Serial2 object is not mapped anywhere.
Here’s the thread with all the gory details: https://communities.intel.com/message/220019#220019