Skip to content

Commit 4f1769e

Browse files
authored
Merge pull request #311 from david-cermak/fix/modem_known_issues
docs(modem): Add known issues section to docs
2 parents 84035d8 + 20dd910 commit 4f1769e

File tree

5 files changed

+58
-3
lines changed

5 files changed

+58
-3
lines changed

.github/workflows/modem__target-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ jobs:
5858
needs: build_esp_modem_tests
5959
runs-on:
6060
- self-hosted
61-
- BrnoRPI-GH006
61+
- modem
6262
env:
6363
TEST_DIR: components/esp_modem/${{ matrix.test.path }}
6464
steps:

components/esp_modem/.cz.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ commitizen:
33
bump_message: 'bump(modem): $current_version -> $new_version'
44
pre_bump_hooks: python ../../ci/changelog.py esp_modem
55
tag_format: modem-v$version
6-
version: 1.0.0
6+
version: 1.0.1
77
version_files:
88
- idf_component.yml

components/esp_modem/CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
11
# Changelog
22

3+
## [1.0.1](https://github.com/espressif/esp-protocols/commits/modem-v1.0.1)
4+
5+
### Bug Fixes
6+
7+
- Support UART clean build with IDF v5.2 ([e620eb5](https://github.com/espressif/esp-protocols/commit/e620eb5))
8+
- enable code coverage publishing to github pages ([4910e89](https://github.com/espressif/esp-protocols/commit/4910e89))
9+
- fix esp_modem build issue ([ab94566](https://github.com/espressif/esp-protocols/commit/ab94566))
10+
- Example to use 1.0.0 ([afb6930](https://github.com/espressif/esp-protocols/commit/afb6930))
11+
- Changelog to correctly pick references ([423e965](https://github.com/espressif/esp-protocols/commit/423e965))
12+
13+
### Updated
14+
15+
- docs(esp_modem): updated documents to show missed topics ([0534853](https://github.com/espressif/esp-protocols/commit/0534853))
16+
- docs(common): improving documentation ([ca3fce0](https://github.com/espressif/esp-protocols/commit/ca3fce0))
17+
318
## [1.0.0](https://github.com/espressif/esp-protocols/commits/modem-v1.0.0)
419

520
### Major changes

components/esp_modem/idf_component.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version: "1.0.0"
1+
version: "1.0.1"
22
description: esp modem
33
url: https://github.com/espressif/esp-protocols/tree/master/components/esp_modem
44
dependencies:

docs/esp_modem/en/README.rst

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,3 +130,43 @@ Is defined using standard configuration structures for ``DTE`` and
130130

131131
- :cpp:class:``esp_modem_dte_config_t``
132132
- :cpp:class:``esp_modem_dce_config_t``
133+
134+
Known issues
135+
------------
136+
137+
There are certain issues, especially in using CMUX mode which you can
138+
experience with some devices:
139+
140+
1) Some modems (e.g. A76xx serries) use 2 bytes CMUX payload, which
141+
might cause buffer overflow when trying to defragment the payload.
142+
It's recommended to disable ``ESP_MODEM_CMUX_DEFRAGMENT_PAYLOAD``,
143+
which will fix the issue, but may occasional cause reception of AT command
144+
replies in fragments.
145+
146+
2) Some devices (such as SIM7000) do not support CMUX mode at all.
147+
148+
3) Device A7670 does no not correctly exit CMUX mode. You can apply
149+
this patch to adapt the exit sequence https://github.com/espressif/esp-protocols/commit/28de34571012d36f2e87708955dcd435ee5eab70
150+
151+
::
152+
153+
diff --git a/components/esp_modem/src/esp_modem_cmux.cpp b/components/esp_modem/src/esp_modem_cmux.cpp
154+
index 0c480f8..4418c3d 100644
155+
--- a/components/esp_modem/src/esp_modem_cmux.cpp
156+
+++ b/components/esp_modem/src/esp_modem_cmux.cpp
157+
@@ -206,6 +206,15 @@ bool CMux::on_header(CMuxFrame &frame)
158+
}
159+
size_t payload_offset = std::min(frame.len, 4 - frame_header_offset);
160+
memcpy(frame_header + frame_header_offset, frame.ptr, payload_offset);
161+
+ if (frame_header[1] == 0xEF) {
162+
+ dlci = 0;
163+
+ type = frame_header[1];
164+
+ payload_len = 0;
165+
+ data_available(&frame.ptr[0], payload_len); // Notify DISC
166+
+ frame.advance(payload_offset);
167+
+ state = cmux_state::FOOTER;
168+
+ return true;
169+
+ }
170+
if ((frame_header[3] & 1) == 0) {
171+
if (frame_header_offset + frame.len <= 4) {
172+
frame_header_offset += frame.len;

0 commit comments

Comments
 (0)