.. _samd_pinout:

Pinout for the SAMD machine modules
===================================

The assignment of device functions to pins is very flexible. The same function may be used
at different pins. The representation of the assignment choices are given by a table,
which is a subset of the MCU's Pin MUX table and is specific to each board, as the
available pin set varies. The structure of the table is the same for each board, but
the set of rows is different.

.. _samd21_pinout_table:

Adafruit ItsyBitsy M0 Express pin assignment table
--------------------------------------------------

=== ==== ============ ==== ==== ====== ====== ====== ======
Pin GPIO Pin name     IRQ  ADC  Serial Serial TCC/TC TCC/TC
=== ==== ============ ==== ==== ====== ====== ====== ======
  2 PA02           A0   2   0     -       -     -      -
 40 PB08           A1   8   2     -      4/0   4/0     -
 41 PB09           A2   9   3     -      4/1   4/1     -
  4 PA04           A3   4   4     -      0/0   0/0     -
  5 PA05           A4   5   5     -      0/1   0/1     -
 34 PB02           A5   2  10     -      5/0   6/0     -
 11 PA11           D0  11  19    0/3     2/3   1/1    0/3
 10 PA10           D1  10  18    0/2     2/2   1/0    0/2
 14 PA14           D2  14   -    2/2     4/2   3/0    0/4
  9 PA09           D3   9  17    0/1     2/1   0/1    1/3
  8 PA08           D4   -  16    0/0     2/0   0/0    1/2
 15 PA15           D5  15   -    2/3     4/3   3/1    0/5
 21 PA21           D7   5   -    5/3     3/3   7/1    0/7
  7 PA07           D9   7   7     -      0/3   1/1     -
 18 PA18          D10   2   -    1/2     3/2   3/0    0/2
 16 PA16          D11   0   -    1/0     3/0   2/0    0/6
 19 PA19          D12   3   -    1/3     3/3   3/1    0/3
 17 PA17          D13   1   -    1/1     3/1   2/1    0/7
  0 PA00  DOTSTAR_CLK   0   -     -      1/0   2/0     -
  1 PA01 DOTSTAR_DATA   1   -     -      1/1   2/1     -
 27 PA27     FLASH_CS  15   -     -       -     -      -
 35 PB03   FLASH_MISO   3  11     -      5/1   6/1     -
 54 PB22   FLASH_MOSI   6   -     -      5/2   7/0     -
 55 PB23    FLASH_SCK   7   -     -      5/3   7/1     -
 11 PA11           RX  11  19    0/3     2/3   1/1    0/3
 10 PA10           TX  10  18    0/2     2/2   1/0    0/2
 12 PA12         MISO  12   -    2/0     4/0   2/0    0/6
 42 PA12         MOSI  10   -     -      4/2   5/0    0/4
 43 PA13          SCK  11   -     -      4/3   5/1    0/5
 23 PA23          SCL   7   -    3/1     5/1   4/1    0/5
 22 PA22          SDA   6   -    3/0     5/0   4/0    0/4
 30 PA30        SWCLK  10   -     -      1/2   1/0     -
 31 PA31        SWDIO  11   -     -      1/3   1/1     -
 24 PA24       USB_DM  12   -    3/2     5/2   5/0    1/2
 25 PA25       USB_DP  13   -    3/3     5/3   5/1    1/3
  3 PA03                3   1     -       -     -      -
  6 PA06                6   6     -      0/2   1/0     -
 13 PA13               13   -    2/1     4/1   2/0    0/7
 20 PA20                4   -    5/2     3/2   7/0    0/4
 28 PA28                8   -     -       -     -      -
=== ==== ============ ==== ==== ====== ====== ====== ======


Description of the columns:

- *Pin* - The number that is expected at ``machine.Pin(n)``, if the pin is given
  as a number.
- *GPIO* - The GPIO name, which can be used as argument to ``machine.Pin("name")``.
- *Pin Name* - The boards name, which can be used as argument to ``machine.Pin("name")``.
- *IRQ* - The IRQ number assigned to that GPIO, used internally by ``Pin.irq()``. When
  using ``Pin.irq()``, different pins must use different IRQs
- *ADC* - The ADC channel assigned to the pin. When using ADC, different pins must
  not use the same ADC channel.
- *Serial* - Two columns with optional Serial signal assignments. Both may be used.
  The cell content is device #/pad #. The pad # is the respective internal
  signal of that serial device. Details below.
- *TCC/TC* - Two columns with assignments of the TCC modules for PWM.
  The cell content is device #/output #. For PWM, devices 0, 1, and 2
  are used. The TC device pair 3/4 is used for ``ticks_us()``.

SAMD21 UART assignments
```````````````````````
The UART devices and signals must be chosen according to the following rules:

- The TX signal must be at a Pin with pad numbers 2 or 0, like Pin D1 with serial
  device 0 or 2.
- The RX pin may be assigned to one of the other pads.

Examples for Adafruit ItsyBitsy M0 Express:

- uart 0 at pins D0/D1  This is the default UART at the RX/TX labelled pins
- uart 1 at pins D12/D10
- uart 2 at pins D0/D1
- uart 3 at pins D11/D13
- uart 4 at pins D2/D5
- uart 5 at pins SCL/SDA

or other combinations. For hardware flow control, tx must be at pad 0, rx at pad 1,
rts at pad 2 and cts at pad 3. This applies for instance to
UART 3 or UART 1 at the pins D13/D11/D10/D12 for rx/tx/rts/cts.

SAMD21 I2C assignments
``````````````````````
The I2C devices and signals must be chosen according to the following rules:

- The SDA signal must be at a Pin with pad numbers 0.
- The SCL signal must be at a Pin with pad numbers 1.

Examples for Adafruit ItsyBitsy M0 Express:

- I2C 0 at Pin A3/A4
- I2C 1 at pins D11/D13
- I2C 2 at the pins D4/D3
- I2C 3 at the pins SDA/SCL This is the default I2C device at the SDA/SCl labelled pin
- I2C 4 at the pins A1/A2
- I2C 5 at the pins SDA/SCL,

or other combinations.

SAMD21 SPI assignments
``````````````````````
The SPI devices and signals must be chosen according to the following rules:

- The following pad number pairs are suitable for MOSI/SCK: 0/1, 2/3, 3/1, and 0/3.
- The MISO signal must be at a Pin with a different pad number than MOSI or SCK.

Examples for Adafruit ItsyBitsy M0 Express:

- SPI 0 at pins D0/D4/D1
- SPI 1 at pins D11/D12/D13
- SPI 2 at pins D0/D4/D1
- SPI 3 at pins D11/D12/D13
- SPI 2 at Pin MOSI/MISO/SCK This is the default SPI device at the MOSI/MISO/SCK labelled pins.

or other combinations.


SAMD21 PWM assignments
``````````````````````

The TCC/TC device numbers 0, 1 and 2 can be used for PWM. Device 0 has four
channels, device 1 and 2 have two channels. So in total 3 different PWM
frequencies can be used, and 8 different duty cycle values.

The DAC output for the Adafruit ItsyBitsy M0 Express board is available at the pin A0.

.. _samd51_pinout_table:

Adafruit ItsyBitsy M4 Express pin assignment table
--------------------------------------------------

=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====
Pin GPIO Pin name     IRQ  ADC  ADC  Serial Serial  TC    PWM   PWM
=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====
  2 PA02           A0   2    0    -     -      -     -     -     -
  5 PA05           A1   5    5    -     -     0/1   0/1    -     -
 40 PB08           A2   8    2    0     -     4/0   4/0    -     -
 41 PB09           A3   9    3    1     -     4/1   4/1    -     -
  4 PA04           A4   4    4    -     -     0/0   0/0    -     -
  6 PA06           A5   6    6    -     -     0/2   1/0    -     -
 16 PA16           D0   0    -    -    1/0    3/1   2/0   1/0   0/4
 17 PA17           D1   1    -    -    1/1    3/0   2/1   1/1   0/5
  7 PA07           D2   7    7    -     -     0/3   1/1    -     -
 54 PB22           D3  22    -    -    1/2    5/2   7/0    -     -
 14 PA14           D4  14    -    -    2/2    4/2   3/0   2/0   1/2
 15 PA15           D5  15    -    -    2/3    4/3   3/1   2/1   1/3
 18 PA18           D7   2    -    -    1/2    3/2   3/0   1/2   0/6
 19 PA19           D9   3    -    -    1/3    3/3   3/1   1/3   0/7
 20 PA20          D10   4    -    -    5/2    3/2   7/0   1/4   0/0
 21 PA21          D11   5    -    -    5/3    3/3   7/1   1/5   0/1
 23 PA23          D12   7    -    -    3/1    5/0   4/1   1/7   0/3
 22 PA22          D13   6    -    -    3/0    5/1   4/0   1/6   0/2
 34 PB02  DOTSTAR_CLK   2   14    -     -     5/0   6/0   2/2    -
 35 PB03 DOTSTAR_DATA   9   15    -     -     5/1   6/1    -     -
 16 PA16           RX   0    -    -    1/0    3/1   2/0   1/0   0/4
 17 PA17           TX   1    -    -    1/1    3/0   2/1   1/1   0/5
 55 PB23         MISO   7    -    -    1/3    5/3   7/1    -     -
  0 PA00         MOSI   0    -    -     -     1/0   2/0    -     -
 43 PB11      QSPI_CS  12    -    -     -     4/3   5/1   0/5   1/1
  8 PA08      QSPI_D0   -    8    2    0/0    2/1   0/0   0/0   1/4
  9 PA09      QSPI_D1   9    9    3    0/1    2/0   0/1   0/1   1/5
 10 PA10      QSPI_D2  10   10    -    0/2    2/2   1/0   0/2   1/6
 11 PA11      QSPI_D3  11   11    -    0/3    2/3   1/1   0/3   1/7
 42 PB10     QSPI_SCK  10    -    -     -     4/2   5/0   0/4   1/0
  1 PA01          SCK   1    -    -     -     1/1   2/1    -     -
 13 PA13          SCL  13    -    -    2/1    4/0   2/1   0/7   1/3
 12 PA12          SDA  12    -    -    2/0    4/1   2/0   0/6   1/2
 30 PA30        SWCLK  14    -    -    7/2    1/2   6/0   2/0    -
 31 PA31        SWDIO  15    -    -    7/3    1/3   6/1   2/1    -
 24 PA24       USB_DM   8    -    -    3/2    5/2   5/0   2/2    -
 25 PA25       USB_DP   9    -    -    3/3    5/3   5/1    -     -
  3 PA03            -   3   10    -     -      -     -     -     -
 27 PA27            -  11    -    -     -      -     -     -     -
=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====


Description of the columns:

- *Pin* - The number that is expected at ``machine.Pin(n)``, if the pin is given
  as a number.
- *GPIO* - The GPIO name, which can be used as argument to ``machine.Pin("name")``.
- *Pin Name* - The boards name, which can be used as argument to ``machine.Pin("name")``.
- *IRQ* - The IRQ number assigned to that GPIO, used internally by ``Pin.irq()``. When
  using ``Pin.irq()``, different pins must use different IRQs
- *ADC* - The ADC0/1 channel assigned to the pin. When using ADC, different pins must
  not use the same ADC device and channel.
- *Serial* - Two columns with optional Serial signal assignments. Both may be used.
  The cell content is device #/pad #. The pad # is the respective internal
  signal of that serial device. Details below.
- *TC* - These device are currently not assigned to Pin. the TC device pair 0/1
  is used for ``ticks_us()``.
- *PWM* - Two columns with assignments of the TCC modules for PWM
  The cell content is device #/output #. Details below.

SAMD51 UART assignments
```````````````````````
The UART devices and signals must be chosen according to the following rules:

- The TX signal must be at a Pin with pad numbers 0, like Pin D1 with serial
  device 3.
- The RX pin may be assigned to one of the other pads.

Examples for Adafruit ItsyBitsy 4 Express:

- uart 0 at pins A4/A1
- uart 1 at pins D1/D0   This is the default UART at the RX/TX labelled pins
- uart 2 at pins SCL/SDA  This is the default I2C device at the SDA/SCl labelled pin
- uart 3 at pins D0/D1
- uart 4 at pins SDA/SCL
- uart 5 at pins D12/D13

or other combinations. For hardware flow control, tx must be at pad 0, rx at pad 1,
rts at pad 2 and cts at pad 3. This applies for instance to
UART 5 at the pins D12/D13/D10/D11 for rx/tx/rts/cts.

SAMD51 I2C assignments
``````````````````````
The I2C devices and signals must be chosen according to the following rules:

- The SDA signal must be at a Pin with pad numbers 0.
- The SCL signal must be at a Pin with pad numbers 1.

Examples for Adafruit ItsyBitsy M4 Express:

- I2C 0 at pins A3/A4
- I2C 1 at pins D0/D1
- I2C 2 at the pins SDA/SCL
- I2C 3 at the pins D1/D0
- I2C 4 at the pins A2/A3
- I2C 5 at the pins D12/D13

or other combinations.

SAMD51 SPI assignments
``````````````````````
The SPI devices and signals must be chosen according to the following rules:

- The following pad number pairs are suitable for MOSI/SCK: 0/1 and 3/1.
- The MISO signal must be at a Pin with a different pad number than MOSI or SCK.

Examples for Adafruit ItsyBitsy M4 Express:

- SPI 1 at Pin MOSI/MISO/SCK  This is the default SPI device at the MOSI/MISO/SCK labelled pins.
- SPI 3 at pins D13/D11/D12
- SPI 5 at pins D12/D3/D13

or other combinations.


SAMD51 PWM assignments
``````````````````````

The TCC/PWM device numbers 0 through 4 can be used for PWM. Device 0 has six
channels, device 1 has four channels, device 2 has three channels and devices
3 and 4 have two channels. So in total up to 5 different PWM frequencies
can be used, and up to 17 different duty cycle values. Note that these numbers
do not apply to every board.

The DAC outputs for the Adafruit ItsyBitsy M4 Express board are available at the pins A0 and A1.

Adafruit Feather M4 Express pin assignment table
------------------------------------------------

=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====
Pin GPIO Pin name     IRQ  ADC  ADC  Serial Serial  TC    PWM   PWM
=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====
  2 PA02           A0   2    0    -     -      -     -     -      -
  5 PA05           A1   5    5    -     -     0/1   0/1    -      -
 40 PB08           A2   8    2    0     -     4/0   4/0    -      -
 41 PB09           A3   9    3    1     -     4/1   4/1    -      -
  4 PA04           A4   4    4    -     -     0/0   0/0    -      -
 38 PB06           A5   6    -    8     -      -     -     -      -
 49 PB17           D0   1    -    -    5/1     -    6/1   3/1    0/5
 48 PB16           D1   0    -    -    5/0     -    6/0   3/0    0/4
 14 PA14           D4  14    -    -    2/2    4/2   3/0   2/0    1/2
 16 PA16           D5   0    -    -    1/0    3/1   2/0   1/0    0/4
 18 PA18           D6   2    -    -    1/2    3/2   3/0   1/2    0/6
 19 PA19           D9   3    -    -    1/3    3/3   3/1   1/3    0/7
  3 PA03         AREF   3   10    -     -      -     -     -      -
 20 PA20          D10   4    -    -    5/2    3/2   7/0   1/4    0/0
 21 PA21          D11   5    -    -    5/3    3/3   7/1   1/5    0/1
 22 PA22          D12   6    -    -    3/0    5/1   4/0   1/6    0/2
 23 PA23          D13   7    -    -    3/1    5/0   4/1   1/7    0/3
 49 PB17           RX   1    -    -    5/1     -    6/1   3/1    0/5
 48 PB16           TX   0    -    -    5/0     -    6/0   3/0    0/4
 54 PB22         MISO  22    -    -    1/2    5/2   7/0    -      -
 55 PB23         MOSI   7    -    -    1/3    5/3   7/1    -      -
 35 PB03     NEOPIXEL   9   15    -     -     5/1   6/1    -      -
 43 PB11      QSPI_CS  12    -    -     -     4/3   5/1   0/5   1/1
  8 PA08      QSPI_D0   -    8    2    0/0    2/1   0/0   0/0   1/4
  9 PA09      QSPI_D1   9    9    3    0/1    2/0   0/1   0/1   1/5
 10 PA10      QSPI_D2  10   10    -    0/2    2/2   1/0   0/2   1/6
 11 PA11      QSPI_D3  11   11    -    0/3    2/3   1/1   0/3   1/7
 42 PB10     QSPI_SCK  10    -    -     -     4/2   5/0   0/4   1/0
 17 PA17          SCK   1    -    -    1/1    3/0   2/1   1/1    0/5
 13 PA13          SCL  13    -    -    2/1    4/0   2/1   0/7    1/3
 12 PA12          SDA  12    -    -    2/0    4/1   2/0   0/6    1/2
 30 PA30        SWCLK  14    -    -    7/2    1/2   6/0   2/0     -
 31 PA31        SWDIO  15    -    -    7/3    1/3   6/1   2/1     -
 24 PA24       USB_DM   8    -    -    3/2    5/2   5/0   2/2     -
 25 PA25       USB_DP   9    -    -    3/3    5/3   5/1    -      -
 33 PB01         VDIV   1   13    -     -     5/3   7/1    -      -
  0 PA00            -   0    -    -     -     1/0   2/0    -      -
  1 PA01            -   1    -    -     -     1/1   2/1    -      -
  6 PA06            -   6    6    -     -     0/2   1/0    -      -
  7 PA07            -   7    7    -     -     0/3   1/1    -      -
 15 PA15            -  15    -    -    2/3    4/3   3/1   2/1    1/3
 27 PA27            -  11    -    -     -      -     -     -      -
 32 PB00            -   9   12    -     -     5/2   7/0    -      -
 34 PB02            -   2   14    -     -     5/0   6/0   2/2     -
 36 PB04            -   4    -    6     -      -     -     -      -
 37 PB05            -   5    -    7     -      -     -     -      -
 39 PB07            -   7    -    9     -      -     -     -      -
 44 PB12            -  12    -    -    4/0     -    4/0   3/0    0/0
 45 PB13            -  13    -    -    4/1     -    4/1   3/1    0/1
 46 PB14            -  14    -    -    4/2     -    5/0   4/0    0/2
 47 PB15            -  15    -    -    4/3     -    5/1   4/1    0/3
 62 PB30            -  14    -    -    7/0    5/1   0/0   4/0    0/6
 63 PB31            -  15    -    -    7/1    5/0   0/1   4/1    0/7
=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====

For the definition of the table columns see the explanation at the table for
Adafruit ItsyBitsy M4 Express :ref:`samd51_pinout_table`.

The default devices at the board are:

- UART 5 at pins D0/D1, labelled RX/TX
- I2C 2 at pins PA12/PA13, labelled SDA/SCL
- SPI 1 at pins PA23/PA22/PA17, labelled MOSI, MISO and SCK
- DAC output on pins PA02 and PA05, labelled A0 and A1

Adafruit Metro M4 Airlift pin assignment table
----------------------------------------------

=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====
Pin GPIO Pin name     IRQ  ADC  ADC  Serial Serial  TC    PWM   PWM
=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====
  2 PA02           A0  2     0    -     -      -     -     -     -
  5 PA05           A1  5     5    -     -     0/1   0/1    -     -
  6 PA06           A2  6     6    -     -     0/2   1/0    -     -
 32 PB00           A3  9    12    -     -     5/2   7/0    -     -
 40 PB08           A4  8     2    0     -     4/0   4/0    -     -
 41 PB09           A5  9     3    1     -     4/1   4/1    -     -
 23 PA23           D0  7     -    -    3/1    5/0   4/1   1/7   0/3
 22 PA22           D1  6     -    -    3/0    5/1   4/0   1/6   0/2
 49 PB17           D2  1     -    -    5/1     -    6/1   3/1   0/5
 48 PB16           D3  0     -    -    5/0     -    6/0   3/0   0/4
 45 PB13           D4 13     -    -    4/1     -    4/1   3/1   0/1
 46 PB14           D5 14     -    -    4/2     -    5/0   4/0   0/2
 47 PB15           D6 15     -    -    4/3     -    5/1   4/1   0/3
 44 PB12           D7 12     -    -    4/0     -    4/0   3/0   0/0
 21 PA21           D8  5     -    -    5/3    3/3   7/1   1/5   0/1
 20 PA20           D9  4     -    -    5/2    3/2   7/0   1/4   0/0
  3 PA03         AREF  3    10    -     -      -     -     -     -
 18 PA18          D10  2     -    -    1/2    3/2   3/0   1/2   0/6
 19 PA19          D11  3     -    -    1/3    3/3   3/1   1/3   0/7
 16 PA16          D13  0     -    -    1/0    3/1   2/0   1/0   0/4
 36 PB04     ESP_BUSY  4     -    6     -      -     -     -     -
 15 PA15       ESP_CS 15     -    -    2/3    4/3   3/1   2/1   1/3
 33 PB01    ESP_GPIO0  1    13    -     -     5/3   7/1    -     -
 37 PB05    ESP_RESET  5     -    7     -      -     -     -     -
 55 PB23      ESP_RTS  7     -    -    1/3    5/3   7/1    -     -
  7 PA07       ESP_RX  7     7    -     -     0/3   1/1    -     -
  4 PA04       ESP_TX  4     4    -     -     0/0   0/0    -     -
 43 PB11     FLASH_CS 12     -    -     -     4/3   5/1   0/5   1/1
 11 PA11   FLASH_HOLD 11    11    -    0/3    2/3   1/1   0/3   1/7
  9 PA09   FLASH_MISO  9     9    3    0/1    2/0   0/1   0/1   1/5
  8 PA08   FLASH_MOSI  -     8    2    0/0    2/1   0/0   0/0   1/4
 42 PB10    FLASH_SCK 10     -    -     -     4/2   5/0   0/4   1/0
 10 PA10     FLASH_WP 10    10    -    0/2    2/2   1/0   0/2   1/6
 23 PA23           RX  7     -    -    3/1    5/0   4/1   1/7   0/3
 22 PA22           TX  6     -    -    3/0    5/1   4/0   1/6   0/2
 14 PA14         MISO 14     -    -    2/2    4/2   3/0   2/0   1/2
 12 PA12         MOSI 12     -    -    2/0    4/1   2/0   0/6   1/2
 54 PB22     NEOPIXEL 22     -    -    1/2    5/2   7/0    -     -
 38 PB06        RXLED  6     -    8     -      -     -     -     -
 13 PA13          SCK 13     -    -    2/1    4/0   2/1   0/7   1/3
 35 PB03          SCL  9    15    -     -     5/1   6/1    -     -
 34 PB02          SDA  2    14    -     -     5/0   6/0   2/2    -
 30 PA30        SWCLK 14     -    -    7/2    1/2   6/0   2/0    -
 31 PA31        SWDIO 15     -    -    7/3    1/3   6/1   2/1    -
 62 PB30          SWO 14     -    -    7/0    5/1   0/0   4/0   0/6
 39 PB07        TXLED  7     -    9     -      -     -     -     -
 24 PA24       USB_DM  8     -    -    3/2    5/2   5/0   2/2    -
 25 PA25       USB_DP  9     -    -    3/3    5/3   5/1    -     -
 17 PA17   USB_HOSTEN  1     -    -    1/1    3/0   2/1   1/1   0/5
  0 PA00            -  0     -    -     -     1/0   2/0    -     -
  1 PA01            -  1     -    -     -     1/1   2/1    -     -
 27 PA27            - 11     -    -     -      -     -     -     -
 63 PB31            - 15     -    -    7/1    5/0   0/1   4/1   0/7
=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====

For the definition of the table columns see the explanation at the table
for Adafruit ItsyBitsy M4 Express :ref:`samd51_pinout_table`.

The default devices at the board are:

- UART 3 at pins PA23/PA22, labelled D0/D1 resp. RX/TX
- I2C 5 at pins PB02/PB03, labelled SDA/SCL
- SPI 4 at pins PA12/PA14/PA13, labelled MOSI, MISO and SCK
- DAC output on pins PA02 and PA05, labelled A0 and A1

SEEED XIAO pin assignment table
-------------------------------

=== ==== ============ ==== ==== ====== ====== ====== ======
Pin GPIO Pin name     IRQ  ADC  Serial Serial TCC/TC TCC/TC
=== ==== ============ ==== ==== ====== ====== ====== ======
  2 PA02        A0_D0   2    0     -      -     -      -
  4 PA04        A1_D1   4    4     -     0/0   0/0     -
 10 PA10        A2_D2  10   18    0/2    2/2   1/0    0/2
 11 PA11        A3_D3  11   19    0/3    2/3   1/1    0/3
  8 PA08        A4_D4   -   16    0/0    2/0   0/0    1/2
  9 PA09        A5_D5   9   17    0/1    2/1   0/1    1/3
 40 PB08        A6_D6   8    2     -     4/0   4/0     -
 41 PB09        A7_D7   9    3     -     4/1   4/1     -
  7 PA07        A8_D8   7    7     -     0/3   1/1     -
  5 PA05        A9_D9   5    5     -     0/1   0/1     -
  6 PA06      A10_D10   6    6     -     0/2   1/0     -
 18 PA18       RX_LED   2    -    1/2    3/2   3/0    0/2
 41 PB09           RX   9    3     -     4/1   4/1     -
 40 PB08           TX   8    2     -     4/0   4/0     -
  8 PA08          SDA   -   16    0/0    2/0   0/0    1/2
  9 PA09          SCL   9   17    0/1    2/1   0/1    1/3
  6 PA06         MOSI   6    6     -     0/2   1/0     -
  5 PA05         MISO   5    5     -     0/1   0/1     -
  7 PA07          SCK   7    7     -     0/3   1/1     -
 30 PA30        SWCLK  10    -     -     1/2   1/0     -
 31 PA31        SWDIO  11    -     -     1/3   1/1     -
 19 PA19       TX_LED   3    -    1/3    3/3   3/1    0/3
 24 PA24       USB_DM  12    -    3/2    5/2   5/0    1/2
 25 PA25       USB_DP  13    -    3/3    5/3   5/1    1/3
 17 PA17     USER_LED   1    -    1/1    3/1   2/1    0/7
  0 PA00            -   0    -     -     1/0   2/0     -
  1 PA01            -   1    -     -     1/1   2/1     -
  3 PA03            -   3    1     -      -     -      -
 12 PA12            -  12    -    2/0    4/0   2/0    0/6
 13 PA13            -  13    -    2/1    4/1   2/0    0/7
 14 PA14            -  14    -    2/2    4/2   3/0    0/4
 15 PA15            -  15    -    2/3    4/3   3/1    0/5
 16 PA16            -   0    -    1/0    3/0   2/0    0/6
 20 PA20            -   4    -    5/2    3/2   7/0    0/4
 21 PA21            -   5    -    5/3    3/3   7/1    0/7
 22 PA22            -   6    -    3/0    5/0   4/0    0/4
 23 PA23            -   7    -    3/1    5/1   4/1    0/5
 27 PA27            -  15    -     -      -     -      -
 28 PA28            -   8    -     -      -     -      -
 34 PB02            -   2   10     -     5/0   6/0     -
 35 PB03            -   3   11     -     5/1   6/1     -
 42 PB10            -  10    -     -     4/2   5/0    0/4
 43 PB11            -  11    -     -     4/3   5/1    0/5
 54 PB22            -   6    -     -     5/2   7/0     -
 55 PB23            -   7    -     -     5/3   7/1     -
=== ==== ============ ==== ==== ====== ====== ====== ======

For the definition of the table columns see the explanation at the table for
Adafruit ItsyBitsy M0 Express :ref:`samd21_pinout_table`.

The default devices at the board are:

- UART 4 at pins PB08/PB09, labelled A6_D6/A7_D7
- I2C 2 at pins PA08/PA09, labelled A4_D4/A5_D5
- SPI 0 at pins PA06/PA05/PA07, labelled A10_D10, A9_D9 and A8_D8
- DAC output on pin PA02, labelled A0_D0

Adafruit Feather M0 Express pin assignment table
------------------------------------------------

=== ==== ============ ==== ==== ====== ====== ====== ======
Pin GPIO Pin name     IRQ  ADC  Serial Serial TCC/TC TCC/TC
=== ==== ============ ==== ==== ====== ====== ====== ======
  2 PA02           A0   2    0     -      -     -      -
 40 PB08           A1   8    2     -     4/0   4/0     -
 41 PB09           A2   9    3     -     4/1   4/1     -
  4 PA04           A3   4    4     -     0/0   0/0     -
  5 PA05           A4   5    5     -     0/1   0/1     -
 34 PB02           A5   2   10     -     5/0   6/0     -
 11 PA11           D0  11   19    0/3    2/3   1/1    0/3
 10 PA10           D1  10   18    0/2    2/2   1/0    0/2
 14 PA14           D2  14    -    2/2    4/2   3/0    0/4
  9 PA09           D3   9   17    0/1    2/1   0/1    1/3
  8 PA08           D4   -   16    0/0    2/0   0/0    1/2
 15 PA15           D5  15    -    2/3    4/3   3/1    0/5
 20 PA20           D6   4    -    5/2    3/2   7/0    0/4
 21 PA21           D7   5    -    5/3    3/3   7/1    0/7
  7 PA07           D9   7    7     -     0/3   1/1     -
 55 PB23           RX   7    -     -     5/3   7/1     -
 54 PB22           TX   6    -     -     5/2   7/0     -
 18 PA18          D10   2    -    1/2    3/2   3/0    0/2
 16 PA16          D11   0    -    1/0    3/0   2/0    0/6
 19 PA19          D12   3    -    1/3    3/3   3/1    0/3
 17 PA17          D13   1    -    1/1    3/1   2/1    0/7
 13 PA13     FLASH_CS  13    -    2/1    4/1   2/0    0/7
 35 PB03       LED_RX   3   11     -     5/1   6/1     -
 27 PA27       LED_TX  15    -     -      -     -      -
 12 PA12         MISO  12    -    2/0    4/0   2/0    0/6
 42 PB10         MOSI  10    -     -     4/2   5/0    0/4
  6 PA06     NEOPIXEL   6    6     -     0/2   1/0     -
 43 PB11          SCK  11    -     -     4/3   5/1    0/5
 23 PA23          SCL   7    -    3/1    5/1   4/1    0/5
 22 PA22          SDA   6    -    3/0    5/0   4/0    0/4
 11 PA11           RX  11   19    0/3    2/3   1/1    0/3
 10 PA10           TX  10   18    0/2    2/2   1/0    0/2
 30 PA30        SWCLK  10    -     -     1/2   1/0     -
 31 PA31        SWDIO  11    -     -     1/3   1/1     -
 24 PA24       USB_DM  12    -    3/2    5/2   5/0    1/2
 25 PA25       USB_DP  13    -    3/3    5/3   5/1    1/3
  0 PA00            -   0    -     -     1/0   2/0     -
  1 PA01            -   1    -     -     1/1   2/1     -
  3 PA03            -   3    1     -      -     -      -
 28 PA28            -   8    -     -      -     -      -
=== ==== ============ ==== ==== ====== ====== ====== ======

For the definition of the table columns see the explanation at the table for
Adafruit ItsyBitsy M0 Express :ref:`samd21_pinout_table`.

The default devices at the board are:

- UART 2 at pins PA11/PA10, labelled RX/TX
- I2C 3 at pins PA22/PA23, labelled SDA/SCL
- SPI 4 at pins PB10/PA12/PB11, labelled MOSI, MISO and SCK
- DAC output on pin PA02, labelled A0

Adafruit Trinket M0 pin assignment table
------------------------------------------------

=== ==== ============ ==== ==== ====== ====== ====== ======
Pin GPIO Pin name     IRQ  ADC  Serial Serial TCC/TC TCC/TC
=== ==== ============ ==== ==== ====== ====== ====== ======
  8 PA08           D0   -   16    0/0    2/0   0/0    1/2
  2 PA02           D1   2    0     -      -     -      -
  9 PA09           D2   9   17    0/1    2/1   0/1    1/3
  7 PA07           D3   7    7     -     0/3   1/1     -
  6 PA06           D4   6    6     -     0/2   1/0     -
  1 PA01  DOTSTAR_CLK   1    -     -     1/1   2/1     -
  0 PA00 DOTSTAR_DATA   0    -     -     1/0   2/0     -
  7 PA07           RX   7    7     -     0/3   1/1     -
  6 PA06           TX   6    6     -     0/2   1/0     -
  8 PA08          SDA   -   16    0/0    2/0   0/0    1/2
  9 PA09          SCL   9   17    0/1    2/1   0/1    1/3
  6 PA06         MOSI   6    6     -     0/2   1/0     -
  9 PA09         MISO   9   17    0/1    2/1   0/1    1/3
  7 PA07          SCK   7    7     -     0/3   1/1     -
 10 PA10          LED  10   18    0/2    2/2   1/0    0/2
 30 PA30        SWCLK  10    -     -     1/2   1/0     -
 31 PA31        SWDIO  11    -     -     1/3   1/1     -
 24 PA24       USB_DM  12    -    3/2    5/2   5/0    1/2
 25 PA25       USB_DP  13    -    3/3    5/3   5/1    1/3
  3 PA03            -   3    1     -      -     -      -
  4 PA04            -   4    4     -     0/0   0/0     -
  5 PA05            -   5    5     -     0/1   0/1     -
 11 PA11            -  11   19    0/3    2/3   1/1    0/3
 14 PA14            -  14    -    2/2    4/2   3/0    0/4
 15 PA15            -  15    -    2/3    4/3   3/1    0/5
 16 PA16            -   0    -    1/0    3/0   2/0    0/6
 17 PA17            -   1    -    1/1    3/1   2/1    0/7
 18 PA18            -   2    -    1/2    3/2   3/0    0/2
 19 PA19            -   3    -    1/3    3/3   3/1    0/3
 22 PA22            -   6    -    3/0    5/0   4/0    0/4
 23 PA23            -   7    -    3/1    5/1   4/1    0/5
 27 PA27            -  15    -     -      -     -      -
 28 PA28            -   8    -     -      -     -      -
=== ==== ============ ==== ==== ====== ====== ====== ======

For the definition of the table columns see the explanation at the table for
Adafruit ItsyBitsy M0 Express :ref:`samd21_pinout_table`.

The default devices at the board are:

- UART 0 at pins PA07/PA06, labelled D3/D4
- I2C 2 at pins PA08/PA09, labelled D0/D2
- SPI 0 at pins PA06/PA09/PA08, labelled D4, D2 and D0
- DAC output on pin PA02, labelled D1

Adafruit QT PY pin assignment table
-----------------------------------

=== ==== ============ ==== ==== ====== ====== ====== ======
Pin GPIO Pin name     IRQ  ADC  Serial Serial TCC/TC TCC/TC
=== ==== ============ ==== ==== ====== ====== ====== ======
  2 PA02           A0   2    0     -      -      -      -
  3 PA03           A1   3    1     -      -      -      -
  4 PA04           A2   4    4     -     0/0    0/0     -
  5 PA05           A3   5    5     -     0/1    0/1     -
  7 PA07           RX   7    7     -     0/3    1/1     -
  6 PA06           TX   6    6     -     0/2    1/0     -
  8 PA08     FLASH_CS   -   16    0/0    2/0    0/0    1/2
 19 PA19   FLASH_MISO   3    -    1/3    3/3    3/1    0/3
 22 PA22   FLASH_MOSI   6    -    3/0    5/0    4/0    0/4
 23 PA23    FLASH_SCK   7    -    3/1    5/1    4/1    0/5
  9 PA09         MISO   9   17    0/1    2/1    0/1    1/3
 10 PA10         MOSI  10   18    0/2    2/2    1/0    0/2
 18 PA18       NEOPIX   2    -    1/2    3/2    3/0    0/2
 15 PA15      NEO_PWR  15    -    2/3    4/3    3/1    0/5
 11 PA11          SCK  11   19    0/3    2/3    1/1    0/3
 17 PA17          SCL   1    -    1/1    3/1    2/1    0/7
 16 PA16          SDA   0    -    1/0    3/0    2/0    0/6
 30 PA30        SWCLK  10    -     -     1/2    1/0     -
 31 PA31        SWDIO  11    -     -     1/3    1/1     -
 24 PA24       USB_DM  12    -    3/2    5/2    5/0    1/2
 25 PA25       USB_DP  13    -    3/3    5/3    5/1    1/3
=== ==== ============ ==== ==== ====== ====== ====== ======

For the definition of the table columns see the explanation at the table for
Adafruit ItsyBitsy M0 Express :ref:`samd21_pinout_table`.

The default devices at the board are:

- UART 0 at pins PA07/PA06, labelled RX/TX
- I2C 1 at pins PA16/PA17, labelled SDA/SCL
- SPI 0 at pins PA09/PA10/PA11, labelled MISO, MOSI and SCK
- DAC output on pin PA02, labelled A0

Adafruit NeoKey Trinkey pin assignment table
--------------------------------------------

=== ==== ============ ==== ==== ====== ====== ====== ======
Pin GPIO Pin name     IRQ  ADC  Serial Serial TCC/TC TCC/TC
=== ==== ============ ==== ==== ====== ====== ====== ======
 15 PA15     NEOPIXEL  15    -    2/3    4/3    3/1    0/5
 30 PA30        SWCLK  10    -     -     1/2    1/0     -
 31 PA31        SWDIO  11    -     -     1/3    1/1     -
 18 PA18       SWITCH   2    -    1/2    3/2    3/0    0/2
  7 PA07        TOUCH   7    7     -     0/3    1/1     -
 24 PA24       USB_DM  12    -    3/2    5/2    5/0    1/2
 25 PA25       USB_DP  13    -    3/3    5/3    5/1    1/3
=== ==== ============ ==== ==== ====== ====== ====== ======

For the definition of the table columns see the explanation at the table for
Adafruit ItsyBitsy M0 Express :ref:`samd21_pinout_table`.

The board does not provide access to UART, I2C, SPI or DAC.


SAMD21 Xplained PRO pin assignment table
----------------------------------------

=== ==== ============ ==== ==== ====== ====== ====== ======
Pin GPIO Pin name     IRQ  ADC  Serial Serial TCC/TC TCC/TC
=== ==== ============ ==== ==== ====== ====== ====== ======
 32 PB00    EXT1_PIN3   0    8     -     5/2   7/0     -
 33 PB01    EXT1_PIN4   1    9     -     5/3   7/1     -
 38 PB06    EXT1_PIN5   6   14     -      -     -      -
 39 PB07    EXT1_PIN6   7   15     -      -     -      -
 34 PB02    EXT1_PIN7   2   10     -     5/0   6/0     -
 35 PB03    EXT1_PIN8   3   11     -     5/1   6/1     -
 36 PB04    EXT1_PIN9   4   12     -      -     -      -
 37 PB05   EXT1_PIN10   5   13     -      -     -      -
  8 PA08   EXT1_PIN11   -   16    0/0    2/0   0/0    1/2
  9 PA09   EXT1_PIN12   9   17    0/1    2/1   0/1    1/3
 41 PB09   EXT1_PIN13   9    3     -     4/1   4/1     -
 40 PB08   EXT1_PIN14   8    2     -     4/0   4/0     -
  5 PA05   EXT1_PIN15   5    5     -     0/1   0/1     -
  6 PA06   EXT1_PIN16   6    6     -     0/2   1/0     -
  4 PA04   EXT1_PIN17   4    4     -     0/0   0/0     -
  7 PA07   EXT1_PIN18   7    7     -     0/3   1/1     -
 10 PA10    EXT2_PIN3  10   18    0/2    2/2   1/0    0/2
 11 PA11    EXT2_PIN4  11   19    0/3    2/3   1/1    0/3
 20 PA20    EXT2_PIN5   4    -    5/2    3/2   7/0    0/4
 21 PA21    EXT2_PIN6   5    -    5/3    3/3   7/1    0/7
 44 PB12    EXT2_PIN7  12    -    4/0     -    4/0    0/6
 45 PB13    EXT2_PIN8  13    -    4/1     -    4/1    0/7
 46 PB14    EXT2_PIN9  14    -    4/2     -    5/0     -
 47 PB15   EXT2_PIN10  15    -    4/3     -    5/1     -
 43 PB11   EXT2_PIN13  11    -     -     4/3   5/1    0/5
 42 PB10   EXT2_PIN14  10    -     -     4/2   5/0    0/4
 17 PA17   EXT2_PIN15   1    -    1/1    3/1   2/1    0/7
 18 PA18   EXT2_PIN16   2    -    1/2    3/2   3/0    0/2
 16 PA16   EXT2_PIN17   0    -    1/0    3/0   2/0    0/6
 19 PA19   EXT2_PIN18   3    -    1/3    3/3   3/1    0/3
  2 PA02    EXT3_PIN3   2    0     -      -     -      -
  3 PA03    EXT3_PIN4   3    1     -      -     -      -
 15 PA15    EXT3_PIN6  15    -    2/3    4/3   3/1    0/5
 12 PA12    EXT3_PIN7  12    -    2/0    4/0   2/0    0/6
 13 PA13    EXT3_PIN8  13    -    2/1    4/1   2/0    0/7
 28 PA28    EXT3_PIN9   8    -     -      -     -      -
 27 PA27   EXT3_PIN10  15    -     -      -     -      -
 49 PB17   EXT3_PIN15   1    -    5/1     -    6/1    0/5
 54 PB22   EXT3_PIN16   6    -     -     5/2   7/0     -
 48 PB16   EXT3_PIN17   9    -    5/0     -    6/0    0/4
 55 PB23   EXT3_PIN18   7    -     -     5/3   7/1     -
 62 PB30          LED  14    -     -     5/0   0/0    1/2
 30 PA30        SWCLK  10    -     -     1/2   1/0     -
 31 PA31        SWDIO  11    -     -     1/3   1/1     -
 24 PA24       USB_DM  12    -    3/2    5/2   5/0    1/2
 25 PA25       USB_DP  13    -    3/3    5/3   5/1    1/3
  0 PA00            -   0    -     -     1/0   2/0     -
  1 PA01            -   1    -     -     1/1   2/1     -
 14 PA14            -  14    -    2/2    4/2   3/0    0/4
 22 PA22            -   6    -    3/0    5/0   4/0    0/4
 23 PA23            -   7    -    3/1    5/1   4/1    0/5
 63 PB31            -  15    -     -     5/1   0/1    1/3
=== ==== ============ ==== ==== ====== ====== ====== ======

For the definition of the table columns see the explanation at the table for
Adafruit ItsyBitsy M0 Express :ref:`samd21_pinout_table`.

There are no pins labelled for default devices on this board. DAC output
is on pin PA02, labelled EXT3_PIN3

Minisam M4 pin assignment table
-------------------------------

=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====
Pin GPIO Pin name     IRQ  ADC  ADC  Serial Serial  TC    PWM   PWM
=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====
 16 PA16           D0   0    -    -    1/0    3/1   2/0   1/0   0/4
 17 PA17           D1   1    -    -    1/1    3/0   2/1   1/1   0/5
 19 PA19           D3   3    -    -    1/3    3/3   3/1   1/3   0/7
 20 PA20           D4   4    -    -    5/2    3/2   7/0   1/4   0/0
 21 PA21           D5   5    -    -    5/3    3/3   7/1   1/5   0/1
  2 PA02        A0_D9   2    0    -     -      -     -     -     -
 40 PB08       A1_D10   8    2    0     -     4/0   4/0    -     -
 41 PB09       A2_D11   9    3    1     -     4/1   4/1    -     -
  4 PA04       A3_D12   4    4    -     -     0/0   0/0    -     -
  5 PA05       A4_D13   5    5    -     -     0/1   0/1    -     -
  6 PA06           A5   6    6    -     -     0/2   1/0    -     -
  7 PA07        A6_D2   7    7    -     -     0/3   1/1    -     -
  3 PA03         AREF   3   10    -     -      -     -     -     -
  0 PA00       BUTTON   0    -    -     -     1/0   2/0    -     -
 34 PB02  DOTSTAR_CLK   2   14    -     -     5/0   6/0   2/2    -
 35 PB03 DOTSTAR_DATA   9   15    -     -     5/1   6/1    -     -
 15 PA15          LED  15    -    -    2/3    4/3   3/1   2/1   1/3
 16 PA16           RX   0    -    -    1/0    3/1   2/0   1/0   0/4
 17 PA17           TX   1    -    -    1/1    3/0   2/1   1/1   0/5
 55 PB23         MOSI   7    -    -    1/3    5/3   7/1    -     -
 54 PB22         MISO  22    -    -    1/2    5/2   7/0    -     -
 43 PB11      QSPI_CS  12    -    -     -     4/3   5/1   0/5   1/1
  8 PA08      QSPI_D0   -    8    2    0/0    2/1   0/0   0/0   1/4
  9 PA09      QSPI_D1   9    9    3    0/1    2/0   0/1   0/1   1/5
 10 PA10      QSPI_D2  10   10    -    0/2    2/2   1/0   0/2   1/6
 11 PA11      QSPI_D3  11   11    -    0/3    2/3   1/1   0/3   1/7
 42 PB10     QSPI_SCK  10    -    -     -     4/2   5/0   0/4   1/0
  1 PA01          SCK   1    -    -     -     1/1   2/1    -     -
 13 PA13          SCL  13    -    -    2/1    4/0   2/1   0/7   1/3
 12 PA12          SDA  12    -    -    2/0    4/1   2/0   0/6   1/2
 30 PA30        SWCLK  14    -    -    7/2    1/2   6/0   2/0    -
 31 PA31        SWDIO  15    -    -    7/3    1/3   6/1   2/1    -
 24 PA24       USB_DM   8    -    -    3/2    5/2   5/0   2/2    -
 25 PA25       USB_DP   9    -    -    3/3    5/3   5/1    -     -
 14 PA14            -  14    -    -    2/2    4/2   3/0   2/0   1/2
 18 PA18            -   2    -    -    1/2    3/2   3/0   1/2   0/6
 22 PA22            -   6    -    -    3/0    5/1   4/0   1/6   0/2
 23 PA23            -   7    -    -    3/1    5/0   4/1   1/7   0/3
 27 PA27            -  11    -    -     -      -     -     -     -
=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====

For the definition of the table columns see the explanation at the table for
Adafruit ItsyBitsy M4 Express :ref:`samd51_pinout_table`.

The default devices at the board are:

- UART 1 at pins PA16/PA17, labelled D0/D1
- I2C 2 at pins PA12/PA13, labelled SDA/SCL
- SPI 1 at pins PB22/PB23/PA01, labelled MOSI, MISO and SCK
- DAC output on pins PA02 and PA05, labelled A0_D9 and A4_D13

Seeed WIO Terminal pin assignment table
---------------------------------------

=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====
Pin GPIO Pin name     IRQ  ADC  ADC  Serial Serial  TC    PWM   PWM
=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====
 33 PB01           CS   1   13    -     -    5/3    7/1    -     -
 59 PB27           RX  13    -    -    2/1   4/0     -    1/3    -
 58 PB26           TX  12    -    -    2/0   4/1     -    1/2    -
 79 PC15   3V3_ENABLE  15    -    -    7/3   6/3     -    0/5   1/1
 78 PC14    5V_ENABLE  14    -    -    7/2   6/2     -    0/4   1/0
 40 PB08        A0_D0   8    2    0     -    4/0    4/0    -     -
 41 PB09        A1_D1   9    3    1     -    4/1    4/1    -     -
  7 PA07        A2_D2   7    7    -     -    0/3    1/1    -     -
 36 PB04        A3_D3   4    -    6     -     -      -     -     -
 37 PB05        A4_D4   5    -    7     -     -      -     -     -
 38 PB06        A5_D5   6    -    8     -     -      -     -     -
  4 PA04        A6_D6   4    4    -     -    0/0    0/0    -     -
 39 PB07        A7_D7   7    -    9     -     -      -     -     -
  6 PA06        A8_D8   6    6    -     -    0/2    1/0    -     -
 90 PC26     BUTTON_1  10    -    -     -     -      -     -     -
 91 PC27     BUTTON_2  11    -    -    1/0    -      -     -     -
 92 PC28     BUTTON_3  12    -    -    1/1    -      -     -     -
107 PD11       BUZZER   6    -    -    7/3   6/3     -    0/4    -
 47 PB15       GPCLK0  15    -    -    4/3    -     5/1   4/1   0/3
 44 PB12       GPCLK1  12    -    -    4/0    -     4/0   3/0   0/0
 45 PB13       GPCLK2  13    -    -    4/1    -     4/1   3/1   0/1
 48 PB16     I2C_BCLK   0    -    -    5/0    -     6/0   3/0   0/4
 20 PA20    I2S_LRCLK   4    -    -    5/2   3/2    7/0   1/4   0/0
 21 PA21     I2S_SDIN   5    -    -    5/3   3/3    7/1   1/5   0/1
 22 PA22    I2S_SDOUT   6    -    -    3/0   5/1    4/0   1/6   0/2
 50 PB18     LCD_MISO   2    -    -    5/2   7/2     -    1/0    -
 51 PB19     LCD_MOSI   3    -    -    5/3   7/3     -    1/1    -
 52 PB20      LCD_SCK   4    -    -    3/0   7/1     -    1/2    -
 53 PB21       LCD_CS   5    -    -    3/1   7/0     -    1/3    -
 70 PC06      LCD_D/C   6    -    -    6/2    -      -     -     -
 71 PC07    LCD_RESET   9    -    -    6/3    -      -     -     -
 74 PC10       LCD_XL  10    -    -    6/2   7/2     -    0/0   1/4
 76 PC12       LCD_XR  12    -    -    7/0   6/1     -    0/2   1/6
 77 PC13       LCD_YD  13    -    -    7/1   6/0     -    0/3   1/7
 75 PC11       LCD_YU  11    -    -    6/3   7/3     -    0/1   1/5
 15 PA15     LED_BLUE  15    -    -    2/3   4/3    3/1   2/1   1/3
 69 PC05      LED_LCD   5    -    -    6/1    -      -     -     -
 94 PC30          MIC  14    -   12     -     -      -     -     -
 32 PB00         MISO   9   12    -     -    5/2    7/0    -     -
 34 PB02         MOSI   2   14    -     -    5/0    6/0   2/2    -
 35 PB03          SCK   9   15    -     -    5/1    6/1    -     -
 12 PA12         SCL0  12    -    -    2/0   4/1    2/0   0/6   1/2
 13 PA13         SDA0  13    -    -    2/1   4/0    2/1   0/7   1/3
 16 PA16         SCL1   0    -    -    1/0   3/1    2/0   1/0   0/4
 17 PA17         SDA1   1    -    -    1/1   3/0    2/1   1/1   0/5
117 PD21       SD_DET  11    -    -    1/3   3/3     -    1/1    -
 83 PC19        SD_CS   3    -    -    6/3   0/3     -    0/3    -
 82 PC18      SD_MISO   2    -    -    6/2   0/2     -    0/2    -
 43 PB11      QSPI_CS  12    -    -     -     4/3   5/1   0/5   1/1
  8 PA08      QSPI_D0   -    8    2    0/0    2/1   0/0   0/0   1/4
  9 PA09      QSPI_D1   9    9    3    0/1    2/0   0/1   0/1   1/5
 10 PA10      QSPI_D2  10   10    -    0/2    2/2   1/0   0/2   1/6
 11 PA11      QSPI_D3  11   11    -    0/3    2/3   1/1   0/3   1/7
 42 PB10     QSPI_SCK  10    -    -     -     4/2   5/0   0/4   1/0
 80 PC16      SD_MOSI   0    -    -    6/0   0/1     -    0/0    -
 81 PC17       SD_SCK   1    -    -    6/1   0/0     -    0/1    -
 30 PA30        SWCLK  14    -    -    7/2   1/2    6/0   2/0    -
 31 PA31        SWDIO  15    -    -    7/3   1/3    6/1   2/1    -
108 PD12     SWITCH_B   7    -    -     -     -      -    0/5    -
116 PD20     SWITCH_U  10    -    -    1/2   3/2     -    1/0    -
104 PD08     SWITCH_X   3    -    -    7/0   6/1     -    0/1    -
105 PD09     SWITCH_Y   4    -    -    7/1   6/0     -    0/2    -
106 PD10     SWITCH_Z   5    -    -    7/2   6/2     -    0/3    -
 24 PA24       USB_DM   8    -    -    3/2   5/2    5/0   2/2    -
 25 PA25       USB_DP   9    -    -    3/3   5/3    5/1    -     -
  0 PA00            -   0    -    -     -    1/0    2/0    -     -
  1 PA01            -   1    -    -     -    1/1    2/1    -     -
  2 PA02            -   2    0    -     -     -      -     -     -
  3 PA03            -   3   10    -     -     -      -     -     -
  5 PA05            -   5    5    -     -    0/1    0/1    -     -
 14 PA14            -  14    -    -    2/2   4/2    3/0   2/0   1/2
 18 PA18            -   2    -    -    1/2   3/2    3/0   1/2   0/6
 19 PA19            -   3    -    -    1/3   3/3    3/1   1/3   0/7
 23 PA23            -   7    -    -    3/1   5/0    4/1   1/7   0/3
 27 PA27            -  11    -    -     -     -      -     -     -
 46 PB14            -  14    -    -    4/2    -     5/0   4/0   0/2
 49 PB17            -   1    -    -    5/1    -     6/1   3/1   0/5
 54 PB22            -  22    -    -    1/2   5/2    7/0    -     -
 55 PB23            -   7    -    -    1/3   5/3    7/1    -     -
 56 PB24            -   8    -    -    0/0   2/1     -     -     -
 57 PB25            -   9    -    -    0/1   2/0     -     -     -
 60 PB28            -  14    -    -    2/2   4/2     -    1/4    -
 61 PB29            -  15    -    -    2/3   4/3     -    1/5    -
 62 PB30            -  14    -    -    7/0   5/1    0/0   4/0   0/6
 63 PB31            -  15    -    -    7/1   5/0    0/1   4/1   0/7
 64 PC00            -   0    -   10     -     -      -     -     -
 65 PC01            -   1    -   11     -     -      -     -     -
 66 PC02            -   2    -    4     -     -      -     -     -
 67 PC03            -   3    -    5     -     -      -     -     -
 68 PC04            -   4    -    -    6/0    -      -    0/0    -
 84 PC20            -   4    -    -     -     -      -    0/4    -
 85 PC21            -   5    -    -     -     -      -    0/5    -
 86 PC22            -   6    -    -    1/0   3/1     -    0/5    -
 87 PC23            -   7    -    -    1/1   3/0     -    0/7    -
 88 PC24            -   8    -    -    0/2   2/2     -     -     -
 89 PC25            -   9    -    -    0/3   2/3     -     -     -
 95 PC31            -  15    -   13     -     -      -     -     -
 96 PD00            -   0    -   14     -     -      -     -     -
 97 PD01            -   1    -   15     -     -      -     -     -
=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====

For the definition of the table columns see the explanation at the table for
Adafruit ItsyBitsy M4 Express :ref:`samd51_pinout_table`.

Default pin assignments:
- UART 2 at pins PB27 and PB26, labelled RX and TX
- I2C 4 at pins PA12 and PA13, labelled SCL0 and SDA0
- I2C 3 at pins PA16 and PA17, labelled SCL1 and SDA1
- SPI 5 at pins PB00, PB02 and PB03, labelle MISO, MOSI and SCK

There seems to be no default pin assignment for this board.

Sparkfun SAMD51 Thing Plus pin assignment table
------------------------------------------------

=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====
Pin GPIO Pin name     IRQ  ADC  ADC  Serial Serial  TC    PWM   PWM
=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====
  2 PA02           A0   2    0    -     -      -     -     -     -
 40 PB08           A1   8    2    0     -     4/0   4/0    -     -
 41 PB09           A2   9    3    1     -     4/1   4/1    -     -
  4 PA04           A3   4    4    -     -     0/0   0/0    -     -
  5 PA05           A4   5    5    -     -     0/1   0/1    -     -
 34 PB02           A5   2   14    -     -     5/0   6/0   2/2    -
 13 PA13           D0  13    -    -    2/1    4/0   2/1   0/7   1/3
 12 PA12           D1  12    -    -    2/0    4/1   2/0   0/6   1/2
  6 PA06           D4   6    6    -     -     0/2   1/0    -     -
 15 PA15           D5  15    -    -    2/3    4/3   3/1   2/1   1/3
 20 PA20           D6   4    -    -    5/2    3/2   7/0   1/4   0/0
 21 PA21           D7   5    -    -    5/3    3/3   7/1   1/5   0/1
  7 PA07           D9   7    7    -     -     0/3   1/1    -     -
 18 PA18          D10   2    -    -    1/2    3/2   3/0   1/2   0/6
 16 PA16          D11   0    -    -    1/0    3/1   2/0   1/0   0/4
 19 PA19          D12   3    -    -    1/3    3/3   3/1   1/3   0/7
 17 PA17          D13   1    -    -    1/1    3/0   2/1   1/1   0/5
 10 PA10     FLASH_CS  10   10    -    0/2    2/2   1/0   0/2   1/6
 11 PA11   FLASH_MISO  11   11    -    0/3    2/3   1/1   0/3   1/7
  8 PA08   FLASH_MOSI   -    8    2    0/0    2/1   0/0   0/0   1/4
  9 PA09    FLASH_SCK   9    9    3    0/1    2/0   0/1   0/1   1/5
 13 PA13           RX  13    -    -    2/1    4/0   2/1   0/7   1/3
 12 PA12           TX  12    -    -    2/0    4/1   2/0   0/6   1/2
 43 PB11         MISO  12    -    -     -     4/3   5/1   0/5   1/1
 44 PB12         MOSI  12    -    -    4/0     -    4/0   3/0   0/0
 55 PB23          RXD   7    -    -    1/3    5/3   7/1    -     -
 35 PB03        RXLED   9   15    -     -     5/1   6/1    -     -
 45 PB13          SCK  13    -    -    4/1     -    4/1   3/1   0/1
 23 PA23          SCL   7    -    -    3/1    5/0   4/1   1/7   0/3
 22 PA22          SDA   6    -    -    3/0    5/1   4/0   1/6   0/2
 30 PA30        SWCLK  14    -    -    7/2    1/2   6/0   2/0    -
 31 PA31        SWDIO  15    -    -    7/3    1/3   6/1   2/1    -
 54 PB22          TXD  22    -    -    1/2    5/2   7/0    -     -
 27 PA27        TXLED  11    -    -     -      -     -     -     -
 24 PA24       USB_DM   8    -    -    3/2    5/2   5/0   2/2    -
 25 PA25       USB_DP   9    -    -    3/3    5/3   5/1    -     -
  0 PA00            -   0    -    -     -     1/0   2/0    -     -
  1 PA01            -   1    -    -     -     1/1   2/1    -     -
  3 PA03            -   3   10    -     -      -     -     -     -
 14 PA14            -  14    -    -    2/2    4/2   3/0   2/0   1/2
 32 PB00            -   9   12    -     -     5/2   7/0    -     -
 33 PB01            -   1   13    -     -     5/3   7/1    -     -
 36 PB04            -   4    -    6     -      -     -     -     -
 37 PB05            -   5    -    7     -      -     -     -     -
 38 PB06            -   6    -    8     -      -     -     -     -
 39 PB07            -   7    -    9     -      -     -     -     -
 42 PB10            -  10    -    -     -     4/2   5/0   0/4   1/0
 46 PB14            -  14    -    -    4/2     -    5/0   4/0   0/2
 47 PB15            -  15    -    -    4/3     -    5/1   4/1   0/3
 48 PB16            -   0    -    -    5/0     -    6/0   3/0   0/4
 49 PB17            -   1    -    -    5/1     -    6/1   3/1   0/5
 62 PB30            -  14    -    -    7/0    5/1   0/0   4/0   0/6
 63 PB31            -  15    -    -    7/1    5/0   0/1   4/1   0/7
=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====

For the definition of the table columns see the explanation at the table for
Adafruit ItsyBitsy M4 Express :ref:`samd51_pinout_table`.

The default devices at the board are:

- UART 2 at pins PA13/PA12, labelled RXD/TXD
- I2C 3 at pins PA22/PA23, labelled SDA/SCL
- SPI 4 at pins PB12/PB11/PB13, labelled MOSI, MISO and SCK
- DAC output on pins PA02 and PA05, labelled A0 and A4

Generic SAMD21x18 pin assignment table
--------------------------------------

=== ==== ============ ==== ==== ====== ====== ====== ======
Pin GPIO Name/Package IRQ  ADC  Serial Serial TCC/TC TCC/TC
=== ==== ============ ==== ==== ====== ====== ====== ======
  0 PA00     EGJ        0    -     -     1/0    2/0     -
  1 PA01     EGJ        1    -     -     1/1    2/1     -
  2 PA02     EGJ        2    0     -      -      -      -
  3 PA03     EGJ        3    1     -      -      -      -
  4 PA04     EGJ        4    4     -     0/0    0/0     -
  5 PA05     EGJ        5    5     -     0/1    0/1     -
  6 PA06     EGJ        6    6     -     0/2    1/0     -
  7 PA07     EGJ        7    7     -     0/3    1/1     -
  8 PA08     EGJ        -   16    0/0    2/0    0/0    1/2
  9 PA09     EGJ        9   17    0/1    2/1    0/1    1/3
 10 PA10     EGJ       10   18    0/2    2/2    1/0    0/2
 11 PA11     EGJ       11   19    0/3    2/3    1/1    0/3
 12 PA12      GJ       12    -    2/0    4/0    2/0    0/6
 13 PA13      GJ       13    -    2/1    4/1    2/0    0/7
 14 PA14     EGJ       14    -    2/2    4/2    3/0    0/4
 15 PA15     EGJ       15    -    2/3    4/3    3/1    0/5
 16 PA16     EGJ        0    -    1/0    3/0    2/0    0/6
 17 PA17     EGJ        1    -    1/1    3/1    2/1    0/7
 18 PA18     EGJ        2    -    1/2    3/2    3/0    0/2
 19 PA19     EGJ        3    -    1/3    3/3    3/1    0/3
 20 PA20      GJ        4    -    5/2    3/2    7/0    0/4
 21 PA21      GJ        5    -    5/3    3/3    7/1    0/7
 22 PA22     EGJ        6    -    3/0    5/0    4/0    0/4
 23 PA23     EGJ        7    -    3/1    5/1    4/1    0/5
 24 PA24  USB_DM       12    -    3/2    5/2    5/0    1/2
 25 PA25  USB_DP       13    -    3/3    5/3    5/1    1/3
 27 PA27     EGJ       15    -     -      -      -      -
 28 PA28     EGJ        8    -     -      -      -      -
 30 PA30   SWCLK       10    -     -     1/2    1/0     -
 31 PA31   SWDIO       11    -     -     1/3    1/1     -
 32 PB00       J        0    8     -     5/2    7/0     -
 33 PB01       J        1    9     -     5/3    7/1     -
 34 PB02      GJ        2   10     -     5/0    6/0     -
 35 PB03      GJ        3   11     -     5/1    6/1     -
 36 PB04       J        4   12     -      -      -      -
 37 PB05       J        5   13     -      -      -      -
 38 PB06       J        6   14     -      -      -      -
 39 PB07       J        7   15     -      -      -      -
 40 PB08      GJ        8    2     -     4/0    4/0     -
 41 PB09      GJ        9    3     -     4/1    4/1     -
 42 PB10      GJ       10    -     -     4/2    5/0    0/4
 43 PB11      GJ       11    -     -     4/3    5/1    0/5
 44 PB12       J       12    -    4/0     -     4/0    0/6
 45 PB13       J       13    -    4/1     -     4/1    0/7
 46 PB14       J       14    -    4/2     -     5/0     -
 47 PB15       J       15    -    4/3     -     5/1     -
 48 PB16       J        0    -    5/0     -     6/0    0/4
 49 PB17       J        1    -    5/1     -     6/1    0/5
 54 PB22      GJ        6    -     -     5/2    7/0     -
 55 PB23      GJ        7    -     -     5/3    7/1     -
 62 PB30       J       14    -     -     5/0    0/0    1/2
 63 PB31       J       15    -     -     5/1    0/1    1/3
=== ==== ============ ==== ==== ====== ====== ====== ======

For the definition of the table columns see the explanation at the table for
Adafruit ItsyBitsy M0 Express :ref:`samd21_pinout_table`.

The Package column indicates the package letter providing this pin. An entry
EGJ tells for instance, that the pin is available for SAMD21E18, SAMD21G18 and
SAMD21J18.


Generic SAMD51x19 and SAM51x20 pin assignment table
---------------------------------------------------

For the definition of the table columns see the explanation at the table for
Adafruit ItsyBitsy M4 Express :ref:`samd51_pinout_table`.

=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====
Pin GPIO Name/Package IRQ  ADC  ADC  Serial Serial  TC    PWM   PWM
=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====
  8 PA08    QSPI_D0     -    8    2    0/0    2/1   0/0   0/0   1/4
  9 PA09    QSPI_D1     9    9    3    0/1    2/0   0/1   0/1   1/5
 10 PA10    QSPI_D2    10   10    -    0/2    2/2   1/0   0/2   1/6
 11 PA11    QSPI_D3    11   11    -    0/3    2/3   1/1   0/3   1/7
 42 PB10   QSPI_SCK    10    -    -     -     4/2   5/0   0/4   1/0
 23 PA23    USB_SOF     7    -    -    3/1    5/0   4/1   1/7   0/3
 24 PA24     USB_DM     8    -    -    3/2    5/2   5/0   2/2    -
 25 PA25     USB_DP     9    -    -    3/3    5/3   5/1    -     -
  0 PA00      GJP       0    -    -     -     1/0   2/0    -     -
  1 PA01      GJP       1    -    -     -     1/1   2/1    -     -
  2 PA02      GJP       2    0    -     -      -     -     -     -
  3 PA03      GJP       3   10    -     -      -     -     -     -
  4 PA04      GJP       4    4    -     -     0/0   0/0    -     -
  5 PA05      GJP       5    5    -     -     0/1   0/1    -     -
  6 PA06      GJP       6    6    -     -     0/2   1/0    -     -
  7 PA07      GJP       7    7    -     -     0/3   1/1    -     -
 12 PA12      GJP      12    -    -    2/0    4/1   2/0   0/6   1/2
 13 PA13      GJP      13    -    -    2/1    4/0   2/1   0/7   1/3
 14 PA14      GJP      14    -    -    2/2    4/2   3/0   2/0   1/2
 15 PA15      GJP      15    -    -    2/3    4/3   3/1   2/1   1/3
 16 PA16      GJP       0    -    -    1/0    3/1   2/0   1/0   0/4
 17 PA17      GJP       1    -    -    1/1    3/0   2/1   1/1   0/5
 18 PA18      GJP       2    -    -    1/2    3/2   3/0   1/2   0/6
 19 PA19      GJP       3    -    -    1/3    3/3   3/1   1/3   0/7
 20 PA20      GJP       4    -    -    5/2    3/2   7/0   1/4   0/0
 21 PA21      GJP       5    -    -    5/3    3/3   7/1   1/5   0/1
 22 PA22      GJP       6    -    -    3/0    5/1   4/0   1/6   0/2
 27 PA27      GJP      11    -    -     -      -     -     -     -
 30 PA30      SWCLK    14    -    -    7/2    1/2   6/0   2/0    -
 31 PA31      SWDIO    15    -    -    7/3    1/3   6/1   2/1    -
 32 PB00       JP       0   12    -     -     5/2   7/0    -     -
 33 PB01       JP       1   13    -     -     5/3   7/1    -     -
 34 PB02      GJP       2   14    -     -     5/0   6/0   2/2    -
 35 PB03      GJP       3   15    -     -     5/1   6/1    -     -
 36 PB04       JP       4    -    6     -      -     -     -     -
 37 PB05       JP       5    -    7     -      -     -     -     -
 38 PB06       JP       6    -    8     -      -     -     -     -
 39 PB07       JP       7    -    9     -      -     -     -     -
 40 PB08      GJP       8    2    0     -     4/0   4/0    -     -
 41 PB09      GJP       9    3    1     -     4/1   4/1    -     -
 44 PB12       JP      12    -    -    4/0     -    4/0   3/0   0/0
 45 PB13       JP      13    -    -    4/1     -    4/1   3/1   0/1
 46 PB14       JP      14    -    -    4/2     -    5/0   4/0   0/2
 47 PB15       JP      15    -    -    4/3     -    5/1   4/1   0/3
 48 PB16       JP       0    -    -    5/0     -    6/0   3/0   0/4
 49 PB17       JP       1    -    -    5/1     -    6/1   3/1   0/5
 50 PB18        P       2    -    -    5/2    7/2    -    1/0    -
 51 PB19        P       3    -    -    5/3    7/3    -    1/1    -
 52 PB20        P       4    -    -    3/0    7/1    -    1/2    -
 53 PB21        P       5    -    -    3/1    7/0    -    1/3    -
 54 PB22      GJP       6    -    -    1/2    5/2   7/0    -     -
 55 PB23      GJP       7    -    -    1/3    5/3   7/1    -     -
 56 PB24        P       8    -    -    0/0    2/1    -     -     -
 57 PB25        P       9    -    -    0/1    2/0    -     -     -
 58 PB26        P      12    -    -    2/0    4/1    -    1/2    -
 59 PB27        P      13    -    -    2/1    4/0    -    1/3    -
 60 PB28        P      14    -    -    2/2    4/2    -    1/4    -
 61 PB29        P      15    -    -    2/3    4/3    -    1/5    -
 62 PB30       JP      14    -    -    7/0    5/1   0/0   4/0   0/6
 63 PB31       JP      15    -    -    7/1    5/0   0/1   4/1   0/7
 64 PC00        P       0    -   10     -      -     -     -     -
 65 PC01        P       1    -   11     -      -     -     -     -
 66 PC02        P       2    -    4     -      -     -     -     -
 67 PC03        P       3    -    5     -      -     -     -     -
 68 PC04        P       4    -    -    6/0     -     -    0/0    -
 69 PC05        P       5    -    -    6/1     -     -     -     -
 70 PC06        P       6    -    -    6/2     -     -     -     -
 71 PC07        P       9    -    -    6/3     -     -     -     -
 74 PC10        P      10    -    -    6/2    7/2    -    0/0   1/4
 75 PC11        P      11    -    -    6/3    7/3    -    0/1   1/5
 76 PC12        P      12    -    -    7/0    6/1    -    0/2   1/6
 77 PC13        P      13    -    -    7/1    6/0    -    0/3   1/7
 78 PC14        P      14    -    -    7/2    6/2    -    0/4   1/0
 79 PC15        P      15    -    -    7/3    6/3    -    0/5   1/1
 80 PC16        P       0    -    -    6/0    0/1    -    0/0    -
 81 PC17        P       1    -    -    6/1    0/0    -    0/1    -
 82 PC18        P       2    -    -    6/2    0/2    -    0/2    -
 83 PC19        P       3    -    -    6/3    0/3    -    0/3    -
 84 PC20        P       4    -    -     -      -     -    0/4    -
 85 PC21        P       5    -    -     -      -     -    0/5    -
 86 PC22        P       6    -    -    1/0    3/1    -    0/5    -
 87 PC23        P       7    -    -    1/1    3/0    -    0/7    -
 88 PC24        P       8    -    -    0/2    2/2    -     -     -
 89 PC25        P       9    -    -    0/3    2/3    -     -     -
 90 PC26        P      10    -    -     -      -     -     -     -
 91 PC27        P      11    -    -    1/0     -     -     -     -
 92 PC28        P      12    -    -    1/1     -     -     -     -
 94 PC30        P      14    -   12     -      -     -     -     -
 95 PC31        P      15    -   13     -      -     -     -     -
 96 PD00        P       0    -   14     -      -     -     -     -
 97 PD01        P       1    -   15     -      -     -     -     -
104 PD08        P       3    -    -    7/0    6/1    -    0/1    -
105 PD09        P       4    -    -    7/1    6/0    -    0/2    -
106 PD10        P       5    -    -    7/2    6/2    -    0/3    -
107 PD11        P       6    -    -    7/3    6/3    -    0/4    -
108 PD12        P       7    -    -     -      -     -    0/5    -
116 PD20        P      10    -    -    1/2    3/2    -    1/0    -
117 PD21        P      11    -    -    1/3    3/3    -    1/1    -
=== ==== ============ ==== ==== ==== ====== ====== ===== ===== =====


The Package column indicates the package letter providing this pin. An entry
GJP tells for instance, that the pin is available for SAMD51G19, SAMD51J19/-J20 and
SAMD51P19/-P20.

Scripts for creating the pin assignment tables
----------------------------------------------

The tables shown above were created with small a Python script running on the target board::

  from samd import pininfo
  from machine import Pin
  import os

  def print_item(e, txt):
      print(txt, end=": ")
      if e == 255:
          print(" - ", end="")
      else:
          print("%d/%d" % (e >> 4, e & 0x0f), end="")

  def print_pininfo(pin_id, name, info):

      print("%3d" % pin_id, end=" ")
      print("%4s %12s" % (info[0], name), end="")
      print(" IRQ:%2s" % (info[1] if info[1] != 255 else "-"), end="")
      print(" ADC0:%2s" % (info[2] if info[2] != 255 else "-"), end="")
      if len(info) == 7:
          print_item(info[3], " Serial1")
          print_item(info[4], " Serial2")
          print_item(info[5], " PWM1" if (info[5] >> 4) < 3 else "   TC")
          print_item(info[6], " PWM2")
      else:
          print(" ADC1:%2s" % (info[3] if info[3] != 255 else "-"), end="")
          print_item(info[4], " Serial1")
          print_item(info[5], " Serial2")
          print_item(info[6], " TC")
          print_item(info[7], " PWM1")
          print_item(info[8], " PWM2")
      print()

  def tblkey(i):
      name = i[1]
      if name != "":
          if len(name) < 3:
              return " " + name
          else:
              return name
      else:
          return "zzzzzzz%03d" % i[0]

  def pinnum(p):
      return (ord(p[1]) - ord("A")) * 32 + int(p[2:])

  def table(num = 127, sort=True):
      pintbl = []
      pinlist = []
      for name in Pin.board.__dict__.keys():
          p = Pin(name)
          pi = pininfo(p)
          pintbl.append((pinnum(pi[0]), name, pi))
          pinlist.append(p)
      for pc in Pin.cpu.__dict__.keys():
          p = Pin(pc)
          pi = pininfo(p)
          if not p in pinlist:
             pintbl.append((pinnum(pi[0]), "", pi))
      if sort:
          pintbl.sort(key=tblkey)
      for item in pintbl:
          print_pininfo(item[0], item[1], item[2])

  table()