Closed DaStoned closed 1 year ago
Sorry for the regression. It's just been fixed on master in https://github.com/espressif/esp-protocols/commit/1db1e1508d63c9d03161e3b7785f6cc7a2ac81b8
I'll merge few minor fixes and create v1.0.4
soon (also added a USB runner to our CI to prevent it from happening in future)
Ah, thank you. That's good news!
I tried with 1.0.4 and cannot reproduce the regression. So I confirm the fix. Thank you.
Answers checklist.
General issue report
I'm issuing basic AT queries to a SimCom SIM7070G module connected via USB - get module name, firmware revision, battery level etc - using the C++ API. They were working fine with esp_modem version 1.0.1 and started to fail rather spectacularly in 1.0.3.
With 1.0.1 it works OK:
With 1.0.3 there are extremely frequent failures. The response from e.g.
get_module_name()
iscommand_result::FAIL
and I just keep retrying until it gets a response. Sometimes even 10 retries aren't enough :|The SimCom SIM7070G is connected via USB. The component configuration for esp_modem is default (CONFIG_ESP_MODEM_USE_INFLATABLE_BUFFER_IF_NEEDED not set). I don't use CMUX (it was completely broken over USB, but that's another story altogether).
My debugger indicates that we never get around to parsing the modem response with
generic_get_string
. Instead this line activates, indicating a buffer over/underflow issue. In the same time I've configured the DTE with a buffer of 1536 bytes, so there's something else going on here. https://github.com/espressif/esp-protocols/blob/2e6732882d813f7830fdc0604da49221b91a134d/components/esp_modem/src/esp_modem_dte.cpp#L114C30-L114C30