The Microchip [ATSAMD51G19A data sheet ](http://ww1.microchip.com/downloads/en/D ... 01507C.pdf) states that pins `PA21` and `PA20` are available for `SERCOM5`, with `PA21` (D11) using `SERCOM5.3` (first column, so I assume primary) and that `PA20` (D10) is using `SERCOM5.2` (again, first column so assuming primary).

I’ve then looked at the [Adafruit guide](https://learn.adafruit.com/using-atsamd ... new-serial) for the ATSAMD21 (which I’ve used for SERCOMS before on Feather M0), to determine which enums to use for those SERCOM lines as there’s no guide for the SAMD51 without messing around with CircuitPython (please, consider adding some SAMD51 specifics for Arduino users):

The two together let us define the muxing. For example we can define which pin is for RX* SERCOM_RX_PAD_0 means RX on SERCOMn.0* SERCOM_RX_PAD_1 means RX on SERCOMn.1* SERCOM_RX_PAD_2 means RX on SERCOMn.2* SERCOM_RX_PAD_3 means RX on SERCOMn.3and then for TX:* UART_TX_PAD_0 means TX on SERCOMn.0* UART_TX_PAD_2 means TX on SERCOMn.2

If I’ve interpreted correctly (SERCOM5.3 => SERCOM_RX_PAD_3 and SERCOM5.2 => UART_TX_PAD_2), this is how I should be defining the UART port:

I’m not sure if I’ve missed something or made a mistake. Have all SERCOMs been fully implemented for the M4 processors? I've got as much out of the datasheets that I can actually understand, so I am now not sure how to proceed.

Below is the test sketch I am running with D11/10 connected to allow a loopback. No data is returned, I don't have an oscilloscope either to check the pins:

The SAMD51's SERCOMs work differently than the SAMD21's. Among other things, you can only configure them with specific sets of pins called 'IOSETs', which are listed in section 6.2.8.1 of the SAMD51 datasheet:

Then there are some additional details related to pin selection for a UART. Within an IOSET, only PAD0 will work as the TX pin, for instance. That isn't mentioned explicitly in any of the text, but shows up in the bit-field descriptions for SERCOM UART configuration in section 34.8.1

The SAMD51 board support package defines all five of the available SERCOMs though, and SERCOM 5 is available on the ItsyBitsy.

This thread has more information about configuring SAMD51 SERCOMS for Serial communication, but they cover different pins because SERCOM 5 is already used by some of our other boards.

adafruit_support_mike wrote:The SAMD51's SERCOMs work differently than the SAMD21's. Among other things, you can only configure them with specific sets of pins called 'IOSETs', which are listed in section 6.2.8.1 of the SAMD51 datasheet:

Then there are some additional details related to pin selection for a UART. Within an IOSET, only PAD0 will work as the TX pin, for instance. That isn't mentioned explicitly in any of the text, but shows up in the bit-field descriptions for SERCOM UART configuration in section 34.8.1

The SAMD51 board support package defines all five of the available SERCOMs though, and SERCOM 5 is available on the ItsyBitsy.

This thread has more information about configuring SAMD51 SERCOMS for Serial communication, but they cover different pins because SERCOM 5 is already used by some of our other boards.

Thanks for the response, I’ve closed that Github issue. I see only the sercoms used by default are initialised which makes sense, that threw me off thinking they weren’t implemented.

I’ve spent the last few days reading over the datasheet again (including section 33-34) but haven’t been able to decipher anything new. The sercom pins I identified seemingly match the IOSET pins in table 6.2.8.1 table6-15. Is the Dotstar using SERCOM5 by any chance on the ItsyBitsy M4? I wonder if there’s a conflict there.

If someone in the production/R&D team at Adafruit could spare some time and try implementing another UART SERCOM, because at this point anything additional I try is guesswork and the last thing I want is to have any of these expensive boards damaged. There’s clearly something I’m missing but I can’t figure out what it is.

I’m happy to juggle around the rest of my project’s IO connections if a different SERCOM is needed. Though I am using SPI, UART and I2C already by the default mapped pins.