M5Stick S3 · Volume 2

M5Stack M5StickS3 Volume 2 — Hardware Deep Dive

ESP32-S3-PICO-1-N8R8 SIP + ST7789P3 display + audio chain + 6-axis IMU + IR TX/RX + 250 mAh power tree

Contents

SectionTopic
1About this volume
2The ESP32-S3-PICO-1-N8R8 SIP module
· 2.1SoC specifications
· 2.2Why no BT classic matters
· 2.3Why OPI PSRAM matters
· 2.4SIP vs WROOM — the form-factor delta
3Display — ST7789P3 1.14″ 135×240 IPS
4Buttons + tactile inputs
5Audio chain summary (full deep dive Vol 5)
6IMU — 6-axis (BMI270 or MPU6886 TBD)
7IR transmitter and receiver
8USB-C OTG + native USB-CDC
9Power subsystem — 250 mAh LiPo + PMIC + brownout
10Mechanical — enclosure, magnetic back, lanyard
11Per-subsystem BOM highlights
12What isn’t on board (and where to find it)
13Resources

1. About this volume

Vol 2 walks the M5StickS3 hardware at functional-block level. The audio chain gets a summary here and the full deep dive in Vol 5 (the standout-feature volume). Pinout details live in Vol 3.

Disclosure on depth: M5Stack does not publish a full M5StickS3 schematic PDF. This volume describes the design pattern using vendor docs at docs.m5stack.com, chip datasheets for the named components, and community teardowns. Specific component values (resistor values, capacitor sizes, exact PCB-trace lengths) are not publicly available; functional-block level is the practical limit. Where vendor docs pin down a specific part number, this volume cites it; everywhere else, the description is at “an N-channel I²S codec” rather than “specifically X chip.”


2. The ESP32-S3-PICO-1-N8R8 SIP module

The M5StickS3 is built around ESP32-S3-PICO-1-N8R8 — Espressif’s most-integrated ESP32-S3 form factor.

2.1 SoC specifications

ParameterValueNotes
CoreXtensa LX7 dual-core @ 240 MHzLX7 not LX6 — incompatible binary with classic ESP32 (StickC family)
RAM512 KB SRAMSame as Cardputer ADV
Flash8 MB (in-package)Same as Cardputer ADV’s ESP32-S3FN8
PSRAM8 MB OPI (in-package)Differs from Cardputer ADV — Cardputer ADV has NO PSRAM. PSRAM is the M5StickS3’s standout hardware advantage in the family
Wi-Fi2.4 GHz only, 802.11 b/g/n (Wi-Fi 4)No 5 GHz. Same silicon limit as Cardputer ADV
BluetoothBT 5.0 LE onlyNo BT classic. ESP32-S3 silicon limitation
USBNative USB-OTG full-speed (12 Mbps)No UART bridge chip — direct ESP32-S3 USB peripheral
CryptoHardware AES-128/192/256, SHA-1/224/256/384/512, RSA, ECC, secure boot v2, flash encryptionStandard ESP32-S3
GPIO count~47 routed externally on the PICO-1 SIPPlenty for M5StickS3’s modest peripheral count

2.2 Why no BT classic matters

ESP32-S3 has no Bluetooth Classic radio — BLE 5.0 only. The classic ESP32 in the StickC Plus 2 supports BT classic enumeration (Bluetooth speakers, headsets, legacy peripherals); the M5StickS3 cannot.

Operational implication: if BT-classic enumeration is the use case (rare in 2026; almost everything has moved to BLE), the M5StickS3 is the wrong tool. Use M5StickC Plus 2 (classic ESP32 silicon) for that niche. For everything else, the M5StickS3 wins on silicon class.

2.3 Why OPI PSRAM matters

The PICO-1-N8R8 includes 8 MB of Octal-SPI (OPI) PSRAM — an 8-data-line interface to external pseudo-static RAM, integrated into the SIP package.

This is the single biggest hardware-tier advantage the M5StickS3 has over the Cardputer ADV:

Use caseWithout PSRAM (Cardputer ADV)With 8 MB OPI PSRAM (M5StickS3)
Wi-Fi scan-result bufferCapped at ~500 entries (RAM-limited)Can hold ~5000+ entries
Audio recording bufferLimited to seconds (16 KB chunks to SD)Multi-minute buffers in PSRAM
MicroPython heap~150 KB usable~1.5 MB+ usable (10× more comfortable)
Image / framebufferSingle buffer maxMultiple buffers, double-buffering possible
Wake-word model storageesp-skainet Multinet5 ~800 KB — must mmap from flashLoaded into PSRAM at boot — faster + less flash wear
Large WAV file streamingSD-card-boundPSRAM-bound (much faster)

The OPI PSRAM build flag is mandatory:

board_build.arduino.memory_type = qio_opi   ; ← REQUIRED for M5StickS3 builds

This translates to ESP-IDF’s CONFIG_SPIRAM_MODE_OCT=y. Without it, PSRAM doesn’t initialize, ESP.getFreePsram() returns 0, and any firmware that assumed PSRAM availability degrades silently. Most-common new-user mistake when porting Cardputer-ADV firmware to M5StickS3.

2.4 SIP vs WROOM — the form-factor delta

ESP32-S3 ships in two main module form factors that M5Stack uses across its lineup:

ModuleUsed inPackage sizePin density
PICO-1 (System-in-Package)M5StickS3, some M5Atom variants~13×16 mmHigh — minimal external components
WROOM-1 (canonical module)Cardputer ADV (Stamp-S3A is WROOM-1-based)~18×25 mmMedium — antenna trace + standard pin spacing

The PICO-1 is denser because more components (flash, PSRAM) are inside the SIP package. The WROOM-1 has the same silicon but more external. For the M5StickS3’s 48×24×15 mm enclosure, the PICO-1’s compact size is necessary.

PCB-trace antenna is on the SIP package itself — no separate antenna trace on the M5StickS3 mainboard. Range characteristics: line-of-sight 30-50 m at +20 dBm, comparable to Cardputer ADV.


3. Display — ST7789P3 1.14″ 135×240 IPS

The M5StickS3 uses a 1.14″ IPS LCD with the ST7789P3 controller. The “P3” suffix is a slight variant of the more-common ST7789V2; M5Unified handles both transparently.

ParameterValueNotes
ControllerSitronix ST7789P3M5Unified driver supports
Resolution135 × 240 (portrait native)Smaller than Cardputer ADV’s 240×135 landscape
Pixel density~260 PPISame as Cardputer ADV (same panel class)
InterfaceSPI 4-wire (MOSI + SCK + CS + DC) + RST + BLDC = data/command. BL = PWM-able backlight
Clock40 MHz typical, pushable to 60 MHzAt 40 MHz, full-screen refresh ~17 ms
Refresh rate~30 fps realizedSmooth for menu / FFT visualization
BusDedicated SPI to ESP32-S3No microSD on M5StickS3 — no bus contention
BacklightPWM via GPIOM5Unified M5.Display.setBrightness(0-255)
TouchscreenNoneButtons-only input

Visible text capacity at default 6×8 font:

  • Portrait (135 × 240): ~22 columns × ~30 rows
  • Landscape (240 × 135 via setRotation(1)): ~40 columns × ~16 rows

UI patterns from Cardputer ADV (240×135 landscape) need re-flow for M5StickS3 (135×240 portrait). 22 columns is materially fewer than 40 — text labels need shortening or font-size adjustment.


4. Buttons + tactile inputs

The M5StickS3 has programmable buttons in the StickC-family layout (verify on hardware — vendor product page doesn’t fully document):

  • Button A: top-front, primary action
  • Button B: side, secondary action
  • Power button: side, dual-function — short-press wakes from sleep, long-press (>2 sec) is hardware shutdown

M5Unified API:

M5.update();   // Must call every loop iteration to poll buttons

if (M5.BtnA.wasPressed())  { /* Button A pressed once */ }
if (M5.BtnA.isHeld())      { /* Button A held > ~300 ms */ }
if (M5.BtnA.wasReleased()) { /* Button A released */ }

Long-press power button (>2 sec) is hardware-level — firmware cannot intercept. This is by design; provides an unconditional shutdown path that firmware bugs can’t disable.

Button debounce is handled by M5Unified — typically ~10 ms debounce window.

Two-button UI implications:

The Cardputer ADV has 56-key QWERTY + 4-5 buttons; the M5StickS3 has 2 programmable buttons. This shapes firmware UI design:

  • Pattern A: Button A = advance / select, Button B = back / cancel. The most common.
  • Pattern B: Button A = cycle through options, Button B = confirm. Used when Button A long-press is unavailable.
  • Pattern C: chord patterns (A+B simultaneously) for additional commands. Adds complexity; avoid in user-facing menus.

Pick a pattern and stick with it. Inconsistent button mapping across firmware modes is a common user-experience problem.


5. Audio chain summary (full deep dive Vol 5)

Brief summary; full coverage in Vol 5.

   MEMS mic (65 dB SNR) ─→ ES8311 codec ─→ AW8737 amp ─→ 8 Ω 1 W speaker
                              I²S audio + I²C config (addr 0x18)

Components:

  • MEMS microphone — 65 dB SNR, omnidirectional, bottom-firing typical. Voice-grade quality.
  • ES8311 — Everest Semiconductor’s 24-bit I²S codec. Same chip as Cardputer ADV. Sample rates 8 kHz / 16 kHz / 22.05 kHz / 44.1 kHz / 48 kHz / 96 kHz.
  • AW8737 — Awinic class-D amplifier. 1 W into 8 Ω. Lower noise floor than budget class-D amps.
  • 8 Ω 1 W speaker — small mylar cone driver. Audible in quiet rooms (~60 dB SPL @ 30 cm); not loud enough for noisy environments.

The audio chain is the M5StickS3’s standout feature and the focus of Vol 5 (which covers: voice recording, audio FFT, wake-word detection, ESP-NOW walkie-talkie, internet radio, and the covert-audio-recorder legal landscape).


6. IMU — 6-axis (BMI270 or MPU6886 TBD)

The M5StickS3 has a 6-axis IMU (3-axis accelerometer + 3-axis gyroscope) on the shared I²C bus. Specific chip is TBD pending hardware inspection — vendor product page doesn’t specify.

Two likely candidates based on M5Stack’s history:

ChipVendorUsed inI²C address
BMI270BoschCardputer ADV, newer M5Stack designs0x68 (alternate 0x69)
MPU6886TDK / InvenSenseStickC family, older M5Stack0x68 (alternate 0x69)

Both are 6-axis I²C devices at the same address. M5Unified M5.Imu.* API handles both transparently — application code is portable across the two without source changes.

Identify the actual chip on a real device:

#include <Wire.h>
// At 0x68, the WHO_AM_I register is at different addresses:
// BMI270: reg 0x00, expected value 0x24
// MPU6886: reg 0x75, expected value 0x19

Or simply check the M5Unified runtime detection: M5.Imu.getType() returns the detected chip family.

Use cases:

  • Shake-to-trigger — BMI270’s built-in “any-motion” interrupt, or MPU6886 + software threshold detection
  • Tilt-based navigation — orient-aware menus
  • Step counting (BMI270 only — has on-chip pedometer firmware; MPU6886 requires host-side filter)
  • POV LED art — accelerometer integrated to position estimate + RGB LED modulation
  • Gesture recognition — BMI270’s Bosch BSX algorithms (single tap, double tap, flat / no-flat, significant motion); MPU6886 requires custom DSP

For most use cases, the M5StickS3’s IMU is more capable than the M5StickC family’s older MPU6886 if it turns out to be BMI270, and equivalent if it turns out to be MPU6886.


7. IR transmitter and receiver

The M5StickS3 has BOTH IR TX and IR RX — the differentiator vs the Cardputer ADV (which has TX only).

FunctionComponentApproximate pin (verify on hardware)
TX940 nm IR LEDGPIO 19 typical (M5Stack convention)
RXIR photodiode + modulation detectorGPIO 21 typical

The IR RX is the unique capability: hold a target remote near the M5StickS3’s IR receiver, press a capture button on the M5StickS3, press the button on the target remote — the M5StickS3 records the modulation pattern (carrier frequency + on/off timing). Save to flash as a named entry. Replay later via the on-board IR TX.

This enables on-device IR code learning — the Cardputer ADV requires a Grove IR Unit with RX as a separate accessory; the M5StickS3 has it integrated.

Supported protocols (via IRremoteESP8266 library or M5Unified’s IR API):

  • NEC (most consumer remotes)
  • Sony SIRC (12/15/20-bit variants)
  • RC5 / RC6 (European)
  • Panasonic
  • Samsung
  • JVC
  • Pioneer
  • Dish
  • Manufacturer-specific raw

Range:

  • TX: ~3-5 m line-of-sight (consumer-grade)
  • RX: ~10-30 cm (typical for close-range learning; not a passive room scanner)

For TV-B-Gone / AC-B-Gone bulk-attack workflows, the M5StickS3’s TX range is adequate. For room-scale IR monitoring, the RX range is short — get close to the source.


8. USB-C OTG + native USB-CDC

USB-C connector. Native ESP32-S3 USB peripheral — no UART bridge chip (CH340 / CP2104 / FTDI).

USB enumeration paths

This is the most-confusing aspect of the M5StickS3 for users coming from M5StickC Plus 2:

DeviceBridge chipLinux pathmacOS path
M5StickS3None (native USB-CDC)/dev/ttyACM0/dev/cu.usbmodem-*
M5StickC Plus 2CH340 or CP2104/dev/ttyUSB0/dev/cu.usbserial-*
Cardputer ADVNone (native USB-CDC)/dev/ttyACM0/dev/cu.usbmodem-*

Common operator mistake: pasting a /dev/ttyUSB0 flash command from a StickC Plus 2 tutorial — won’t find the M5StickS3.

USB modes — Device vs Host (OTG)

Device mode (default): M5StickS3 is a USB peripheral. Host computer enumerates:

  • USB CDC serial (/dev/ttyACM0)
  • USB HID device (when running BadUSB / BadCard firmwares)
  • USB Mass Storage (when explicitly configured)

Host mode (OTG): with a USB-C-to-A adapter, M5StickS3 acts as USB host:

  • USB keyboards (less useful on M5StickS3 given the small screen — better on Cardputer ADV)
  • USB-to-Serial console adapters (FTDI / CH340 / CP210x / PL2303) — M5StickS3 becomes a portable serial console
  • USB mass-storage thumb drives — read/write
  • USB MIDI controllers — feed into ES8311 audio
  • USB HID inspection — BadUSB Hunter pattern

Build flag selection:

build_flags =
    -DARDUINO_USB_MODE=1                   ; Device mode (default for most apps)
    -DARDUINO_USB_CDC_ON_BOOT=1            ; Native USB-CDC available
    ; OR for host:
    ; -DARDUINO_USB_MODE=0                 ; Host OTG mode

Switching modes requires a re-flash. Some firmwares (M5Launcher’s BadUSB Hunter) compile both stacks in for runtime switching at greater flash cost.

Bootloader-mode entry

If auto-reset via DTR/RTS fails (rare), manual bootloader entry:

  1. Press and hold Button A.
  2. Plug USB-C while holding Button A.
  3. Release after ~1 second — device is in mask-ROM download mode.

esptool.py / M5Burner / web flashers will now see the device regardless of prior firmware state.


9. Power subsystem — 250 mAh LiPo + PMIC + brownout

The power subsystem is the most-consequential difference vs the Cardputer ADV — the 250 mAh battery defines what the M5StickS3 is good for.

Battery + charge path

   USB-C ── (optional side switch) ── Charge controller ── LiPo + ─┐


   Battery (3.0-4.2 V) ──→ Buck regulator ──→ 3.3 V system rail

                                                       └─→ PMIC (battery telemetry, charge mgmt)
ParameterValueNotes
Battery capacity250 mAhA sixth of the Cardputer ADV’s 1750 mAh
Battery voltage3.7 V nominal, 4.2 V fully chargedStandard single-cell LiPo
Charge controllerTP4056-class IC typicalM5Stack hasn’t documented exact chip
PMICTBD — likely AXP2101 or similarVerify via i2cdetect scan on real hardware
Buck regulatorDrives 3.3 V system railStandard
Charge current~500 mA typical via USB-CFull charge ~30-45 minutes
USB chargeYesSide switch may need to be ON — verify (same quirk as Cardputer ADV)
Deep sleep current~0.5 µA (theoretical)If firmware uses deep sleep

Per-mode current draw

ModeCurrent (mA)Notes
Deep sleep~0.5 µAMainline firmwares rarely use this; opt-in
Display backlight on, no Wi-Fi / radios~50 mABacklight dominates
Idle (display + Wi-Fi station connected)~80 mABackground traffic
Wi-Fi scan continuous~120 mARadio in RX
BLE peripheral active~95 mABLE radio
Sustained Wi-Fi TX (deauth spam)~200-280 mA peakBrownout territory on weak battery
Audio playback at low volume~150 mAES8311 + AW8737 active
Audio playback at full 1 W speaker~280-320 mA peakHighest sustained load on the device
Audio recording (mic only)~95 mALight load
ESP-NOW walkie-talkie active~200-250 mAWi-Fi + audio combined
Wake-word detection idle~85 mAesp-skainet runs near-idle CPU

Battery-life estimates (250 mAh full charge)

Use caseBattery life
Display + idle~5 hours
Wi-Fi scan continuous~2 hours
Sustained TX-spam~50-60 minutes
Audio playback at full volume~50 minutes
Audio recording (mic only)~2.5 hours
Walkie-talkie active~1-1.2 hours
Wake-word detection passive~3 hours

Operational implication: the M5StickS3 is not the device for multi-hour engagements. Plan engagements <30 min for safety margin, <2 hours for scan-only passive work. For sustained deployment: tether USB-C power, or pick a different device.

Brownout posture

ESP32-S3 has a brownout detector that trips at ~2.7 V (configurable). The 250 mAh battery + LiPo internal resistance + class-D amp current peaks = tight power budget. Under sustained TX-spam or full-volume audio playback on a weak battery:

  • Supply rail dips during current peaks
  • If dip exceeds threshold + hysteresis, SoC resets
  • Attack/audio appears to “stop working” mid-session — actually the device rebooted

Mitigations:

  1. Fresh battery — 250 mAh degrades fast; replace every 6-12 months for daily use.
  2. Known-good USB cable when on USB power (cheap cables drop voltage under load).
  3. Avoid concurrent SD writes during TX-heavy attacks (not generally applicable — M5StickS3 has no on-board SD).
  4. Lower audio volume if running audio simultaneously with Wi-Fi.
  5. Firmware-side rebuild with relaxed brownoutCONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 in sdkconfig for more permissive threshold (Vol 10 § 9 covers the rebuild).

Vol 11 § 4 covers the operational-posture implications in more detail.


10. Mechanical — enclosure, magnetic back, lanyard

ParameterValue
Dimensions48 × 24 × 15 mm
Weight20 g
MaterialPolycarbonate-ABS blend (standard M5Stack)
Back surfaceNeodymium magnets — sticks to ferrous metal
Lanyard hole2-3 mm diameter through-hole, top edge
Operating temperature0-40 °C

The magnetic back is the operationally-distinctive mechanical feature:

  • Sticks to fridges, file cabinets, server racks, locker doors — for “leave it running while away” deployments
  • Sticks to drone frames — aerial-platform Wi-Fi capture
  • Removable from metal surfaces without leaving residue or marks
  • Wrist-wear possible with a magnetic-back wristband accessory (third-party)

The 48×24×15 mm dimensions + 20 g weight put the M5StickS3 in smartwatch territory — genuinely wearable in a way the Cardputer ADV (84×54×19.6 mm, 81 g) is not. This is the device’s covert form factor advantage.

Lanyard hole accommodates standard 2-3 mm cord for wrist / neck / keychain wear.

The polycarbonate-ABS enclosure is not waterproof — splash-resistant at best. For outdoor deployments (solar-relay-style), need a third-party weather case. The IP rating is not specified; assume IP21 (touch + dripping water tolerance only).


11. Per-subsystem BOM highlights

Authoritative parts identified from vendor docs:

SubsystemComponentVendorDatasheet
MCU moduleESP32-S3-PICO-1-N8R8 (SIP)Espressifhttps://www.espressif.com/sites/default/files/documentation/esp32-s3_datasheet_en.pdf
Display controllerST7789P3SitronixST7789P3 datasheet
Display panel1.14” IPS LCDVariousPanel-specific
Audio codecES8311Everest Semihttps://www.everest-semi.com/
Audio amplifierAW8737AwinicVendor datasheet
MEMS microphoneTBD (65 dB SNR omnidirectional)VariousVerify on hardware
Speaker8 Ω 1 W mylar coneVariousGeneric
IMUBMI270 OR MPU6886 (TBD)Bosch / TDK-InvenSenseBoth publicly available
IR LED940 nm SMDGenericn/a
IR receiverModulation-detector ICGenericTSOP-class typical
Battery250 mAh LiPoM5Stack-sourcedn/a (vendor-specific)
Charge controllerTP4056-classNanJing Top PowerTP4056 family datasheet
PMICAXP2101 (likely)X-PowersVerify on hardware

Replacement parts:

  • Battery: small 251015 / 401015 form-factor LiPos work. JST-PH 2-pin polarity must match.
  • IR LED: any 940 nm SMD LED can be hand-soldered if the original fails.

12. What isn’t on board (and where to find it)

Re-statement of capability gaps from Vol 1 § 4.2 with hardware emphasis:

MissingWorkaround
5 GHz Wi-FiM5MonsterC5 add-on (ESP32-C5 coprocessor via Grove)
BT classicUse M5StickC Plus 2 (classic ESP32) for that specific niche
NFC controllerUnit RFID2 (Grove I²C) or PN532 module (Grove I²C)
microSD slotHat2 SD-card holder accessory (when M5Stack ships one)
Sub-GHz CC1101CC1101 Grove Unit OR custom Hat2 daughterboard
LoRaNo path — M5StickS3 has no EXT bus equivalent. Use Cardputer ADV + Cap LoRa-1262 instead
Camera busNot exposed on M5StickS3 — use M5Stack Core S3 or Atom S3R
Cellular modemNB-IoT / 4G LTE / Cat-M Grove Units (limited by 250 mAh battery for sustained cellular)
Ethernet PHYATOM PoE Unit via Grove
High-precision RTK GNSSAtomic GPS Kit (NEO-M8N) Grove Unit
HF radio (< 300 MHz)HackRF One for arbitrary RF
QWERTY keyboardCardputer ADV for typing-heavy workflows

The M5StickS3 is wearable ESP32-S3 + audio + IR. Outside that envelope, sibling Hack Tools projects cover the gaps.


13. Resources

Datasheets

Vendor

Libraries

Forward references

  • Pinout + expansion buses: Vol 3
  • Hat + Unit ecosystem: Vol 4
  • Audio subsystem deep dive (the standout): Vol 5
  • Firmware ecosystem: Vol 6
  • Operational posture / power profile / brownout in detail: Vol 11 § 4

This is Volume 2 of a twelve-volume series. Next: Vol 3 walks the per-pin pinout and the expansion buses — Hat2 16-pin, Grove HY2.0-4P, USB-C OTG.