Tested on CoreS3 + StackChan Body: the 3-zone head pad works as a talk button, strokes need a 30–400 ms gap between zones, and servo motion leaves touch stuck until recalibrate().
A 100-yen junk ACS ACR1251U-M3 from Akihabara showed up in Windows 11 but refused to detect cards. Step-by-step troubleshooting from drivers and registry to firmware patching and updating a Santek EZ Sign.
Step-by-step physical assembly guide for transplanting an M5Stack CoreS3 into the official StackChan Body. Detaching DIN Base, 4-pin wiring, and initial boot test.
CoreS3 voice chat rebuilt on action=async: filler on job_id, 0.7s polls, gapless sentence chunks, 8.3s to first reply, plus a Key unit (U144) talk button with port auto-detect.
Tested on a CoreS3: talk into the mic, get a spoken reply. 44-byte RIFF header on the PCM buffer, HTTPClient multipart POST built in PSRAM, 12.4–13.8s sync round trips.
Tap-to-record 5s at 48kHz into PSRAM, instant playback on CoreS3. The mic/speaker swap on the shared I2S bus worked with 200ms waits; the freeze was the serial monitor's DTR/RTS reset.
3 face PNGs embedded in flash decode to sprites in 87ms. CoreS3 touch stops at y=239 so Core2-style BtnA/B/C never fire; tap, hold and flick gestures instead.
ESP32 can't join Tailscale, so a VPS PHP relay feeds the CoreS3. Chunked WAV via writeToStream, SD mounts broken by any pre-mount LCD draw, NVS volume.
CoreS3 voice chat spec check before firmware: playWav needs linear PCM 8-16bit up to 2ch (any rate), mic/speaker share one I2S bus, 128x128 sprite lip sync fits in RAM.
Controlled a Beambox Niji Badge over BLE from Windows without the official app. Sending a raw JPEG just produced a black screen — the fix was a custom binary container and a different command type than expected.
Wired M5Stack's CO2L Unit (SCD41) to a CoreS3 over Grove and put CO2/temp/humidity on screen. The factory-fresh sensor read +30% high against a SwitchBot NDIR meter, so I ran FRC over a serial command to pull it in line.
A brand-new CoreS3 failed with 'SD Card initialization failed!' on the stock firmware. Tested two LAZOS cards: the 16GB never mounts at any SPI clock, the 32GB mounts but only writes at 10MHz, and a soft reset wedges the card until power-off.