Flash your StackChan

Straight from this page. No toolchain, no command line.

⚠️ Back up your factory firmware first. M5Stack do not publish it. If you skip this and later want the robot you bought, that option is gone — this is the one step you cannot undo.

Use M5Burner and save the full flash image before flashing anything here. Keep that file off cloud sync: it contains your Wi-Fi password in plain text.

⚠️ When it asks whether to erase the device, say no.

Your robot's servos were centred at the factory and those numbers live in a small settings area of its flash. They are unique to your unit, are in no datasheet, and cannot be recovered once erased — this firmware reads them at every boot so his head sits straight and his tilt limits stay clear of the mechanical stop.

Erasing also removes your Wi-Fi details and server address, which are merely annoying by comparison. Installing without erasing writes only what it needs and leaves that area alone.

⚠️ An interrupted write can leave the robot unable to boot.

Most failures here are recoverable — the ESP32's bootloader survives a bad app image, and M5Burner can restore a device that will not start. But a write interrupted at the wrong moment can leave a robot that does not come back easily, and the usual causes are outside anyone's control: a cable nudged out, a power cut, a failing USB port, a hub that drops under load.

Use a cable you trust and a port directly on the machine rather than through a hub, and do not unplug anything until this page says it has finished. You are flashing your own hardware at your own risk; this software comes with no warranty of any kind.

Then

  1. Plug the robot into this computer with a USB-C cable that carries data.
  2. Press the button below and pick the serial port. On Windows this robot offers two: choose USB JTAG/serial debug unit, not USB VCOM.
    VCOM looks like the obvious one and does not get through — the browser returns to this page without an error. The board's native USB port is the one that works. Observed on one Windows machine; if yours differs, please say so.
  3. Decline the erase when asked, as above.
  4. When it finishes, the robot restarts.
    • A robot that has never had Wi-Fi serves a network called StackChan-XXXX. Join it from a phone, give it your network, and put your server's address under Advanced → Custom OTA URL.
    • A robot you declined the erase on still has its Wi-Fi, so it just reconnects and never offers that network. Set the server address by holding a finger on his screen for five seconds instead.
  5. Close this tab when you are done. The browser keeps the serial port claimed for as long as the page is open, and nothing else can use it — not a serial monitor, not esptool, not this page in a second tab.
    It fails as access denied or port busy, which reads like a driver problem or a robot that has crashed. It is neither; it is this page.

Your browser cannot talk to serial devices. Use Chrome or Edge on a desktop — Safari and Firefox do not implement Web Serial, and it does not work on phones.

This binary does not know where your server is, on purpose. It ships pointing at an address that can never resolve, so a robot flashed here talks to nobody until you tell it who to talk to. You will need the server running on a machine of your own first.

To change the address later, hold a finger on his screen for five seconds.

What you are installing

Firmware that turns the robot into a voice assistant answering to a model on your own network — face, head, LED ring, camera and wake word — with no cloud service involved. It replaces the factory launcher, so the dance and the app store go away; what you gain and lose is written out honestly.