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 isnot mapped to any Serial* objectsmapped to Serial2 as of Galileo software release 1.0.2. If you activate it withSerial2.begin()
, you need to callSerial2.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