Thanks to the flexibility of the SAMD21 SERCOM peripheral, the Serpente boards give you access to multiple serial interfaces with just 6 GPIOs. See Pinout for an overview of the pins.
Note that most of the interfaces are easily accessible using CircuitPython, altough some of them can’t be used at the same time:
import board, busio spi = board.SPI() i2c = board.I2C() uart = board.UART() uart2 = busio.UART(board.TX2, board.RX2)
Here’s a list of some of the ways you can configure the GPIOs on your Serpente:
SPI + 3 GPIOs
I2C + 4 GPIOs
UART + 4 GPIOs
2x UART + 2 GPIOs
Note: Because of a quirk on CircuitPython’s implementation, you need to initialize UART 2 before UART.
SPI + I2C + 1 GPIO
SPI + UART + 1 GPIO
UART + I2C + 2 GPIOs