This collection of espnow-enabled micropython images is no longer supported or necessary. ESPNow support has been available in production micropython images since the v1.21.0 release.
Please obtain ESPNow enabled micropython images from https://micropython.org/download?port=esp32.
A collection of pre-compiled, pre-v1.21.0 micropython images (including espnow support) for the esp32 and esp8266.
These are provided as a convenience for users until the ESPNow code is accepted into a Micropython release.
These images are compiled from the espnow-g20* branches at https://github.com/glenn20/micropython.
The Pull Request for ESPNow support is available at: micropython/micropython#6515.
Documentation for the ESPNow module can be browsed at: https://micropython-glenn20.readthedocs.io/en/latest/library/espnow.html.
General micropython documentation at: https://docs.micropython.org/en/latest/reference/index.html.
Each folder contains the following firmware images:
firmware-esp32-GENERIC.bin
: For the ESP32 GENERIC build target.firmware-esp8266-GENERIC_1M.bin
: For the ESP8266 GENERIC_1M build target (1MB RAM devices)firmware-esp8266-GENERIC.bin
: For the ESP8266 GENERIC build target (2+MB RAM devices)
These images are built following the instructions at https://github.com/micropython/micropython/blob/master/ports/esp32/README.md and https://github.com/micropython/micropython/blob/master/ports/esp8266/README.md.
Images can be written to the ESP32 and ESP8266 devices over usb using esptool.py (install using pip), eg, one of:
esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_size=4MB --flash_mode=qio 0 firmware-esp8266-GENERIC_1M.bin
esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 460800 write_flash -z 0x1000 firmware-esp32-GENERIC.bin
esptool.py --chip esp32s2 --port /dev/ttyACM0 write_flash -z 0x1000 firmware-esp32-GENERIC_S2.bin
- 20230427_espnow-g20-v1.20.0-2-gcc4c716f6:
- Branch
espnow-g20-v1.20.0
patches applied against Micropython release v1.20.0 on 27 April 2023.
- API changes following PR review:
(see
espnow
module docs):- Rename
timeout
config option totimeout_ms
:config(timeout=xx)
->config(timeout_ms=xx)
- If
timeout_ms < 0
: disable timeout on wait for messages. - Rename
ESPNow.on_recv()
toESPNow.irq()
:- Remove optional second argument to
ESPNow.irq()
:irq(callback[, arg])
->irq(callback)
- Remove optional second argument to
- Rename
espnow.ETH_ALEN
toespnow.ADDR_LEN
.
- Rename
- I have been able to test images for the following boards:
- esp32:
GENERIC UM_TINYS2 UM_TINYS3 UM_FEATHERS2 UM_FEATHERS3 GENERIC_S2 GENERIC_S3
- esp8266:
GENERIC GENERIC_1M
- esp32:
- API changes following PR review:
(see
- Branch
espnow-g20-v1.20.0
patches applied against Micropython release v1.20.0 on 27 April 2023.
- 20220709_espnow-g20-v1.19.1-espnow-6-g44f65965b:
- Branch
v1.19.1-espnow-6-g44f65965b
patches applied against Micropython release v1.19.1.
- Fixup for callback methods: ESPNow.irq() and ESPNow.on_recv():
- See docs at: https://micropython-glenn20.readthedocs.io/en/latest/library/espnow.html#callback-methods.
- New tests in tools/multi_espnow/15_irq_test.py.
- Fixup for callback methods: ESPNow.irq() and ESPNow.on_recv():
- Branch
v1.19.1-espnow-6-g44f65965b
patches applied against Micropython release v1.19.1.
- 20220423_espnow-g20-v1.18-14-g78cdcdfdc:
- Branch
espnow-g20-v1.18
patches applied against Micropython release v1.18 on 23 April 2022.
- Includes: RSSI monitoring, asyncio support (aioespnow.py)
- New implementation of RSSI monitoring (no change to user API)
- RSSI of first message(s) from peer is no longer lost
- Device table is updated on call to recv()/irecv(), so you must read the message out of the buffers before the rssi value is updated in e.peers (see docs). This also reduces the workload in the internal function (espnow_recv_cb()).
- New implementation of RSSI monitoring (no change to user API)
- ESP32 images are built with v4.2 IDF
- If
micropython.mem_info()
was only showing ~64k RAM, this should be fixed
- If
- ESP32S2 and ESP32C3 are built with v4.4 IDF.
- No new ESP8266 images as there are no differences from prior uploads.
- Includes: RSSI monitoring, asyncio support (aioespnow.py)
- Branch
espnow-g20-v1.18
patches applied against Micropython release v1.18 on 23 April 2022.
- 2021113_espnow-g20-v1.17-142-gbb9aac55a:
-
Branch espnow-g20-dev applied against Micropython master (ff4f1f3a) on 13 November 2021.
- Includes builds for all of the new esp32 S2/S3/C3 targets. Warning - most of these builds are untested.
-