ESP32: persistent PPP needed
Currently PPP tries to connect during some time, around 10 seconds
and then it gives up. After the timeout, PPP's serial traffic which looks
like !}!}!} }4}"}&} } } } }%}&y is no longer active at serial line and other
end (pppd linux) can't establish connection after timeout.
In application I would need PPP to continuously be active
because if I restart PPP by deleting its instance and creating again
after ESP32 has connected to WiFi, then PPP will spoil WiFi routing
and I don't want this to happen.
Additionaly - is this bug? This won't manually restart PPP after timeout:
ppp.active(False)
ppp.active(True)
Does nothing, while I think it should reactivate PPP traffic to
attempt connection on serial line, the chars !}!}!} }4}"}&} } } } }%}&y
should appear again
ESP32: Guru Meditation some time after ppp.active(False)
Port, board and/or hardware
esp32 port, WROVER
MicroPython version
MicroPython v1.24.1 on 2024-11-29; Generic ESP32 module with SPIRAM with ESP32
Reproduction
Python code at https://gist.github.com/rambo/af8fed021feba46ce0bba86ea2b9dfaa
A more minimal version is to probably just call net.active(False) after timing out from
net = network.PPP(self.uart)
net.active(True)
await asyncio.sleep(0.5)
net.connect()
while not self.net.isconnected():
await asyncio.sleep(0.1)
Do note that PPP.disconnect -method does not exist in ESP32 port for some reason so we cannot call it before calling active(False).
Expected behaviour
Micropython should continue running normally forever.
Observed behaviour
Micropython crashes with Guru meditation.
Additional Information
See the file for the resolved stack traces.
Code of Conduct
Yes, I agree