Firmware upgrade for UBLOX SARA-R410M-02B on the MKR NB 1500 #3

Ublox has released another firmware update:

https://content.u-blox.com/sites/default/files/documents/SARA-R410M-02B-04_PCN_UBX-22005059.pdf

I have yet to obtain the files, but I figured I would get this thread started.

At first glance, I think we can update using FOAT if already at version A.02.19. This would mean the upgrade is possible without usb connection to modem if already A.02.19.

1 Like

Thank you! Please publish a FOAT sketch if you write one.

I know, a little off topic, but i just read the release notes, the known limitations should be keep in mind:

    • [u-blox id 2052]: The +USORD AT command fails to read pending bytes when the socket is in closed state. To avoid the AT command interface hanging, it is recommended to use async socket close, e.g., AT+USOCL=0,1 (the +UUSOCL URC response will take 120 s in this case but will not block the AT interface).
    • [u-blox ID 4537]: After a while, the +CMGL AT command may start returning the "+CMS ERROR: Resources unavailable, unspecified" error result code. Workaround: set the storage setting again by means of the AT+CPMS="ME","ME","ME" command.

This one is interesting:

• [u-blox ID 4113]: Sending more than 10 kB of data via +USOWR AT command over TCP will
lead to a crash if TX buffers should reach full.

What do they mean? The max size is 512 bytes per USOWR push into the socket (MKRNB is doing 256) so they must mention the TX buffer in general. If the signal is weak and the modem can't send the data into the network the buffer (only 10K) will overflow fast and the modem crash? This could be a trace to the flaky behaviour because we push the data into a "black hole" socket without any "flow control".
Is there a AT command to read the state of that TX buffer?

The firmware files are available from ublox support portal. I just received them tonight. I was able to update my Mikroe modem(SARA-R4 based) using USB connection and EasyFlash. You have to use the latest version of EasyFlash:
https://content.u-blox.com/system/files/EasyFlash_13.03.1.2.zip?hash=rG0hfY558j8FTMU3NbbeXx8nWrm1wAaRLFzrC_sUsZo

I couldn't get it to work with .dof update file placed in the EasyFlash program folder as has been done in the past. To get around it, I enabled 'file browser" in EasyFlash:

With this option turned on, I was able to browse to the folder location where the .dof update file was located. Install went fine.

I have not tried to update an MKR1500 yet using Xmodem. I will attempt in the next couple days.

Where in the support portal I could obtain the firmware?

I tried to update via FOTA (not uFOTA) but i failed. My attempt was to connect the m-center software over SerialSARAPasstrough which suceeded.

I wrote a PDP context and activated the context sucessfully.

BUT: After initializing the FOTA i get the error that i have to activate the internal PDP context..

I turned the AT+ULWM2MSTAT=1 on and i get the response
2, 721, Backward counting number from 84000

IMHO this is sucessfull connection to the server 721, what is this backward counting number?
(I wrote ublox about this because this is not documented.)

With
AT+UFOTASTAT=1
and
AT+UFOTASTAT?

I get a simple 1 instead of csv valued.

Questions:

  • Any hints?
  • If i get the docu right there is a uFOTA process for modem fleet. OTA updates has to be triggered by ublox with the IMEI's of these modems
    The FOTA update is a generic update process for individuak modems (LWM2M) which is the way to go for us?!?
  • The second OTA option is FTP. As i read the docu there is no public ublox server with the firmware. So their strange idea is that every user spam the ublox support, ask for the firmware, put it on a ftp server and configure the modem individually?
  • Why is ublox that complicated with these firmwares (and update processes)??

I live in switzerland and i am about to knock hard on their doors ...

I just finished updating an NB1500 to version A.02.21 using the X-modem method as used in the first firmware update.

Here is the log from ExtraPuTTy:

at

OK
at

OK
AT+UPSV=0

OK
AT+UFWUPD=3

+UFWUPD: ONGOING

OK
C
at

OK
AT+UFWINSTALL

OK
at
at
at
at
at
at
OK
at
at
OK
at
at
OK
AT+UFWSTATUS?
AT+UFWSTATUS?
+UFWSTATUS: 55436f6d, c8, 0

OK
ATI9
ATI9
L0.0.00.00.05.12,A.02.21

OK

Be sure to turn off power save with: "AT+UPSV=0". Otherwise, the modem will go to sleep(if using UPSV) after a few seconds of inactivity on the AT terminal.

After issuing "AT+UFWINSTALL", it took the modem over 20 mins to finish installing. During this time, the modem will be unresponsive to AT commands.

I used the file named "SARA-R410M-02B-03-IP-L0000000512A0219-000K00_SARA-R410M-02B-04-P1-L0000000512A0221-000K00.upd" given by ublox. It is about 6MB.

Happy you, i didn't get a answer from ublox. I just found:

So my questions is: Why is not Arduino spreading this firmware to their clients?
PS: this clive1 is a guy from ublox
PS2: I just wrote a support ticket for Arduino

Make an account, login, then click button "create a support case". Overall, I have found them very responsive.

I think we are on our own here. If Arduino does provide anything, it will not be anything recent. I have seen a .pdf guide from them somewhere for the first update that mimicked the steps developed in the first update thread.

Hosting a 200 kB file must be a tough one, eight? Anyway, what's this all about? A software only usable in these devices. I don't know another company who is hiding their updates. Don't get it.

I will say they are way better than Telit. I had a Telit modem that needed updating, but was given the cold shoulder because I was not an OEM buying 10,000.

Here is what's happening with the Arduino support on this case:

Greetings back Arduino support

We need the file for

L0.0.00.00.05.12,A.02.21

So 2.21.

But again, the update process is well know, we (your customers) have no access to the firmware file

SARA-R410M-02B-03-IP-L0000000512A0219-000K00_SARA-R410M-02B-04-P1-L0000000512A0221-000K00.upd

The update process remains the same, ublox is not providing the firmware anymore because they saying it’s a Arduino task to publish because you have bought the modem from ublox and sold it to us, your customers.

Arturo O (Arduino)

May 11, 2022, 0:04 GMT+2

Greetings

We apologize for the inconvenience that this causes you. However, Arduino only can provide the update to 2.16

Our engineering team tested the newest firmware and that firmware does not work properly on our board for that reason the last update that Arduino only can provide is the 2.16.

Arduino and Arduino Engineer team apologizes for that but for the moment we can not provide the newest update.

Have success on your projects...
Best Regards
Arturo O

Holy crap, it can’t bee too hard to request these files from ublox and publish a link (in the forum or elsewhere). I don’t know another company who’s hiding firmware updates for their products - ironically a open hardware company.

It would cost Arduino not a single dollar..

Arduino support wrote:

The last update of SARA firmware does not work and is not compatible with our board it has several bugs and the last Firmware that is stable is the 2.16

It is not restricted to using the firmware and Arduino is happy to help the users. However, this has a risk of bricking the board and the warranty does not apply in this case if the customer does not have contact with us before doing the upgrade. For that reason, Arduino needs to know before sharing the files what is the situation of the customer.

Arduino does not deny the help and is glad to help. However, in order to avoid brick the board and soldering something to the board, Arduino needs to know first that information.

Please understand this situation in order to avoid brick any further boards.

Have success on your projects...
Best Regards

zbelding, did you brick your board?

No. I have been running my Mikroe modem with this update for 24 days. I output data every 10 mins. During this time, my sketch had to hard reset the modem 9 times. This is typical and not any different than the previous firmware update.

Hmmm, this is two updates ago... My guess is the problems they are having are related to the support of multiple CIDs. See the end of this post:

Before version 2.19:

AT+CGACT?

+CGACT: 1,1

After version 2.19:

AT+CGACT?

+CGACT: 1,1
+CGACT: 2,0

I don't think the arduino library knows how to handle this.

This is the part of the GPRS.cpp library that deals with this:

    case GPRS_STATE_CHECK_ATTACHED: {
      MODEM.setResponseDataStorage(&_response);
      MODEM.send("AT+CGACT?");
      _state = GPRS_STATE_WAIT_CHECK_ATTACHED_RESPONSE;
      ready = 0;
      break;
    }

    case GPRS_STATE_WAIT_CHECK_ATTACHED_RESPONSE: {
      if (ready > 1) {
        _state = GPRS_STATE_IDLE;
        _status = ERROR;
      } else {
        if (_response.endsWith("1,1")) {
          _state = GPRS_STATE_IDLE;
          _status = GPRS_READY;
          ready = 1;
        } else {
          _state = GPRS_STATE_WAIT_ATTACH_RESPONSE;
          ready = 0;
        }
      }
      break;
    }

response.endsWith is not going to work in this case because the modem is listing two differnt CIDs.

1 Like

Anyone had any luck with the new update?
I will update tomorrow hopefully.
Would be nice for some success with this board and modem crashing issues.

Hi zbelding

Could you please share the part of your code, where you do the "hard reset the modem", and how you detect that it is needed

Thanks in advance :slight_smile:

I don't use the MKRNB libraries, so this is not as simple as a "section of code to hard reset modem".

Code can be found here:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.