M5Stack · ESP32-S3 · 0.85" · 128×128
M5Stack AtomS3 0.85" specifications
The M5Stack AtomS3 is a 24 × 24 mm cube that weighs under 7 g, yet it carries a 0.85-inch 128×128 IPS display (GC9107, SPI) — and the whole screen is a button. Press the display to trigger the programmable key underneath.
Inside is an ESP32-S3FN8 with 8 MB of flash, an MPU6886 6-axis IMU, an infrared transmitter, USB-C for power and programming, a Grove (HY2.0-4P) port and six GPIOs on the bottom header.
The AtomS3 is designed as a smart node for M5Stack's ecosystem of Units, but with LVGL it also makes a neat stand-alone mini display: a tiny remote, a status cube or a tilt-controlled indicator. LCD Ultra Pro's export includes a GC9107 display driver matched to M5Stack's own code, so the screen works without extra setup.
- Screen
- 0.85" · 128×128
- Chip
- ESP32-S3
- Memory
- 8 MB flash, no PSRAM
- Input
- no touch
Key features
- 0.85-inch IPS, 128×128, GC9107
- Whole screen works as a button
- ESP32-S3FN8, 8 MB flash
- MPU6886 6-axis IMU
- Infrared transmitter
- Grove port and 6 GPIOs, 24 × 24 mm, 6.9 g
Specifications
| Manufacturer | M5Stack |
|---|---|
| Screen size | 0.85" |
| Resolution | 128×128 px |
| Colour depth | 16-bit |
| Display controller | GC9107 (SPI) |
| Display interface | SPI |
| Touch | None — 1 physical button(s) instead |
| Microcontroller | ESP32-S3 |
| Module | ESP32-S3FN8 |
| CPU clock | 240 MHz |
| Internal SRAM | 512 KB |
| PSRAM | None |
| Flash | 8 MB |
| Wi-Fi | Yes |
| Bluetooth | Yes |
| Display type | IPS LCD, SPI |
| IMU | MPU6886 (I2C 0x68) |
| IR | Infrared transmitter |
| Button | 1 programmable button under the screen |
| Expansion | Grove HY2.0-4P; GPIO 5, 6, 7, 8, 38, 39 on the bottom |
| Power | 5 V via USB-C |
| Dimensions | 24.0 × 24.0 × 12.9 mm |
| Weight | 6.9 g |
| Development platforms (manufacturer) | UiFlow2, Arduino IDE, ESP-IDF, PlatformIO |
GPIO pinout
The GPIOs the board itself uses — display, touch and on-board peripherals — as published in the manufacturer’s documentation.
| GPIO | Function |
|---|---|
| GPIO 4 | IR emitter |
| GPIO 15 | TFT_CS |
| GPIO 16 | Backlight (TFT_BL, 500 Hz PWM recommended) |
| GPIO 17 | TFT_SCLK |
| GPIO 21 | TFT_MOSI |
| GPIO 33 | TFT_DC (RS) |
| GPIO 34 | TFT_RST |
| GPIO 38 | I2C_SDA (IMU MPU6886) — also on the bottom pins |
| GPIO 39 | I2C_SCL (IMU MPU6886) — also on the bottom pins |
| GPIO 41 | BUTTON (programmable button) |
Source: docs.m5stack.com. Always check against your board revision before wiring.
Free GPIOs and connectors
These GPIOs are not used by the display, touch or on-board peripherals, so you can wire your own sensors, buttons or relays to them.
| Pin | Capabilities | Note |
|---|---|---|
| GPIO 1 | GPIO, PWM, ADC | Grove port (HY2.0-4P, white) |
| GPIO 2 | GPIO, PWM, ADC | Grove port (HY2.0-4P, yellow) |
| GPIO 5 | GPIO, PWM, ADC | On the bottom pin header — ADC1 |
| GPIO 6 | GPIO, PWM, ADC | On the bottom pin header — ADC1 |
| GPIO 7 | GPIO, PWM, ADC | On the bottom pin header — ADC1 |
| GPIO 8 | GPIO, PWM, ADC | On the bottom pin header — ADC1 |
- Grove port — GPIO 2, 1
HY2.0-4P — a good I2C port for sensors
- Bottom pin header — GPIO 5, 6, 7, 8
- Bottom I2C pins — GPIO 38, 39 (SDA, SCL)
Same I2C bus as the built-in IMU (MPU6886, 0x68)
Good to know before you start
- No PSRAM: 128×128 is small enough, but keep images and fonts modest.
- The Grove port (GPIO 1/2) is a good I2C port for sensors; GPIO 38/39 share the bus with the IMU.
- GPIO 5–8 on the bottom header are ADC1 pins, so analog readings work with Wi-Fi on.
- Only 0° orientation is offered in LCD Ultra Pro for this board.
What it is good for
- •Tiny remotes and smart buttons
- •Status cubes for home automation
- •Tilt and motion indicators using the IMU
- •IR remote controls
LVGL support in LCD Ultra Pro
| Driver status | Matched to the manufacturer’s official demo, compile-tested |
|---|---|
| Arduino export | Complete LVGL 8.4 project with the display driver |
| USB Live preview | No |
| Orientations | 0° |
| Brightness control | Hardware backlight dimming |
Pick this board in the editor and the canvas matches its exact resolution and shape. Build the interface with widgets, add events without code, try it in Live Preview, then export it as a ready-to-compile Arduino project. See the documentation for the workflow.
Frequently asked questions
What display does the AtomS3 have?
A 0.85-inch 128×128 IPS display with a GC9107 controller.
Does the AtomS3 have PSRAM?
No. It uses an ESP32-S3FN8 with 8 MB of flash and no PSRAM.
How do I press the AtomS3's button?
The programmable button sits under the display — press the screen itself.
Which sensors are built in?
An MPU6886 6-axis IMU; the AtomS3 also has an infrared transmitter.
Sources
Specifications cross-checked against the manufacturer’s documentation (last checked 2026-10-27):
Last updated: