TOTEM_MSG_MAP, EXTENDED and COMM_SPEED entry is identical. Clients written for
v5.0.2 keep working, and the new BLE features are opt-in.
The comparison reconstructs every frozen module from both images, disassembles them with
MicroPython’s own mpy-tool.py, and diffs them function by function (see
methodology). 74 modules are identical,
20 changed, 2 were removed.
At a glance
BLE
Unchanged: the command map, all
gen_* record layouts, and both transmit loops. The legacy
full-duplex loop that works on macOS behaves exactly as in v5.0.2; see
transmit modes. A v5.0.3 device was tested end to end with
totemctl.
ESP-NOW mesh
The module body ofespnow_conn_v2 (imports, message maps, class construction) is opcode-
identical. Changes are inside EspConn (details):
- All-peer sends unicast to non-POI peers in a rotating order, limited by an estimate of free driver TX buffers.
- Back-pressure: sends are dropped locally (
tx_skipped) when no buffers are free. ESP_ERR_ESPNOW_NO_MEMis treated as back-pressure. In v5.0.2 it setis_silent_reboot.- Relay shedding: mesh frames from non-peers are no longer relayed when the receiver drops frames or the TX pool is busy.
- Supervisor:
communicate_supervisedrestarts the comms task after a crash. - Bonding: an already-bonded requester gets five peer ACKs. A Smart Group cancel now also matches by UID.
e.config(rate=41)) in both versions. Earlier docs said 500K.