Today we are going to look at the M5 Stack Atom S3, a new member of the popular M5 Stack family of devices that joins the Atom series, characterized by being the smallest in the product range.
For those who follow us on social media, you already know that I am a big fan of these devices. Personally, I consider them one of the most interesting #maker device brands at the moment.
So on the blog we have had the opportunity to test and review various other models of the M5 Stack family in this post. We also saw the M5 Paper, the M5 Stack Timer Camera X, and the M5 Stack Unit V2.
Today we are going to talk about a new member of the M5Stack Atom family, which will be available for purchase in a few days. We have had the opportunity to test it early thanks to the collaboration with M5 Stack.
The Atom models are the smallest in dimensions (though not in features) of the M5 Stack family. With their characteristic square shape of only 24x24mm, they are barely larger than a thumb, and smaller than a euro coin.
All of them are based on the ESP32, which is already a familiar face on the blog. Among them, the Atom Lite model features an RGB LED, while the Atom Matrix model has a 5x5 grid of RGB LEDs. Meanwhile, the Atom Echo model has a microphone and speaker…
Joining this series of devices is the new M5 Stack Atom S3, which is presented as an upgrade to the family. The S3 incorporates a 0.85” 128x128 px TFT screen driven by a GC9107 driver (very similar to the ST7789).

This model is powered by an ESP32-S3FN8, which gives the device its name. Specifically, we are looking at the ESP32-S3-WROOM-1-N8 model, which features a dual-core LX7 microprocessor with speeds up to 240 MHz.
The Atom S3 has 512 KB of SRAM, 384 KB of ROM, and 8 MB of flash memory. Something it shares with the rest of the M5 Stack Atom series devices, and which is more than enough for most projects.
Regarding wireless connectivity, which is one of the strengths of the ESP32, we find the usual WiFi connectivity IEEE 802.11 b/g/n; 2.4 GHz; HT20/40 up to 150 Mbps. As for Bluetooth connectivity, it is also available in Bluetooth Low Energy 5.0 format (BLE 5.0).
The Atom S3 also features an integrated 6 DOF MPU6886 IMU which, together with the TFT screen, offers a wide range of possibilities. We only miss that magnetic compass, which would add the remaining 3DOF to reach 9DOF, and would be a very interesting addition, for example, for building robots.
Regarding connections and electronics, the M5 Stack Atom S3 has 6 GPIOs, 1 IR LED, a Grove port and a reset button under the screen, as well as two 12-bit ADCs, UART, I2C, and SPI.
The connection, both for power and programming, is done via USB-C. Something common with the rest of the M5 Stack family that, personally, I think is a very good choice, and other manufacturers could adopt as a standard.

The only point for improvement we can find is that the screen is exposed to the outside on one side. Besides being a possible source of dirt entry, the main issue is that the screen can rotate slightly. I imagine that, being such a small device, they didn’t have space to close it completely.
Regarding programming, like the rest of the M5Stack family based on the ESP32, the Atom S3 is compatible with the Arduino environment and similar. It can also be programmed in MicroPython or similar, and in M5Stack’s own no-code graphical environment, called UIFlow.
Here is the link to the M5AtomS3 Github repo https://github.com/m5stack/M5AtomS3. It includes a factory test for http://platform.io and the library for the Arduino environment.
It has worked for me using the M5Unified library. I leave you basic code, which compiles and uploads correctly to the board. You must choose the board model ‘ESP32 S3 Dev Module’
#include <m5unified.h>
void setup(void)
{
M5.begin();
M5.Display.fillScreen(TFT_RED);
M5.Display.fillCircle(64, 64, 5, TFT_WHITE);
}
void loop()
{
M5.update();
}
In conclusion, the M5 Stack Atom S3 is a very interesting device that joins the already extensive M5 Stack family. Its small size, the TFT and the IMU, combined with the power of its ESP32-S3 processor, make it a very attractive option for any maker or robotics or IoT project.
It is clearly going to become one of my favorite devices, only surpassed by its “bigger brother”, the great M5Stick-C Plus. But, in any case, it is a very interesting (and fun) device. The rest of the information is on the project page https://docs.m5stack.com/en/core/AtomS3
Bonus pack
For platformio you can use this board configuration.
[env:ATOMS3]
platform = [email protected]
framework = arduino
platform_packages = platformio/framework-arduinoespressif32@^3.20005.220925
board = esp32-s3-devkitc-1
lib_ldf_mode = deep
monitor_speed = 115200
upload_port = /dev/cu.usbmodem14301
upload_speed = 1500000
board_build.f_cpu = 240000000L
board_build.f_flash = 80000000L
board_build.flash_mode = dio
build_flags =
-DCORE_DEBUG_LEVEL=3
-Iinclude

