-
Notifications
You must be signed in to change notification settings - Fork 7.8k
Description
Board
ESP32 Dev Module + LAN8720
Device Description
ESP32 Dev Module with LAN8720 attached to RMII and TFT display attached to SPI.
Hardware Configuration
no
Version
v1.0.6
IDE Name
platformIO
Operating System
windows10
Flash frequency
default
PSRAM enabled
no
Upload speed
115200
Description
my application uses the LAN8720 to connect to other ethernet devices. WiFi is not used.
my application is a TCP client to 5 devices. the 5 devices are talkers-only, i.e. there is only incoming traffic from them.
in addition to this, i run NTP using 1 UDP connection.
there is a second UDP connection i use for communication. on this UDP, i have outgoing packets, which are generated from the data i get over TCP. this UDP connection also has incoming traffic (very rarely) as i also use it to apply settings to my application.
my application also uses ping to check if all devices expected are available in the subnet.
so my total of ethernet connections is: 5x TCP, 2x UDP, 1x ICMP
i know that there is a limitation of having not more than 8 TCP connections when running ESP32+LAN8720.
what is the limitation when using TCP + UDP + ICMP? is it a total of 8 ethernet connections?
when running in the above confituration, i get a SW_CPU_RESET (see below) every few hours.
this looks to me like being some kind of resource issue, but i have no idea how to solve.
all my code is within the setup and the loop function. so i would assume that only core1 should be used. nevertheless, it looks like the reset is initiated from core0. this looks quite strange to me.
btw:
i first had a constellation with 5x TCP, 3x UDP, 1x ICMP, i.e. a total of 9 connections. the result was that i had the same crash (exactly the same crash message) already after about 10 minutes.
so if the limit is a total of 8 ethernet connections (i dont know if this is true), then probably this was the first time when all 9 connections were active at the same time.
as my actual setup is never able to use more than 8 ethernet connections (as far as i understand), i would not assume that it is ever possible to have more than 8 active connections. but the error message is the same
Sketch
my setup is:
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
lib_deps =
bodmer/TFT_eSPI@^2.3.73
sstaub/NTP@^1.4
marian-craciunescu/ESP32Ping@^1.7
instantiated:
#include <Arduino.h>
#include <WiFi.h>
#include <TFT_eSPI.h> // Hardware-specific library
#include <SPI.h>
#include "Free_Fonts.h" // Include the header file attached to this sketch
#include <WiFiUdp.h>
#include <ETH.h>
#include "NTP.h"
#include <ESP32Ping.h>
#include "mbsConfStorage.h"
#include <rom/rtc.h>Debug Message
assertion "arp_table[i].q == NULL" failed: file "/home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/lwip/lwip/src/core/ipv4/etharp.c", line 383, function: etharp_find_entry
abort() was called at PC 0x400f7c17 on core 0
ELF file SHA256: 0000000000000000
Backtrace: 0x40088808:0x3ffb3cf0 0x40088a85:0x3ffb3d10 0x400f7c17:0x3ffb3d30 0x4012fef9:0x3ffb3d60 0x401304ed:0x3ffb3d90 0x40130811:0x3ffb3db0 0x40121b56:0x3ffb3de0 0x40121b99:0x3ffb3e20 0x40121bc6:0x3ffb3e50 0x4012dbad:0x3ffb3e80 0x4012dc57:0x3ffb3eb0 0x40129516:0x3ffb3ee0 0x4012956f:0x3ffb3f00 0x4012a033:0x3ffb3f20 0x40129f21:0x3ffb3f40 0x4012a0d4:0x3ffb3f60 0x40126ad8:0x3ffb3f80 0x40089a96:0x3ffb3fb0
Rebooting...
ets Jun 8 2016 00:22:57
rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:10124
load:0x40080400,len:5828
entry 0x400806a8
Other Steps to Reproduce
with a maximum total of 8 ethernet connections, the crash occurs about 1-2 times a day, always immediately after calling the ping function (as this is probably the 8th ethernet connection. at least i assume that ping always opens and closes the connection, while the TCP and UDP connections are once opened and are then kept open until the crash happens). so there are always 7 connections with the ping adding/removing the 8th.
when having a maximum total of 9 ethernet connections. the crash may happen while program execution is anywhere in my code. this then happens about 6 times per hour.
I have checked existing issues, online documentation and the Troubleshooting Guide
- I confirm I have checked existing issues, online documentation and Troubleshooting guide.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status