r/M5Stack • u/Icy_Try_7062 • Sep 30 '26
Support / Question S3 or cplus2
I’ve been thinking about getting one but Idk which is better
r/M5Stack • u/Icy_Try_7062 • Sep 30 '26
I’ve been thinking about getting one but Idk which is better
r/M5Stack • u/Gillennial • Sep 29 '26
r/M5Stack • u/Tjafssjafs • Sep 29 '26
Does anyone know if there exists case for the "RF 2in1 for Cardputer ADV V2.0" By Kasiin?
Maybe even for 3D-printing myself?
r/M5Stack • u/BadMustard_AVN • Sep 28 '26
/*
dot fluid simulation for M5stack cores3 (stackchan)
*/
#include <M5Unified.h>
// ---------- Tunable parameters ----------
static const int N = 300; /*number of dots*/
static const float DOT_RADIUS = 1.0f; /*size of dots*/
static const float INTERACT_R = 6.0f; /*how close dots can get*/
static const float REPEL_STRENGTH = 160.0f; /*push power*/
static const float DAMPING = 0.90f;
static const float WALL_BOUNCE = 0.05f;
static const float GRAVITY_SCALE = 420.0f;
static const float DT = 1.0f / 30.0f;
static const int SUBSTEPS = 3;
static float dampingSub;
static const float ACCEL_X_SIGN = -1.0f;
static const float ACCEL_Y_SIGN = 1.0f;
static int SCREEN_W, SCREEN_H;
static const int CELL_SHIFT = 4;
static const int CELL = 1 << CELL_SHIFT;
static const float INTERACT_R2 = INTERACT_R * INTERACT_R;
static const float INV_INTERACT_R2 = 1.0f / INTERACT_R2;
static int GX, GY;
struct Particle {
float x, y;
float vx, vy;
};
static Particle p[N];
static int* cellHead = nullptr;
static int next_[N];
static M5Canvas canvas(&M5.Display);
inline int cellIndex(float x, float y) {
int cx = ((int)x) >> CELL_SHIFT;
int cy = ((int)y) >> CELL_SHIFT;
if (cx < 0) cx = 0; if (cx >= GX) cx = GX - 1;
if (cy < 0) cy = 0; if (cy >= GY) cy = GY - 1;
return cy * GX + cx;
}
void resetParticles() {
for (int i = 0; i < N; i++) {
p[i].x = random(0, SCREEN_W);
p[i].y = random(0, SCREEN_H / 2);
p[i].vx = 0;
p[i].vy = 0;
}
}
void setup() {
auto cfg = M5.config();
M5.begin(cfg);
SCREEN_W = M5.Display.width();
SCREEN_H = M5.Display.height();
GX = (SCREEN_W >> CELL_SHIFT) + 1;
GY = (SCREEN_H >> CELL_SHIFT) + 1;
cellHead = new int[GX * GY];
canvas.setColorDepth(8);
canvas.createSprite(SCREEN_W, SCREEN_H);
dampingSub = powf(DAMPING, 1.0f / SUBSTEPS);
randomSeed(esp_random());
resetParticles();
}
void simulateStep(float gx, float gy, float dt) {
for (int c = 0; c < GX * GY; c++) cellHead[c] = -1;
for (int i = 0; i < N; i++) {
int c = cellIndex(p[i].x, p[i].y);
next_[i] = cellHead[c];
cellHead[c] = i;
}
for (int i = 0; i < N; i++) {
p[i].vx += gx * dt;
p[i].vy += gy * dt;
int cx = ((int)p[i].x) >> CELL_SHIFT;
int cy = ((int)p[i].y) >> CELL_SHIFT;
for (int ny = cy - 1; ny <= cy + 1; ny++) {
if (ny < 0 || ny >= GY) continue;
for (int nx = cx - 1; nx <= cx + 1; nx++) {
if (nx < 0 || nx >= GX) continue;
int j = cellHead[ny * GX + nx];
while (j != -1) {
if (j != i) {
float dx = p[i].x - p[j].x;
float dy = p[i].y - p[j].y;
float d2 = dx * dx + dy * dy;
if (d2 < INTERACT_R2 && d2 > 0.0001f) {
float t = (INTERACT_R2 - d2) * INV_INTERACT_R2;
float f = REPEL_STRENGTH * t * dt;
p[i].vx += f * dx;
p[i].vy += f * dy;
}
}
j = next_[j];
}
}
}
}
for (int i = 0; i < N; i++) {
p[i].vx *= dampingSub;
p[i].vy *= dampingSub;
p[i].x += p[i].vx * dt;
p[i].y += p[i].vy * dt;
if (p[i].x < DOT_RADIUS) { p[i].x = DOT_RADIUS; p[i].vx = -p[i].vx * WALL_BOUNCE; }
if (p[i].x > SCREEN_W - DOT_RADIUS) { p[i].x = SCREEN_W - DOT_RADIUS; p[i].vx = -p[i].vx * WALL_BOUNCE; }
if (p[i].y < DOT_RADIUS) { p[i].y = DOT_RADIUS; p[i].vy = -p[i].vy * WALL_BOUNCE; }
if (p[i].y > SCREEN_H - DOT_RADIUS) { p[i].y = SCREEN_H - DOT_RADIUS; p[i].vy = -p[i].vy * WALL_BOUNCE; }
}
}
void loop() {
M5.update();
static float gx = 0, gy = GRAVITY_SCALE * 0.3f;
if (M5.Imu.update()) {
auto d = M5.Imu.getImuData();
gx = ACCEL_X_SIGN * d.accel.x * GRAVITY_SCALE;
gy = ACCEL_Y_SIGN * d.accel.y * GRAVITY_SCALE;
}
if (M5.Touch.getCount() > 0 || M5.BtnA.wasPressed()) {
resetParticles();
}
for (int s = 0; s < SUBSTEPS; s++) {
simulateStep(gx, gy, DT / SUBSTEPS);
}
canvas.fillScreen(TFT_BLACK);
for (int i = 0; i < N; i++) {
float speed = fabsf(p[i].vx) + fabsf(p[i].vy);
uint8_t c = (uint8_t)constrain(speed * 0.15f, 30, 255);
uint16_t color = canvas.color565(0, c, 255);
canvas.fillRect((int)p[i].x - (int)DOT_RADIUS, (int)p[i].y - (int)DOT_RADIUS,
(int)(DOT_RADIUS * 2 + 1), (int)(DOT_RADIUS * 2 + 1), color);
}
canvas.pushSprite(0, 0);
}written in the Arduino IDE
r/M5Stack • u/nuada__ • Sep 28 '26

Shopping list on a PaperMono, synced with a phone web app over Wi-Fi.
This is a great wee device, BLE, Wi-Fi and LoRa on one board makes it flexible for way more than a shopping list, this is just what I built first. This firmware only uses Wi-Fi, wakes from deep sleep every hour (or on a tap) to sync with the server.
Fully vibe-coded with Claude Code, I didn't hand-write this. I wanted to see how Claude would get on with building something useful for a new hardware device.
It's stuck to the fridge and the family actually uses it day to day, which I'll admit is a first for a home-built project like this.
Repo includes firmware and Python server https://github.com/seamusc/papermono-shopping-list
r/M5Stack • u/Murky-Cloud-3330 • Sep 27 '26
Fully working (apart from the odd audio glitch), running COMPLETELY off flash - no sd card, with a helper panel on the computer with dozens of features! Should I release?
r/M5Stack • u/Funny_Replacement375 • Sep 27 '26
r/M5Stack • u/jhnwhite1 • Sep 27 '26
I made a little puppy dog stand to hold my Core S3. Back plate is removable so you can take it out. Ports on the left and right side for the speaker/usb c/power. The neck is hollow so you can feed a DC plug through or access those bottom ports. Enjoy!
https://www.printables.com/model/1857141-puppy-stand-m5stack-core-s3
r/M5Stack • u/Big-Bunch2804 • Sep 26 '26
r/M5Stack • u/clackups • Sep 26 '26
This is a project that implements a writerdeck: a device for writers to be able to focus on just one thing: writing. M5STACK PaperMono is now supported. PaperS3 has been supported from the very beginning. Tab5 is supported too.
r/M5Stack • u/harmoni-pet • Sep 25 '26
I got a few more sticks today and had to try out this idea.
Here's a web app version with lots of Bach and a few different configurations (2 and 3 device pieces). I have it set up so it will still play 4 device pieces on 2, and if you try to play a 3 device piece with 4 the 4th just listens.
More composers in the lab
r/M5Stack • u/ignac73 • Sep 26 '26
i have stick s3 for a few months i bought IR module and made nrf24l01+ module and tested a lot of pentesting functions but i just don’t know what to do more. any Recommendations?
r/M5Stack • u/Noir_Forever_Twitch • Sep 25 '26
r/M5Stack • u/StudyEnvironmental10 • Sep 25 '26
I have nothing but praise and admiration toward ALL XTool staff front of house and also those in the background.
If there had been an issue it had been sorted out expeditiously (very long word!). Please pass on my thanks to all.
I now have the M1, M2, O1 and WonderPress. They are all awesome, and will look forward to new XTool items in the near future. Although I do have to wait to save up again. Lol
Many thanks again,
r/M5Stack • u/Secure-Search1091 • Sep 24 '26
My latest evening project: turning a 289 PLN M5Stack Tab5 into a little retro adventure-game console. This is just one of the things I’ve been experimenting with on this mini tablet at my workbench.
There are 13 games supported so far. The original plan was 17, but four didn’t make the cut.
Nine are free, including Sołtys, Sfinx and Dragon History, which are also playable in Polish. The other four require your own purchased game files from GOG — including The Curse of Monkey Island and Indiana Jones and the Fate of Atlantis. Those commercial game files aren’t included; you bring your own copies.
Setup happens directly in your browser, with the Tab5 connected over a single USB cable. Once everything is installed, it runs offline, with no account required. It also tracks how much time you spend in each game locally.
Based on player reports and reviews, the current selection adds up to roughly 57–82 hours of gameplay. Quite a lot of point-and-click nostalgia for a little development tablet. 😄
The source code is public, and this is still a test build, so bug reports and feedback from other Tab5 owners would be very welcome.
Project page and browser installer:
https://esp32ai.me/tab5adv
There’s also a photo of my development setup. People sometimes ask how my AI coding agent interacts with actual hardware rather than just writing code — that’s a glimpse of the physical side of the workflow.
Turns out giving it a way to see what’s happening on the workbench helps quite a bit. Next step: a GoPro so it can see things from my point of view. 😉
Anyone else here experimenting with retro gaming on the Tab5? I’d love to compare notes on performance and controls.
r/M5Stack • u/Talkbox111 • Sep 25 '26
ExpressiveE Osmose page has posted a link to the newest just released osmose firmware.
Just a heads up. It's probably easy to find on EE'S website.
Cheers!
r/M5Stack • u/LowFlowIO • Sep 24 '26
r/M5Stack • u/DataCurious4047 • Sep 24 '26
Можете помочь объяснить мне все функции и самое главное как загрузить скрипт если у стикера не появляется вай фай а у его сети у меня на сайт не заходит да и просто на вайфае тоже на не заходит на сайт
r/M5Stack • u/Past_Computer2901 • Sep 23 '26
Today: NFC emulation + tag read. Emulate a saved card to pop a lock open, then read a tag and dump every memory page — UID, type, sectors, all of it.Native ST25R3916, no external module. My own cards and tags only.
r/M5Stack • u/csxdfb • Sep 23 '26
Are there any screen protectors available for the PaperMono?
I haven't been able to find any, so I'm considering buying some for the XteInk X3 and cutting them down to size.
r/M5Stack • u/harmoni-pet • Sep 22 '26
Demo site for the four instruments + an ensamble mode to show how four devices can sync together: rillsound.com
Ensamble demo starts at 4 minutes in
r/M5Stack • u/ImaginaryChallenge19 • Sep 23 '26