The Circuit Playground Express has two serial interfaces baked in:
- The USB connector for high level serial
- Pads RX/A6 and TX/A7 (along with an electrical ground GND) provide a 3.3 volt TTL serial interface
There also is the capability to work with TTL serial over any two set of data pins. This is called software serial as there is no dedicated hardware on the Circuit Playground Express' microcontroller chip to assist in providing a serial interface, the data serialization is done in software instead of hardware. See the CircuitPython Essentials Guide for more in-depth information on selecting serial pins.
USB to TTL Serial Adapters
It is very useful to have devices that can convert from a low level TTL serial interface to USB. Likewise it can be useful to have a USB capable computer talk low level TTL serial.
Adafruit and other companies sell USB to serial adapters with various capabilities for providing this type of conversion and interface.
The USB to TTL Serial Cable provides serial conversion both ways: TTL to USB and USB to TTL serial. It makes connections very easy.
The Adafruit CP2104 Friend - USB to Serial Converter Board adds additional serial connection signals needed by some projects. It is very reasonable price-wise and comes with transmit and receive LED indicators. Some soldering might be needed for connections.
Serial Ports on Computers
Our computers (be they a PC, Mac, Linux box or a mobile device) all have serial communications baked-in. How this is usually done is via a number of USB ports.
USB ports show up on your computer in operating system-dependent ways:
- Windows: Serial ports are called COM ports and are typically numbered. For example COM1, COM2,.., COM23, .. COM33, etc. Use the Device Manager to find your COM port name
-
Mac: Serial ports follow a Linux/Unix like convention, with device names like /dev/tty.usbmodem and a suffix like a number. In Terminal, type
ls /dev/tty*
to list all serial ports. -
Linux: Serial ports are also in /dev and start with tty but may vary in their naming conventions, an example may be /dev/ttyUSB0. In the command line type
ls /dev/tty*
to list all serial ports