AT+QFLST fails after uploading second file, BG77

Hello,

I have a BG77 modem in a RAK5860 Wisblock module from RakWireless.

I´m trying to upload the SSL certs for AWS IoT Core to the file system, first I delete everything inside the file system (AT+QFDEL=“*”), then I list the files inside the module which gives me:

21:11:24.342 > Sending: AT+QFLST="UFS:*"
21:11:27.352 > Response: 
21:11:27.352 > +QFLST: "security/",2

As far as I´m concerned, the security file that shows there is not being removed by the delete command and it doesn´t represent any harm (link to post).

After listing the files, I start to upload each of the certs, starting by the client cert:

21:11:38.371 > Sending: AT+QFUPL="cert.pem",1221,10
21:11:40.383 > Response: 
21:11:40.384 > CONNECT
21:11:40.384 >
21:11:40.384 > Sending:
21:11:40.384 > -----BEGIN CERTIFICATE-----
                            (content of the cert)
21:11:40.384 > -----END CERTIFICATE-----
21:11:40.384 >
21:11:50.499 > Response: +QFUPL: 1221,f57
21:11:50.499 >
21:11:50.499 > OK

After uploading the first cert i list again all the files getting this:

21:11:53.498 > Sending: AT+QFLST
21:11:58.508 > Response: 
21:11:58.508 > +QFLST: "cert.pem",1221
21:11:58.508 > +QFLST: "security/",2
21:11:58.508 >
21:11:58.508 > OK
21:11:58.508 >

Which is okay, after that I start the second uploading which is the ca authority cert:

21:12:03.518 > Sending: AT+QFUPL="ca.pem",1189,10
21:12:05.530 > Response: 
21:12:05.530 > CONNECT
21:12:05.530 >
21:12:05.530 > Sending:
21:12:05.530 > -----BEGIN CERTIFICATE-----
                        (content of the cert)
21:12:05.530 > -----END CERTIFICATE-----
21:12:05.530 >
21:12:15.640 > Response: +QFUPL: 1189,192d
21:12:15.640 >
21:12:15.640 > OK
21:12:15.640 >

Now I list again the files and here is where things starts getting weird as this is the output:

21:12:18.640 > Sending: AT+QFLST
21:12:26.650 > Response: 
21:12:26.650 > +QFLST: "ca.pem",1189
21:12:26.650 > +QFLST: "cert.pem",1221
21:12:26.650 > +QFLST: "secu

As you can see the output from the modem doesn´t finish to list the files (I gave it 20 seconds of timeout listening to the module output before I print this) and it seems to stop at the “security/” file.

Then I start to upload the third and last cert which is the clients key cert:

21:12:34.659 > Sending: AT+QFUPL="key.pem",1680,10
21:12:36.674 > Response: 
21:12:36.674 > CONNECT
21:12:36.674 >
21:12:36.674 > Sending:
21:12:36.674 > -----BEGIN RSA PRIVATE KEY-----
                        (content of the cer)
21:12:36.674 > -----END RSA PRIVATE KEY-----
21:12:36.674 >
21:12:46.828 > Response: +QFUPL: 1680,7945
21:12:46.828 >
21:12:46.828 > OK
21:12:46.828 >

And list the files again:

21:13:05.847 > Sending: AT+QFLST="UFS:*"
21:13:13.859 > Response: 
21:13:13.859 > +QFLST: "ca.pem",1189
21:13:13.859 > +QFLST: "cert.pem",1221
21:13:13.859 > +QFLST: "key.K
21:13:13.859 >

as you can see it sems that the key.pem file is not saved or something happened. Also it doesn´t print the “security/” file or anything else.

Finally, inside my main loop function I start to list the files periodically on the modem getting this:


21:36:48.604 > ========================================
21:36:48.604 >
21:36:48.604 > Sending: AT+QFLST="UFS:*"
21:36:56.615 > Response: 
21:36:56.616 > +QFLST: "ca.pem",1189
21:36:56.616 > +QFLST: "cert.pem",1221
21:36:56.616 > +QFLST: "key.2
21:37:01.625 >
21:37:01.625 > ========================================
21:37:01.625 >
21:37:01.625 > Sending: AT+QFLST="UFS:*"
21:37:09.634 > Response: 
21:37:09.634 > +QFLST: "ca.pem",1189
21:37:09.634 > +QFLST: "cert.pem",1221
21:37:09.634 > +QFLST: "key.
21:37:09.634 > +QFLST: "security/",2
21:37:14.645 >
21:37:14.645 > ========================================
21:37:14.645 >
21:37:14.645 > Sending: AT+QFLST="UFS:*"
21:37:22.653 > Response: 
21:37:22.654 > +QFLST: "ca.pem",1189
21:37:22.654 > +QFLST: "cert.pem",1221
21:37:22.654 > +QFLST: "key.
21:37:22.654 > +QFLST: "security/",2
21:37:27.663 >
21:37:27.663 > ========================================
21:37:27.663 >
21:37:27.663 > Sending: AT+QFLST="UFS:*"
21:37:35.675 > Response: 
21:37:35.675 > +QFLST: "ca.pem",1189
21:37:35.675 > +QFLST: "cert.pem",1221
21:37:35.675 > +QFLST: "key.2
21:37:40.685 >
21:37:40.685 > ========================================
21:37:40.685 >
21:37:40.685 > Sending: AT+QFLST="UFS:*"
21:37:48.694 > Response: 
21:37:48.694 > +QFLST: "ca.pem",1189
21:37:48.694 > +QFLST: "cert.pem",1221
21:37:48.694 > +QFLST: "key.
21:37:48.694 > +QFLST: "security/",2
21:37:53.704 >
21:37:53.704 > ========================================

as you can see is not even consistent every time I list the files. I´m starting to think it is a firmware issue, can you give me the latest firmware version for the modem?

it is the Revision: BG77LAR02A04.

Also, if I need to use some kind of software or something to do the upgrade, can you give it to me? Thanks in advance!!

Have you tried doing this with QCOM?
QCOM_V1.6 | Quectel - requires login to d/l
That would help figure out whether this is a modem issue or something in your code.
I developed/tested most of my AT commands with QCom, and that greatly helped me determine if an issue was in the modem or in my code.

FWIW, my code does LOTS of QFLST/QFDEL/QFUPL and I’ve never seen this, which makes me suspect that the bug lies in your UART code, that the modem IS sending all the chars, but somehow you’re missing some.

Note: I’m a Quectel customer, not an employee, so I’m not trying to sell you something.
While the BG770 is buggy, I haven’t found the file commands to be buggy :slight_smile: