-
Notifications
You must be signed in to change notification settings - Fork 3k
Description
Gemalto cellular driver fails for EMS31-US modem
Description of defect
I am working with two similar targets, both based on Nordic nRF52840 and both having a cellular interface. One target uses a Gemalto EMS31-US cellular modem, the other uses a Gemalto ELS61-US cellular modem. The two modems have similar AT command sets, but there are some differences. I discovered one of the differences while tracing the AT commands and responses between the mbed Gemalto cellular driver and the modems on my two targets.
In response to the command "AT^SISS=0,"conId",0" (Setup Internet Service Profile) from the mbed Gemalto cellular driver:
the ELS61 responds "OK", but
the EMS31 responds "+CME ERROR: 50". According to the EMS31 AT spec, "conId" must be followed by a number between 1 and 8 inclusive. Error 50 indicates "Incorrect parameter", as the 0 following "conId" is invalid for this modem (but is valid for the ELS61).
The source of this command is the function "socket_open_defer()" in the file "mbed-os\features\cellular\framework\targets\GEMALTO\CINTERION\GEMALTO_CINTERION_CellularStack.cpp". The 0 following "conId" is a consequence of the "#define CONNECTION_PROFILE_ID 0" near the top of the file.
Possible fixes:
- The driver already detects which Gemalto modem it's actually connected to at run-time, so it could use that knowledge to set the "conId" parameter dynamically rather than to a #defined constant.
- Add "ifndef CONNECTION_PROFILE_ID" / "endif" around the "#define CONNECTION_PROFILE_ID 0". This would allow CONNECTION_PROFILE_ID to be overridden by EMS31 users in their project files.
Target(s) affected by this defect ?
Any target with a Gemalto EMS31-US cellular modem attached.
Toolchain(s) (name and version) displaying this defect ?
I'm using IAR EWB for ARM 8.40. The issue should be observed regardless of which toolchain is used however.
What version of Mbed-os are you using (tag or sha) ?
5.14.1
What version(s) of tools are you using. List all that apply (E.g. mbed-cli)
just IAR 8.40
How is this defect reproduced ?
Build for GEMALTO_CINTERION (edit "mbed-os\features\cellular\framework\targets\GEMALTO\CINTERION\mbed_lib.json", set "provide-default" value to true). Enable AT command tracing to see AT traffic. Test on a target with ELS61-US cellular modem attached to observe OK response to the "AT^SISS=0,"conId",0" command. Test on a target with EMS31-US cellular modem attached to observe "ERROR" response to the same command.