My "master" device simply listens for packets from the 6 "slave" devices, and sends a single "ack" packet back to the sender for each packet received.
The slaves are transmitting 7 packets per second, each containing around 120 bytes. (So the master is receiving 42 packets per second, and sending 42 acks per second)
So - the Master is receiving around 5K bytes per second (total from all 6 slaves). The master does NOT save the data, nor does it allocate dynamic memory to handle it. It just receives the data in the receive callback function, and then discards it.
After running for 30 minutes, the Master started giving errors like this:
Code: Select all
E (1808955) wifi: esf_buf: t=3 l=56 max:8, alloc:8 no eb
W (1808955) wifi: alloc eb len=56 type=3 fail, heap:227864
.[0;31mE (1808955) EspNow_Server: Send error.[0m
E (1808965) wifi: esf_buf: t=3 l=56 max:8, alloc:8 no eb
W (1808965) wifi: alloc eb len=56 type=3 fail, heap:228152
I assume it means "no empty blocks", but the heap shows over 200K left. Is this an issue of memory fragmentation?
Are there suggestions for how to receive this much data over ESP-NOW without running out of memory?
Thanks!