M5Stack AtomS3 — the three GPIO groups: exposed, shared with the IMU, and taken by the screen

AtomS3 GPIO budget in three groups: G5-G8 and port G1/G2 are exclusively free; G38/G39 are edge pads that double as the MPU6886 I2C bus (IO38=SDA, IO39=SCL); six GPIOs belong to the GC9107 LCD. With pad orders from the official PinMap.

Related products: M5Stack AtomS3 · ESP32-S3

Question this page answers: "The M5Stack AtomS3 looks tiny and cheap — which GPIOs can I actually use, and which are wired to the onboard screen or IMU?"

Count the AtomS3 budget in three groups. Every number below comes from the official pin-map page and its PinMap diagram.

Group 1 — exposed and exclusively free (6 GPIOs). The bottom edge (columns J3 left: 3V3 / G5 / G6 / G7 / G8, J4 right: G39 / G38 / 5V / GND, order per the official PinMap image) gives you G5, G6, G7 and G8 with no onboard load; the HY2.0-4P port (schematic connector J6, pin order G1/G2/5V/GND — the wire side reads mirrored: Black GND / Red 5V / Yellow G2 / White G1) adds G1 and G2, also load-free. Six GPIOs total are exclusively yours.

Group 2 — shared with the IMU (2 GPIOs). The right-column edge pads G38 and G39 are the MPU6886's I2C bus: the page states the back-side I2C pins share the same bus, IO38 = SDA and IO39 = SCL, talking to the IMU at address 0x68. You can still use them as GPIO or as your own I2C bus — but then you share the wire with the IMU, so bit-bang conflicts and bus traffic are yours to manage.

Group 3 — taken by the LCD (6 GPIOs). The 0.85-inch GC9107 screen holds MOSI=G21, SCK=G17, CS=G15, RS=G33, RST=G34, backlight=G16. Unless you are driving the panel yourself, those six are gone.

So the honest budget is: 6 GPIOs exclusively yours (G5/G6/G7/G8 on the edge pads, G1/G2 on the port), 2 more that coexist with the IMU's I2C traffic (G38/G39 on the right edge column — 8 exposed in total, but not 8 free), and 6 reserved for the panel. If a project needs more than that, a header board fits better — see the Thing Plus ESP32-S3 and Feather ESP32-S3 pages here. Full data record with per-pad sources: AtomS3; chip capabilities: ESP32-S3.