Adding a serial port

Locating the UARTs

The pcDuino3 Nano provides access to four (and a half) of the A20's UARTs. See the UART howto for more details.

The 3-pin header labelled "UART" sticking out from the side of the board is the A20's UART0.
Pin 1 (with a square pad, closest to the IR receiver) is RX, pin 2 is ground, pin 3 is TX.

UART2, UART5 and UART6 (RX/TX), as well as UART4 (RX only) are available on the Arduino connectors. UART2 is in the standard place for an Arduino UART.

Note that the labelling in LinkSprite's diagram is a bit confusing -- UART2 is described from the A20's point of view but UART0 from the serial cable's point of view, i.e. RX and TX are reversed for UART0.

Manufacturer images

The most important modification is in the GMAC driver, to set the GMAC_TX_DELAY parameter to 3. This adjusts the relative timing of the clock and data signals to the PHY in order to compensate for differing trace lengths on the PCB (details; the Banana Pi has the same problem). Without this modification, the Ethernet port will work at 100Mbit but not at 1000Mbit. Upstream U-Boot now sets this parameter itself, so the kernel patch isn't needed any more (patch).

In the meantime Armbian also supports the pcDuino3 Nano with Debian Wheezy, Jessie or Ubuntu Trusty and with both kernel 3.4.x and 4.1.x (including SoC temp fixes).