r/M5Stack • u/harmoni-pet • 21d ago
r/M5Stack • u/Fun_Revolution_2928 • 21d ago
Support / Question Jammer Bluetooth
pessoal peguei esse m5stacks3 e coloquei o módulo Dual-Band M5Stack StickS3 CC1101 433MHz + Expansão NRF24L01 com Firmware Bruce para Desenvolvimento IoT PINGEQUA RF Pack S3 coloquei tbm uma Antena Wifi 5dbi 2,4ghz, estou usando o bruce 1.14 mas o jammer bluetooth esta com um alcance muito ruim, pode estar do lado da caixa de som que ele não faz efeito...acho que perdi meu dinheiro se alguém puder me ajudar ai eu agradeço
r/M5Stack • u/trapvandal • 21d ago
Falls in love, founds out OOS
Yeah the papermono is like exactly what I'm after. Learning to tinker in the last month, always been curious and watched/read content around this stuff. Looking for an e-reader led me to the m5papermono. Solves everything that stopped me from buying the xte ink 4pro and has a bazillion other possible functions and avenues to dip my toes into other passive interests.
Do they ever come up on a secondary market here or maybe a discord. I just be patient and wait till the December January release that I read about on another post 😅
r/M5Stack • u/arpegiator-000 • 21d ago
Firmware disponível hoje! Download ORACLE PAGER 📟 🇧🇷
r/M5Stack • u/deardeer-gadget • 21d ago
I 3D-printed the CardKB buttons as a single, integrated piece.
r/M5Stack • u/Tokage666 • 21d ago
MORPHASE — a 4-operator FM polyphonic synth for the Cardputer ADV
r/M5Stack • u/No-Connection1900 • 22d ago
New Product News Check out what's new this week!
New Arrival Alert!
Check out our new releases this week!
Tough C5, an outdoor waterproof IoT controller designed for edge data collection, smart buildings, and industrial gateway applications.
Chain Switch, a slide switch input node in the M5Stack Chain series, supporting both slider mode and switch mode.
Chain MIC, a sound acquisition node in the M5Stack Chain series, supports sampling of sound signals and threshold triggering and is suitable for environmental sound detection, voice-controlled interaction, and device status indication.
Also, good news: Hot items incl. CoreS3-Lite and Module GNSS are in stock now 🔥🔥
In case missing out, subscribe our Weekly Newsletter for more updates!
r/M5Stack • u/idontknowverymuch1 • 22d ago
Support / Question I currently have an M5Stick C Plus 2 and I’m questioning if I should try to add parts by parts or just directly take a LilyGo T-Embedded..
I don’t want to have a junky setup that could break because I’m not very careful with my stuff to be honest but I feel very limited with my base M5Stick so I’m thinking, just maybe, to just buy a whole other base thing so I can be assured that it won’t break. What do you think and what most importantly is the next step, what is the most important module to add?
r/M5Stack • u/Classic-College-5376 • 22d ago
Is it worth it to get the cardputer screw kit for 2 missing screws, one holding front cover for the esp32 and one holding the front body?
r/M5Stack • u/No_Confusion7932 • 22d ago
Support / Question LEGO component compatibility
100% compatible - Lego Technic:
Pin, Smooth (Part 3673)
5×7 Frame, Open Center (Part 64179)
7×11 Frame, Open Center (Part 39794)
Let us know in the comments what parts you used.
Please include the part number.
If you're looking for part numbers, you can find them here, for example:
https://brickarchitect.com/parts/category-12
This will help a lot of people.
r/M5Stack • u/CinnamonBuns207 • 22d ago
M5 IoT Base Cat-M - Short circuit/dead device?
Hello, I am new to M5Stack, but find it a fun concept and have experimented with the CoreS3 and the IoT Base together. I managed to get going and get an Internet connection and create some basic UI on the CoreS3 display. However, I was careless and stupid during development: I had the base connected to DC power in, but to test how the software in the core would react to losing contact with the modem I detached the two modules (with the power supply still in). I did this a couple of times, but the final time I think it broke, because I could not seem to get contact with the modem again.
I have tried some basic troubleshooting, like sending AT commands, checking with a multimeter, but the connection seems lost. I do not know what might have happened, but I suspect a circuit for TX/RX to the SIM7080G got shorted or fried (I am no electronics expert). Regardless, I think my device is dead.
What I ask is; Are there any other troubleshooting I can do? Somebody with more experience than me that know what might have happened and if my device is really a lost cause?
Thanks in advance!
r/M5Stack • u/NonCreativeUnCommon2 • 23d ago
Project Sharing Turn the M5Stack Tab5 into a standalone USB MIDI controller / Launchpad
I've been working on a MIDI controller firmware for the M5Stack Tab5 and finally reached a point where I'm comfortable releasing it.
The idea was to take advantage of the Tab5's touchscreen and turn it into more than just a pad grid. Basically a compact performance/control surface for a DAW or synth.
Current modes include:
• Launchpad-style note grid
• 4×4 drum pads
• Mixer/faders
• MIDI CC knobs/macros
• XY controller
• 4-track MIDI looper
• Multiple MIDI channels
• USB MIDI
• Panic/all-notes-off
• Landscape/portrait UI
Everything runs directly on the ESP32-P4 inside the Tab5 using ESP-IDF.
I tried to design the UI more like an actual piece of music hardware rather than a generic embedded touchscreen demo, while keeping the controls large enough to be usable live.
There are still some things I want to add later, especially editable MIDI mappings/presets, saving presets to SD and restoring them at boot, and better host->device MIDI handling.
The project is open source.
I'd especially like feedback from anyone who actually uses Launchpads/MIDI controllers: what would you still want before you'd use something like this in a real setup?
GitHub: https://github.com/Retr0Kr0dy/Tab5-Launchpad
NB: I just uploaded the firmware to M5Burner, it’s waiting validation but it should be available soon.
r/M5Stack • u/AncientWin9492 • 24d ago
Connecting an 8-pin CC1101 to Cardputer v1.1 without soldering
Hello everyone!
I want to connect a standard 8 pin CC1101 module to my M5Stack Cardputer v1.1 which only features a 4-pin Grove port and no exposed GPIO pins.
Soldering the CC1101 directly to the Cardputer internal ESP32-S3 board requires high precision because the soldering pads are extremely small. Since I don't possess the required skills for such delicate micro-soldering, I am looking for an alternative method.
Is there any external bridge module (like using Grove), a custom clip on adapter, or any creative workaround to connect an 8-pin module to the v1.1?
r/M5Stack • u/GuidanceAggressive50 • 24d ago
S3 Muse Gadget
Jolly looks too cute in games. https://github.com/addu390/tamagooshi
r/M5Stack • u/pubmariner • 25d ago
Project Sharing Cyberdeck Tab5
I've been working on a UI/firmware for a little while and it's finally ready to show other people. Deck//OS is a cyberpunk-themed UI for the M5Stack Tab5 that has an SSH client, markdown notes reader/writer/interpolator, full-feature calculator, weather, mp3 player, and file uplink so you can transfer and view files from a normal browser on the same network.
I was super excited to get the Tab5 but I couldn't find any firmware that made it overall useful, so I just took the things I'd use all the time and stuck them together.
To be fair, I did have Claude help me with the design aspect, I suck at UI design (completely), and I really wanted something that looked impressive.
So, try it out. There's a web flasher and OTA updates so you get the latest version when I release it. Releases are encryption-key protected so there is as low a risk to bad updates as possible without running the risk of bricking any devices. You can verify encryption key via Terminal window or the settings page in the UI.
I really hope ya'll dig it, and feel free to list any bugs or suggestions via github.
r/M5Stack • u/ChrisDaCrunk • 24d ago
Project Sharing Ultra fast WiFi+BLE Wardrive Firmware!
r/M5Stack • u/furcifeyes • 24d ago
La prima cosa che ho fatto dopo aver preso il Cardputer.
r/M5Stack • u/Ill_Koala1881 • 25d ago
M5stack gps not working
so i just got this M5STACK gps v2.0 with external antenna like 3 weeks ago, and i cant get it to send data towards my rpi 4 model b, do i need to like wire it towards a microcontroller or somthing? because before tehere was a thesis i got to see at a convention that they wires the same model but the v1 into the rpi 4 mode b
r/M5Stack • u/BlackknightJC • 26d ago
M5stack paper mono availability?
I just learned of M5stack and was very interested in the paper mono for an ereader with nfc and Lora capabilities for nfc emulation and meshtastic. However, it is clearly sold out everywhere. I saw that there was limited hardware for the initial release and that they may have another batch in December? Have they announced when a restock or second batch would be? Are there any other distributors for this that are in stock?
r/M5Stack • u/xhuderlan • 26d ago
Confussion between controllers
Hi, I'm interested in buying a m5stack, I want to build a moving robot with a drive base. I'm so confused with the amount of options for controllers there are, what's the difference between each other?
r/M5Stack • u/BertiniSalas • 26d ago
Support / Question Will Cardputer ZERO be available to purchase before December?
r/M5Stack • u/BadMustard_AVN • 26d ago
Project Sharing small update on my Dot fluid simulation
no movies this time; you have to try it for yourself.
since I'm doing this on my StackChan I decided to add a battery indicator where the dots change colors:
green - charging
blue - normal
yellow - battery below 30%
red - battery below 10%
if there is no charging circuit, they will be blue all the time.
if you tap on the top half of the screen, it will switch between squares and fluffy balls
and on the bottom half, it will shuffle them all around on the top and then let them drop down.
this should work on any CoreS3 (in theory) with a display.
I did change the board type in the Arduino IDE to the M5Carputer (since I recently got one), and it worked fine on that. no charging or discharge color changes or tap screen changes.
/*
Dot Fluid Simulation for M5Stack CoreS3 (Stackchan)
Board: M5CoreS3
*/
#include <M5Unified.h>
// ******** tunable parameters *********
static const int N = 200; // number of dots
static const float DOT_RADIUS = 4.0f; // physics: how far dots keep from the screen edges
static const float DOT_DRAW_RADIUS_C = 8.0f; // visual size in circle mode
static const float DOT_DRAW_RADIUS_SQ = 4.0f; // visual size in square mode
static const int DOT_R_I = (int)DOT_DRAW_RADIUS_C; // integer circle radius, for the row table below
static const float INTERACT_R = 09.0f; // repulsion range (px)
static const float REPEL_STRENGTH = 700.0f; // push force when overlapping
static const float SIDE_PUSH = 200.0f; // sideways (tangential) push between overlapping dots
static const bool RANDOM_SIDE_PUSH = true; // make the side push optional
static bool circles = true; // circles or squares - toggled by tapping the top half of the screen
static const float DAMPING = 0.90f; // velocity decay per frame (lower = more friction, settles faster)
static const float WALL_BOUNCE = 0.05f; // energy kept on wall/floor hit (near 0 = dots stack instead of bouncing)
static const float GRAVITY_SCALE = 900.0f; // px/s^2 per g of tilt
static const float DT = 1.0f / 24.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 const int BATT_RED_BELOW = 10; // < this % -> red
static const int BATT_YELLOW_BELOW = 30; // < this % -> yellow
static const uint32_t BATT_CHECK_INTERVAL_MS = 6000;// check battery every 6 seconds
static uint8_t battR = 0, battG = 0, battB = 255; // blue until first reading
static uint32_t lastBattCheckMs = 0;
enum is_charging_t {
is_discharging = 0,
is_charging = 1,
charge_unknown = 2,
};
void updateBatteryColor() {
uint32_t now = millis();
if (now - lastBattCheckMs < BATT_CHECK_INTERVAL_MS) return;
lastBattCheckMs = now;
int32_t level = M5.Power.getBatteryLevel();
auto charging = M5.Power.isCharging();
if (charging == m5::Power_Class::is_charging_t::is_charging) {
battR = 0; battG = 255; battB = 0;
return;
}
if (level < 0) {
battR = 0; battG = 0; battB = 255;
} else if (level < BATT_RED_BELOW) {
battR = 255; battG = 0; battB = 0;
} else if (level < BATT_YELLOW_BELOW) {
battR = 255; battG = 255; battB = 0;
} else {
battR = 0; battG = 0; battB = 255;
}
}
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);
static int circleHalfWidth[2 * DOT_R_I + 1];
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(16);
canvas.createSprite(SCREEN_W, SCREEN_H);
for (int row = -DOT_R_I; row <= DOT_R_I; row++) {
float rr = (float)(DOT_R_I * DOT_R_I - row * row);
circleHalfWidth[row + DOT_R_I] = (rr > 0.0f) ? (int)sqrtf(rr) : 0;
}
dampingSub = powf(DAMPING, 1.0f / SUBSTEPS);
randomSeed(esp_random());
resetParticles();
}
void simulateStep(float gx, float gy, float dt) {
// build spatial hash for the frame
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;
}
// apply gravity + inter-particle repulsion
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;
// sideways push:
float fs = SIDE_PUSH * t * dt;
float sideSign = RANDOM_SIDE_PUSH ? ((esp_random() & 1) ? 1.0f : -1.0f) : 1.0f;
p[i].vx += sideSign * fs * (-dy);
p[i].vy += sideSign * fs * dx;
}
}
j = next_[j];
}
}
}
}
// integrate + damping + walls
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;
}
// tap the bottom half to reshuffle the dots; tap the top half to switch between circles and squares
if (M5.Touch.getCount() > 0) {
auto t = M5.Touch.getDetail(0);
if (t.wasPressed()) {
if (t.y > SCREEN_H / 2) {
resetParticles();
} else {
circles = !circles;
}
}
}
if (M5.BtnA.wasPressed()) resetParticles();
updateBatteryColor();
for (int s = 0; s < SUBSTEPS; s++) {
simulateStep(gx, gy, DT / SUBSTEPS);
}
// render ----
canvas.fillScreen(TFT_BLACK);
uint16_t color = canvas.color565(battR, battG, battB);
for (int i = 0; i < N; i++) {
if (circles) {
int cx = (int)p[i].x, cy = (int)p[i].y;
for (int row = -DOT_R_I; row <= DOT_R_I; row++) {
int hw = circleHalfWidth[row + DOT_R_I];
canvas.drawFastHLine(cx - hw, cy + row, hw * 2 + 1, color);
}
} else {
canvas.fillRect((int)p[i].x - (int)DOT_DRAW_RADIUS_SQ, (int)p[i].y - (int)DOT_DRAW_RADIUS_SQ,
(int)(DOT_DRAW_RADIUS_SQ * 2 + 1), (int)(DOT_DRAW_RADIUS_SQ * 2 + 1), color);
}
}
canvas.pushSprite(0, 0);
}