Hi everyone,
I’m working on a project with the Seeed Studio XIAO ESP32-C3 and I noticed that GPIO6 and GPIO7 are labeled as SDA and SCL in the official pinout diagram.
However, according to the ESP32-C3 datasheet and several sources online, GPIO6–11 are internally used for the QSPI flash, meaning they are reserved and should not be used for general-purpose I/O.
That raises the question:
Is it really safe to use GPIO6 (D4) and GPIO7 (D5) as I2C pins (SDA/SCL)?
I’d appreciate it if someone could confirm the safe GPIOs for I2C on the XIAO ESP32-C3, especially for use with WiFi and NeoPixel simultaneously.
Thanks in advance!
Hi there,
So , Absolutely no issues’ use them like you own’em…

HTH
GL
PJ 
1 Like
It may be obvious to some but perhaps offer the reason or support documentation for your answer in case the OP wants to find or verify your answer for themselves?
only conflict is if you have it installed in a grove shield
or if you are running a Lib that is activating the pins for some use
All pins of the XIAO are programmable… excemp for 3-5V 3v3 and GND
Again, not much help without some sort of “evidence” other than “just take your word for it”.
Explain why the grove shield causes issues?
What libs (non I2C) would use the pins?
Clearly if a lib uses the pins already for something other than I2C, one may not be able to use them for I2C (it would be possible to use the pins for both I2C and some other GPIO provided their universes don’t co-exist!).
Hi there,
JIC…
The XIAO ESP32-C3 does use GPIO6–11 for QSPI Flash, internally. But here’s the key:
These pins are reserved only internally when using native ESP-IDF and deep hardware-level configurations.
Seeed’s Arduino BSP remaps the internal flash to use the SPI_FLASH hardware interface, freeing up GPIO6–7 for I2C safely.
So, in practice:
- D4 (GPIO6) = SDA
- D5 (GPIO7) = SCL
- They are absolutely safe to use in Arduino on the XIAO ESP32-C3.
- Even while using Wi-Fi, NeoPixels, and I2C together — there are no bus conflicts.
HTH
GL
PJ 
Hi there,
Fair ask — and I get the urge to footnote everything in today’s info-hungry world.
But in some cases, especially with known working configs like the XIAO ESP32-C3, a nudge and a green light are exactly what people need — not a deep dive into QSPI internals or pin matrix gymnastics.
That said, Seeed Studio’s own pinout shows D4 (GPIO6) and D5 (GPIO7) labeled as I2C — and I’ve used them myself with WiFi and NeoPixel libraries without a hitch.
Documentation is great, but working code and hardware experience trump ambiguity in a spec sheet every time. 
I know you agree. 
HTH
GL
PJ 
Hi there,
I say “Good instincts on checking the datasheet — you’re right that GPIO6–11 are flash-connected on raw ESP32-C3 chips.
But Seeed’s board definition and Arduino BSP handle all that under the hood. On the XIAO ESP32-C3, GPIO6 (D4) and GPIO7 (D5) are safe and officially supported for I2C.
I’ve used them with WiFi and NeoPixels at the same time — all good.
”
to be clear…
HTH
GL
PJ 
Hi there ,
So a bow on it IMO would be
“Absolutely no issues — use them like you own 'em.”
That’s technically accurate for Arduino users with the XIAO ESP32-C3.
If YOU
were doing raw ESP-IDF on a custom ESP32-C3 board, the answer might be different — but on this board and toolchain, you’re in the clear.

HTH
GL
PJ 
Three replies and a “bow”!
Lots of initialisms and emojis, little light on actual substance. How about some actual evidence backing up those pretty statements?
Yeah? Naah.
It doesn’t matter if Arduino, Seeed, ESP-IDF or bare metal, the device has 4Mb embedded flash on the SPI allocated to GPIO12-17.
See Appendix A and Section 2.3.3 of ESP32C3 Datasheet for details.