Skip to content

Conversation

@chinh4thepro
Copy link

@chinh4thepro chinh4thepro commented Nov 2, 2025

I have added additional pins from the seeed xiao esp32s3 plus board to the already existing seeed xiao esp32s3 (sense) board port. I also formatted the mpconfigboard.h so that the arguments line up.

I have tested using the KMK firmware which relies on circuitpython and the pins work as intended.

ports/espressif/boards: add pins for seeed xiao esp32s3 plus
Comment on lines 51 to 59
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_GPIO38) },
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO39) },
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO40) },
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_GPIO41) },
{ MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_GPIO42) },
{ MP_ROM_QSTR(MP_QSTR_D16), MP_ROM_PTR(&pin_GPIO10) },
{ MP_ROM_QSTR(MP_QSTR_D17), MP_ROM_PTR(&pin_GPIO13) },
{ MP_ROM_QSTR(MP_QSTR_D18), MP_ROM_PTR(&pin_GPIO12) },
{ MP_ROM_QSTR(MP_QSTR_D19), MP_ROM_PTR(&pin_GPIO11) },
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These pins are available, but I don't see them labeled anywhere with Dn pin numbers. They seem to have specific functions in the schematic. Are there other uses of them with Dn` numbers? Thanks.

PDF Schematic is in this .zip file: https://files.seeedstudio.com/wiki/SeeedStudio-XIAO-ESP32S3/res/XIAO_ESP32S3_Plus_V1.0_SCH_PCB.zip

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you look on their website, they provide the Dn numbers on the pinout.

image

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make sense to add alias names for some of them? Do they have a dedicated purpose? I'm thinking about the MT* and I2S_* names? I don't know what they are normally connected to, if anything.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the I2S_* names are connected to the b2b connector usually, but the MT* pins aren't connected to anything other than the pads on the bottom of the board for both versions. Though, I'm not sure if I'm understanding what you're trying to ask me clearly. Like when you ask if they are connected to anything, do you mean if they are connected to a different part of the board serving a different purpose?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since there are pads that have silkscreen labels for MT*, add those as second names for the D* pin names.And go ahead and add the I2S* names too. We have the room and it will make any code that people write clearer. Thanks.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, this is great. Could you do just one more stylistic thing? Group the pin aliases and surround them with blank lines. This makes it easy to see that there are multiple names for a single pin, and to proofread the list. See https://learn.adafruit.com/how-to-add-a-new-board-to-circuitpython/pin-and-device-names#pin-aliases-3169489. So, for example:

    ...

    { MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO39) },
    { MP_ROM_QSTR(MP_QSTR_I2S_SCK), MP_ROM_PTR(&pin_GPIO39) },

    ...

Put the "primary" name of the pin first. So if you want D12 to be the primary name, put it first. Otherwise, swap them. Thanks.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Author

@chinh4thepro chinh4thepro Nov 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should I do it for the camera pins too or should I just leave them be?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do it for any pins that have more than one name.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, thanks.

Comment on lines 51 to 59
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_GPIO38) },
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO39) },
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO40) },
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_GPIO41) },
{ MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_GPIO42) },
{ MP_ROM_QSTR(MP_QSTR_D16), MP_ROM_PTR(&pin_GPIO10) },
{ MP_ROM_QSTR(MP_QSTR_D17), MP_ROM_PTR(&pin_GPIO13) },
{ MP_ROM_QSTR(MP_QSTR_D18), MP_ROM_PTR(&pin_GPIO12) },
{ MP_ROM_QSTR(MP_QSTR_D19), MP_ROM_PTR(&pin_GPIO11) },
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, this is great. Could you do just one more stylistic thing? Group the pin aliases and surround them with blank lines. This makes it easy to see that there are multiple names for a single pin, and to proofread the list. See https://learn.adafruit.com/how-to-add-a-new-board-to-circuitpython/pin-and-device-names#pin-aliases-3169489. So, for example:

    ...

    { MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO39) },
    { MP_ROM_QSTR(MP_QSTR_I2S_SCK), MP_ROM_PTR(&pin_GPIO39) },

    ...

Put the "primary" name of the pin first. So if you want D12 to be the primary name, put it first. Otherwise, swap them. Thanks.

Copy link
Collaborator

@dhalbert dhalbert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great, thanks for your patience with the style requests.

@dhalbert dhalbert merged commit ec7ab07 into adafruit:main Nov 4, 2025
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants