Repository navigation
Flashing
The app only (keeps your Wi-Fi, your server address and your robot's
factory servo calibration — all of which live in NVS):
esptool --chip esp32s3 -p PORT write-flash 0x20000 xiaozhi.bin
Everything, for a robot that has never run this firmware:
esptool --chip esp32s3 -p PORT write-flash \
0x0 bootloader.bin \
0x8000 partition-table.bin \
0xd000 ota_data_initial.bin \
0x20000 xiaozhi.bin \
0x800000 generated_assets.bin
🔴 stackchan-local-llm-merged.bin is not the same thing. It is one
image written at 0x0, and it erases NVS — your Wi-Fi, your server
address, and your robot's factory servo calibration, which is unique
to your unit and cannot be recovered. Use it only for a deliberate clean
slate. The commands above, and the browser flasher, leave NVS alone.
🔴 Back up your factory firmware first. M5Stack do not publish it, so
without a backup "put it back" stops being an option you have. See
the quickstart.
After flashing
This binary does not know where your server is, deliberately — it ships
pointing at an address that cannot resolve. Until you tell it otherwise the
log says no server configured and the robot talks to nobody.
A robot with no Wi-Fi saved serves a setup network called
StackChan-XXXX: join it, give it your Wi-Fi, and put your server address
under Advanced → Custom OTA URL.
A robot you declined the erase on keeps its Wi-Fi, so it reconnects and
never offers that network. Set the address by holding a finger on his screen
for five seconds instead — which is also how you change it later.
Full Changelog: v0.4.0...v0.5.0