-
Notifications
You must be signed in to change notification settings - Fork 1.3k
ports/espressif: add pins for seeed xiao esp32s3 plus board #10701
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
ports/espressif/boards: add pins for seeed xiao esp32s3 plus
| { 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) }, |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay, thanks.
| { 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) }, |
There was a problem hiding this comment.
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.
dhalbert
left a comment
There was a problem hiding this 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.

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.hso that the arguments line up.I have tested using the KMK firmware which relies on circuitpython and the pins work as intended.