Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

M5Stack Notes

This repository documents a detailed exploration of the M5Stack hardware ecosystem, focusing on building small interactive devices that combine motion sensing, audio playback, LEDs, haptics, RFID, and ultra-low-power operation.

The research compares different families of M5Stack devices, evaluates their expandability, and maps out which modules, batteries, and accessories are compatible with each hardware form factor.

Device and accessory reference tables are included below.

1. Overview

M5Stack provides a diverse range of ESP32-based development devices organised into several hardware families:

  • Core series (classic 5×5 cm) — modular stackable controllers
  • CoreS3 series (new generation) — advanced multimedia controllers
  • Stick series — compact wearable-style devices
  • ATOM series — ultra-small modular cubes
  • STAMP modules — embedded boards for custom wiring

Each family has unique strengths and constraints, especially regarding audio, IMU functionality, battery integration, module compatibility, and power management.

2. Device Family Comparison

CoreS3 Series

Advanced multimedia devices with touchscreens, dual microphones, camera, IMU, and (on CoreS3) a magnetometer. Uses a new 30-pin base connector and does not support classic stack modules.

Classic Core Series (Core, Core2, Fire, AWS EduKit, M5GO kits)

Designed around the 57×57 mm, 12-pin M-Bus form factor. Support stackable modules including:

  • Battery modules
  • Relay modules
  • Audio Module (STM32G030)
  • M5GO Bottom bases with 10 RGB LEDs

Stick Series

Small rectangular devices with integrated battery, IMU, small LCD, and optional Hats (speaker, sensors, buttons). The PLUS2 model adds a vibration motor and improved PMIC.

ATOM Series

Ultra-small cubes featuring minimal ESP32 boards, often with add-ons:

  • Matrix: 25 NeoPixels + IMU
  • Echo: speaker + microphone
  • Lite: minimal I/O
  • Use via Grove connectors or direct wiring.

3. Understanding Module Stacking

Classic stack modules (battery, audio, relay, proto, etc.) only attach to:

  • Core (Original)
  • Core2
  • Core Fire
  • M5GO
  • Core2 AWS EduKit

CoreS3 does not use the classic M-Bus; Stick and ATOM devices rely on Grove and wiring instead of stacking.

Selecting hardware requires understanding this difference, especially when combining power modules or expansion modules.

4. Motion Sensing

IMU (6-axis and 9-axis)

Many M5Stack devices include inertial measurement units (IMUs) that provide accelerometer and gyroscope data. Devices with IMU capabilities include:

  • ATOM Matrix (IMU)
  • StickC PLUS2 (IMU)
  • CoreS3 (IMU)
  • Core2 (IMU)
  • Core Fire (IMU)
  • M5GO (IMU)

These sensors enable motion detection, orientation tracking, shake detection, and gesture recognition.

Magnetometer Availability

Only a few devices include a magnetometer:

  • CoreS3
  • Core Fire

Devices based on the MPU6886 (Stick series, ATOM Matrix, etc.) include only accelerometer + gyroscope.

Magnetometers enable compass features, orientation-corrected sensor fusion, and magnetic field detection.

5. Adding Sound Capabilities

Many M5Stack boards lack onboard speakers. To play audio, consider:

  • StickC PLUS2 + Speaker Hat (MAX98357)
  • ATOM Echo
  • CoreS3 (built-in full I²S audio subsystem)
  • MAX98357 I²S amplifier modules wired to ATOM or Stick devices
  • Audio Module (STM32G030) for classic Core stackable devices

Short WAV/MP3 audio playback is feasible across the entire ecosystem when an appropriate amplifier is present.

6. LEDs and NeoPixel Effects

RGB LED capabilities vary by device:

  • ATOM Matrix offers a 25-pixel NeoPixel matrix
  • Core Fire, M5GO, Core2 AWS EduKit include 10-pixel LED bars in their M5GO bottoms
  • StickC PLUS2, ATOM Lite, ATOM Echo each include a single RGB LED
  • CoreS3 has no onboard NeoPixels but works with M5GO Bottom3

These can be used for icons, animations, interaction cues, and visual feedback.

7. Haptic Feedback

To add vibration feedback, consider devices with built-in motors:

  • Core2
  • M5StickC PLUS2

Other boards require wiring a coin-cell vibration motor.

8. RFID Interaction

RFID support is not built into any M5Stack Core or ATOM device. Use the RFID Unit 2 (WS1850S) over Grove (I²C/UART).

Compatible with:

  • Core / Core2 / Fire
  • CoreS3
  • Stick series
  • ATOM series

This enables actions such as sound or LED effects triggered by specific tags.

9. Ultra-Low-Power Behaviour and RTC-Based Wake-Up

To create devices that run for long periods and only wake occasionally, true power gating is required — not just ESP32 deep sleep.

The M5Stamp Timer Power (BM8563) enables:

  • RTC alarms
  • timed wake-ups
  • fully powering the ESP32 board off (microamp consumption)
  • timed reactivation

It requires manual wiring and is independent of M5Stack form factors, making it ideal for embedded low-power projects.

10. Mounting and LEGO Integration

Physical construction can be supported using:

  • SandwichC Bricks (LEGO-compatible mounting plates)
  • M3 screw kits
  • M5 Box for storage and prototyping

These allow embedding M5Stack hardware into toys, enclosures, and kinetic experiments.

11. Building Interactive Devices

Motion-Reactive Devices

To build compact interactive devices (e.g., "cubes") that respond to shaking, rotation, or tapping, pair:

  • a device with a 6-axis or 9-axis IMU
  • either a built-in speaker or an I²S audio amplifier
  • optional RGB LEDs for visual effects
  • a small battery base (e.g., Atomic Battery Base or TailBat)

Useful hardware options include:

  • ATOM Matrix (25 NeoPixels, IMU)
  • StickC PLUS2 (IMU, vibration motor, small display)
  • ATOM Echo (speaker onboard, needs external IMU)
  • CoreS3 (more advanced but larger)

These devices can play short sounds when moved, light up LEDs, vibrate, or react to orientation.

Educational and Toy Interaction Patterns

The research identifies several patterns for building interactive devices:

  • shake-to-sound cubes
  • direction-aware toys using magnetometers
  • RFID-triggered responses
  • sound/light objects embedded in LEGO structures
  • wearable sound/noise devices
  • low-power IoT nodes waking briefly to perform tasks
  • touchscreen audio-visual gadgets using CoreS3

These patterns benefit from selecting the right combination of IMU, speaker, LEDs, and power hardware.

12. Curated Hardware Set (as used in this project)

The following devices and modules form a versatile experimental toolkit:

  • CoreS3
  • M5StickC PLUS2 + Speaker Hat
  • ATOM Matrix
  • M5Stamp Timer Power (RTC power gating)
  • RFID Unit 2
  • Atomic Battery Base
  • Mini Dual Button Unit
  • SandwichC Bricks
  • M3 Screw Kit

This selection enables building portable sound toys, motion-reactive cubes, RFID-aware devices, and long-life low-power systems.

13. Reference Tables

Device and accessory reference tables have been placed below.

These tables include detailed information on:

  • footprints
  • battery types
  • IMU and magnetometer
  • audio capabilities
  • LED systems
  • vibration motors
  • camera and microphones
  • RTC presence
  • module compatibility
  • whether an item is in the current hardware basket

📦 DEVICE TABLE

DeviceFamily12-pin M-BusIMUMagDisplaySpeakerBatterySDVibCameraMicsRTCExtra LEDsWhere the pixels livePiHut Link
CoreS3Core (new)2.0" touch✔ dual0None (unless adding Bottom3)Search
CoreS3 SECore (new)2.0" touch✔ dual0NoneSearch
Core (Original)Core classic2.0" LCD0NoneSearch
Core2Core classic2.0" touch0 (10 w/ Bottom2)LEDs in Bottom2 onlySearch
Core FireCore classic2.0" LCD10 SK6812In M5GO baseSearch
M5GO (Core kit)Core classic2.0" IPS10 LEDsIn M5GO baseSearch
Core2 AWS EduKitCore classic2.0" touch10 LEDsIn M5GO Bottom2Search
M5StickC PLUSStickSmall TFTBuzzer0NoneSearch
M5StickC PLUS2StickIPS TFTBuzzer1 RGBOn StickC PLUS2 main boardSearch
ATOM MatrixATOM5×5 LEDs25 WS2812On front LED matrixSearch
ATOM LiteATOMNone1 RGBOn main boardSearch
ATOM EchoATOMNone1 RGBOn main boardSearch

🔌 ACCESSORIES TABLE

AccessoryWhat it doesFootprint compatibilityWhere usedPiHut Link
M5Stamp Timer PowerRTC + timed power gatingUniversal (wired)Ultra-low-power / wake controlSearch
M5StickC PLUS Speaker Hat (MAX98357)Adds digital speakerStick familyAudio outputSearch
Atomic Battery Base200 mAh batteryATOM footprintPortable ATOM buildsSearch
SandwichC Brick (x3)Lego-compatible adapterUniversal mechanicalMountingSearch
RFID Unit 2 (WS1850S)RFID readerAny Grove-enabled deviceNFC-like readingSearch
M5 BoxStorageUniversalStorageSearch
M3 Screw KitMounting hardwareUniversalAssemblySearch
Mini Dual Button Unit2-button Grove inputUniversalInput deviceSearch
Audio Module (STM32G030)Stereo codecClassic Core stackExternal audioSearch
Core Battery Modules (13.2 etc.)Extra batteryClassic 5×5StackableSearch
M5GO bottom (RGB)LED bar + batteryCore2 / Core Fire / CoreS3 versionsAdds 10 LEDsSearch
TailBatBatteryATOMPortableSearch
M5StickC 18650 Base18650 battery holderStick familyExtended runtime for StickCProduct
M5Stack Base AAA Battery HolderAAA battery holderClassic Core stackAlternative power for CoreProduct
Generic I²S ampSpeaker ampAny wiredExternal audioSearch

Diagrams

Classic Core Series (5×5 cm, 12-pin M-Bus)

flowchart TD
note1["ClassicCore<br/>• 57×57 mm footprint<br/>• 12-pin M-Bus on bottom<br/>• Compatible with stack modules:<br/> – Battery modules<br/> – Audio Module (STM32G030)<br/> – Relay / IO modules<br/>• Good for modular, stackable builds"]
subgraph ClassicCore["Classic Core Series (5×5 cm, 12-pin M-Bus)"]
C0["Core (Gray)<br/>• 57×57 mm classic Core<br/>• ESP32<br/>• 12-pin M-Bus stack<br/>• LCD, speaker, SD<br/>• No IMU / no magnetometer"]
C1["Core2<br/>• 57×57 mm classic Core<br/>• Touchscreen, speaker<br/>• Battery, SD<br/>• 6-axis IMU (no mag)<br/>• Vibration motor<br/>• 12-pin M-Bus stack"]
C2["Core Fire<br/>• Classic Core + IMU<br/>• 9-axis (MPU9250 with mag)<br/>• 10 RGB LEDs in M5GO base<br/>• Battery, SD, speaker<br/>• 12-pin M-Bus stack"]
C3["Core2 AWS EduKit<br/>• Core2 + M5GO Bottom2<br/>• 10 RGB LEDs in base<br/>• Battery, SD, speaker<br/>• 6-axis IMU (no mag)<br/>• 12-pin M-Bus stack"]
C4["M5GO (Core kit)<br/>• Core-style controller<br/>• 6-axis IMU<br/>• 10 RGB LEDs in M5GO base<br/>• Battery, speaker, mic<br/>• 12-pin M-Bus stack"]
end
note1 -.-> C0 note1 -.-> C1 note1 -.-> C2 note1 -.-> C3 note1 -.-> C4 
Loading

CoreS3 Series (new 30-pin bus)

flowchart TD
noteS3["CoreS3Series<br/>• Use a new 30-pin base connector<br/>• NOT compatible with classic 5×5 stack modules<br/>• Can use S3-specific bottoms (e.g. M5GO Bottom3) for:<br/> – Extra battery<br/> – 10 RGB LEDs<br/>• Best suited for rich UI, audio, camera, and sensing"]
subgraph CoreS3Series["CoreS3 Series (New 30-pin Base Connector)"]
S3["CoreS3<br/>• 54×54 mm S3 footprint<br/>• Touchscreen + camera<br/>• Dual microphones<br/>• 6-axis IMU + magnetometer<br/>• 500 mAh internal battery<br/>• SD card<br/>• No 12-pin M-Bus"]
S3SE["CoreS3 SE<br/>• Same footprint as CoreS3<br/>• Touchscreen, camera, dual mics<br/>• No IMU / no magnetometer<br/>• No internal battery<br/>• SD card<br/>• No 12-pin M-Bus"]
end
noteS3 -.-> S3 noteS3 -.-> S3SE 
Loading

Stick Series (wearable / slim devices)

flowchart TD
noteST["StickSeries<br/>• Designed for wearable / handheld projects<br/>• Expansion via Stick Hat connector + Grove<br/>• Good for:<br/> – Small UI devices<br/> – Wrist-worn or pocket tools<br/> – Motion + sound toys with Speaker Hat"]
subgraph StickSeries["Stick Series (Wearable / Slim Devices)"]
ST1["M5StickC PLUS<br/>• Slim stick form factor<br/>• 6-axis IMU (MPU6886)<br/>• Small TFT display<br/>• Internal LiPo battery<br/>• Microphone<br/>• No vibration motor<br/>• No 12-pin M-Bus<br/>• Uses Hat accessories (e.g. Speaker Hat)"]
ST2["M5StickC PLUS2<br/>• Updated StickC platform<br/>• 6-axis IMU (MPU6886)<br/>• Small IPS TFT<br/>• 200 mAh battery<br/>• Microphone<br/>• Vibration motor<br/>• Single RGB LED<br/>• No 12-pin M-Bus<br/>• Uses Stick Hats (e.g. MAX98357 speaker)"]
end
noteST -.-> ST1 noteST -.-> ST2 
Loading

ATOM Series (tiny 24×24 mm cubes)

flowchart TD
noteAtom["AtomSeries<br/>• No stacking; no 12-pin M-Bus<br/>• Use Grove ports or direct wiring<br/>• Optional Atomic Battery Base for portable builds<br/>• Well suited for:<br/> – Tiny sound cubes (Echo)<br/> – Motion + LED cubes (Matrix)<br/> – Minimal IoT nodes (Lite)"]
subgraph AtomSeries["ATOM Series (Tiny 24×24 mm Cubes)"]
A_Lite["ATOM Lite<br/>• Minimal ESP32 dev board<br/>• Single RGB LED<br/>• No IMU<br/>• No speaker<br/>• No battery<br/>• Power via USB or Atomic base<br/>• Expansion via Grove / wiring"]
A_Matrix["ATOM Matrix<br/>• 24×24 mm cube<br/>• 5×5 RGB LED matrix (25 pixels)<br/>• 6-axis IMU (MPU6886)<br/>• No speaker built-in<br/>• No battery (pair with Atomic Battery Base)<br/>• Grove + GPIO for expansion"]
A_Echo["ATOM Echo<br/>• 24×24 mm cube<br/>• Built-in speaker<br/>• Microphone<br/>• Single RGB LED<br/>• No IMU<br/>• No battery (optional external base)<br/>• Grove + wiring for sensors"]
end
noteAtom -.-> A_Lite noteAtom -.-> A_Matrix noteAtom -.-> A_Echo 
Loading

STAMP / Power Modules (embedded / wired)

flowchart TD
noteTP["StampSeries<br/>• Not stackable; requires soldering/wiring<br/>• Works with any ESP32 device (Core, Stick, ATOM, etc.)<br/>• Used to:<br/> – Cut power completely between wake events<br/> – Achieve ultra-low-power operation<br/> – Schedule timed wakeups"]
subgraph StampSeries["STAMP / Power Modules (Embedded / Wired)"]
STP["M5Stamp Timer Power (BM8563)<br/>• RTC + alarm<br/>• Li-ion charging<br/>• 3.3 V / 5 V output<br/>• Power gating of main board<br/>• Very low standby current<br/>• Small 20×20 mm module"]
end
noteTP -.-> STP 
Loading

Power Options and Battery Solutions

flowchart TD
subgraph InternalPower["On-board / Integrated Power"]
IP1["CoreS3<br/>• 500 mAh internal LiPo<br/>• Can be extended with S3 Bottom3"]
IP2["Core2 / Core Fire / M5GO / Core2 AWS<br/>• Internal battery in Core or base<br/>• Capacity depends on kit"]
IP3["M5StickC PLUS / PLUS2<br/>• Small internal LiPo<br/>• USB-C charging"]
IP4["Most ATOM devices<br/>• No internal battery<br/>• USB power by default"]
end
subgraph StackableBattery["Stackable Battery Modules (Classic 5×5 only)"]
SB1["Battery Module (Core)<br/>• 5×5 cm stack module<br/>• Extra capacity<br/>• Compatible with Core/Core2/Fire/M5GO/AWS"]
SB2["High-capacity Battery13.2<br/>• Large stack battery<br/>• For long runtime<br/>• Increases stack height"]
SB3["M5GO Bottom / Bottom2<br/>• RGB bar + battery + ports<br/>• Kit-specific for Core/Core2/Fire/AWS"]
SB4["Base AAA Battery Holder<br/>• AAA battery holder<br/>• Alternative power for Core<br/>• Classic 5×5 stack"]
end
subgraph AtomBattery["ATOM Battery Options"]
AB1["Atomic Battery Base (TailBat)<br/>• ~200 mAh LiPo<br/>• Clips to ATOM footprint<br/>• USB-C charging"]
end
subgraph StickBattery["Stick Battery Options"]
STB1["M5StickC 18650 Base<br/>• 18650 battery holder<br/>• Extended runtime for StickC<br/>• Larger capacity than internal LiPo"]
end
subgraph ExternalPower["External Power (Universal)"]
EP1["USB Power Bank<br/>• Plug into USB-C<br/>• Works with all devices"]
EP2["Bench Supply / Adapter<br/>• 5 V / 3.3 V regulated<br/>• For lab setups"]
end
subgraph PowerControl["Power Control / RTC"]
PC1["M5Stamp Timer Power (BM8563)<br/>• Li-ion charging<br/>• 3.3/5 V output<br/>• RTC alarms<br/>• Full power gating"]
end
%% Relationships
IP1 --> EP1
IP2 --> EP1
IP3 --> EP1
IP4 --> EP1
SB1 --> IP2
SB2 --> IP2
SB3 --> IP2
SB4 --> IP2
AB1 --> IP4
STB1 --> IP3
PC1 --> IP4
PC1 --> IP3
PC1 --> IP2
PC1 --> IP1
Loading

Legend:

  • InternalPower: built-in batteries
  • StackableBattery: classic 5×5 only (includes AAA holder)
  • AtomBattery: TailBat/Atomic Base for ATOM
  • StickBattery: 18650 base for StickC
  • ExternalPower: USB/bulk power
  • PowerControl: M5Stamp Timer Power for ultra-low-power designs

Recommended Build Patterns and Device Combinations

flowchart TD
note_P1["P1: Motion + LED Cube<br/>• Focus on IMU + LEDs, optional battery<br/>• Typical combo: ATOM Matrix + Atomic Battery Base"]
note_P2["P2: Sound Cube / Toy<br/>• Short WAV/MP3 sounds<br/>• I²S speaker or built-in speaker<br/>• Motion triggers or button triggers"]
note_P3["P3: RFID Toy<br/>• Use RFID Unit 2 via Grove<br/>• Map tags → sounds, animations, or state changes"]
note_P4["P4: Ultra–Low-Power Node<br/>• M5Stamp Timer Power controls power<br/>• Device runs briefly, then fully powers down"]
note_P5["P5: Touchscreen Multimedia Device<br/>• CoreS3 with audio, cam, IMU, mic<br/>• Suitable for rich UI experiments"]
%% Build patterns
subgraph Patterns["Recommended Build Patterns"]
P1["Motion + LED Cube<br/>(e.g. roll/shake to animate)"]
P2["Sound Cube / Sound Toy<br/>(e.g. short sounds on shake or tap)"]
P3["RFID Toy / Token Reader<br/>(e.g. tag → sound/light)"]
P4["Ultra–Low-Power Node<br/>(e.g. wake occasionally, then power off)"]
P5["Touchscreen Multimedia Device<br/>(audio, graphics, camera)"]
end
%% Devices and key modules
subgraph Devices["Devices"]
D_CoreS3["CoreS3<br/>• Touch + cam + mic<br/>• Speaker + IMU + mag<br/>• Battery"]
D_StickP2["M5StickC PLUS2<br/>• IMU + TFT<br/>• Battery + vib + mic"]
D_AtomMatrix["ATOM Matrix<br/>• 5×5 RGB<br/>• IMU"]
D_AtomEcho["ATOM Echo<br/>• Speaker + mic<br/>• Single RGB"]
D_Timer["M5Stamp Timer Power<br/>• RTC + power gating"]
D_RFID["RFID Unit 2<br/>• Grove RFID reader"]
D_AAtomic["Atomic Battery Base<br/>• Battery for ATOM"]
D_SpkHat["StickC Speaker 2 Hat<br/>• MAX98357 I²S speaker"]
D_Buttons["Mini Dual Button Unit"]
end
%% Pattern connections
%% P1: Motion + LED cube
P1 --> D_AtomMatrix
P1 --> D_AAtomic
%% P2: Sound cube/toy
P2 --> D_AtomMatrix
P2 --> D_AtomEcho
P2 --> D_AAtomic
P2 --> D_StickP2
P2 --> D_SpkHat
%% P3: RFID toy
P3 --> D_CoreS3
P3 --> D_StickP2
P3 --> D_AtomMatrix
P3 --> D_RFID
P3 --> D_Buttons
%% P4: Ultra–low-power node
P4 --> D_Timer
P4 --> D_AtomMatrix
P4 --> D_AtomEcho
P4 --> D_StickP2
P4 --> D_CoreS3
%% P5: Touchscreen multimedia device
P5 --> D_CoreS3
%% Notes connections
note_P1 -.-> P1
note_P2 -.-> P2
note_P3 -.-> P3
note_P4 -.-> P4
note_P5 -.-> P5
Loading

Acknowledgements

Generated with help from LLMs (ChatGPT, Claude, Gemini, Cursor).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

M5Stack Notes

This repository documents a detailed exploration of the M5Stack hardware ecosystem, focusing on building small interactive devices that combine motion sensing, audio playback, LEDs, haptics, RFID, and ultra-low-power operation.

The research compares different families of M5Stack devices, evaluates their expandability, and maps out which modules, batteries, and accessories are compatible with each hardware form factor.

Device and accessory reference tables are included below.

1. Overview

M5Stack provides a diverse range of ESP32-based development devices organised into several hardware families:

  • Core series (classic 5×5 cm) — modular stackable controllers
  • CoreS3 series (new generation) — advanced multimedia controllers
  • Stick series — compact wearable-style devices
  • ATOM series — ultra-small modular cubes
  • STAMP modules — embedded boards for custom wiring

Each family has unique strengths and constraints, especially regarding audio, IMU functionality, battery integration, module compatibility, and power management.

2. Device Family Comparison

CoreS3 Series

Advanced multimedia devices with touchscreens, dual microphones, camera, IMU, and (on CoreS3) a magnetometer. Uses a new 30-pin base connector and does not support classic stack modules.

Classic Core Series (Core, Core2, Fire, AWS EduKit, M5GO kits)

Designed around the 57×57 mm, 12-pin M-Bus form factor. Support stackable modules including:

  • Battery modules
  • Relay modules
  • Audio Module (STM32G030)
  • M5GO Bottom bases with 10 RGB LEDs

Stick Series

Small rectangular devices with integrated battery, IMU, small LCD, and optional Hats (speaker, sensors, buttons). The PLUS2 model adds a vibration motor and improved PMIC.

ATOM Series

Ultra-small cubes featuring minimal ESP32 boards, often with add-ons:

  • Matrix: 25 NeoPixels + IMU
  • Echo: speaker + microphone
  • Lite: minimal I/O
  • Use via Grove connectors or direct wiring.

3. Understanding Module Stacking

Classic stack modules (battery, audio, relay, proto, etc.) only attach to:

  • Core (Original)
  • Core2
  • Core Fire
  • M5GO
  • Core2 AWS EduKit

CoreS3 does not use the classic M-Bus; Stick and ATOM devices rely on Grove and wiring instead of stacking.

Selecting hardware requires understanding this difference, especially when combining power modules or expansion modules.

4. Motion Sensing

IMU (6-axis and 9-axis)

Many M5Stack devices include inertial measurement units (IMUs) that provide accelerometer and gyroscope data. Devices with IMU capabilities include:

  • ATOM Matrix (IMU)
  • StickC PLUS2 (IMU)
  • CoreS3 (IMU)
  • Core2 (IMU)
  • Core Fire (IMU)
  • M5GO (IMU)

These sensors enable motion detection, orientation tracking, shake detection, and gesture recognition.

Magnetometer Availability

Only a few devices include a magnetometer:

  • CoreS3
  • Core Fire

Devices based on the MPU6886 (Stick series, ATOM Matrix, etc.) include only accelerometer + gyroscope.

Magnetometers enable compass features, orientation-corrected sensor fusion, and magnetic field detection.

5. Adding Sound Capabilities

Many M5Stack boards lack onboard speakers. To play audio, consider:

  • StickC PLUS2 + Speaker Hat (MAX98357)
  • ATOM Echo
  • CoreS3 (built-in full I²S audio subsystem)
  • MAX98357 I²S amplifier modules wired to ATOM or Stick devices
  • Audio Module (STM32G030) for classic Core stackable devices

Short WAV/MP3 audio playback is feasible across the entire ecosystem when an appropriate amplifier is present.

6. LEDs and NeoPixel Effects

RGB LED capabilities vary by device:

  • ATOM Matrix offers a 25-pixel NeoPixel matrix
  • Core Fire, M5GO, Core2 AWS EduKit include 10-pixel LED bars in their M5GO bottoms
  • StickC PLUS2, ATOM Lite, ATOM Echo each include a single RGB LED
  • CoreS3 has no onboard NeoPixels but works with M5GO Bottom3

These can be used for icons, animations, interaction cues, and visual feedback.

7. Haptic Feedback

To add vibration feedback, consider devices with built-in motors:

  • Core2
  • M5StickC PLUS2

Other boards require wiring a coin-cell vibration motor.

8. RFID Interaction

RFID support is not built into any M5Stack Core or ATOM device. Use the RFID Unit 2 (WS1850S) over Grove (I²C/UART).

Compatible with:

  • Core / Core2 / Fire
  • CoreS3
  • Stick series
  • ATOM series

This enables actions such as sound or LED effects triggered by specific tags.

9. Ultra-Low-Power Behaviour and RTC-Based Wake-Up

To create devices that run for long periods and only wake occasionally, true power gating is required — not just ESP32 deep sleep.

The M5Stamp Timer Power (BM8563) enables:

  • RTC alarms
  • timed wake-ups
  • fully powering the ESP32 board off (microamp consumption)
  • timed reactivation

It requires manual wiring and is independent of M5Stack form factors, making it ideal for embedded low-power projects.

10. Mounting and LEGO Integration

Physical construction can be supported using:

  • SandwichC Bricks (LEGO-compatible mounting plates)
  • M3 screw kits
  • M5 Box for storage and prototyping

These allow embedding M5Stack hardware into toys, enclosures, and kinetic experiments.

11. Building Interactive Devices

Motion-Reactive Devices

To build compact interactive devices (e.g., "cubes") that respond to shaking, rotation, or tapping, pair:

  • a device with a 6-axis or 9-axis IMU
  • either a built-in speaker or an I²S audio amplifier
  • optional RGB LEDs for visual effects
  • a small battery base (e.g., Atomic Battery Base or TailBat)

Useful hardware options include:

  • ATOM Matrix (25 NeoPixels, IMU)
  • StickC PLUS2 (IMU, vibration motor, small display)
  • ATOM Echo (speaker onboard, needs external IMU)
  • CoreS3 (more advanced but larger)

These devices can play short sounds when moved, light up LEDs, vibrate, or react to orientation.

Educational and Toy Interaction Patterns

The research identifies several patterns for building interactive devices:

  • shake-to-sound cubes
  • direction-aware toys using magnetometers
  • RFID-triggered responses
  • sound/light objects embedded in LEGO structures
  • wearable sound/noise devices
  • low-power IoT nodes waking briefly to perform tasks
  • touchscreen audio-visual gadgets using CoreS3

These patterns benefit from selecting the right combination of IMU, speaker, LEDs, and power hardware.

12. Curated Hardware Set (as used in this project)

The following devices and modules form a versatile experimental toolkit:

  • CoreS3
  • M5StickC PLUS2 + Speaker Hat
  • ATOM Matrix
  • M5Stamp Timer Power (RTC power gating)
  • RFID Unit 2
  • Atomic Battery Base
  • Mini Dual Button Unit
  • SandwichC Bricks
  • M3 Screw Kit

This selection enables building portable sound toys, motion-reactive cubes, RFID-aware devices, and long-life low-power systems.

13. Reference Tables

Device and accessory reference tables have been placed below.

These tables include detailed information on:

  • footprints
  • battery types
  • IMU and magnetometer
  • audio capabilities
  • LED systems
  • vibration motors
  • camera and microphones
  • RTC presence
  • module compatibility
  • whether an item is in the current hardware basket

📦 DEVICE TABLE

DeviceFamily12-pin M-BusIMUMagDisplaySpeakerBatterySDVibCameraMicsRTCExtra LEDsWhere the pixels livePiHut Link
CoreS3Core (new)2.0" touch✔ dual0None (unless adding Bottom3)Search
CoreS3 SECore (new)2.0" touch✔ dual0NoneSearch
Core (Original)Core classic2.0" LCD0NoneSearch
Core2Core classic2.0" touch0 (10 w/ Bottom2)LEDs in Bottom2 onlySearch
Core FireCore classic2.0" LCD10 SK6812In M5GO baseSearch
M5GO (Core kit)Core classic2.0" IPS10 LEDsIn M5GO baseSearch
Core2 AWS EduKitCore classic2.0" touch10 LEDsIn M5GO Bottom2Search
M5StickC PLUSStickSmall TFTBuzzer0NoneSearch
M5StickC PLUS2StickIPS TFTBuzzer1 RGBOn StickC PLUS2 main boardSearch
ATOM MatrixATOM5×5 LEDs25 WS2812On front LED matrixSearch
ATOM LiteATOMNone1 RGBOn main boardSearch
ATOM EchoATOMNone1 RGBOn main boardSearch

🔌 ACCESSORIES TABLE

AccessoryWhat it doesFootprint compatibilityWhere usedPiHut Link
M5Stamp Timer PowerRTC + timed power gatingUniversal (wired)Ultra-low-power / wake controlSearch
M5StickC PLUS Speaker Hat (MAX98357)Adds digital speakerStick familyAudio outputSearch
Atomic Battery Base200 mAh batteryATOM footprintPortable ATOM buildsSearch
SandwichC Brick (x3)Lego-compatible adapterUniversal mechanicalMountingSearch
RFID Unit 2 (WS1850S)RFID readerAny Grove-enabled deviceNFC-like readingSearch
M5 BoxStorageUniversalStorageSearch
M3 Screw KitMounting hardwareUniversalAssemblySearch
Mini Dual Button Unit2-button Grove inputUniversalInput deviceSearch
Audio Module (STM32G030)Stereo codecClassic Core stackExternal audioSearch
Core Battery Modules (13.2 etc.)Extra batteryClassic 5×5StackableSearch
M5GO bottom (RGB)LED bar + batteryCore2 / Core Fire / CoreS3 versionsAdds 10 LEDsSearch
TailBatBatteryATOMPortableSearch
M5StickC 18650 Base18650 battery holderStick familyExtended runtime for StickCProduct
M5Stack Base AAA Battery HolderAAA battery holderClassic Core stackAlternative power for CoreProduct
Generic I²S ampSpeaker ampAny wiredExternal audioSearch

Diagrams

Classic Core Series (5×5 cm, 12-pin M-Bus)

flowchart TD
note1["ClassicCore<br/>• 57×57 mm footprint<br/>• 12-pin M-Bus on bottom<br/>• Compatible with stack modules:<br/> – Battery modules<br/> – Audio Module (STM32G030)<br/> – Relay / IO modules<br/>• Good for modular, stackable builds"]
subgraph ClassicCore["Classic Core Series (5×5 cm, 12-pin M-Bus)"]
C0["Core (Gray)<br/>• 57×57 mm classic Core<br/>• ESP32<br/>• 12-pin M-Bus stack<br/>• LCD, speaker, SD<br/>• No IMU / no magnetometer"]
C1["Core2<br/>• 57×57 mm classic Core<br/>• Touchscreen, speaker<br/>• Battery, SD<br/>• 6-axis IMU (no mag)<br/>• Vibration motor<br/>• 12-pin M-Bus stack"]
C2["Core Fire<br/>• Classic Core + IMU<br/>• 9-axis (MPU9250 with mag)<br/>• 10 RGB LEDs in M5GO base<br/>• Battery, SD, speaker<br/>• 12-pin M-Bus stack"]
C3["Core2 AWS EduKit<br/>• Core2 + M5GO Bottom2<br/>• 10 RGB LEDs in base<br/>• Battery, SD, speaker<br/>• 6-axis IMU (no mag)<br/>• 12-pin M-Bus stack"]
C4["M5GO (Core kit)<br/>• Core-style controller<br/>• 6-axis IMU<br/>• 10 RGB LEDs in M5GO base<br/>• Battery, speaker, mic<br/>• 12-pin M-Bus stack"]
end
note1 -.-> C0 note1 -.-> C1 note1 -.-> C2 note1 -.-> C3 note1 -.-> C4 
Loading

CoreS3 Series (new 30-pin bus)

flowchart TD
noteS3["CoreS3Series<br/>• Use a new 30-pin base connector<br/>• NOT compatible with classic 5×5 stack modules<br/>• Can use S3-specific bottoms (e.g. M5GO Bottom3) for:<br/> – Extra battery<br/> – 10 RGB LEDs<br/>• Best suited for rich UI, audio, camera, and sensing"]
subgraph CoreS3Series["CoreS3 Series (New 30-pin Base Connector)"]
S3["CoreS3<br/>• 54×54 mm S3 footprint<br/>• Touchscreen + camera<br/>• Dual microphones<br/>• 6-axis IMU + magnetometer<br/>• 500 mAh internal battery<br/>• SD card<br/>• No 12-pin M-Bus"]
S3SE["CoreS3 SE<br/>• Same footprint as CoreS3<br/>• Touchscreen, camera, dual mics<br/>• No IMU / no magnetometer<br/>• No internal battery<br/>• SD card<br/>• No 12-pin M-Bus"]
end
noteS3 -.-> S3 noteS3 -.-> S3SE 
Loading

Stick Series (wearable / slim devices)

flowchart TD
noteST["StickSeries<br/>• Designed for wearable / handheld projects<br/>• Expansion via Stick Hat connector + Grove<br/>• Good for:<br/> – Small UI devices<br/> – Wrist-worn or pocket tools<br/> – Motion + sound toys with Speaker Hat"]
subgraph StickSeries["Stick Series (Wearable / Slim Devices)"]
ST1["M5StickC PLUS<br/>• Slim stick form factor<br/>• 6-axis IMU (MPU6886)<br/>• Small TFT display<br/>• Internal LiPo battery<br/>• Microphone<br/>• No vibration motor<br/>• No 12-pin M-Bus<br/>• Uses Hat accessories (e.g. Speaker Hat)"]
ST2["M5StickC PLUS2<br/>• Updated StickC platform<br/>• 6-axis IMU (MPU6886)<br/>• Small IPS TFT<br/>• 200 mAh battery<br/>• Microphone<br/>• Vibration motor<br/>• Single RGB LED<br/>• No 12-pin M-Bus<br/>• Uses Stick Hats (e.g. MAX98357 speaker)"]
end
noteST -.-> ST1 noteST -.-> ST2 
Loading

ATOM Series (tiny 24×24 mm cubes)

flowchart TD
noteAtom["AtomSeries<br/>• No stacking; no 12-pin M-Bus<br/>• Use Grove ports or direct wiring<br/>• Optional Atomic Battery Base for portable builds<br/>• Well suited for:<br/> – Tiny sound cubes (Echo)<br/> – Motion + LED cubes (Matrix)<br/> – Minimal IoT nodes (Lite)"]
subgraph AtomSeries["ATOM Series (Tiny 24×24 mm Cubes)"]
A_Lite["ATOM Lite<br/>• Minimal ESP32 dev board<br/>• Single RGB LED<br/>• No IMU<br/>• No speaker<br/>• No battery<br/>• Power via USB or Atomic base<br/>• Expansion via Grove / wiring"]
A_Matrix["ATOM Matrix<br/>• 24×24 mm cube<br/>• 5×5 RGB LED matrix (25 pixels)<br/>• 6-axis IMU (MPU6886)<br/>• No speaker built-in<br/>• No battery (pair with Atomic Battery Base)<br/>• Grove + GPIO for expansion"]
A_Echo["ATOM Echo<br/>• 24×24 mm cube<br/>• Built-in speaker<br/>• Microphone<br/>• Single RGB LED<br/>• No IMU<br/>• No battery (optional external base)<br/>• Grove + wiring for sensors"]
end
noteAtom -.-> A_Lite noteAtom -.-> A_Matrix noteAtom -.-> A_Echo 
Loading

STAMP / Power Modules (embedded / wired)

flowchart TD
noteTP["StampSeries<br/>• Not stackable; requires soldering/wiring<br/>• Works with any ESP32 device (Core, Stick, ATOM, etc.)<br/>• Used to:<br/> – Cut power completely between wake events<br/> – Achieve ultra-low-power operation<br/> – Schedule timed wakeups"]
subgraph StampSeries["STAMP / Power Modules (Embedded / Wired)"]
STP["M5Stamp Timer Power (BM8563)<br/>• RTC + alarm<br/>• Li-ion charging<br/>• 3.3 V / 5 V output<br/>• Power gating of main board<br/>• Very low standby current<br/>• Small 20×20 mm module"]
end
noteTP -.-> STP 
Loading

Power Options and Battery Solutions

flowchart TD
subgraph InternalPower["On-board / Integrated Power"]
IP1["CoreS3<br/>• 500 mAh internal LiPo<br/>• Can be extended with S3 Bottom3"]
IP2["Core2 / Core Fire / M5GO / Core2 AWS<br/>• Internal battery in Core or base<br/>• Capacity depends on kit"]
IP3["M5StickC PLUS / PLUS2<br/>• Small internal LiPo<br/>• USB-C charging"]
IP4["Most ATOM devices<br/>• No internal battery<br/>• USB power by default"]
end
subgraph StackableBattery["Stackable Battery Modules (Classic 5×5 only)"]
SB1["Battery Module (Core)<br/>• 5×5 cm stack module<br/>• Extra capacity<br/>• Compatible with Core/Core2/Fire/M5GO/AWS"]
SB2["High-capacity Battery13.2<br/>• Large stack battery<br/>• For long runtime<br/>• Increases stack height"]
SB3["M5GO Bottom / Bottom2<br/>• RGB bar + battery + ports<br/>• Kit-specific for Core/Core2/Fire/AWS"]
SB4["Base AAA Battery Holder<br/>• AAA battery holder<br/>• Alternative power for Core<br/>• Classic 5×5 stack"]
end
subgraph AtomBattery["ATOM Battery Options"]
AB1["Atomic Battery Base (TailBat)<br/>• ~200 mAh LiPo<br/>• Clips to ATOM footprint<br/>• USB-C charging"]
end
subgraph StickBattery["Stick Battery Options"]
STB1["M5StickC 18650 Base<br/>• 18650 battery holder<br/>• Extended runtime for StickC<br/>• Larger capacity than internal LiPo"]
end
subgraph ExternalPower["External Power (Universal)"]
EP1["USB Power Bank<br/>• Plug into USB-C<br/>• Works with all devices"]
EP2["Bench Supply / Adapter<br/>• 5 V / 3.3 V regulated<br/>• For lab setups"]
end
subgraph PowerControl["Power Control / RTC"]
PC1["M5Stamp Timer Power (BM8563)<br/>• Li-ion charging<br/>• 3.3/5 V output<br/>• RTC alarms<br/>• Full power gating"]
end
%% Relationships
IP1 --> EP1
IP2 --> EP1
IP3 --> EP1
IP4 --> EP1
SB1 --> IP2
SB2 --> IP2
SB3 --> IP2
SB4 --> IP2
AB1 --> IP4
STB1 --> IP3
PC1 --> IP4
PC1 --> IP3
PC1 --> IP2
PC1 --> IP1
Loading

Legend:

  • InternalPower: built-in batteries
  • StackableBattery: classic 5×5 only (includes AAA holder)
  • AtomBattery: TailBat/Atomic Base for ATOM
  • StickBattery: 18650 base for StickC
  • ExternalPower: USB/bulk power
  • PowerControl: M5Stamp Timer Power for ultra-low-power designs

Recommended Build Patterns and Device Combinations

flowchart TD
note_P1["P1: Motion + LED Cube<br/>• Focus on IMU + LEDs, optional battery<br/>• Typical combo: ATOM Matrix + Atomic Battery Base"]
note_P2["P2: Sound Cube / Toy<br/>• Short WAV/MP3 sounds<br/>• I²S speaker or built-in speaker<br/>• Motion triggers or button triggers"]
note_P3["P3: RFID Toy<br/>• Use RFID Unit 2 via Grove<br/>• Map tags → sounds, animations, or state changes"]
note_P4["P4: Ultra–Low-Power Node<br/>• M5Stamp Timer Power controls power<br/>• Device runs briefly, then fully powers down"]
note_P5["P5: Touchscreen Multimedia Device<br/>• CoreS3 with audio, cam, IMU, mic<br/>• Suitable for rich UI experiments"]
%% Build patterns
subgraph Patterns["Recommended Build Patterns"]
P1["Motion + LED Cube<br/>(e.g. roll/shake to animate)"]
P2["Sound Cube / Sound Toy<br/>(e.g. short sounds on shake or tap)"]
P3["RFID Toy / Token Reader<br/>(e.g. tag → sound/light)"]
P4["Ultra–Low-Power Node<br/>(e.g. wake occasionally, then power off)"]
P5["Touchscreen Multimedia Device<br/>(audio, graphics, camera)"]
end
%% Devices and key modules
subgraph Devices["Devices"]
D_CoreS3["CoreS3<br/>• Touch + cam + mic<br/>• Speaker + IMU + mag<br/>• Battery"]
D_StickP2["M5StickC PLUS2<br/>• IMU + TFT<br/>• Battery + vib + mic"]
D_AtomMatrix["ATOM Matrix<br/>• 5×5 RGB<br/>• IMU"]
D_AtomEcho["ATOM Echo<br/>• Speaker + mic<br/>• Single RGB"]
D_Timer["M5Stamp Timer Power<br/>• RTC + power gating"]
D_RFID["RFID Unit 2<br/>• Grove RFID reader"]
D_AAtomic["Atomic Battery Base<br/>• Battery for ATOM"]
D_SpkHat["StickC Speaker 2 Hat<br/>• MAX98357 I²S speaker"]
D_Buttons["Mini Dual Button Unit"]
end
%% Pattern connections
%% P1: Motion + LED cube
P1 --> D_AtomMatrix
P1 --> D_AAtomic
%% P2: Sound cube/toy
P2 --> D_AtomMatrix
P2 --> D_AtomEcho
P2 --> D_AAtomic
P2 --> D_StickP2
P2 --> D_SpkHat
%% P3: RFID toy
P3 --> D_CoreS3
P3 --> D_StickP2
P3 --> D_AtomMatrix
P3 --> D_RFID
P3 --> D_Buttons
%% P4: Ultra–low-power node
P4 --> D_Timer
P4 --> D_AtomMatrix
P4 --> D_AtomEcho
P4 --> D_StickP2
P4 --> D_CoreS3
%% P5: Touchscreen multimedia device
P5 --> D_CoreS3
%% Notes connections
note_P1 -.-> P1
note_P2 -.-> P2
note_P3 -.-> P3
note_P4 -.-> P4
note_P5 -.-> P5
Loading

Acknowledgements

Generated with help from LLMs (ChatGPT, Claude, Gemini, Cursor).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

M5Stack Notes

This repository documents a detailed exploration of the M5Stack hardware ecosystem, focusing on building small interactive devices that combine motion sensing, audio playback, LEDs, haptics, RFID, and ultra-low-power operation.

The research compares different families of M5Stack devices, evaluates their expandability, and maps out which modules, batteries, and accessories are compatible with each hardware form factor.

Device and accessory reference tables are included below.

1. Overview

M5Stack provides a diverse range of ESP32-based development devices organised into several hardware families:

  • Core series (classic 5×5 cm) — modular stackable controllers
  • CoreS3 series (new generation) — advanced multimedia controllers
  • Stick series — compact wearable-style devices
  • ATOM series — ultra-small modular cubes
  • STAMP modules — embedded boards for custom wiring

Each family has unique strengths and constraints, especially regarding audio, IMU functionality, battery integration, module compatibility, and power management.

2. Device Family Comparison

CoreS3 Series

Advanced multimedia devices with touchscreens, dual microphones, camera, IMU, and (on CoreS3) a magnetometer. Uses a new 30-pin base connector and does not support classic stack modules.

Classic Core Series (Core, Core2, Fire, AWS EduKit, M5GO kits)

Designed around the 57×57 mm, 12-pin M-Bus form factor. Support stackable modules including:

  • Battery modules
  • Relay modules
  • Audio Module (STM32G030)
  • M5GO Bottom bases with 10 RGB LEDs

Stick Series

Small rectangular devices with integrated battery, IMU, small LCD, and optional Hats (speaker, sensors, buttons). The PLUS2 model adds a vibration motor and improved PMIC.

ATOM Series

Ultra-small cubes featuring minimal ESP32 boards, often with add-ons:

  • Matrix: 25 NeoPixels + IMU
  • Echo: speaker + microphone
  • Lite: minimal I/O
  • Use via Grove connectors or direct wiring.

3. Understanding Module Stacking

Classic stack modules (battery, audio, relay, proto, etc.) only attach to:

  • Core (Original)
  • Core2
  • Core Fire
  • M5GO
  • Core2 AWS EduKit

CoreS3 does not use the classic M-Bus; Stick and ATOM devices rely on Grove and wiring instead of stacking.

Selecting hardware requires understanding this difference, especially when combining power modules or expansion modules.

4. Motion Sensing

IMU (6-axis and 9-axis)

Many M5Stack devices include inertial measurement units (IMUs) that provide accelerometer and gyroscope data. Devices with IMU capabilities include:

  • ATOM Matrix (IMU)
  • StickC PLUS2 (IMU)
  • CoreS3 (IMU)
  • Core2 (IMU)
  • Core Fire (IMU)
  • M5GO (IMU)

These sensors enable motion detection, orientation tracking, shake detection, and gesture recognition.

Magnetometer Availability

Only a few devices include a magnetometer:

  • CoreS3
  • Core Fire

Devices based on the MPU6886 (Stick series, ATOM Matrix, etc.) include only accelerometer + gyroscope.

Magnetometers enable compass features, orientation-corrected sensor fusion, and magnetic field detection.

5. Adding Sound Capabilities

Many M5Stack boards lack onboard speakers. To play audio, consider:

  • StickC PLUS2 + Speaker Hat (MAX98357)
  • ATOM Echo
  • CoreS3 (built-in full I²S audio subsystem)
  • MAX98357 I²S amplifier modules wired to ATOM or Stick devices
  • Audio Module (STM32G030) for classic Core stackable devices

Short WAV/MP3 audio playback is feasible across the entire ecosystem when an appropriate amplifier is present.

6. LEDs and NeoPixel Effects

RGB LED capabilities vary by device:

  • ATOM Matrix offers a 25-pixel NeoPixel matrix
  • Core Fire, M5GO, Core2 AWS EduKit include 10-pixel LED bars in their M5GO bottoms
  • StickC PLUS2, ATOM Lite, ATOM Echo each include a single RGB LED
  • CoreS3 has no onboard NeoPixels but works with M5GO Bottom3

These can be used for icons, animations, interaction cues, and visual feedback.

7. Haptic Feedback

To add vibration feedback, consider devices with built-in motors:

  • Core2
  • M5StickC PLUS2

Other boards require wiring a coin-cell vibration motor.

8. RFID Interaction

RFID support is not built into any M5Stack Core or ATOM device. Use the RFID Unit 2 (WS1850S) over Grove (I²C/UART).

Compatible with:

  • Core / Core2 / Fire
  • CoreS3
  • Stick series
  • ATOM series

This enables actions such as sound or LED effects triggered by specific tags.

9. Ultra-Low-Power Behaviour and RTC-Based Wake-Up

To create devices that run for long periods and only wake occasionally, true power gating is required — not just ESP32 deep sleep.

The M5Stamp Timer Power (BM8563) enables:

  • RTC alarms
  • timed wake-ups
  • fully powering the ESP32 board off (microamp consumption)
  • timed reactivation

It requires manual wiring and is independent of M5Stack form factors, making it ideal for embedded low-power projects.

10. Mounting and LEGO Integration

Physical construction can be supported using:

  • SandwichC Bricks (LEGO-compatible mounting plates)
  • M3 screw kits
  • M5 Box for storage and prototyping

These allow embedding M5Stack hardware into toys, enclosures, and kinetic experiments.

11. Building Interactive Devices

Motion-Reactive Devices

To build compact interactive devices (e.g., "cubes") that respond to shaking, rotation, or tapping, pair:

  • a device with a 6-axis or 9-axis IMU
  • either a built-in speaker or an I²S audio amplifier
  • optional RGB LEDs for visual effects
  • a small battery base (e.g., Atomic Battery Base or TailBat)

Useful hardware options include:

  • ATOM Matrix (25 NeoPixels, IMU)
  • StickC PLUS2 (IMU, vibration motor, small display)
  • ATOM Echo (speaker onboard, needs external IMU)
  • CoreS3 (more advanced but larger)

These devices can play short sounds when moved, light up LEDs, vibrate, or react to orientation.

Educational and Toy Interaction Patterns

The research identifies several patterns for building interactive devices:

  • shake-to-sound cubes
  • direction-aware toys using magnetometers
  • RFID-triggered responses
  • sound/light objects embedded in LEGO structures
  • wearable sound/noise devices
  • low-power IoT nodes waking briefly to perform tasks
  • touchscreen audio-visual gadgets using CoreS3

These patterns benefit from selecting the right combination of IMU, speaker, LEDs, and power hardware.

12. Curated Hardware Set (as used in this project)

The following devices and modules form a versatile experimental toolkit:

  • CoreS3
  • M5StickC PLUS2 + Speaker Hat
  • ATOM Matrix
  • M5Stamp Timer Power (RTC power gating)
  • RFID Unit 2
  • Atomic Battery Base
  • Mini Dual Button Unit
  • SandwichC Bricks
  • M3 Screw Kit

This selection enables building portable sound toys, motion-reactive cubes, RFID-aware devices, and long-life low-power systems.

13. Reference Tables

Device and accessory reference tables have been placed below.

These tables include detailed information on:

  • footprints
  • battery types
  • IMU and magnetometer
  • audio capabilities
  • LED systems
  • vibration motors
  • camera and microphones
  • RTC presence
  • module compatibility
  • whether an item is in the current hardware basket

📦 DEVICE TABLE

DeviceFamily12-pin M-BusIMUMagDisplaySpeakerBatterySDVibCameraMicsRTCExtra LEDsWhere the pixels livePiHut Link
CoreS3Core (new)2.0" touch✔ dual0None (unless adding Bottom3)Search
CoreS3 SECore (new)2.0" touch✔ dual0NoneSearch
Core (Original)Core classic2.0" LCD0NoneSearch
Core2Core classic2.0" touch0 (10 w/ Bottom2)LEDs in Bottom2 onlySearch
Core FireCore classic2.0" LCD10 SK6812In M5GO baseSearch
M5GO (Core kit)Core classic2.0" IPS10 LEDsIn M5GO baseSearch
Core2 AWS EduKitCore classic2.0" touch10 LEDsIn M5GO Bottom2Search
M5StickC PLUSStickSmall TFTBuzzer0NoneSearch
M5StickC PLUS2StickIPS TFTBuzzer1 RGBOn StickC PLUS2 main boardSearch
ATOM MatrixATOM5×5 LEDs25 WS2812On front LED matrixSearch
ATOM LiteATOMNone1 RGBOn main boardSearch
ATOM EchoATOMNone1 RGBOn main boardSearch

🔌 ACCESSORIES TABLE

AccessoryWhat it doesFootprint compatibilityWhere usedPiHut Link
M5Stamp Timer PowerRTC + timed power gatingUniversal (wired)Ultra-low-power / wake controlSearch
M5StickC PLUS Speaker Hat (MAX98357)Adds digital speakerStick familyAudio outputSearch
Atomic Battery Base200 mAh batteryATOM footprintPortable ATOM buildsSearch
SandwichC Brick (x3)Lego-compatible adapterUniversal mechanicalMountingSearch
RFID Unit 2 (WS1850S)RFID readerAny Grove-enabled deviceNFC-like readingSearch
M5 BoxStorageUniversalStorageSearch
M3 Screw KitMounting hardwareUniversalAssemblySearch
Mini Dual Button Unit2-button Grove inputUniversalInput deviceSearch
Audio Module (STM32G030)Stereo codecClassic Core stackExternal audioSearch
Core Battery Modules (13.2 etc.)Extra batteryClassic 5×5StackableSearch
M5GO bottom (RGB)LED bar + batteryCore2 / Core Fire / CoreS3 versionsAdds 10 LEDsSearch
TailBatBatteryATOMPortableSearch
M5StickC 18650 Base18650 battery holderStick familyExtended runtime for StickCProduct
M5Stack Base AAA Battery HolderAAA battery holderClassic Core stackAlternative power for CoreProduct
Generic I²S ampSpeaker ampAny wiredExternal audioSearch

Diagrams

Classic Core Series (5×5 cm, 12-pin M-Bus)

flowchart TD
note1["ClassicCore<br/>• 57×57 mm footprint<br/>• 12-pin M-Bus on bottom<br/>• Compatible with stack modules:<br/> – Battery modules<br/> – Audio Module (STM32G030)<br/> – Relay / IO modules<br/>• Good for modular, stackable builds"]
subgraph ClassicCore["Classic Core Series (5×5 cm, 12-pin M-Bus)"]
C0["Core (Gray)<br/>• 57×57 mm classic Core<br/>• ESP32<br/>• 12-pin M-Bus stack<br/>• LCD, speaker, SD<br/>• No IMU / no magnetometer"]
C1["Core2<br/>• 57×57 mm classic Core<br/>• Touchscreen, speaker<br/>• Battery, SD<br/>• 6-axis IMU (no mag)<br/>• Vibration motor<br/>• 12-pin M-Bus stack"]
C2["Core Fire<br/>• Classic Core + IMU<br/>• 9-axis (MPU9250 with mag)<br/>• 10 RGB LEDs in M5GO base<br/>• Battery, SD, speaker<br/>• 12-pin M-Bus stack"]
C3["Core2 AWS EduKit<br/>• Core2 + M5GO Bottom2<br/>• 10 RGB LEDs in base<br/>• Battery, SD, speaker<br/>• 6-axis IMU (no mag)<br/>• 12-pin M-Bus stack"]
C4["M5GO (Core kit)<br/>• Core-style controller<br/>• 6-axis IMU<br/>• 10 RGB LEDs in M5GO base<br/>• Battery, speaker, mic<br/>• 12-pin M-Bus stack"]
end
note1 -.-> C0 note1 -.-> C1 note1 -.-> C2 note1 -.-> C3 note1 -.-> C4 
Loading

CoreS3 Series (new 30-pin bus)

flowchart TD
noteS3["CoreS3Series<br/>• Use a new 30-pin base connector<br/>• NOT compatible with classic 5×5 stack modules<br/>• Can use S3-specific bottoms (e.g. M5GO Bottom3) for:<br/> – Extra battery<br/> – 10 RGB LEDs<br/>• Best suited for rich UI, audio, camera, and sensing"]
subgraph CoreS3Series["CoreS3 Series (New 30-pin Base Connector)"]
S3["CoreS3<br/>• 54×54 mm S3 footprint<br/>• Touchscreen + camera<br/>• Dual microphones<br/>• 6-axis IMU + magnetometer<br/>• 500 mAh internal battery<br/>• SD card<br/>• No 12-pin M-Bus"]
S3SE["CoreS3 SE<br/>• Same footprint as CoreS3<br/>• Touchscreen, camera, dual mics<br/>• No IMU / no magnetometer<br/>• No internal battery<br/>• SD card<br/>• No 12-pin M-Bus"]
end
noteS3 -.-> S3 noteS3 -.-> S3SE 
Loading

Stick Series (wearable / slim devices)

flowchart TD
noteST["StickSeries<br/>• Designed for wearable / handheld projects<br/>• Expansion via Stick Hat connector + Grove<br/>• Good for:<br/> – Small UI devices<br/> – Wrist-worn or pocket tools<br/> – Motion + sound toys with Speaker Hat"]
subgraph StickSeries["Stick Series (Wearable / Slim Devices)"]
ST1["M5StickC PLUS<br/>• Slim stick form factor<br/>• 6-axis IMU (MPU6886)<br/>• Small TFT display<br/>• Internal LiPo battery<br/>• Microphone<br/>• No vibration motor<br/>• No 12-pin M-Bus<br/>• Uses Hat accessories (e.g. Speaker Hat)"]
ST2["M5StickC PLUS2<br/>• Updated StickC platform<br/>• 6-axis IMU (MPU6886)<br/>• Small IPS TFT<br/>• 200 mAh battery<br/>• Microphone<br/>• Vibration motor<br/>• Single RGB LED<br/>• No 12-pin M-Bus<br/>• Uses Stick Hats (e.g. MAX98357 speaker)"]
end
noteST -.-> ST1 noteST -.-> ST2 
Loading

ATOM Series (tiny 24×24 mm cubes)

flowchart TD
noteAtom["AtomSeries<br/>• No stacking; no 12-pin M-Bus<br/>• Use Grove ports or direct wiring<br/>• Optional Atomic Battery Base for portable builds<br/>• Well suited for:<br/> – Tiny sound cubes (Echo)<br/> – Motion + LED cubes (Matrix)<br/> – Minimal IoT nodes (Lite)"]
subgraph AtomSeries["ATOM Series (Tiny 24×24 mm Cubes)"]
A_Lite["ATOM Lite<br/>• Minimal ESP32 dev board<br/>• Single RGB LED<br/>• No IMU<br/>• No speaker<br/>• No battery<br/>• Power via USB or Atomic base<br/>• Expansion via Grove / wiring"]
A_Matrix["ATOM Matrix<br/>• 24×24 mm cube<br/>• 5×5 RGB LED matrix (25 pixels)<br/>• 6-axis IMU (MPU6886)<br/>• No speaker built-in<br/>• No battery (pair with Atomic Battery Base)<br/>• Grove + GPIO for expansion"]
A_Echo["ATOM Echo<br/>• 24×24 mm cube<br/>• Built-in speaker<br/>• Microphone<br/>• Single RGB LED<br/>• No IMU<br/>• No battery (optional external base)<br/>• Grove + wiring for sensors"]
end
noteAtom -.-> A_Lite noteAtom -.-> A_Matrix noteAtom -.-> A_Echo 
Loading

STAMP / Power Modules (embedded / wired)

flowchart TD
noteTP["StampSeries<br/>• Not stackable; requires soldering/wiring<br/>• Works with any ESP32 device (Core, Stick, ATOM, etc.)<br/>• Used to:<br/> – Cut power completely between wake events<br/> – Achieve ultra-low-power operation<br/> – Schedule timed wakeups"]
subgraph StampSeries["STAMP / Power Modules (Embedded / Wired)"]
STP["M5Stamp Timer Power (BM8563)<br/>• RTC + alarm<br/>• Li-ion charging<br/>• 3.3 V / 5 V output<br/>• Power gating of main board<br/>• Very low standby current<br/>• Small 20×20 mm module"]
end
noteTP -.-> STP 
Loading

Power Options and Battery Solutions

flowchart TD
subgraph InternalPower["On-board / Integrated Power"]
IP1["CoreS3<br/>• 500 mAh internal LiPo<br/>• Can be extended with S3 Bottom3"]
IP2["Core2 / Core Fire / M5GO / Core2 AWS<br/>• Internal battery in Core or base<br/>• Capacity depends on kit"]
IP3["M5StickC PLUS / PLUS2<br/>• Small internal LiPo<br/>• USB-C charging"]
IP4["Most ATOM devices<br/>• No internal battery<br/>• USB power by default"]
end
subgraph StackableBattery["Stackable Battery Modules (Classic 5×5 only)"]
SB1["Battery Module (Core)<br/>• 5×5 cm stack module<br/>• Extra capacity<br/>• Compatible with Core/Core2/Fire/M5GO/AWS"]
SB2["High-capacity Battery13.2<br/>• Large stack battery<br/>• For long runtime<br/>• Increases stack height"]
SB3["M5GO Bottom / Bottom2<br/>• RGB bar + battery + ports<br/>• Kit-specific for Core/Core2/Fire/AWS"]
SB4["Base AAA Battery Holder<br/>• AAA battery holder<br/>• Alternative power for Core<br/>• Classic 5×5 stack"]
end
subgraph AtomBattery["ATOM Battery Options"]
AB1["Atomic Battery Base (TailBat)<br/>• ~200 mAh LiPo<br/>• Clips to ATOM footprint<br/>• USB-C charging"]
end
subgraph StickBattery["Stick Battery Options"]
STB1["M5StickC 18650 Base<br/>• 18650 battery holder<br/>• Extended runtime for StickC<br/>• Larger capacity than internal LiPo"]
end
subgraph ExternalPower["External Power (Universal)"]
EP1["USB Power Bank<br/>• Plug into USB-C<br/>• Works with all devices"]
EP2["Bench Supply / Adapter<br/>• 5 V / 3.3 V regulated<br/>• For lab setups"]
end
subgraph PowerControl["Power Control / RTC"]
PC1["M5Stamp Timer Power (BM8563)<br/>• Li-ion charging<br/>• 3.3/5 V output<br/>• RTC alarms<br/>• Full power gating"]
end
%% Relationships
IP1 --> EP1
IP2 --> EP1
IP3 --> EP1
IP4 --> EP1
SB1 --> IP2
SB2 --> IP2
SB3 --> IP2
SB4 --> IP2
AB1 --> IP4
STB1 --> IP3
PC1 --> IP4
PC1 --> IP3
PC1 --> IP2
PC1 --> IP1
Loading

Legend:

  • InternalPower: built-in batteries
  • StackableBattery: classic 5×5 only (includes AAA holder)
  • AtomBattery: TailBat/Atomic Base for ATOM
  • StickBattery: 18650 base for StickC
  • ExternalPower: USB/bulk power
  • PowerControl: M5Stamp Timer Power for ultra-low-power designs

Recommended Build Patterns and Device Combinations

flowchart TD
note_P1["P1: Motion + LED Cube<br/>• Focus on IMU + LEDs, optional battery<br/>• Typical combo: ATOM Matrix + Atomic Battery Base"]
note_P2["P2: Sound Cube / Toy<br/>• Short WAV/MP3 sounds<br/>• I²S speaker or built-in speaker<br/>• Motion triggers or button triggers"]
note_P3["P3: RFID Toy<br/>• Use RFID Unit 2 via Grove<br/>• Map tags → sounds, animations, or state changes"]
note_P4["P4: Ultra–Low-Power Node<br/>• M5Stamp Timer Power controls power<br/>• Device runs briefly, then fully powers down"]
note_P5["P5: Touchscreen Multimedia Device<br/>• CoreS3 with audio, cam, IMU, mic<br/>• Suitable for rich UI experiments"]
%% Build patterns
subgraph Patterns["Recommended Build Patterns"]
P1["Motion + LED Cube<br/>(e.g. roll/shake to animate)"]
P2["Sound Cube / Sound Toy<br/>(e.g. short sounds on shake or tap)"]
P3["RFID Toy / Token Reader<br/>(e.g. tag → sound/light)"]
P4["Ultra–Low-Power Node<br/>(e.g. wake occasionally, then power off)"]
P5["Touchscreen Multimedia Device<br/>(audio, graphics, camera)"]
end
%% Devices and key modules
subgraph Devices["Devices"]
D_CoreS3["CoreS3<br/>• Touch + cam + mic<br/>• Speaker + IMU + mag<br/>• Battery"]
D_StickP2["M5StickC PLUS2<br/>• IMU + TFT<br/>• Battery + vib + mic"]
D_AtomMatrix["ATOM Matrix<br/>• 5×5 RGB<br/>• IMU"]
D_AtomEcho["ATOM Echo<br/>• Speaker + mic<br/>• Single RGB"]
D_Timer["M5Stamp Timer Power<br/>• RTC + power gating"]
D_RFID["RFID Unit 2<br/>• Grove RFID reader"]
D_AAtomic["Atomic Battery Base<br/>• Battery for ATOM"]
D_SpkHat["StickC Speaker 2 Hat<br/>• MAX98357 I²S speaker"]
D_Buttons["Mini Dual Button Unit"]
end
%% Pattern connections
%% P1: Motion + LED cube
P1 --> D_AtomMatrix
P1 --> D_AAtomic
%% P2: Sound cube/toy
P2 --> D_AtomMatrix
P2 --> D_AtomEcho
P2 --> D_AAtomic
P2 --> D_StickP2
P2 --> D_SpkHat
%% P3: RFID toy
P3 --> D_CoreS3
P3 --> D_StickP2
P3 --> D_AtomMatrix
P3 --> D_RFID
P3 --> D_Buttons
%% P4: Ultra–low-power node
P4 --> D_Timer
P4 --> D_AtomMatrix
P4 --> D_AtomEcho
P4 --> D_StickP2
P4 --> D_CoreS3
%% P5: Touchscreen multimedia device
P5 --> D_CoreS3
%% Notes connections
note_P1 -.-> P1
note_P2 -.-> P2
note_P3 -.-> P3
note_P4 -.-> P4
note_P5 -.-> P5
Loading

Acknowledgements

Generated with help from LLMs (ChatGPT, Claude, Gemini, Cursor).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

M5Stack Notes

This repository documents a detailed exploration of the M5Stack hardware ecosystem, focusing on building small interactive devices that combine motion sensing, audio playback, LEDs, haptics, RFID, and ultra-low-power operation.

The research compares different families of M5Stack devices, evaluates their expandability, and maps out which modules, batteries, and accessories are compatible with each hardware form factor.

Device and accessory reference tables are included below.

1. Overview

M5Stack provides a diverse range of ESP32-based development devices organised into several hardware families:

  • Core series (classic 5×5 cm) — modular stackable controllers
  • CoreS3 series (new generation) — advanced multimedia controllers
  • Stick series — compact wearable-style devices
  • ATOM series — ultra-small modular cubes
  • STAMP modules — embedded boards for custom wiring

Each family has unique strengths and constraints, especially regarding audio, IMU functionality, battery integration, module compatibility, and power management.

2. Device Family Comparison

CoreS3 Series

Advanced multimedia devices with touchscreens, dual microphones, camera, IMU, and (on CoreS3) a magnetometer. Uses a new 30-pin base connector and does not support classic stack modules.

Classic Core Series (Core, Core2, Fire, AWS EduKit, M5GO kits)

Designed around the 57×57 mm, 12-pin M-Bus form factor. Support stackable modules including:

  • Battery modules
  • Relay modules
  • Audio Module (STM32G030)
  • M5GO Bottom bases with 10 RGB LEDs

Stick Series

Small rectangular devices with integrated battery, IMU, small LCD, and optional Hats (speaker, sensors, buttons). The PLUS2 model adds a vibration motor and improved PMIC.

ATOM Series

Ultra-small cubes featuring minimal ESP32 boards, often with add-ons:

  • Matrix: 25 NeoPixels + IMU
  • Echo: speaker + microphone
  • Lite: minimal I/O
  • Use via Grove connectors or direct wiring.

3. Understanding Module Stacking

Classic stack modules (battery, audio, relay, proto, etc.) only attach to:

  • Core (Original)
  • Core2
  • Core Fire
  • M5GO
  • Core2 AWS EduKit

CoreS3 does not use the classic M-Bus; Stick and ATOM devices rely on Grove and wiring instead of stacking.

Selecting hardware requires understanding this difference, especially when combining power modules or expansion modules.

4. Motion Sensing

IMU (6-axis and 9-axis)

Many M5Stack devices include inertial measurement units (IMUs) that provide accelerometer and gyroscope data. Devices with IMU capabilities include:

  • ATOM Matrix (IMU)
  • StickC PLUS2 (IMU)
  • CoreS3 (IMU)
  • Core2 (IMU)
  • Core Fire (IMU)
  • M5GO (IMU)

These sensors enable motion detection, orientation tracking, shake detection, and gesture recognition.

Magnetometer Availability

Only a few devices include a magnetometer:

  • CoreS3
  • Core Fire

Devices based on the MPU6886 (Stick series, ATOM Matrix, etc.) include only accelerometer + gyroscope.

Magnetometers enable compass features, orientation-corrected sensor fusion, and magnetic field detection.

5. Adding Sound Capabilities

Many M5Stack boards lack onboard speakers. To play audio, consider:

  • StickC PLUS2 + Speaker Hat (MAX98357)
  • ATOM Echo
  • CoreS3 (built-in full I²S audio subsystem)
  • MAX98357 I²S amplifier modules wired to ATOM or Stick devices
  • Audio Module (STM32G030) for classic Core stackable devices

Short WAV/MP3 audio playback is feasible across the entire ecosystem when an appropriate amplifier is present.

6. LEDs and NeoPixel Effects

RGB LED capabilities vary by device:

  • ATOM Matrix offers a 25-pixel NeoPixel matrix
  • Core Fire, M5GO, Core2 AWS EduKit include 10-pixel LED bars in their M5GO bottoms
  • StickC PLUS2, ATOM Lite, ATOM Echo each include a single RGB LED
  • CoreS3 has no onboard NeoPixels but works with M5GO Bottom3

These can be used for icons, animations, interaction cues, and visual feedback.

7. Haptic Feedback

To add vibration feedback, consider devices with built-in motors:

  • Core2
  • M5StickC PLUS2

Other boards require wiring a coin-cell vibration motor.

8. RFID Interaction

RFID support is not built into any M5Stack Core or ATOM device. Use the RFID Unit 2 (WS1850S) over Grove (I²C/UART).

Compatible with:

  • Core / Core2 / Fire
  • CoreS3
  • Stick series
  • ATOM series

This enables actions such as sound or LED effects triggered by specific tags.

9. Ultra-Low-Power Behaviour and RTC-Based Wake-Up

To create devices that run for long periods and only wake occasionally, true power gating is required — not just ESP32 deep sleep.

The M5Stamp Timer Power (BM8563) enables:

  • RTC alarms
  • timed wake-ups
  • fully powering the ESP32 board off (microamp consumption)
  • timed reactivation

It requires manual wiring and is independent of M5Stack form factors, making it ideal for embedded low-power projects.

10. Mounting and LEGO Integration

Physical construction can be supported using:

  • SandwichC Bricks (LEGO-compatible mounting plates)
  • M3 screw kits
  • M5 Box for storage and prototyping

These allow embedding M5Stack hardware into toys, enclosures, and kinetic experiments.

11. Building Interactive Devices

Motion-Reactive Devices

To build compact interactive devices (e.g., "cubes") that respond to shaking, rotation, or tapping, pair:

  • a device with a 6-axis or 9-axis IMU
  • either a built-in speaker or an I²S audio amplifier
  • optional RGB LEDs for visual effects
  • a small battery base (e.g., Atomic Battery Base or TailBat)

Useful hardware options include:

  • ATOM Matrix (25 NeoPixels, IMU)
  • StickC PLUS2 (IMU, vibration motor, small display)
  • ATOM Echo (speaker onboard, needs external IMU)
  • CoreS3 (more advanced but larger)

These devices can play short sounds when moved, light up LEDs, vibrate, or react to orientation.

Educational and Toy Interaction Patterns

The research identifies several patterns for building interactive devices:

  • shake-to-sound cubes
  • direction-aware toys using magnetometers
  • RFID-triggered responses
  • sound/light objects embedded in LEGO structures
  • wearable sound/noise devices
  • low-power IoT nodes waking briefly to perform tasks
  • touchscreen audio-visual gadgets using CoreS3

These patterns benefit from selecting the right combination of IMU, speaker, LEDs, and power hardware.

12. Curated Hardware Set (as used in this project)

The following devices and modules form a versatile experimental toolkit:

  • CoreS3
  • M5StickC PLUS2 + Speaker Hat
  • ATOM Matrix
  • M5Stamp Timer Power (RTC power gating)
  • RFID Unit 2
  • Atomic Battery Base
  • Mini Dual Button Unit
  • SandwichC Bricks
  • M3 Screw Kit

This selection enables building portable sound toys, motion-reactive cubes, RFID-aware devices, and long-life low-power systems.

13. Reference Tables

Device and accessory reference tables have been placed below.

These tables include detailed information on:

  • footprints
  • battery types
  • IMU and magnetometer
  • audio capabilities
  • LED systems
  • vibration motors
  • camera and microphones
  • RTC presence
  • module compatibility
  • whether an item is in the current hardware basket

📦 DEVICE TABLE

DeviceFamily12-pin M-BusIMUMagDisplaySpeakerBatterySDVibCameraMicsRTCExtra LEDsWhere the pixels livePiHut Link
CoreS3Core (new)2.0" touch✔ dual0None (unless adding Bottom3)Search
CoreS3 SECore (new)2.0" touch✔ dual0NoneSearch
Core (Original)Core classic2.0" LCD0NoneSearch
Core2Core classic2.0" touch0 (10 w/ Bottom2)LEDs in Bottom2 onlySearch
Core FireCore classic2.0" LCD10 SK6812In M5GO baseSearch
M5GO (Core kit)Core classic2.0" IPS10 LEDsIn M5GO baseSearch
Core2 AWS EduKitCore classic2.0" touch10 LEDsIn M5GO Bottom2Search
M5StickC PLUSStickSmall TFTBuzzer0NoneSearch
M5StickC PLUS2StickIPS TFTBuzzer1 RGBOn StickC PLUS2 main boardSearch
ATOM MatrixATOM5×5 LEDs25 WS2812On front LED matrixSearch
ATOM LiteATOMNone1 RGBOn main boardSearch
ATOM EchoATOMNone1 RGBOn main boardSearch

🔌 ACCESSORIES TABLE

AccessoryWhat it doesFootprint compatibilityWhere usedPiHut Link
M5Stamp Timer PowerRTC + timed power gatingUniversal (wired)Ultra-low-power / wake controlSearch
M5StickC PLUS Speaker Hat (MAX98357)Adds digital speakerStick familyAudio outputSearch
Atomic Battery Base200 mAh batteryATOM footprintPortable ATOM buildsSearch
SandwichC Brick (x3)Lego-compatible adapterUniversal mechanicalMountingSearch
RFID Unit 2 (WS1850S)RFID readerAny Grove-enabled deviceNFC-like readingSearch
M5 BoxStorageUniversalStorageSearch
M3 Screw KitMounting hardwareUniversalAssemblySearch
Mini Dual Button Unit2-button Grove inputUniversalInput deviceSearch
Audio Module (STM32G030)Stereo codecClassic Core stackExternal audioSearch
Core Battery Modules (13.2 etc.)Extra batteryClassic 5×5StackableSearch
M5GO bottom (RGB)LED bar + batteryCore2 / Core Fire / CoreS3 versionsAdds 10 LEDsSearch
TailBatBatteryATOMPortableSearch
M5StickC 18650 Base18650 battery holderStick familyExtended runtime for StickCProduct
M5Stack Base AAA Battery HolderAAA battery holderClassic Core stackAlternative power for CoreProduct
Generic I²S ampSpeaker ampAny wiredExternal audioSearch

Diagrams

Classic Core Series (5×5 cm, 12-pin M-Bus)

flowchart TD
note1["ClassicCore<br/>• 57×57 mm footprint<br/>• 12-pin M-Bus on bottom<br/>• Compatible with stack modules:<br/> – Battery modules<br/> – Audio Module (STM32G030)<br/> – Relay / IO modules<br/>• Good for modular, stackable builds"]
subgraph ClassicCore["Classic Core Series (5×5 cm, 12-pin M-Bus)"]
C0["Core (Gray)<br/>• 57×57 mm classic Core<br/>• ESP32<br/>• 12-pin M-Bus stack<br/>• LCD, speaker, SD<br/>• No IMU / no magnetometer"]
C1["Core2<br/>• 57×57 mm classic Core<br/>• Touchscreen, speaker<br/>• Battery, SD<br/>• 6-axis IMU (no mag)<br/>• Vibration motor<br/>• 12-pin M-Bus stack"]
C2["Core Fire<br/>• Classic Core + IMU<br/>• 9-axis (MPU9250 with mag)<br/>• 10 RGB LEDs in M5GO base<br/>• Battery, SD, speaker<br/>• 12-pin M-Bus stack"]
C3["Core2 AWS EduKit<br/>• Core2 + M5GO Bottom2<br/>• 10 RGB LEDs in base<br/>• Battery, SD, speaker<br/>• 6-axis IMU (no mag)<br/>• 12-pin M-Bus stack"]
C4["M5GO (Core kit)<br/>• Core-style controller<br/>• 6-axis IMU<br/>• 10 RGB LEDs in M5GO base<br/>• Battery, speaker, mic<br/>• 12-pin M-Bus stack"]
end
note1 -.-> C0 note1 -.-> C1 note1 -.-> C2 note1 -.-> C3 note1 -.-> C4 
Loading

CoreS3 Series (new 30-pin bus)

flowchart TD
noteS3["CoreS3Series<br/>• Use a new 30-pin base connector<br/>• NOT compatible with classic 5×5 stack modules<br/>• Can use S3-specific bottoms (e.g. M5GO Bottom3) for:<br/> – Extra battery<br/> – 10 RGB LEDs<br/>• Best suited for rich UI, audio, camera, and sensing"]
subgraph CoreS3Series["CoreS3 Series (New 30-pin Base Connector)"]
S3["CoreS3<br/>• 54×54 mm S3 footprint<br/>• Touchscreen + camera<br/>• Dual microphones<br/>• 6-axis IMU + magnetometer<br/>• 500 mAh internal battery<br/>• SD card<br/>• No 12-pin M-Bus"]
S3SE["CoreS3 SE<br/>• Same footprint as CoreS3<br/>• Touchscreen, camera, dual mics<br/>• No IMU / no magnetometer<br/>• No internal battery<br/>• SD card<br/>• No 12-pin M-Bus"]
end
noteS3 -.-> S3 noteS3 -.-> S3SE 
Loading

Stick Series (wearable / slim devices)

flowchart TD
noteST["StickSeries<br/>• Designed for wearable / handheld projects<br/>• Expansion via Stick Hat connector + Grove<br/>• Good for:<br/> – Small UI devices<br/> – Wrist-worn or pocket tools<br/> – Motion + sound toys with Speaker Hat"]
subgraph StickSeries["Stick Series (Wearable / Slim Devices)"]
ST1["M5StickC PLUS<br/>• Slim stick form factor<br/>• 6-axis IMU (MPU6886)<br/>• Small TFT display<br/>• Internal LiPo battery<br/>• Microphone<br/>• No vibration motor<br/>• No 12-pin M-Bus<br/>• Uses Hat accessories (e.g. Speaker Hat)"]
ST2["M5StickC PLUS2<br/>• Updated StickC platform<br/>• 6-axis IMU (MPU6886)<br/>• Small IPS TFT<br/>• 200 mAh battery<br/>• Microphone<br/>• Vibration motor<br/>• Single RGB LED<br/>• No 12-pin M-Bus<br/>• Uses Stick Hats (e.g. MAX98357 speaker)"]
end
noteST -.-> ST1 noteST -.-> ST2 
Loading

ATOM Series (tiny 24×24 mm cubes)

flowchart TD
noteAtom["AtomSeries<br/>• No stacking; no 12-pin M-Bus<br/>• Use Grove ports or direct wiring<br/>• Optional Atomic Battery Base for portable builds<br/>• Well suited for:<br/> – Tiny sound cubes (Echo)<br/> – Motion + LED cubes (Matrix)<br/> – Minimal IoT nodes (Lite)"]
subgraph AtomSeries["ATOM Series (Tiny 24×24 mm Cubes)"]
A_Lite["ATOM Lite<br/>• Minimal ESP32 dev board<br/>• Single RGB LED<br/>• No IMU<br/>• No speaker<br/>• No battery<br/>• Power via USB or Atomic base<br/>• Expansion via Grove / wiring"]
A_Matrix["ATOM Matrix<br/>• 24×24 mm cube<br/>• 5×5 RGB LED matrix (25 pixels)<br/>• 6-axis IMU (MPU6886)<br/>• No speaker built-in<br/>• No battery (pair with Atomic Battery Base)<br/>• Grove + GPIO for expansion"]
A_Echo["ATOM Echo<br/>• 24×24 mm cube<br/>• Built-in speaker<br/>• Microphone<br/>• Single RGB LED<br/>• No IMU<br/>• No battery (optional external base)<br/>• Grove + wiring for sensors"]
end
noteAtom -.-> A_Lite noteAtom -.-> A_Matrix noteAtom -.-> A_Echo 
Loading

STAMP / Power Modules (embedded / wired)

flowchart TD
noteTP["StampSeries<br/>• Not stackable; requires soldering/wiring<br/>• Works with any ESP32 device (Core, Stick, ATOM, etc.)<br/>• Used to:<br/> – Cut power completely between wake events<br/> – Achieve ultra-low-power operation<br/> – Schedule timed wakeups"]
subgraph StampSeries["STAMP / Power Modules (Embedded / Wired)"]
STP["M5Stamp Timer Power (BM8563)<br/>• RTC + alarm<br/>• Li-ion charging<br/>• 3.3 V / 5 V output<br/>• Power gating of main board<br/>• Very low standby current<br/>• Small 20×20 mm module"]
end
noteTP -.-> STP 
Loading

Power Options and Battery Solutions

flowchart TD
subgraph InternalPower["On-board / Integrated Power"]
IP1["CoreS3<br/>• 500 mAh internal LiPo<br/>• Can be extended with S3 Bottom3"]
IP2["Core2 / Core Fire / M5GO / Core2 AWS<br/>• Internal battery in Core or base<br/>• Capacity depends on kit"]
IP3["M5StickC PLUS / PLUS2<br/>• Small internal LiPo<br/>• USB-C charging"]
IP4["Most ATOM devices<br/>• No internal battery<br/>• USB power by default"]
end
subgraph StackableBattery["Stackable Battery Modules (Classic 5×5 only)"]
SB1["Battery Module (Core)<br/>• 5×5 cm stack module<br/>• Extra capacity<br/>• Compatible with Core/Core2/Fire/M5GO/AWS"]
SB2["High-capacity Battery13.2<br/>• Large stack battery<br/>• For long runtime<br/>• Increases stack height"]
SB3["M5GO Bottom / Bottom2<br/>• RGB bar + battery + ports<br/>• Kit-specific for Core/Core2/Fire/AWS"]
SB4["Base AAA Battery Holder<br/>• AAA battery holder<br/>• Alternative power for Core<br/>• Classic 5×5 stack"]
end
subgraph AtomBattery["ATOM Battery Options"]
AB1["Atomic Battery Base (TailBat)<br/>• ~200 mAh LiPo<br/>• Clips to ATOM footprint<br/>• USB-C charging"]
end
subgraph StickBattery["Stick Battery Options"]
STB1["M5StickC 18650 Base<br/>• 18650 battery holder<br/>• Extended runtime for StickC<br/>• Larger capacity than internal LiPo"]
end
subgraph ExternalPower["External Power (Universal)"]
EP1["USB Power Bank<br/>• Plug into USB-C<br/>• Works with all devices"]
EP2["Bench Supply / Adapter<br/>• 5 V / 3.3 V regulated<br/>• For lab setups"]
end
subgraph PowerControl["Power Control / RTC"]
PC1["M5Stamp Timer Power (BM8563)<br/>• Li-ion charging<br/>• 3.3/5 V output<br/>• RTC alarms<br/>• Full power gating"]
end
%% Relationships
IP1 --> EP1
IP2 --> EP1
IP3 --> EP1
IP4 --> EP1
SB1 --> IP2
SB2 --> IP2
SB3 --> IP2
SB4 --> IP2
AB1 --> IP4
STB1 --> IP3
PC1 --> IP4
PC1 --> IP3
PC1 --> IP2
PC1 --> IP1
Loading

Legend:

  • InternalPower: built-in batteries
  • StackableBattery: classic 5×5 only (includes AAA holder)
  • AtomBattery: TailBat/Atomic Base for ATOM
  • StickBattery: 18650 base for StickC
  • ExternalPower: USB/bulk power
  • PowerControl: M5Stamp Timer Power for ultra-low-power designs

Recommended Build Patterns and Device Combinations

flowchart TD
note_P1["P1: Motion + LED Cube<br/>• Focus on IMU + LEDs, optional battery<br/>• Typical combo: ATOM Matrix + Atomic Battery Base"]
note_P2["P2: Sound Cube / Toy<br/>• Short WAV/MP3 sounds<br/>• I²S speaker or built-in speaker<br/>• Motion triggers or button triggers"]
note_P3["P3: RFID Toy<br/>• Use RFID Unit 2 via Grove<br/>• Map tags → sounds, animations, or state changes"]
note_P4["P4: Ultra–Low-Power Node<br/>• M5Stamp Timer Power controls power<br/>• Device runs briefly, then fully powers down"]
note_P5["P5: Touchscreen Multimedia Device<br/>• CoreS3 with audio, cam, IMU, mic<br/>• Suitable for rich UI experiments"]
%% Build patterns
subgraph Patterns["Recommended Build Patterns"]
P1["Motion + LED Cube<br/>(e.g. roll/shake to animate)"]
P2["Sound Cube / Sound Toy<br/>(e.g. short sounds on shake or tap)"]
P3["RFID Toy / Token Reader<br/>(e.g. tag → sound/light)"]
P4["Ultra–Low-Power Node<br/>(e.g. wake occasionally, then power off)"]
P5["Touchscreen Multimedia Device<br/>(audio, graphics, camera)"]
end
%% Devices and key modules
subgraph Devices["Devices"]
D_CoreS3["CoreS3<br/>• Touch + cam + mic<br/>• Speaker + IMU + mag<br/>• Battery"]
D_StickP2["M5StickC PLUS2<br/>• IMU + TFT<br/>• Battery + vib + mic"]
D_AtomMatrix["ATOM Matrix<br/>• 5×5 RGB<br/>• IMU"]
D_AtomEcho["ATOM Echo<br/>• Speaker + mic<br/>• Single RGB"]
D_Timer["M5Stamp Timer Power<br/>• RTC + power gating"]
D_RFID["RFID Unit 2<br/>• Grove RFID reader"]
D_AAtomic["Atomic Battery Base<br/>• Battery for ATOM"]
D_SpkHat["StickC Speaker 2 Hat<br/>• MAX98357 I²S speaker"]
D_Buttons["Mini Dual Button Unit"]
end
%% Pattern connections
%% P1: Motion + LED cube
P1 --> D_AtomMatrix
P1 --> D_AAtomic
%% P2: Sound cube/toy
P2 --> D_AtomMatrix
P2 --> D_AtomEcho
P2 --> D_AAtomic
P2 --> D_StickP2
P2 --> D_SpkHat
%% P3: RFID toy
P3 --> D_CoreS3
P3 --> D_StickP2
P3 --> D_AtomMatrix
P3 --> D_RFID
P3 --> D_Buttons
%% P4: Ultra–low-power node
P4 --> D_Timer
P4 --> D_AtomMatrix
P4 --> D_AtomEcho
P4 --> D_StickP2
P4 --> D_CoreS3
%% P5: Touchscreen multimedia device
P5 --> D_CoreS3
%% Notes connections
note_P1 -.-> P1
note_P2 -.-> P2
note_P3 -.-> P3
note_P4 -.-> P4
note_P5 -.-> P5
Loading

Acknowledgements

Generated with help from LLMs (ChatGPT, Claude, Gemini, Cursor).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

M5Stack Notes

This repository documents a detailed exploration of the M5Stack hardware ecosystem, focusing on building small interactive devices that combine motion sensing, audio playback, LEDs, haptics, RFID, and ultra-low-power operation.

The research compares different families of M5Stack devices, evaluates their expandability, and maps out which modules, batteries, and accessories are compatible with each hardware form factor.

Device and accessory reference tables are included below.

1. Overview

M5Stack provides a diverse range of ESP32-based development devices organised into several hardware families:

  • Core series (classic 5×5 cm) — modular stackable controllers
  • CoreS3 series (new generation) — advanced multimedia controllers
  • Stick series — compact wearable-style devices
  • ATOM series — ultra-small modular cubes
  • STAMP modules — embedded boards for custom wiring

Each family has unique strengths and constraints, especially regarding audio, IMU functionality, battery integration, module compatibility, and power management.

2. Device Family Comparison

CoreS3 Series

Advanced multimedia devices with touchscreens, dual microphones, camera, IMU, and (on CoreS3) a magnetometer. Uses a new 30-pin base connector and does not support classic stack modules.

Classic Core Series (Core, Core2, Fire, AWS EduKit, M5GO kits)

Designed around the 57×57 mm, 12-pin M-Bus form factor. Support stackable modules including:

  • Battery modules
  • Relay modules
  • Audio Module (STM32G030)
  • M5GO Bottom bases with 10 RGB LEDs

Stick Series

Small rectangular devices with integrated battery, IMU, small LCD, and optional Hats (speaker, sensors, buttons). The PLUS2 model adds a vibration motor and improved PMIC.

ATOM Series

Ultra-small cubes featuring minimal ESP32 boards, often with add-ons:

  • Matrix: 25 NeoPixels + IMU
  • Echo: speaker + microphone
  • Lite: minimal I/O
  • Use via Grove connectors or direct wiring.

3. Understanding Module Stacking

Classic stack modules (battery, audio, relay, proto, etc.) only attach to:

  • Core (Original)
  • Core2
  • Core Fire
  • M5GO
  • Core2 AWS EduKit

CoreS3 does not use the classic M-Bus; Stick and ATOM devices rely on Grove and wiring instead of stacking.

Selecting hardware requires understanding this difference, especially when combining power modules or expansion modules.

4. Motion Sensing

IMU (6-axis and 9-axis)

Many M5Stack devices include inertial measurement units (IMUs) that provide accelerometer and gyroscope data. Devices with IMU capabilities include:

  • ATOM Matrix (IMU)
  • StickC PLUS2 (IMU)
  • CoreS3 (IMU)
  • Core2 (IMU)
  • Core Fire (IMU)
  • M5GO (IMU)

These sensors enable motion detection, orientation tracking, shake detection, and gesture recognition.

Magnetometer Availability

Only a few devices include a magnetometer:

  • CoreS3
  • Core Fire

Devices based on the MPU6886 (Stick series, ATOM Matrix, etc.) include only accelerometer + gyroscope.

Magnetometers enable compass features, orientation-corrected sensor fusion, and magnetic field detection.

5. Adding Sound Capabilities

Many M5Stack boards lack onboard speakers. To play audio, consider:

  • StickC PLUS2 + Speaker Hat (MAX98357)
  • ATOM Echo
  • CoreS3 (built-in full I²S audio subsystem)
  • MAX98357 I²S amplifier modules wired to ATOM or Stick devices
  • Audio Module (STM32G030) for classic Core stackable devices

Short WAV/MP3 audio playback is feasible across the entire ecosystem when an appropriate amplifier is present.

6. LEDs and NeoPixel Effects

RGB LED capabilities vary by device:

  • ATOM Matrix offers a 25-pixel NeoPixel matrix
  • Core Fire, M5GO, Core2 AWS EduKit include 10-pixel LED bars in their M5GO bottoms
  • StickC PLUS2, ATOM Lite, ATOM Echo each include a single RGB LED
  • CoreS3 has no onboard NeoPixels but works with M5GO Bottom3

These can be used for icons, animations, interaction cues, and visual feedback.

7. Haptic Feedback

To add vibration feedback, consider devices with built-in motors:

  • Core2
  • M5StickC PLUS2

Other boards require wiring a coin-cell vibration motor.

8. RFID Interaction

RFID support is not built into any M5Stack Core or ATOM device. Use the RFID Unit 2 (WS1850S) over Grove (I²C/UART).

Compatible with:

  • Core / Core2 / Fire
  • CoreS3
  • Stick series
  • ATOM series

This enables actions such as sound or LED effects triggered by specific tags.

9. Ultra-Low-Power Behaviour and RTC-Based Wake-Up

To create devices that run for long periods and only wake occasionally, true power gating is required — not just ESP32 deep sleep.

The M5Stamp Timer Power (BM8563) enables:

  • RTC alarms
  • timed wake-ups
  • fully powering the ESP32 board off (microamp consumption)
  • timed reactivation

It requires manual wiring and is independent of M5Stack form factors, making it ideal for embedded low-power projects.

10. Mounting and LEGO Integration

Physical construction can be supported using:

  • SandwichC Bricks (LEGO-compatible mounting plates)
  • M3 screw kits
  • M5 Box for storage and prototyping

These allow embedding M5Stack hardware into toys, enclosures, and kinetic experiments.

11. Building Interactive Devices

Motion-Reactive Devices

To build compact interactive devices (e.g., "cubes") that respond to shaking, rotation, or tapping, pair:

  • a device with a 6-axis or 9-axis IMU
  • either a built-in speaker or an I²S audio amplifier
  • optional RGB LEDs for visual effects
  • a small battery base (e.g., Atomic Battery Base or TailBat)

Useful hardware options include:

  • ATOM Matrix (25 NeoPixels, IMU)
  • StickC PLUS2 (IMU, vibration motor, small display)
  • ATOM Echo (speaker onboard, needs external IMU)
  • CoreS3 (more advanced but larger)

These devices can play short sounds when moved, light up LEDs, vibrate, or react to orientation.

Educational and Toy Interaction Patterns

The research identifies several patterns for building interactive devices:

  • shake-to-sound cubes
  • direction-aware toys using magnetometers
  • RFID-triggered responses
  • sound/light objects embedded in LEGO structures
  • wearable sound/noise devices
  • low-power IoT nodes waking briefly to perform tasks
  • touchscreen audio-visual gadgets using CoreS3

These patterns benefit from selecting the right combination of IMU, speaker, LEDs, and power hardware.

12. Curated Hardware Set (as used in this project)

The following devices and modules form a versatile experimental toolkit:

  • CoreS3
  • M5StickC PLUS2 + Speaker Hat
  • ATOM Matrix
  • M5Stamp Timer Power (RTC power gating)
  • RFID Unit 2
  • Atomic Battery Base
  • Mini Dual Button Unit
  • SandwichC Bricks
  • M3 Screw Kit

This selection enables building portable sound toys, motion-reactive cubes, RFID-aware devices, and long-life low-power systems.

13. Reference Tables

Device and accessory reference tables have been placed below.

These tables include detailed information on:

  • footprints
  • battery types
  • IMU and magnetometer
  • audio capabilities
  • LED systems
  • vibration motors
  • camera and microphones
  • RTC presence
  • module compatibility
  • whether an item is in the current hardware basket

📦 DEVICE TABLE

DeviceFamily12-pin M-BusIMUMagDisplaySpeakerBatterySDVibCameraMicsRTCExtra LEDsWhere the pixels livePiHut Link
CoreS3Core (new)2.0" touch✔ dual0None (unless adding Bottom3)Search
CoreS3 SECore (new)2.0" touch✔ dual0NoneSearch
Core (Original)Core classic2.0" LCD0NoneSearch
Core2Core classic2.0" touch0 (10 w/ Bottom2)LEDs in Bottom2 onlySearch
Core FireCore classic2.0" LCD10 SK6812In M5GO baseSearch
M5GO (Core kit)Core classic2.0" IPS10 LEDsIn M5GO baseSearch
Core2 AWS EduKitCore classic2.0" touch10 LEDsIn M5GO Bottom2Search
M5StickC PLUSStickSmall TFTBuzzer0NoneSearch
M5StickC PLUS2StickIPS TFTBuzzer1 RGBOn StickC PLUS2 main boardSearch
ATOM MatrixATOM5×5 LEDs25 WS2812On front LED matrixSearch
ATOM LiteATOMNone1 RGBOn main boardSearch
ATOM EchoATOMNone1 RGBOn main boardSearch

🔌 ACCESSORIES TABLE

AccessoryWhat it doesFootprint compatibilityWhere usedPiHut Link
M5Stamp Timer PowerRTC + timed power gatingUniversal (wired)Ultra-low-power / wake controlSearch
M5StickC PLUS Speaker Hat (MAX98357)Adds digital speakerStick familyAudio outputSearch
Atomic Battery Base200 mAh batteryATOM footprintPortable ATOM buildsSearch
SandwichC Brick (x3)Lego-compatible adapterUniversal mechanicalMountingSearch
RFID Unit 2 (WS1850S)RFID readerAny Grove-enabled deviceNFC-like readingSearch
M5 BoxStorageUniversalStorageSearch
M3 Screw KitMounting hardwareUniversalAssemblySearch
Mini Dual Button Unit2-button Grove inputUniversalInput deviceSearch
Audio Module (STM32G030)Stereo codecClassic Core stackExternal audioSearch
Core Battery Modules (13.2 etc.)Extra batteryClassic 5×5StackableSearch
M5GO bottom (RGB)LED bar + batteryCore2 / Core Fire / CoreS3 versionsAdds 10 LEDsSearch
TailBatBatteryATOMPortableSearch
M5StickC 18650 Base18650 battery holderStick familyExtended runtime for StickCProduct
M5Stack Base AAA Battery HolderAAA battery holderClassic Core stackAlternative power for CoreProduct
Generic I²S ampSpeaker ampAny wiredExternal audioSearch

Diagrams

Classic Core Series (5×5 cm, 12-pin M-Bus)

flowchart TD
note1["ClassicCore<br/>• 57×57 mm footprint<br/>• 12-pin M-Bus on bottom<br/>• Compatible with stack modules:<br/> – Battery modules<br/> – Audio Module (STM32G030)<br/> – Relay / IO modules<br/>• Good for modular, stackable builds"]
subgraph ClassicCore["Classic Core Series (5×5 cm, 12-pin M-Bus)"]
C0["Core (Gray)<br/>• 57×57 mm classic Core<br/>• ESP32<br/>• 12-pin M-Bus stack<br/>• LCD, speaker, SD<br/>• No IMU / no magnetometer"]
C1["Core2<br/>• 57×57 mm classic Core<br/>• Touchscreen, speaker<br/>• Battery, SD<br/>• 6-axis IMU (no mag)<br/>• Vibration motor<br/>• 12-pin M-Bus stack"]
C2["Core Fire<br/>• Classic Core + IMU<br/>• 9-axis (MPU9250 with mag)<br/>• 10 RGB LEDs in M5GO base<br/>• Battery, SD, speaker<br/>• 12-pin M-Bus stack"]
C3["Core2 AWS EduKit<br/>• Core2 + M5GO Bottom2<br/>• 10 RGB LEDs in base<br/>• Battery, SD, speaker<br/>• 6-axis IMU (no mag)<br/>• 12-pin M-Bus stack"]
C4["M5GO (Core kit)<br/>• Core-style controller<br/>• 6-axis IMU<br/>• 10 RGB LEDs in M5GO base<br/>• Battery, speaker, mic<br/>• 12-pin M-Bus stack"]
end
note1 -.-> C0 note1 -.-> C1 note1 -.-> C2 note1 -.-> C3 note1 -.-> C4 
Loading

CoreS3 Series (new 30-pin bus)

flowchart TD
noteS3["CoreS3Series<br/>• Use a new 30-pin base connector<br/>• NOT compatible with classic 5×5 stack modules<br/>• Can use S3-specific bottoms (e.g. M5GO Bottom3) for:<br/> – Extra battery<br/> – 10 RGB LEDs<br/>• Best suited for rich UI, audio, camera, and sensing"]
subgraph CoreS3Series["CoreS3 Series (New 30-pin Base Connector)"]
S3["CoreS3<br/>• 54×54 mm S3 footprint<br/>• Touchscreen + camera<br/>• Dual microphones<br/>• 6-axis IMU + magnetometer<br/>• 500 mAh internal battery<br/>• SD card<br/>• No 12-pin M-Bus"]
S3SE["CoreS3 SE<br/>• Same footprint as CoreS3<br/>• Touchscreen, camera, dual mics<br/>• No IMU / no magnetometer<br/>• No internal battery<br/>• SD card<br/>• No 12-pin M-Bus"]
end
noteS3 -.-> S3 noteS3 -.-> S3SE 
Loading

Stick Series (wearable / slim devices)

flowchart TD
noteST["StickSeries<br/>• Designed for wearable / handheld projects<br/>• Expansion via Stick Hat connector + Grove<br/>• Good for:<br/> – Small UI devices<br/> – Wrist-worn or pocket tools<br/> – Motion + sound toys with Speaker Hat"]
subgraph StickSeries["Stick Series (Wearable / Slim Devices)"]
ST1["M5StickC PLUS<br/>• Slim stick form factor<br/>• 6-axis IMU (MPU6886)<br/>• Small TFT display<br/>• Internal LiPo battery<br/>• Microphone<br/>• No vibration motor<br/>• No 12-pin M-Bus<br/>• Uses Hat accessories (e.g. Speaker Hat)"]
ST2["M5StickC PLUS2<br/>• Updated StickC platform<br/>• 6-axis IMU (MPU6886)<br/>• Small IPS TFT<br/>• 200 mAh battery<br/>• Microphone<br/>• Vibration motor<br/>• Single RGB LED<br/>• No 12-pin M-Bus<br/>• Uses Stick Hats (e.g. MAX98357 speaker)"]
end
noteST -.-> ST1 noteST -.-> ST2 
Loading

ATOM Series (tiny 24×24 mm cubes)

flowchart TD
noteAtom["AtomSeries<br/>• No stacking; no 12-pin M-Bus<br/>• Use Grove ports or direct wiring<br/>• Optional Atomic Battery Base for portable builds<br/>• Well suited for:<br/> – Tiny sound cubes (Echo)<br/> – Motion + LED cubes (Matrix)<br/> – Minimal IoT nodes (Lite)"]
subgraph AtomSeries["ATOM Series (Tiny 24×24 mm Cubes)"]
A_Lite["ATOM Lite<br/>• Minimal ESP32 dev board<br/>• Single RGB LED<br/>• No IMU<br/>• No speaker<br/>• No battery<br/>• Power via USB or Atomic base<br/>• Expansion via Grove / wiring"]
A_Matrix["ATOM Matrix<br/>• 24×24 mm cube<br/>• 5×5 RGB LED matrix (25 pixels)<br/>• 6-axis IMU (MPU6886)<br/>• No speaker built-in<br/>• No battery (pair with Atomic Battery Base)<br/>• Grove + GPIO for expansion"]
A_Echo["ATOM Echo<br/>• 24×24 mm cube<br/>• Built-in speaker<br/>• Microphone<br/>• Single RGB LED<br/>• No IMU<br/>• No battery (optional external base)<br/>• Grove + wiring for sensors"]
end
noteAtom -.-> A_Lite noteAtom -.-> A_Matrix noteAtom -.-> A_Echo 
Loading

STAMP / Power Modules (embedded / wired)

flowchart TD
noteTP["StampSeries<br/>• Not stackable; requires soldering/wiring<br/>• Works with any ESP32 device (Core, Stick, ATOM, etc.)<br/>• Used to:<br/> – Cut power completely between wake events<br/> – Achieve ultra-low-power operation<br/> – Schedule timed wakeups"]
subgraph StampSeries["STAMP / Power Modules (Embedded / Wired)"]
STP["M5Stamp Timer Power (BM8563)<br/>• RTC + alarm<br/>• Li-ion charging<br/>• 3.3 V / 5 V output<br/>• Power gating of main board<br/>• Very low standby current<br/>• Small 20×20 mm module"]
end
noteTP -.-> STP 
Loading

Power Options and Battery Solutions

flowchart TD
subgraph InternalPower["On-board / Integrated Power"]
IP1["CoreS3<br/>• 500 mAh internal LiPo<br/>• Can be extended with S3 Bottom3"]
IP2["Core2 / Core Fire / M5GO / Core2 AWS<br/>• Internal battery in Core or base<br/>• Capacity depends on kit"]
IP3["M5StickC PLUS / PLUS2<br/>• Small internal LiPo<br/>• USB-C charging"]
IP4["Most ATOM devices<br/>• No internal battery<br/>• USB power by default"]
end
subgraph StackableBattery["Stackable Battery Modules (Classic 5×5 only)"]
SB1["Battery Module (Core)<br/>• 5×5 cm stack module<br/>• Extra capacity<br/>• Compatible with Core/Core2/Fire/M5GO/AWS"]
SB2["High-capacity Battery13.2<br/>• Large stack battery<br/>• For long runtime<br/>• Increases stack height"]
SB3["M5GO Bottom / Bottom2<br/>• RGB bar + battery + ports<br/>• Kit-specific for Core/Core2/Fire/AWS"]
SB4["Base AAA Battery Holder<br/>• AAA battery holder<br/>• Alternative power for Core<br/>• Classic 5×5 stack"]
end
subgraph AtomBattery["ATOM Battery Options"]
AB1["Atomic Battery Base (TailBat)<br/>• ~200 mAh LiPo<br/>• Clips to ATOM footprint<br/>• USB-C charging"]
end
subgraph StickBattery["Stick Battery Options"]
STB1["M5StickC 18650 Base<br/>• 18650 battery holder<br/>• Extended runtime for StickC<br/>• Larger capacity than internal LiPo"]
end
subgraph ExternalPower["External Power (Universal)"]
EP1["USB Power Bank<br/>• Plug into USB-C<br/>• Works with all devices"]
EP2["Bench Supply / Adapter<br/>• 5 V / 3.3 V regulated<br/>• For lab setups"]
end
subgraph PowerControl["Power Control / RTC"]
PC1["M5Stamp Timer Power (BM8563)<br/>• Li-ion charging<br/>• 3.3/5 V output<br/>• RTC alarms<br/>• Full power gating"]
end
%% Relationships
IP1 --> EP1
IP2 --> EP1
IP3 --> EP1
IP4 --> EP1
SB1 --> IP2
SB2 --> IP2
SB3 --> IP2
SB4 --> IP2
AB1 --> IP4
STB1 --> IP3
PC1 --> IP4
PC1 --> IP3
PC1 --> IP2
PC1 --> IP1
Loading

Legend:

  • InternalPower: built-in batteries
  • StackableBattery: classic 5×5 only (includes AAA holder)
  • AtomBattery: TailBat/Atomic Base for ATOM
  • StickBattery: 18650 base for StickC
  • ExternalPower: USB/bulk power
  • PowerControl: M5Stamp Timer Power for ultra-low-power designs

Recommended Build Patterns and Device Combinations

flowchart TD
note_P1["P1: Motion + LED Cube<br/>• Focus on IMU + LEDs, optional battery<br/>• Typical combo: ATOM Matrix + Atomic Battery Base"]
note_P2["P2: Sound Cube / Toy<br/>• Short WAV/MP3 sounds<br/>• I²S speaker or built-in speaker<br/>• Motion triggers or button triggers"]
note_P3["P3: RFID Toy<br/>• Use RFID Unit 2 via Grove<br/>• Map tags → sounds, animations, or state changes"]
note_P4["P4: Ultra–Low-Power Node<br/>• M5Stamp Timer Power controls power<br/>• Device runs briefly, then fully powers down"]
note_P5["P5: Touchscreen Multimedia Device<br/>• CoreS3 with audio, cam, IMU, mic<br/>• Suitable for rich UI experiments"]
%% Build patterns
subgraph Patterns["Recommended Build Patterns"]
P1["Motion + LED Cube<br/>(e.g. roll/shake to animate)"]
P2["Sound Cube / Sound Toy<br/>(e.g. short sounds on shake or tap)"]
P3["RFID Toy / Token Reader<br/>(e.g. tag → sound/light)"]
P4["Ultra–Low-Power Node<br/>(e.g. wake occasionally, then power off)"]
P5["Touchscreen Multimedia Device<br/>(audio, graphics, camera)"]
end
%% Devices and key modules
subgraph Devices["Devices"]
D_CoreS3["CoreS3<br/>• Touch + cam + mic<br/>• Speaker + IMU + mag<br/>• Battery"]
D_StickP2["M5StickC PLUS2<br/>• IMU + TFT<br/>• Battery + vib + mic"]
D_AtomMatrix["ATOM Matrix<br/>• 5×5 RGB<br/>• IMU"]
D_AtomEcho["ATOM Echo<br/>• Speaker + mic<br/>• Single RGB"]
D_Timer["M5Stamp Timer Power<br/>• RTC + power gating"]
D_RFID["RFID Unit 2<br/>• Grove RFID reader"]
D_AAtomic["Atomic Battery Base<br/>• Battery for ATOM"]
D_SpkHat["StickC Speaker 2 Hat<br/>• MAX98357 I²S speaker"]
D_Buttons["Mini Dual Button Unit"]
end
%% Pattern connections
%% P1: Motion + LED cube
P1 --> D_AtomMatrix
P1 --> D_AAtomic
%% P2: Sound cube/toy
P2 --> D_AtomMatrix
P2 --> D_AtomEcho
P2 --> D_AAtomic
P2 --> D_StickP2
P2 --> D_SpkHat
%% P3: RFID toy
P3 --> D_CoreS3
P3 --> D_StickP2
P3 --> D_AtomMatrix
P3 --> D_RFID
P3 --> D_Buttons
%% P4: Ultra–low-power node
P4 --> D_Timer
P4 --> D_AtomMatrix
P4 --> D_AtomEcho
P4 --> D_StickP2
P4 --> D_CoreS3
%% P5: Touchscreen multimedia device
P5 --> D_CoreS3
%% Notes connections
note_P1 -.-> P1
note_P2 -.-> P2
note_P3 -.-> P3
note_P4 -.-> P4
note_P5 -.-> P5
Loading

Acknowledgements

Generated with help from LLMs (ChatGPT, Claude, Gemini, Cursor).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

M5Stack Notes

This repository documents a detailed exploration of the M5Stack hardware ecosystem, focusing on building small interactive devices that combine motion sensing, audio playback, LEDs, haptics, RFID, and ultra-low-power operation.

The research compares different families of M5Stack devices, evaluates their expandability, and maps out which modules, batteries, and accessories are compatible with each hardware form factor.

Device and accessory reference tables are included below.

1. Overview

M5Stack provides a diverse range of ESP32-based development devices organised into several hardware families:

  • Core series (classic 5×5 cm) — modular stackable controllers
  • CoreS3 series (new generation) — advanced multimedia controllers
  • Stick series — compact wearable-style devices
  • ATOM series — ultra-small modular cubes
  • STAMP modules — embedded boards for custom wiring

Each family has unique strengths and constraints, especially regarding audio, IMU functionality, battery integration, module compatibility, and power management.

2. Device Family Comparison

CoreS3 Series

Advanced multimedia devices with touchscreens, dual microphones, camera, IMU, and (on CoreS3) a magnetometer. Uses a new 30-pin base connector and does not support classic stack modules.

Classic Core Series (Core, Core2, Fire, AWS EduKit, M5GO kits)

Designed around the 57×57 mm, 12-pin M-Bus form factor. Support stackable modules including:

  • Battery modules
  • Relay modules
  • Audio Module (STM32G030)
  • M5GO Bottom bases with 10 RGB LEDs

Stick Series

Small rectangular devices with integrated battery, IMU, small LCD, and optional Hats (speaker, sensors, buttons). The PLUS2 model adds a vibration motor and improved PMIC.

ATOM Series

Ultra-small cubes featuring minimal ESP32 boards, often with add-ons:

  • Matrix: 25 NeoPixels + IMU
  • Echo: speaker + microphone
  • Lite: minimal I/O
  • Use via Grove connectors or direct wiring.

3. Understanding Module Stacking

Classic stack modules (battery, audio, relay, proto, etc.) only attach to:

  • Core (Original)
  • Core2
  • Core Fire
  • M5GO
  • Core2 AWS EduKit

CoreS3 does not use the classic M-Bus; Stick and ATOM devices rely on Grove and wiring instead of stacking.

Selecting hardware requires understanding this difference, especially when combining power modules or expansion modules.

4. Motion Sensing

IMU (6-axis and 9-axis)

Many M5Stack devices include inertial measurement units (IMUs) that provide accelerometer and gyroscope data. Devices with IMU capabilities include:

  • ATOM Matrix (IMU)
  • StickC PLUS2 (IMU)
  • CoreS3 (IMU)
  • Core2 (IMU)
  • Core Fire (IMU)
  • M5GO (IMU)

These sensors enable motion detection, orientation tracking, shake detection, and gesture recognition.

Magnetometer Availability

Only a few devices include a magnetometer:

  • CoreS3
  • Core Fire

Devices based on the MPU6886 (Stick series, ATOM Matrix, etc.) include only accelerometer + gyroscope.

Magnetometers enable compass features, orientation-corrected sensor fusion, and magnetic field detection.

5. Adding Sound Capabilities

Many M5Stack boards lack onboard speakers. To play audio, consider:

  • StickC PLUS2 + Speaker Hat (MAX98357)
  • ATOM Echo
  • CoreS3 (built-in full I²S audio subsystem)
  • MAX98357 I²S amplifier modules wired to ATOM or Stick devices
  • Audio Module (STM32G030) for classic Core stackable devices

Short WAV/MP3 audio playback is feasible across the entire ecosystem when an appropriate amplifier is present.

6. LEDs and NeoPixel Effects

RGB LED capabilities vary by device:

  • ATOM Matrix offers a 25-pixel NeoPixel matrix
  • Core Fire, M5GO, Core2 AWS EduKit include 10-pixel LED bars in their M5GO bottoms
  • StickC PLUS2, ATOM Lite, ATOM Echo each include a single RGB LED
  • CoreS3 has no onboard NeoPixels but works with M5GO Bottom3

These can be used for icons, animations, interaction cues, and visual feedback.

7. Haptic Feedback

To add vibration feedback, consider devices with built-in motors:

  • Core2
  • M5StickC PLUS2

Other boards require wiring a coin-cell vibration motor.

8. RFID Interaction

RFID support is not built into any M5Stack Core or ATOM device. Use the RFID Unit 2 (WS1850S) over Grove (I²C/UART).

Compatible with:

  • Core / Core2 / Fire
  • CoreS3
  • Stick series
  • ATOM series

This enables actions such as sound or LED effects triggered by specific tags.

9. Ultra-Low-Power Behaviour and RTC-Based Wake-Up

To create devices that run for long periods and only wake occasionally, true power gating is required — not just ESP32 deep sleep.

The M5Stamp Timer Power (BM8563) enables:

  • RTC alarms
  • timed wake-ups
  • fully powering the ESP32 board off (microamp consumption)
  • timed reactivation

It requires manual wiring and is independent of M5Stack form factors, making it ideal for embedded low-power projects.

10. Mounting and LEGO Integration

Physical construction can be supported using:

  • SandwichC Bricks (LEGO-compatible mounting plates)
  • M3 screw kits
  • M5 Box for storage and prototyping

These allow embedding M5Stack hardware into toys, enclosures, and kinetic experiments.

11. Building Interactive Devices

Motion-Reactive Devices

To build compact interactive devices (e.g., "cubes") that respond to shaking, rotation, or tapping, pair:

  • a device with a 6-axis or 9-axis IMU
  • either a built-in speaker or an I²S audio amplifier
  • optional RGB LEDs for visual effects
  • a small battery base (e.g., Atomic Battery Base or TailBat)

Useful hardware options include:

  • ATOM Matrix (25 NeoPixels, IMU)
  • StickC PLUS2 (IMU, vibration motor, small display)
  • ATOM Echo (speaker onboard, needs external IMU)
  • CoreS3 (more advanced but larger)

These devices can play short sounds when moved, light up LEDs, vibrate, or react to orientation.

Educational and Toy Interaction Patterns

The research identifies several patterns for building interactive devices:

  • shake-to-sound cubes
  • direction-aware toys using magnetometers
  • RFID-triggered responses
  • sound/light objects embedded in LEGO structures
  • wearable sound/noise devices
  • low-power IoT nodes waking briefly to perform tasks
  • touchscreen audio-visual gadgets using CoreS3

These patterns benefit from selecting the right combination of IMU, speaker, LEDs, and power hardware.

12. Curated Hardware Set (as used in this project)

The following devices and modules form a versatile experimental toolkit:

  • CoreS3
  • M5StickC PLUS2 + Speaker Hat
  • ATOM Matrix
  • M5Stamp Timer Power (RTC power gating)
  • RFID Unit 2
  • Atomic Battery Base
  • Mini Dual Button Unit
  • SandwichC Bricks
  • M3 Screw Kit

This selection enables building portable sound toys, motion-reactive cubes, RFID-aware devices, and long-life low-power systems.

13. Reference Tables

Device and accessory reference tables have been placed below.

These tables include detailed information on:

  • footprints
  • battery types
  • IMU and magnetometer
  • audio capabilities
  • LED systems
  • vibration motors
  • camera and microphones
  • RTC presence
  • module compatibility
  • whether an item is in the current hardware basket

📦 DEVICE TABLE

DeviceFamily12-pin M-BusIMUMagDisplaySpeakerBatterySDVibCameraMicsRTCExtra LEDsWhere the pixels livePiHut Link
CoreS3Core (new)2.0" touch✔ dual0None (unless adding Bottom3)Search
CoreS3 SECore (new)2.0" touch✔ dual0NoneSearch
Core (Original)Core classic2.0" LCD0NoneSearch
Core2Core classic2.0" touch0 (10 w/ Bottom2)LEDs in Bottom2 onlySearch
Core FireCore classic2.0" LCD10 SK6812In M5GO baseSearch
M5GO (Core kit)Core classic2.0" IPS10 LEDsIn M5GO baseSearch
Core2 AWS EduKitCore classic2.0" touch10 LEDsIn M5GO Bottom2Search
M5StickC PLUSStickSmall TFTBuzzer0NoneSearch
M5StickC PLUS2StickIPS TFTBuzzer1 RGBOn StickC PLUS2 main boardSearch
ATOM MatrixATOM5×5 LEDs25 WS2812On front LED matrixSearch
ATOM LiteATOMNone1 RGBOn main boardSearch
ATOM EchoATOMNone1 RGBOn main boardSearch

🔌 ACCESSORIES TABLE

AccessoryWhat it doesFootprint compatibilityWhere usedPiHut Link
M5Stamp Timer PowerRTC + timed power gatingUniversal (wired)Ultra-low-power / wake controlSearch
M5StickC PLUS Speaker Hat (MAX98357)Adds digital speakerStick familyAudio outputSearch
Atomic Battery Base200 mAh batteryATOM footprintPortable ATOM buildsSearch
SandwichC Brick (x3)Lego-compatible adapterUniversal mechanicalMountingSearch
RFID Unit 2 (WS1850S)RFID readerAny Grove-enabled deviceNFC-like readingSearch
M5 BoxStorageUniversalStorageSearch
M3 Screw KitMounting hardwareUniversalAssemblySearch
Mini Dual Button Unit2-button Grove inputUniversalInput deviceSearch
Audio Module (STM32G030)Stereo codecClassic Core stackExternal audioSearch
Core Battery Modules (13.2 etc.)Extra batteryClassic 5×5StackableSearch
M5GO bottom (RGB)LED bar + batteryCore2 / Core Fire / CoreS3 versionsAdds 10 LEDsSearch
TailBatBatteryATOMPortableSearch
M5StickC 18650 Base18650 battery holderStick familyExtended runtime for StickCProduct
M5Stack Base AAA Battery HolderAAA battery holderClassic Core stackAlternative power for CoreProduct
Generic I²S ampSpeaker ampAny wiredExternal audioSearch

Diagrams

Classic Core Series (5×5 cm, 12-pin M-Bus)

flowchart TD
note1["ClassicCore<br/>• 57×57 mm footprint<br/>• 12-pin M-Bus on bottom<br/>• Compatible with stack modules:<br/> – Battery modules<br/> – Audio Module (STM32G030)<br/> – Relay / IO modules<br/>• Good for modular, stackable builds"]
subgraph ClassicCore["Classic Core Series (5×5 cm, 12-pin M-Bus)"]
C0["Core (Gray)<br/>• 57×57 mm classic Core<br/>• ESP32<br/>• 12-pin M-Bus stack<br/>• LCD, speaker, SD<br/>• No IMU / no magnetometer"]
C1["Core2<br/>• 57×57 mm classic Core<br/>• Touchscreen, speaker<br/>• Battery, SD<br/>• 6-axis IMU (no mag)<br/>• Vibration motor<br/>• 12-pin M-Bus stack"]
C2["Core Fire<br/>• Classic Core + IMU<br/>• 9-axis (MPU9250 with mag)<br/>• 10 RGB LEDs in M5GO base<br/>• Battery, SD, speaker<br/>• 12-pin M-Bus stack"]
C3["Core2 AWS EduKit<br/>• Core2 + M5GO Bottom2<br/>• 10 RGB LEDs in base<br/>• Battery, SD, speaker<br/>• 6-axis IMU (no mag)<br/>• 12-pin M-Bus stack"]
C4["M5GO (Core kit)<br/>• Core-style controller<br/>• 6-axis IMU<br/>• 10 RGB LEDs in M5GO base<br/>• Battery, speaker, mic<br/>• 12-pin M-Bus stack"]
end
note1 -.-> C0 note1 -.-> C1 note1 -.-> C2 note1 -.-> C3 note1 -.-> C4 
Loading

CoreS3 Series (new 30-pin bus)

flowchart TD
noteS3["CoreS3Series<br/>• Use a new 30-pin base connector<br/>• NOT compatible with classic 5×5 stack modules<br/>• Can use S3-specific bottoms (e.g. M5GO Bottom3) for:<br/> – Extra battery<br/> – 10 RGB LEDs<br/>• Best suited for rich UI, audio, camera, and sensing"]
subgraph CoreS3Series["CoreS3 Series (New 30-pin Base Connector)"]
S3["CoreS3<br/>• 54×54 mm S3 footprint<br/>• Touchscreen + camera<br/>• Dual microphones<br/>• 6-axis IMU + magnetometer<br/>• 500 mAh internal battery<br/>• SD card<br/>• No 12-pin M-Bus"]
S3SE["CoreS3 SE<br/>• Same footprint as CoreS3<br/>• Touchscreen, camera, dual mics<br/>• No IMU / no magnetometer<br/>• No internal battery<br/>• SD card<br/>• No 12-pin M-Bus"]
end
noteS3 -.-> S3 noteS3 -.-> S3SE 
Loading

Stick Series (wearable / slim devices)

flowchart TD
noteST["StickSeries<br/>• Designed for wearable / handheld projects<br/>• Expansion via Stick Hat connector + Grove<br/>• Good for:<br/> – Small UI devices<br/> – Wrist-worn or pocket tools<br/> – Motion + sound toys with Speaker Hat"]
subgraph StickSeries["Stick Series (Wearable / Slim Devices)"]
ST1["M5StickC PLUS<br/>• Slim stick form factor<br/>• 6-axis IMU (MPU6886)<br/>• Small TFT display<br/>• Internal LiPo battery<br/>• Microphone<br/>• No vibration motor<br/>• No 12-pin M-Bus<br/>• Uses Hat accessories (e.g. Speaker Hat)"]
ST2["M5StickC PLUS2<br/>• Updated StickC platform<br/>• 6-axis IMU (MPU6886)<br/>• Small IPS TFT<br/>• 200 mAh battery<br/>• Microphone<br/>• Vibration motor<br/>• Single RGB LED<br/>• No 12-pin M-Bus<br/>• Uses Stick Hats (e.g. MAX98357 speaker)"]
end
noteST -.-> ST1 noteST -.-> ST2 
Loading

ATOM Series (tiny 24×24 mm cubes)

flowchart TD
noteAtom["AtomSeries<br/>• No stacking; no 12-pin M-Bus<br/>• Use Grove ports or direct wiring<br/>• Optional Atomic Battery Base for portable builds<br/>• Well suited for:<br/> – Tiny sound cubes (Echo)<br/> – Motion + LED cubes (Matrix)<br/> – Minimal IoT nodes (Lite)"]
subgraph AtomSeries["ATOM Series (Tiny 24×24 mm Cubes)"]
A_Lite["ATOM Lite<br/>• Minimal ESP32 dev board<br/>• Single RGB LED<br/>• No IMU<br/>• No speaker<br/>• No battery<br/>• Power via USB or Atomic base<br/>• Expansion via Grove / wiring"]
A_Matrix["ATOM Matrix<br/>• 24×24 mm cube<br/>• 5×5 RGB LED matrix (25 pixels)<br/>• 6-axis IMU (MPU6886)<br/>• No speaker built-in<br/>• No battery (pair with Atomic Battery Base)<br/>• Grove + GPIO for expansion"]
A_Echo["ATOM Echo<br/>• 24×24 mm cube<br/>• Built-in speaker<br/>• Microphone<br/>• Single RGB LED<br/>• No IMU<br/>• No battery (optional external base)<br/>• Grove + wiring for sensors"]
end
noteAtom -.-> A_Lite noteAtom -.-> A_Matrix noteAtom -.-> A_Echo 
Loading

STAMP / Power Modules (embedded / wired)

flowchart TD
noteTP["StampSeries<br/>• Not stackable; requires soldering/wiring<br/>• Works with any ESP32 device (Core, Stick, ATOM, etc.)<br/>• Used to:<br/> – Cut power completely between wake events<br/> – Achieve ultra-low-power operation<br/> – Schedule timed wakeups"]
subgraph StampSeries["STAMP / Power Modules (Embedded / Wired)"]
STP["M5Stamp Timer Power (BM8563)<br/>• RTC + alarm<br/>• Li-ion charging<br/>• 3.3 V / 5 V output<br/>• Power gating of main board<br/>• Very low standby current<br/>• Small 20×20 mm module"]
end
noteTP -.-> STP 
Loading

Power Options and Battery Solutions

flowchart TD
subgraph InternalPower["On-board / Integrated Power"]
IP1["CoreS3<br/>• 500 mAh internal LiPo<br/>• Can be extended with S3 Bottom3"]
IP2["Core2 / Core Fire / M5GO / Core2 AWS<br/>• Internal battery in Core or base<br/>• Capacity depends on kit"]
IP3["M5StickC PLUS / PLUS2<br/>• Small internal LiPo<br/>• USB-C charging"]
IP4["Most ATOM devices<br/>• No internal battery<br/>• USB power by default"]
end
subgraph StackableBattery["Stackable Battery Modules (Classic 5×5 only)"]
SB1["Battery Module (Core)<br/>• 5×5 cm stack module<br/>• Extra capacity<br/>• Compatible with Core/Core2/Fire/M5GO/AWS"]
SB2["High-capacity Battery13.2<br/>• Large stack battery<br/>• For long runtime<br/>• Increases stack height"]
SB3["M5GO Bottom / Bottom2<br/>• RGB bar + battery + ports<br/>• Kit-specific for Core/Core2/Fire/AWS"]
SB4["Base AAA Battery Holder<br/>• AAA battery holder<br/>• Alternative power for Core<br/>• Classic 5×5 stack"]
end
subgraph AtomBattery["ATOM Battery Options"]
AB1["Atomic Battery Base (TailBat)<br/>• ~200 mAh LiPo<br/>• Clips to ATOM footprint<br/>• USB-C charging"]
end
subgraph StickBattery["Stick Battery Options"]
STB1["M5StickC 18650 Base<br/>• 18650 battery holder<br/>• Extended runtime for StickC<br/>• Larger capacity than internal LiPo"]
end
subgraph ExternalPower["External Power (Universal)"]
EP1["USB Power Bank<br/>• Plug into USB-C<br/>• Works with all devices"]
EP2["Bench Supply / Adapter<br/>• 5 V / 3.3 V regulated<br/>• For lab setups"]
end
subgraph PowerControl["Power Control / RTC"]
PC1["M5Stamp Timer Power (BM8563)<br/>• Li-ion charging<br/>• 3.3/5 V output<br/>• RTC alarms<br/>• Full power gating"]
end
%% Relationships
IP1 --> EP1
IP2 --> EP1
IP3 --> EP1
IP4 --> EP1
SB1 --> IP2
SB2 --> IP2
SB3 --> IP2
SB4 --> IP2
AB1 --> IP4
STB1 --> IP3
PC1 --> IP4
PC1 --> IP3
PC1 --> IP2
PC1 --> IP1
Loading

Legend:

  • InternalPower: built-in batteries
  • StackableBattery: classic 5×5 only (includes AAA holder)
  • AtomBattery: TailBat/Atomic Base for ATOM
  • StickBattery: 18650 base for StickC
  • ExternalPower: USB/bulk power
  • PowerControl: M5Stamp Timer Power for ultra-low-power designs

Recommended Build Patterns and Device Combinations

flowchart TD
note_P1["P1: Motion + LED Cube<br/>• Focus on IMU + LEDs, optional battery<br/>• Typical combo: ATOM Matrix + Atomic Battery Base"]
note_P2["P2: Sound Cube / Toy<br/>• Short WAV/MP3 sounds<br/>• I²S speaker or built-in speaker<br/>• Motion triggers or button triggers"]
note_P3["P3: RFID Toy<br/>• Use RFID Unit 2 via Grove<br/>• Map tags → sounds, animations, or state changes"]
note_P4["P4: Ultra–Low-Power Node<br/>• M5Stamp Timer Power controls power<br/>• Device runs briefly, then fully powers down"]
note_P5["P5: Touchscreen Multimedia Device<br/>• CoreS3 with audio, cam, IMU, mic<br/>• Suitable for rich UI experiments"]
%% Build patterns
subgraph Patterns["Recommended Build Patterns"]
P1["Motion + LED Cube<br/>(e.g. roll/shake to animate)"]
P2["Sound Cube / Sound Toy<br/>(e.g. short sounds on shake or tap)"]
P3["RFID Toy / Token Reader<br/>(e.g. tag → sound/light)"]
P4["Ultra–Low-Power Node<br/>(e.g. wake occasionally, then power off)"]
P5["Touchscreen Multimedia Device<br/>(audio, graphics, camera)"]
end
%% Devices and key modules
subgraph Devices["Devices"]
D_CoreS3["CoreS3<br/>• Touch + cam + mic<br/>• Speaker + IMU + mag<br/>• Battery"]
D_StickP2["M5StickC PLUS2<br/>• IMU + TFT<br/>• Battery + vib + mic"]
D_AtomMatrix["ATOM Matrix<br/>• 5×5 RGB<br/>• IMU"]
D_AtomEcho["ATOM Echo<br/>• Speaker + mic<br/>• Single RGB"]
D_Timer["M5Stamp Timer Power<br/>• RTC + power gating"]
D_RFID["RFID Unit 2<br/>• Grove RFID reader"]
D_AAtomic["Atomic Battery Base<br/>• Battery for ATOM"]
D_SpkHat["StickC Speaker 2 Hat<br/>• MAX98357 I²S speaker"]
D_Buttons["Mini Dual Button Unit"]
end
%% Pattern connections
%% P1: Motion + LED cube
P1 --> D_AtomMatrix
P1 --> D_AAtomic
%% P2: Sound cube/toy
P2 --> D_AtomMatrix
P2 --> D_AtomEcho
P2 --> D_AAtomic
P2 --> D_StickP2
P2 --> D_SpkHat
%% P3: RFID toy
P3 --> D_CoreS3
P3 --> D_StickP2
P3 --> D_AtomMatrix
P3 --> D_RFID
P3 --> D_Buttons
%% P4: Ultra–low-power node
P4 --> D_Timer
P4 --> D_AtomMatrix
P4 --> D_AtomEcho
P4 --> D_StickP2
P4 --> D_CoreS3
%% P5: Touchscreen multimedia device
P5 --> D_CoreS3
%% Notes connections
note_P1 -.-> P1
note_P2 -.-> P2
note_P3 -.-> P3
note_P4 -.-> P4
note_P5 -.-> P5
Loading

Acknowledgements

Generated with help from LLMs (ChatGPT, Claude, Gemini, Cursor).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

M5Stack Notes

This repository documents a detailed exploration of the M5Stack hardware ecosystem, focusing on building small interactive devices that combine motion sensing, audio playback, LEDs, haptics, RFID, and ultra-low-power operation.

The research compares different families of M5Stack devices, evaluates their expandability, and maps out which modules, batteries, and accessories are compatible with each hardware form factor.

Device and accessory reference tables are included below.

1. Overview

M5Stack provides a diverse range of ESP32-based development devices organised into several hardware families:

  • Core series (classic 5×5 cm) — modular stackable controllers
  • CoreS3 series (new generation) — advanced multimedia controllers
  • Stick series — compact wearable-style devices
  • ATOM series — ultra-small modular cubes
  • STAMP modules — embedded boards for custom wiring

Each family has unique strengths and constraints, especially regarding audio, IMU functionality, battery integration, module compatibility, and power management.

2. Device Family Comparison

CoreS3 Series

Advanced multimedia devices with touchscreens, dual microphones, camera, IMU, and (on CoreS3) a magnetometer. Uses a new 30-pin base connector and does not support classic stack modules.

Classic Core Series (Core, Core2, Fire, AWS EduKit, M5GO kits)

Designed around the 57×57 mm, 12-pin M-Bus form factor. Support stackable modules including:

  • Battery modules
  • Relay modules
  • Audio Module (STM32G030)
  • M5GO Bottom bases with 10 RGB LEDs

Stick Series

Small rectangular devices with integrated battery, IMU, small LCD, and optional Hats (speaker, sensors, buttons). The PLUS2 model adds a vibration motor and improved PMIC.

ATOM Series

Ultra-small cubes featuring minimal ESP32 boards, often with add-ons:

  • Matrix: 25 NeoPixels + IMU
  • Echo: speaker + microphone
  • Lite: minimal I/O
  • Use via Grove connectors or direct wiring.

3. Understanding Module Stacking

Classic stack modules (battery, audio, relay, proto, etc.) only attach to:

  • Core (Original)
  • Core2
  • Core Fire
  • M5GO
  • Core2 AWS EduKit

CoreS3 does not use the classic M-Bus; Stick and ATOM devices rely on Grove and wiring instead of stacking.

Selecting hardware requires understanding this difference, especially when combining power modules or expansion modules.

4. Motion Sensing

IMU (6-axis and 9-axis)

Many M5Stack devices include inertial measurement units (IMUs) that provide accelerometer and gyroscope data. Devices with IMU capabilities include:

  • ATOM Matrix (IMU)
  • StickC PLUS2 (IMU)
  • CoreS3 (IMU)
  • Core2 (IMU)
  • Core Fire (IMU)
  • M5GO (IMU)

These sensors enable motion detection, orientation tracking, shake detection, and gesture recognition.

Magnetometer Availability

Only a few devices include a magnetometer:

  • CoreS3
  • Core Fire

Devices based on the MPU6886 (Stick series, ATOM Matrix, etc.) include only accelerometer + gyroscope.

Magnetometers enable compass features, orientation-corrected sensor fusion, and magnetic field detection.

5. Adding Sound Capabilities

Many M5Stack boards lack onboard speakers. To play audio, consider:

  • StickC PLUS2 + Speaker Hat (MAX98357)
  • ATOM Echo
  • CoreS3 (built-in full I²S audio subsystem)
  • MAX98357 I²S amplifier modules wired to ATOM or Stick devices
  • Audio Module (STM32G030) for classic Core stackable devices

Short WAV/MP3 audio playback is feasible across the entire ecosystem when an appropriate amplifier is present.

6. LEDs and NeoPixel Effects

RGB LED capabilities vary by device:

  • ATOM Matrix offers a 25-pixel NeoPixel matrix
  • Core Fire, M5GO, Core2 AWS EduKit include 10-pixel LED bars in their M5GO bottoms
  • StickC PLUS2, ATOM Lite, ATOM Echo each include a single RGB LED
  • CoreS3 has no onboard NeoPixels but works with M5GO Bottom3

These can be used for icons, animations, interaction cues, and visual feedback.

7. Haptic Feedback

To add vibration feedback, consider devices with built-in motors:

  • Core2
  • M5StickC PLUS2

Other boards require wiring a coin-cell vibration motor.

8. RFID Interaction

RFID support is not built into any M5Stack Core or ATOM device. Use the RFID Unit 2 (WS1850S) over Grove (I²C/UART).

Compatible with:

  • Core / Core2 / Fire
  • CoreS3
  • Stick series
  • ATOM series

This enables actions such as sound or LED effects triggered by specific tags.

9. Ultra-Low-Power Behaviour and RTC-Based Wake-Up

To create devices that run for long periods and only wake occasionally, true power gating is required — not just ESP32 deep sleep.

The M5Stamp Timer Power (BM8563) enables:

  • RTC alarms
  • timed wake-ups
  • fully powering the ESP32 board off (microamp consumption)
  • timed reactivation

It requires manual wiring and is independent of M5Stack form factors, making it ideal for embedded low-power projects.

10. Mounting and LEGO Integration

Physical construction can be supported using:

  • SandwichC Bricks (LEGO-compatible mounting plates)
  • M3 screw kits
  • M5 Box for storage and prototyping

These allow embedding M5Stack hardware into toys, enclosures, and kinetic experiments.

11. Building Interactive Devices

Motion-Reactive Devices

To build compact interactive devices (e.g., "cubes") that respond to shaking, rotation, or tapping, pair:

  • a device with a 6-axis or 9-axis IMU
  • either a built-in speaker or an I²S audio amplifier
  • optional RGB LEDs for visual effects
  • a small battery base (e.g., Atomic Battery Base or TailBat)

Useful hardware options include:

  • ATOM Matrix (25 NeoPixels, IMU)
  • StickC PLUS2 (IMU, vibration motor, small display)
  • ATOM Echo (speaker onboard, needs external IMU)
  • CoreS3 (more advanced but larger)

These devices can play short sounds when moved, light up LEDs, vibrate, or react to orientation.

Educational and Toy Interaction Patterns

The research identifies several patterns for building interactive devices:

  • shake-to-sound cubes
  • direction-aware toys using magnetometers
  • RFID-triggered responses
  • sound/light objects embedded in LEGO structures
  • wearable sound/noise devices
  • low-power IoT nodes waking briefly to perform tasks
  • touchscreen audio-visual gadgets using CoreS3

These patterns benefit from selecting the right combination of IMU, speaker, LEDs, and power hardware.

12. Curated Hardware Set (as used in this project)

The following devices and modules form a versatile experimental toolkit:

  • CoreS3
  • M5StickC PLUS2 + Speaker Hat
  • ATOM Matrix
  • M5Stamp Timer Power (RTC power gating)
  • RFID Unit 2
  • Atomic Battery Base
  • Mini Dual Button Unit
  • SandwichC Bricks
  • M3 Screw Kit

This selection enables building portable sound toys, motion-reactive cubes, RFID-aware devices, and long-life low-power systems.

13. Reference Tables

Device and accessory reference tables have been placed below.

These tables include detailed information on:

  • footprints
  • battery types
  • IMU and magnetometer
  • audio capabilities
  • LED systems
  • vibration motors
  • camera and microphones
  • RTC presence
  • module compatibility
  • whether an item is in the current hardware basket

📦 DEVICE TABLE

DeviceFamily12-pin M-BusIMUMagDisplaySpeakerBatterySDVibCameraMicsRTCExtra LEDsWhere the pixels livePiHut Link
CoreS3Core (new)2.0" touch✔ dual0None (unless adding Bottom3)Search
CoreS3 SECore (new)2.0" touch✔ dual0NoneSearch
Core (Original)Core classic2.0" LCD0NoneSearch
Core2Core classic2.0" touch0 (10 w/ Bottom2)LEDs in Bottom2 onlySearch
Core FireCore classic2.0" LCD10 SK6812In M5GO baseSearch
M5GO (Core kit)Core classic2.0" IPS10 LEDsIn M5GO baseSearch
Core2 AWS EduKitCore classic2.0" touch10 LEDsIn M5GO Bottom2Search
M5StickC PLUSStickSmall TFTBuzzer0NoneSearch
M5StickC PLUS2StickIPS TFTBuzzer1 RGBOn StickC PLUS2 main boardSearch
ATOM MatrixATOM5×5 LEDs25 WS2812On front LED matrixSearch
ATOM LiteATOMNone1 RGBOn main boardSearch
ATOM EchoATOMNone1 RGBOn main boardSearch

🔌 ACCESSORIES TABLE

AccessoryWhat it doesFootprint compatibilityWhere usedPiHut Link
M5Stamp Timer PowerRTC + timed power gatingUniversal (wired)Ultra-low-power / wake controlSearch
M5StickC PLUS Speaker Hat (MAX98357)Adds digital speakerStick familyAudio outputSearch
Atomic Battery Base200 mAh batteryATOM footprintPortable ATOM buildsSearch
SandwichC Brick (x3)Lego-compatible adapterUniversal mechanicalMountingSearch
RFID Unit 2 (WS1850S)RFID readerAny Grove-enabled deviceNFC-like readingSearch
M5 BoxStorageUniversalStorageSearch
M3 Screw KitMounting hardwareUniversalAssemblySearch
Mini Dual Button Unit2-button Grove inputUniversalInput deviceSearch
Audio Module (STM32G030)Stereo codecClassic Core stackExternal audioSearch
Core Battery Modules (13.2 etc.)Extra batteryClassic 5×5StackableSearch
M5GO bottom (RGB)LED bar + batteryCore2 / Core Fire / CoreS3 versionsAdds 10 LEDsSearch
TailBatBatteryATOMPortableSearch
M5StickC 18650 Base18650 battery holderStick familyExtended runtime for StickCProduct
M5Stack Base AAA Battery HolderAAA battery holderClassic Core stackAlternative power for CoreProduct
Generic I²S ampSpeaker ampAny wiredExternal audioSearch

Diagrams

Classic Core Series (5×5 cm, 12-pin M-Bus)

flowchart TD
note1["ClassicCore<br/>• 57×57 mm footprint<br/>• 12-pin M-Bus on bottom<br/>• Compatible with stack modules:<br/> – Battery modules<br/> – Audio Module (STM32G030)<br/> – Relay / IO modules<br/>• Good for modular, stackable builds"]
subgraph ClassicCore["Classic Core Series (5×5 cm, 12-pin M-Bus)"]
C0["Core (Gray)<br/>• 57×57 mm classic Core<br/>• ESP32<br/>• 12-pin M-Bus stack<br/>• LCD, speaker, SD<br/>• No IMU / no magnetometer"]
C1["Core2<br/>• 57×57 mm classic Core<br/>• Touchscreen, speaker<br/>• Battery, SD<br/>• 6-axis IMU (no mag)<br/>• Vibration motor<br/>• 12-pin M-Bus stack"]
C2["Core Fire<br/>• Classic Core + IMU<br/>• 9-axis (MPU9250 with mag)<br/>• 10 RGB LEDs in M5GO base<br/>• Battery, SD, speaker<br/>• 12-pin M-Bus stack"]
C3["Core2 AWS EduKit<br/>• Core2 + M5GO Bottom2<br/>• 10 RGB LEDs in base<br/>• Battery, SD, speaker<br/>• 6-axis IMU (no mag)<br/>• 12-pin M-Bus stack"]
C4["M5GO (Core kit)<br/>• Core-style controller<br/>• 6-axis IMU<br/>• 10 RGB LEDs in M5GO base<br/>• Battery, speaker, mic<br/>• 12-pin M-Bus stack"]
end
note1 -.-> C0 note1 -.-> C1 note1 -.-> C2 note1 -.-> C3 note1 -.-> C4 
Loading

CoreS3 Series (new 30-pin bus)

flowchart TD
noteS3["CoreS3Series<br/>• Use a new 30-pin base connector<br/>• NOT compatible with classic 5×5 stack modules<br/>• Can use S3-specific bottoms (e.g. M5GO Bottom3) for:<br/> – Extra battery<br/> – 10 RGB LEDs<br/>• Best suited for rich UI, audio, camera, and sensing"]
subgraph CoreS3Series["CoreS3 Series (New 30-pin Base Connector)"]
S3["CoreS3<br/>• 54×54 mm S3 footprint<br/>• Touchscreen + camera<br/>• Dual microphones<br/>• 6-axis IMU + magnetometer<br/>• 500 mAh internal battery<br/>• SD card<br/>• No 12-pin M-Bus"]
S3SE["CoreS3 SE<br/>• Same footprint as CoreS3<br/>• Touchscreen, camera, dual mics<br/>• No IMU / no magnetometer<br/>• No internal battery<br/>• SD card<br/>• No 12-pin M-Bus"]
end
noteS3 -.-> S3 noteS3 -.-> S3SE 
Loading

Stick Series (wearable / slim devices)

flowchart TD
noteST["StickSeries<br/>• Designed for wearable / handheld projects<br/>• Expansion via Stick Hat connector + Grove<br/>• Good for:<br/> – Small UI devices<br/> – Wrist-worn or pocket tools<br/> – Motion + sound toys with Speaker Hat"]
subgraph StickSeries["Stick Series (Wearable / Slim Devices)"]
ST1["M5StickC PLUS<br/>• Slim stick form factor<br/>• 6-axis IMU (MPU6886)<br/>• Small TFT display<br/>• Internal LiPo battery<br/>• Microphone<br/>• No vibration motor<br/>• No 12-pin M-Bus<br/>• Uses Hat accessories (e.g. Speaker Hat)"]
ST2["M5StickC PLUS2<br/>• Updated StickC platform<br/>• 6-axis IMU (MPU6886)<br/>• Small IPS TFT<br/>• 200 mAh battery<br/>• Microphone<br/>• Vibration motor<br/>• Single RGB LED<br/>• No 12-pin M-Bus<br/>• Uses Stick Hats (e.g. MAX98357 speaker)"]
end
noteST -.-> ST1 noteST -.-> ST2 
Loading

ATOM Series (tiny 24×24 mm cubes)

flowchart TD
noteAtom["AtomSeries<br/>• No stacking; no 12-pin M-Bus<br/>• Use Grove ports or direct wiring<br/>• Optional Atomic Battery Base for portable builds<br/>• Well suited for:<br/> – Tiny sound cubes (Echo)<br/> – Motion + LED cubes (Matrix)<br/> – Minimal IoT nodes (Lite)"]
subgraph AtomSeries["ATOM Series (Tiny 24×24 mm Cubes)"]
A_Lite["ATOM Lite<br/>• Minimal ESP32 dev board<br/>• Single RGB LED<br/>• No IMU<br/>• No speaker<br/>• No battery<br/>• Power via USB or Atomic base<br/>• Expansion via Grove / wiring"]
A_Matrix["ATOM Matrix<br/>• 24×24 mm cube<br/>• 5×5 RGB LED matrix (25 pixels)<br/>• 6-axis IMU (MPU6886)<br/>• No speaker built-in<br/>• No battery (pair with Atomic Battery Base)<br/>• Grove + GPIO for expansion"]
A_Echo["ATOM Echo<br/>• 24×24 mm cube<br/>• Built-in speaker<br/>• Microphone<br/>• Single RGB LED<br/>• No IMU<br/>• No battery (optional external base)<br/>• Grove + wiring for sensors"]
end
noteAtom -.-> A_Lite noteAtom -.-> A_Matrix noteAtom -.-> A_Echo 
Loading

STAMP / Power Modules (embedded / wired)

flowchart TD
noteTP["StampSeries<br/>• Not stackable; requires soldering/wiring<br/>• Works with any ESP32 device (Core, Stick, ATOM, etc.)<br/>• Used to:<br/> – Cut power completely between wake events<br/> – Achieve ultra-low-power operation<br/> – Schedule timed wakeups"]
subgraph StampSeries["STAMP / Power Modules (Embedded / Wired)"]
STP["M5Stamp Timer Power (BM8563)<br/>• RTC + alarm<br/>• Li-ion charging<br/>• 3.3 V / 5 V output<br/>• Power gating of main board<br/>• Very low standby current<br/>• Small 20×20 mm module"]
end
noteTP -.-> STP 
Loading

Power Options and Battery Solutions

flowchart TD
subgraph InternalPower["On-board / Integrated Power"]
IP1["CoreS3<br/>• 500 mAh internal LiPo<br/>• Can be extended with S3 Bottom3"]
IP2["Core2 / Core Fire / M5GO / Core2 AWS<br/>• Internal battery in Core or base<br/>• Capacity depends on kit"]
IP3["M5StickC PLUS / PLUS2<br/>• Small internal LiPo<br/>• USB-C charging"]
IP4["Most ATOM devices<br/>• No internal battery<br/>• USB power by default"]
end
subgraph StackableBattery["Stackable Battery Modules (Classic 5×5 only)"]
SB1["Battery Module (Core)<br/>• 5×5 cm stack module<br/>• Extra capacity<br/>• Compatible with Core/Core2/Fire/M5GO/AWS"]
SB2["High-capacity Battery13.2<br/>• Large stack battery<br/>• For long runtime<br/>• Increases stack height"]
SB3["M5GO Bottom / Bottom2<br/>• RGB bar + battery + ports<br/>• Kit-specific for Core/Core2/Fire/AWS"]
SB4["Base AAA Battery Holder<br/>• AAA battery holder<br/>• Alternative power for Core<br/>• Classic 5×5 stack"]
end
subgraph AtomBattery["ATOM Battery Options"]
AB1["Atomic Battery Base (TailBat)<br/>• ~200 mAh LiPo<br/>• Clips to ATOM footprint<br/>• USB-C charging"]
end
subgraph StickBattery["Stick Battery Options"]
STB1["M5StickC 18650 Base<br/>• 18650 battery holder<br/>• Extended runtime for StickC<br/>• Larger capacity than internal LiPo"]
end
subgraph ExternalPower["External Power (Universal)"]
EP1["USB Power Bank<br/>• Plug into USB-C<br/>• Works with all devices"]
EP2["Bench Supply / Adapter<br/>• 5 V / 3.3 V regulated<br/>• For lab setups"]
end
subgraph PowerControl["Power Control / RTC"]
PC1["M5Stamp Timer Power (BM8563)<br/>• Li-ion charging<br/>• 3.3/5 V output<br/>• RTC alarms<br/>• Full power gating"]
end
%% Relationships
IP1 --> EP1
IP2 --> EP1
IP3 --> EP1
IP4 --> EP1
SB1 --> IP2
SB2 --> IP2
SB3 --> IP2
SB4 --> IP2
AB1 --> IP4
STB1 --> IP3
PC1 --> IP4
PC1 --> IP3
PC1 --> IP2
PC1 --> IP1
Loading

Legend:

  • InternalPower: built-in batteries
  • StackableBattery: classic 5×5 only (includes AAA holder)
  • AtomBattery: TailBat/Atomic Base for ATOM
  • StickBattery: 18650 base for StickC
  • ExternalPower: USB/bulk power
  • PowerControl: M5Stamp Timer Power for ultra-low-power designs

Recommended Build Patterns and Device Combinations

flowchart TD
note_P1["P1: Motion + LED Cube<br/>• Focus on IMU + LEDs, optional battery<br/>• Typical combo: ATOM Matrix + Atomic Battery Base"]
note_P2["P2: Sound Cube / Toy<br/>• Short WAV/MP3 sounds<br/>• I²S speaker or built-in speaker<br/>• Motion triggers or button triggers"]
note_P3["P3: RFID Toy<br/>• Use RFID Unit 2 via Grove<br/>• Map tags → sounds, animations, or state changes"]
note_P4["P4: Ultra–Low-Power Node<br/>• M5Stamp Timer Power controls power<br/>• Device runs briefly, then fully powers down"]
note_P5["P5: Touchscreen Multimedia Device<br/>• CoreS3 with audio, cam, IMU, mic<br/>• Suitable for rich UI experiments"]
%% Build patterns
subgraph Patterns["Recommended Build Patterns"]
P1["Motion + LED Cube<br/>(e.g. roll/shake to animate)"]
P2["Sound Cube / Sound Toy<br/>(e.g. short sounds on shake or tap)"]
P3["RFID Toy / Token Reader<br/>(e.g. tag → sound/light)"]
P4["Ultra–Low-Power Node<br/>(e.g. wake occasionally, then power off)"]
P5["Touchscreen Multimedia Device<br/>(audio, graphics, camera)"]
end
%% Devices and key modules
subgraph Devices["Devices"]
D_CoreS3["CoreS3<br/>• Touch + cam + mic<br/>• Speaker + IMU + mag<br/>• Battery"]
D_StickP2["M5StickC PLUS2<br/>• IMU + TFT<br/>• Battery + vib + mic"]
D_AtomMatrix["ATOM Matrix<br/>• 5×5 RGB<br/>• IMU"]
D_AtomEcho["ATOM Echo<br/>• Speaker + mic<br/>• Single RGB"]
D_Timer["M5Stamp Timer Power<br/>• RTC + power gating"]
D_RFID["RFID Unit 2<br/>• Grove RFID reader"]
D_AAtomic["Atomic Battery Base<br/>• Battery for ATOM"]
D_SpkHat["StickC Speaker 2 Hat<br/>• MAX98357 I²S speaker"]
D_Buttons["Mini Dual Button Unit"]
end
%% Pattern connections
%% P1: Motion + LED cube
P1 --> D_AtomMatrix
P1 --> D_AAtomic
%% P2: Sound cube/toy
P2 --> D_AtomMatrix
P2 --> D_AtomEcho
P2 --> D_AAtomic
P2 --> D_StickP2
P2 --> D_SpkHat
%% P3: RFID toy
P3 --> D_CoreS3
P3 --> D_StickP2
P3 --> D_AtomMatrix
P3 --> D_RFID
P3 --> D_Buttons
%% P4: Ultra–low-power node
P4 --> D_Timer
P4 --> D_AtomMatrix
P4 --> D_AtomEcho
P4 --> D_StickP2
P4 --> D_CoreS3
%% P5: Touchscreen multimedia device
P5 --> D_CoreS3
%% Notes connections
note_P1 -.-> P1
note_P2 -.-> P2
note_P3 -.-> P3
note_P4 -.-> P4
note_P5 -.-> P5
Loading

Acknowledgements

Generated with help from LLMs (ChatGPT, Claude, Gemini, Cursor).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

M5Stack Notes

This repository documents a detailed exploration of the M5Stack hardware ecosystem, focusing on building small interactive devices that combine motion sensing, audio playback, LEDs, haptics, RFID, and ultra-low-power operation.

The research compares different families of M5Stack devices, evaluates their expandability, and maps out which modules, batteries, and accessories are compatible with each hardware form factor.

Device and accessory reference tables are included below.

1. Overview

M5Stack provides a diverse range of ESP32-based development devices organised into several hardware families:

  • Core series (classic 5×5 cm) — modular stackable controllers
  • CoreS3 series (new generation) — advanced multimedia controllers
  • Stick series — compact wearable-style devices
  • ATOM series — ultra-small modular cubes
  • STAMP modules — embedded boards for custom wiring

Each family has unique strengths and constraints, especially regarding audio, IMU functionality, battery integration, module compatibility, and power management.

2. Device Family Comparison

CoreS3 Series

Advanced multimedia devices with touchscreens, dual microphones, camera, IMU, and (on CoreS3) a magnetometer. Uses a new 30-pin base connector and does not support classic stack modules.

Classic Core Series (Core, Core2, Fire, AWS EduKit, M5GO kits)

Designed around the 57×57 mm, 12-pin M-Bus form factor. Support stackable modules including:

  • Battery modules
  • Relay modules
  • Audio Module (STM32G030)
  • M5GO Bottom bases with 10 RGB LEDs

Stick Series

Small rectangular devices with integrated battery, IMU, small LCD, and optional Hats (speaker, sensors, buttons). The PLUS2 model adds a vibration motor and improved PMIC.

ATOM Series

Ultra-small cubes featuring minimal ESP32 boards, often with add-ons:

  • Matrix: 25 NeoPixels + IMU
  • Echo: speaker + microphone
  • Lite: minimal I/O
  • Use via Grove connectors or direct wiring.

3. Understanding Module Stacking

Classic stack modules (battery, audio, relay, proto, etc.) only attach to:

  • Core (Original)
  • Core2
  • Core Fire
  • M5GO
  • Core2 AWS EduKit

CoreS3 does not use the classic M-Bus; Stick and ATOM devices rely on Grove and wiring instead of stacking.

Selecting hardware requires understanding this difference, especially when combining power modules or expansion modules.

4. Motion Sensing

IMU (6-axis and 9-axis)

Many M5Stack devices include inertial measurement units (IMUs) that provide accelerometer and gyroscope data. Devices with IMU capabilities include:

  • ATOM Matrix (IMU)
  • StickC PLUS2 (IMU)
  • CoreS3 (IMU)
  • Core2 (IMU)
  • Core Fire (IMU)
  • M5GO (IMU)

These sensors enable motion detection, orientation tracking, shake detection, and gesture recognition.

Magnetometer Availability

Only a few devices include a magnetometer:

  • CoreS3
  • Core Fire

Devices based on the MPU6886 (Stick series, ATOM Matrix, etc.) include only accelerometer + gyroscope.

Magnetometers enable compass features, orientation-corrected sensor fusion, and magnetic field detection.

5. Adding Sound Capabilities

Many M5Stack boards lack onboard speakers. To play audio, consider:

  • StickC PLUS2 + Speaker Hat (MAX98357)
  • ATOM Echo
  • CoreS3 (built-in full I²S audio subsystem)
  • MAX98357 I²S amplifier modules wired to ATOM or Stick devices
  • Audio Module (STM32G030) for classic Core stackable devices

Short WAV/MP3 audio playback is feasible across the entire ecosystem when an appropriate amplifier is present.

6. LEDs and NeoPixel Effects

RGB LED capabilities vary by device:

  • ATOM Matrix offers a 25-pixel NeoPixel matrix
  • Core Fire, M5GO, Core2 AWS EduKit include 10-pixel LED bars in their M5GO bottoms
  • StickC PLUS2, ATOM Lite, ATOM Echo each include a single RGB LED
  • CoreS3 has no onboard NeoPixels but works with M5GO Bottom3

These can be used for icons, animations, interaction cues, and visual feedback.

7. Haptic Feedback

To add vibration feedback, consider devices with built-in motors:

  • Core2
  • M5StickC PLUS2

Other boards require wiring a coin-cell vibration motor.

8. RFID Interaction

RFID support is not built into any M5Stack Core or ATOM device. Use the RFID Unit 2 (WS1850S) over Grove (I²C/UART).

Compatible with:

  • Core / Core2 / Fire
  • CoreS3
  • Stick series
  • ATOM series

This enables actions such as sound or LED effects triggered by specific tags.

9. Ultra-Low-Power Behaviour and RTC-Based Wake-Up

To create devices that run for long periods and only wake occasionally, true power gating is required — not just ESP32 deep sleep.

The M5Stamp Timer Power (BM8563) enables:

  • RTC alarms
  • timed wake-ups
  • fully powering the ESP32 board off (microamp consumption)
  • timed reactivation

It requires manual wiring and is independent of M5Stack form factors, making it ideal for embedded low-power projects.

10. Mounting and LEGO Integration

Physical construction can be supported using:

  • SandwichC Bricks (LEGO-compatible mounting plates)
  • M3 screw kits
  • M5 Box for storage and prototyping

These allow embedding M5Stack hardware into toys, enclosures, and kinetic experiments.

11. Building Interactive Devices

Motion-Reactive Devices

To build compact interactive devices (e.g., "cubes") that respond to shaking, rotation, or tapping, pair:

  • a device with a 6-axis or 9-axis IMU
  • either a built-in speaker or an I²S audio amplifier
  • optional RGB LEDs for visual effects
  • a small battery base (e.g., Atomic Battery Base or TailBat)

Useful hardware options include:

  • ATOM Matrix (25 NeoPixels, IMU)
  • StickC PLUS2 (IMU, vibration motor, small display)
  • ATOM Echo (speaker onboard, needs external IMU)
  • CoreS3 (more advanced but larger)

These devices can play short sounds when moved, light up LEDs, vibrate, or react to orientation.

Educational and Toy Interaction Patterns

The research identifies several patterns for building interactive devices:

  • shake-to-sound cubes
  • direction-aware toys using magnetometers
  • RFID-triggered responses
  • sound/light objects embedded in LEGO structures
  • wearable sound/noise devices
  • low-power IoT nodes waking briefly to perform tasks
  • touchscreen audio-visual gadgets using CoreS3

These patterns benefit from selecting the right combination of IMU, speaker, LEDs, and power hardware.

12. Curated Hardware Set (as used in this project)

The following devices and modules form a versatile experimental toolkit:

  • CoreS3
  • M5StickC PLUS2 + Speaker Hat
  • ATOM Matrix
  • M5Stamp Timer Power (RTC power gating)
  • RFID Unit 2
  • Atomic Battery Base
  • Mini Dual Button Unit
  • SandwichC Bricks
  • M3 Screw Kit

This selection enables building portable sound toys, motion-reactive cubes, RFID-aware devices, and long-life low-power systems.

13. Reference Tables

Device and accessory reference tables have been placed below.

These tables include detailed information on:

  • footprints
  • battery types
  • IMU and magnetometer
  • audio capabilities
  • LED systems
  • vibration motors
  • camera and microphones
  • RTC presence
  • module compatibility
  • whether an item is in the current hardware basket

📦 DEVICE TABLE

DeviceFamily12-pin M-BusIMUMagDisplaySpeakerBatterySDVibCameraMicsRTCExtra LEDsWhere the pixels livePiHut Link
CoreS3Core (new)2.0" touch✔ dual0None (unless adding Bottom3)Search
CoreS3 SECore (new)2.0" touch✔ dual0NoneSearch
Core (Original)Core classic2.0" LCD0NoneSearch
Core2Core classic2.0" touch0 (10 w/ Bottom2)LEDs in Bottom2 onlySearch
Core FireCore classic2.0" LCD10 SK6812In M5GO baseSearch
M5GO (Core kit)Core classic2.0" IPS10 LEDsIn M5GO baseSearch
Core2 AWS EduKitCore classic2.0" touch10 LEDsIn M5GO Bottom2Search
M5StickC PLUSStickSmall TFTBuzzer0NoneSearch
M5StickC PLUS2StickIPS TFTBuzzer1 RGBOn StickC PLUS2 main boardSearch
ATOM MatrixATOM5×5 LEDs25 WS2812On front LED matrixSearch
ATOM LiteATOMNone1 RGBOn main boardSearch
ATOM EchoATOMNone1 RGBOn main boardSearch

🔌 ACCESSORIES TABLE

AccessoryWhat it doesFootprint compatibilityWhere usedPiHut Link
M5Stamp Timer PowerRTC + timed power gatingUniversal (wired)Ultra-low-power / wake controlSearch
M5StickC PLUS Speaker Hat (MAX98357)Adds digital speakerStick familyAudio outputSearch
Atomic Battery Base200 mAh batteryATOM footprintPortable ATOM buildsSearch
SandwichC Brick (x3)Lego-compatible adapterUniversal mechanicalMountingSearch
RFID Unit 2 (WS1850S)RFID readerAny Grove-enabled deviceNFC-like readingSearch
M5 BoxStorageUniversalStorageSearch
M3 Screw KitMounting hardwareUniversalAssemblySearch
Mini Dual Button Unit2-button Grove inputUniversalInput deviceSearch
Audio Module (STM32G030)Stereo codecClassic Core stackExternal audioSearch
Core Battery Modules (13.2 etc.)Extra batteryClassic 5×5StackableSearch
M5GO bottom (RGB)LED bar + batteryCore2 / Core Fire / CoreS3 versionsAdds 10 LEDsSearch
TailBatBatteryATOMPortableSearch
M5StickC 18650 Base18650 battery holderStick familyExtended runtime for StickCProduct
M5Stack Base AAA Battery HolderAAA battery holderClassic Core stackAlternative power for CoreProduct
Generic I²S ampSpeaker ampAny wiredExternal audioSearch

Diagrams

Classic Core Series (5×5 cm, 12-pin M-Bus)

flowchart TD
note1["ClassicCore<br/>• 57×57 mm footprint<br/>• 12-pin M-Bus on bottom<br/>• Compatible with stack modules:<br/> – Battery modules<br/> – Audio Module (STM32G030)<br/> – Relay / IO modules<br/>• Good for modular, stackable builds"]
subgraph ClassicCore["Classic Core Series (5×5 cm, 12-pin M-Bus)"]
C0["Core (Gray)<br/>• 57×57 mm classic Core<br/>• ESP32<br/>• 12-pin M-Bus stack<br/>• LCD, speaker, SD<br/>• No IMU / no magnetometer"]
C1["Core2<br/>• 57×57 mm classic Core<br/>• Touchscreen, speaker<br/>• Battery, SD<br/>• 6-axis IMU (no mag)<br/>• Vibration motor<br/>• 12-pin M-Bus stack"]
C2["Core Fire<br/>• Classic Core + IMU<br/>• 9-axis (MPU9250 with mag)<br/>• 10 RGB LEDs in M5GO base<br/>• Battery, SD, speaker<br/>• 12-pin M-Bus stack"]
C3["Core2 AWS EduKit<br/>• Core2 + M5GO Bottom2<br/>• 10 RGB LEDs in base<br/>• Battery, SD, speaker<br/>• 6-axis IMU (no mag)<br/>• 12-pin M-Bus stack"]
C4["M5GO (Core kit)<br/>• Core-style controller<br/>• 6-axis IMU<br/>• 10 RGB LEDs in M5GO base<br/>• Battery, speaker, mic<br/>• 12-pin M-Bus stack"]
end
note1 -.-> C0 note1 -.-> C1 note1 -.-> C2 note1 -.-> C3 note1 -.-> C4 
Loading

CoreS3 Series (new 30-pin bus)

flowchart TD
noteS3["CoreS3Series<br/>• Use a new 30-pin base connector<br/>• NOT compatible with classic 5×5 stack modules<br/>• Can use S3-specific bottoms (e.g. M5GO Bottom3) for:<br/> – Extra battery<br/> – 10 RGB LEDs<br/>• Best suited for rich UI, audio, camera, and sensing"]
subgraph CoreS3Series["CoreS3 Series (New 30-pin Base Connector)"]
S3["CoreS3<br/>• 54×54 mm S3 footprint<br/>• Touchscreen + camera<br/>• Dual microphones<br/>• 6-axis IMU + magnetometer<br/>• 500 mAh internal battery<br/>• SD card<br/>• No 12-pin M-Bus"]
S3SE["CoreS3 SE<br/>• Same footprint as CoreS3<br/>• Touchscreen, camera, dual mics<br/>• No IMU / no magnetometer<br/>• No internal battery<br/>• SD card<br/>• No 12-pin M-Bus"]
end
noteS3 -.-> S3 noteS3 -.-> S3SE 
Loading

Stick Series (wearable / slim devices)

flowchart TD
noteST["StickSeries<br/>• Designed for wearable / handheld projects<br/>• Expansion via Stick Hat connector + Grove<br/>• Good for:<br/> – Small UI devices<br/> – Wrist-worn or pocket tools<br/> – Motion + sound toys with Speaker Hat"]
subgraph StickSeries["Stick Series (Wearable / Slim Devices)"]
ST1["M5StickC PLUS<br/>• Slim stick form factor<br/>• 6-axis IMU (MPU6886)<br/>• Small TFT display<br/>• Internal LiPo battery<br/>• Microphone<br/>• No vibration motor<br/>• No 12-pin M-Bus<br/>• Uses Hat accessories (e.g. Speaker Hat)"]
ST2["M5StickC PLUS2<br/>• Updated StickC platform<br/>• 6-axis IMU (MPU6886)<br/>• Small IPS TFT<br/>• 200 mAh battery<br/>• Microphone<br/>• Vibration motor<br/>• Single RGB LED<br/>• No 12-pin M-Bus<br/>• Uses Stick Hats (e.g. MAX98357 speaker)"]
end
noteST -.-> ST1 noteST -.-> ST2 
Loading

ATOM Series (tiny 24×24 mm cubes)

flowchart TD
noteAtom["AtomSeries<br/>• No stacking; no 12-pin M-Bus<br/>• Use Grove ports or direct wiring<br/>• Optional Atomic Battery Base for portable builds<br/>• Well suited for:<br/> – Tiny sound cubes (Echo)<br/> – Motion + LED cubes (Matrix)<br/> – Minimal IoT nodes (Lite)"]
subgraph AtomSeries["ATOM Series (Tiny 24×24 mm Cubes)"]
A_Lite["ATOM Lite<br/>• Minimal ESP32 dev board<br/>• Single RGB LED<br/>• No IMU<br/>• No speaker<br/>• No battery<br/>• Power via USB or Atomic base<br/>• Expansion via Grove / wiring"]
A_Matrix["ATOM Matrix<br/>• 24×24 mm cube<br/>• 5×5 RGB LED matrix (25 pixels)<br/>• 6-axis IMU (MPU6886)<br/>• No speaker built-in<br/>• No battery (pair with Atomic Battery Base)<br/>• Grove + GPIO for expansion"]
A_Echo["ATOM Echo<br/>• 24×24 mm cube<br/>• Built-in speaker<br/>• Microphone<br/>• Single RGB LED<br/>• No IMU<br/>• No battery (optional external base)<br/>• Grove + wiring for sensors"]
end
noteAtom -.-> A_Lite noteAtom -.-> A_Matrix noteAtom -.-> A_Echo 
Loading

STAMP / Power Modules (embedded / wired)

flowchart TD
noteTP["StampSeries<br/>• Not stackable; requires soldering/wiring<br/>• Works with any ESP32 device (Core, Stick, ATOM, etc.)<br/>• Used to:<br/> – Cut power completely between wake events<br/> – Achieve ultra-low-power operation<br/> – Schedule timed wakeups"]
subgraph StampSeries["STAMP / Power Modules (Embedded / Wired)"]
STP["M5Stamp Timer Power (BM8563)<br/>• RTC + alarm<br/>• Li-ion charging<br/>• 3.3 V / 5 V output<br/>• Power gating of main board<br/>• Very low standby current<br/>• Small 20×20 mm module"]
end
noteTP -.-> STP 
Loading

Power Options and Battery Solutions

flowchart TD
subgraph InternalPower["On-board / Integrated Power"]
IP1["CoreS3<br/>• 500 mAh internal LiPo<br/>• Can be extended with S3 Bottom3"]
IP2["Core2 / Core Fire / M5GO / Core2 AWS<br/>• Internal battery in Core or base<br/>• Capacity depends on kit"]
IP3["M5StickC PLUS / PLUS2<br/>• Small internal LiPo<br/>• USB-C charging"]
IP4["Most ATOM devices<br/>• No internal battery<br/>• USB power by default"]
end
subgraph StackableBattery["Stackable Battery Modules (Classic 5×5 only)"]
SB1["Battery Module (Core)<br/>• 5×5 cm stack module<br/>• Extra capacity<br/>• Compatible with Core/Core2/Fire/M5GO/AWS"]
SB2["High-capacity Battery13.2<br/>• Large stack battery<br/>• For long runtime<br/>• Increases stack height"]
SB3["M5GO Bottom / Bottom2<br/>• RGB bar + battery + ports<br/>• Kit-specific for Core/Core2/Fire/AWS"]
SB4["Base AAA Battery Holder<br/>• AAA battery holder<br/>• Alternative power for Core<br/>• Classic 5×5 stack"]
end
subgraph AtomBattery["ATOM Battery Options"]
AB1["Atomic Battery Base (TailBat)<br/>• ~200 mAh LiPo<br/>• Clips to ATOM footprint<br/>• USB-C charging"]
end
subgraph StickBattery["Stick Battery Options"]
STB1["M5StickC 18650 Base<br/>• 18650 battery holder<br/>• Extended runtime for StickC<br/>• Larger capacity than internal LiPo"]
end
subgraph ExternalPower["External Power (Universal)"]
EP1["USB Power Bank<br/>• Plug into USB-C<br/>• Works with all devices"]
EP2["Bench Supply / Adapter<br/>• 5 V / 3.3 V regulated<br/>• For lab setups"]
end
subgraph PowerControl["Power Control / RTC"]
PC1["M5Stamp Timer Power (BM8563)<br/>• Li-ion charging<br/>• 3.3/5 V output<br/>• RTC alarms<br/>• Full power gating"]
end
%% Relationships
IP1 --> EP1
IP2 --> EP1
IP3 --> EP1
IP4 --> EP1
SB1 --> IP2
SB2 --> IP2
SB3 --> IP2
SB4 --> IP2
AB1 --> IP4
STB1 --> IP3
PC1 --> IP4
PC1 --> IP3
PC1 --> IP2
PC1 --> IP1
Loading

Legend:

  • InternalPower: built-in batteries
  • StackableBattery: classic 5×5 only (includes AAA holder)
  • AtomBattery: TailBat/Atomic Base for ATOM
  • StickBattery: 18650 base for StickC
  • ExternalPower: USB/bulk power
  • PowerControl: M5Stamp Timer Power for ultra-low-power designs

Recommended Build Patterns and Device Combinations

flowchart TD
note_P1["P1: Motion + LED Cube<br/>• Focus on IMU + LEDs, optional battery<br/>• Typical combo: ATOM Matrix + Atomic Battery Base"]
note_P2["P2: Sound Cube / Toy<br/>• Short WAV/MP3 sounds<br/>• I²S speaker or built-in speaker<br/>• Motion triggers or button triggers"]
note_P3["P3: RFID Toy<br/>• Use RFID Unit 2 via Grove<br/>• Map tags → sounds, animations, or state changes"]
note_P4["P4: Ultra–Low-Power Node<br/>• M5Stamp Timer Power controls power<br/>• Device runs briefly, then fully powers down"]
note_P5["P5: Touchscreen Multimedia Device<br/>• CoreS3 with audio, cam, IMU, mic<br/>• Suitable for rich UI experiments"]
%% Build patterns
subgraph Patterns["Recommended Build Patterns"]
P1["Motion + LED Cube<br/>(e.g. roll/shake to animate)"]
P2["Sound Cube / Sound Toy<br/>(e.g. short sounds on shake or tap)"]
P3["RFID Toy / Token Reader<br/>(e.g. tag → sound/light)"]
P4["Ultra–Low-Power Node<br/>(e.g. wake occasionally, then power off)"]
P5["Touchscreen Multimedia Device<br/>(audio, graphics, camera)"]
end
%% Devices and key modules
subgraph Devices["Devices"]
D_CoreS3["CoreS3<br/>• Touch + cam + mic<br/>• Speaker + IMU + mag<br/>• Battery"]
D_StickP2["M5StickC PLUS2<br/>• IMU + TFT<br/>• Battery + vib + mic"]
D_AtomMatrix["ATOM Matrix<br/>• 5×5 RGB<br/>• IMU"]
D_AtomEcho["ATOM Echo<br/>• Speaker + mic<br/>• Single RGB"]
D_Timer["M5Stamp Timer Power<br/>• RTC + power gating"]
D_RFID["RFID Unit 2<br/>• Grove RFID reader"]
D_AAtomic["Atomic Battery Base<br/>• Battery for ATOM"]
D_SpkHat["StickC Speaker 2 Hat<br/>• MAX98357 I²S speaker"]
D_Buttons["Mini Dual Button Unit"]
end
%% Pattern connections
%% P1: Motion + LED cube
P1 --> D_AtomMatrix
P1 --> D_AAtomic
%% P2: Sound cube/toy
P2 --> D_AtomMatrix
P2 --> D_AtomEcho
P2 --> D_AAtomic
P2 --> D_StickP2
P2 --> D_SpkHat
%% P3: RFID toy
P3 --> D_CoreS3
P3 --> D_StickP2
P3 --> D_AtomMatrix
P3 --> D_RFID
P3 --> D_Buttons
%% P4: Ultra–low-power node
P4 --> D_Timer
P4 --> D_AtomMatrix
P4 --> D_AtomEcho
P4 --> D_StickP2
P4 --> D_CoreS3
%% P5: Touchscreen multimedia device
P5 --> D_CoreS3
%% Notes connections
note_P1 -.-> P1
note_P2 -.-> P2
note_P3 -.-> P3
note_P4 -.-> P4
note_P5 -.-> P5
Loading

Acknowledgements

Generated with help from LLMs (ChatGPT, Claude, Gemini, Cursor).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors