the button on the left is the reset button… same as the reset button on the board… it was made for the original SAMD that did not have a reset button on board the user button is on D1
If you read this part about strapping pins and understand you may be able to get the boot button to function as a user button, but the reset pin as i understand pulls directly to ground in hardware
So there are a couple ways (2) AFAIK, use “&xiao_d” for the “D Pins” with these, “the SILK pins” i.e. the diagram pic or the
GPIO’s “&gpio0<pin..>”
USER button is already wired to GND on the board—keep GPIO_PULL_UP | GPIO_ACTIVE_LOW. Seeed Studio Files+1
D0 external button: wire D0 → switch → GND; no external resistor needed (we enable the internal pull-up). D0 maps to P1.04. Seeed Studio Files
Boot-time safety: Using D0 at runtime is fine. Just don’t hold it asserted at reset if any boot strap is ever assigned to that pad in other firmware.
I like using the onboard buttons, why NOT ? just don’t mess with them at boot time as always. I don’t like them location wise though, "Best in Button Class " goes to the C3 IMO.