AT Command size limitations with most recent modem software

I've just built the slm_lte_modem application using SDK 2.2.0.  I've also programmed modem firmware 1.3.4 into the device.  I have access t the AT command set and most of them seem to work.  I have a previous build using SDK 1.8.0 and modem firmware 1.3.2.  In the old build, I was able to write large root certificates like this;

AT%CMNG=0, 201, 0,"
-----BEGIN CERTIFICATE-----
MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF
ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6
b24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL
MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv
b3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj
ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM
9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw
IFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6
VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L
93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm
jgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
AYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA
A4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI
U5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs
N+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv
o/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU
5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy
rqXRfboQnoZsG4q5WTP468SQvvG5
-----END CERTIFICATE-----"

But with the new build, the application simply locks up.  Sometimes it will come back with an error.  If I send a fake reduced certificate like this;

AT%CMNG=0, 201, 0,"
-----BEGIN CERTIFICATE-----
MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF
ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6
5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy
rqXRfboQnoZsG4q5WTP468SQvvG5
-----END CERTIFICATE-----"

It comes back with OK.  So there seems to be a size limitation.  The only change I've made so far is;

#define UART_RX_LEN             2048
int slm_at_host.c
unfortunately, it didn't help.
Parents
  • Hi,

    Can you set CONFIG_SLM_LOG_LEVEL_DBG, and send me the log, which is sent over RTT?

    That will hopefully help us identify what goes wrong.

    Best regards,

    Didrik

  • I don't seem to get anything.  If I do a regular at\r\n command I get;

    [00:46:34.819,335] <dbg> slm_at_host: cmd_send: RX
                                          61 74                                            |at      
    [00:46:34.819,366] <dbg> slm_at_host: uart_callback: RX_DISABLED
    [00:46:34.828,216] <dbg> slm_at_host: rsp_send: TX
                                          0d 0a                                            |..      
    [00:46:34.828,308] <dbg> slm_at_host: rsp_send: TX
                                          4f 4b 0d 0a                                      |OK..    


    but if I put in the AT%CMNG command I get nothing.  If I put a few more CRLFs in I eventually get the error response and this comes out the debug output;

    [00:49:08.216,644] <err> slm_at_host: AT command invalid
    --- 1 messages dropped ---
    [00:49:08.216,735] <dbg> slm_at_host: uart_callback: RX_DISABLED
    [00:49:08.216,796] <dbg> slm_at_host: rsp_send: TX
                                          0d 0a 45 52 52 4f 52 0d  0a                      |..ERROR. .
    [00:49:08.216,888] <dbg> slm_at_host: cmd_send: RX
    [00:49:08.216,918] <err> slm_at_host: AT command invalid
    [00:49:08.216,949] <dbg> slm_at_host: rsp_send: TX
                                          0d 0a 45 52 52 4f 52 0d  0a                      |..ERROR.

  • I'm running out of ideas to try.  I'm hoping that  you can suggest something.  One thing I tried to do was to enable interrupt driven operation on the UART, but then I got the error;

    [00:00:00.505,279] <err> slm_at_host: Cannot set callback: -88

    Can I just disable this call and use interrupt driven?

    Any suggesting would be appreciated.

Reply Children
  • OK, finally figured it out.  First, since I'm using native TLS for HTTPS support, I need to start using #XCMNG to program the keys.

    Second, I neglected to put;

    CONFIG_UART_2_NRF_HW_ASYNC_TIMER=2
    CONFIG_UART_2_NRF_HW_ASYNC=y
     
    in my serial port configuration, which seems to only partially mess things up.  Now that I've added that things "seem" to be working.  So I'll close this and open something new if I have other issues.
Related