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

​Hi there,

We're developing an MVP around the MKR NB 1500 and need to upgrade the firmware on the board's UBLOX SARA-R410M-02B to gain access to some additional power saving capabilities.​ We see there are some pads on the board which maybe for a set of connectors to allow a firmware update, however we're not clear on the upgrade procedure.

Has anyone upgraded the UBLOX SARA-R410M-02B's firmware?

Also we're a little confused as to whether the board actually supports Cat-NB1 with the Ublox firmware it currently ships with (L0.0.00.00.05.06). We seem to think perhaps it only currently supports Cat-M1.

Any thoughts?

Some more information on the firmware update:

Regards

Mark

Hi Mark,

I would also be interested in knowing how to do this.

Something similar exists for board Arduino MKR WiFi 1010, procedure here.

This is also using a U-Blox, the NINA-W10.

However the MKR 1500 is relatively new and I am not aware of any similar way of doing. Maybe it would come with time.

Also read somewhere that firmwares for these modules are not publicly available.
Do you have the tool and the file?

Another idea would be to use the SerialSARAPassthrough sketch to upload the firmware from a PC through the uC. But that would be experimental.

I confirm that Cat-NB1 and Cat-M1 both are working form me on Swisscom mobile network.

My firmware version is L0.0.00.00.05.06 [Feb 03 2018 13:00:41], same as you.

Regards,

Yanik

Hi Mark and Yanik,

Have you meanwhile found a solution for updating the Ublox firmware on the mkr1500? Facing the same challenge?

Cheers,

Ruben

I am also looking for a firmware update for this. I have contacted u-Blox. We'll see if they respond.

I can only get mine to connect to Verizon. I know that at&t M1 is available at my location. I am unable to open a socket to "cloudsocket.hologram.io"....

I have found that if you load the pass-through example, then close arduino IDE, you can connect to the SARA R4 using this tool from u-blox:

https://www.u-blox.com/sites/default/files/products/tools/m-center-02.00.00.exe

A lot of good tools here and a really good serial AT terminal.

If you contact u-blox through: https://portal.u-blox.com/s/contactsupport, they will send a download link for the firmware and the EasyFlash tool.

I am going to try the update tonight with the pass-through example. I would think that it would work, as long as the EasyFlash tool uses x-modem to transfer the firmware update...

It appears that the update they sent requires a direct USB connection to the R4. I have contacted u-blox again to see if they have an update that can be done with serial AT and x-modem using AT+UFWUPD=3.

Is a direct usb connection possible on this board? I see that the usb connections are carried out from the R4 in the schematic. It looks like they go to some unmarked test points on the board. I see no other documentation on this...?

After looking through this: hologram-tools/nova410update.py at master · hologram-io/hologram-tools · GitHub

I found the following two links depending on current FW version:

https://ublox-firmware.s3.amazonaws.com/L0506A0201-to-L0508A0204.zip

https://ublox-firmware.s3.amazonaws.com/L0506A0200-to-L0508A0204.zip

The readme files explain all of the different .bin versions:

Installing FW from L05.06A02.01 to L05.08A02.04
---------------------------------------------
Update packages sets: 

  Package set #0, it will update >99% of the units
  Use this set first 
  0bb_stg1_pkg1_0m_L56A0201_to_L58A0204.bin
  0bb_stg1_pkg2_4m_L56A0201_to_L58A0204.bin 
  0bb_stg1_pkg3_8m_L56A0201_to_L58A0204.bin
  0bb_stg2_L56A0201_to_L58A0204.bin

  Package set #1, use it if set #0 set fails to update 
  This set is for devices with 1 Bad block of memory in FOTA partition header
  1bb_stg1_pkg1_0m_L56A0201_to_L58A0204.bin
  1bb_stg1_pkg2_4m_L56A0201_to_L58A0204.bin 
  1bb_stg1_pkg3_8m_L56A0201_to_L58A0204.bin
  1bb_stg2_L56A0201_to_L58A0204.bin

  Package set #2, use it if set #0 set fails to update 
  This set is for devices with 2 Bad block of memory in FOTA partition header
  Having to use this set should be relatively very rare 
  2bb_stg1_pkg1_0m_L56A0201_to_L58A0204.bin
  2bb_stg1_pkg2_4m_L56A0201_to_L58A0204.bin 
  2bb_stg1_pkg3_8m_L56A0201_to_L58A0204.bin
  2bb_stg2_L56A0201_to_L58A0204.bin

---------------------------------------------
Instructions 

Step 1 : AT+UFWUPD=3, AT+UDWNFILE, to FOAT package into module, or +UFTPC for FTP

  Send stg1 pkg1_0m if 0-4 months 
  OR 
  Send stg1 pkg2_4m if 4-8 months, 12 - 16 months,20 - 24 months 
  OR
  Send stg1 pkg3_8m if 8-12 months, 16 - 20 months, 24 - 28 months
  OK

Step 2 : AT+UFWINSTALL 
OK

Step 3 : AT+UFWSTATUS? 

+UFWSTATUS: 55436f6d, c8, 0  
  • After install look for this code below to indicate successful install 
  • 55436F6D flag means Update has successfully completed  ( other flags are listed below )
  • If you see a 55457272, it means the Update encountered an error
  • C8 error_code means Update Success, Any other value means it failed. 
  • 0 failure_reason means Operation executed Successfully, any other value means it failed.
  • If it failed and see +UFWSTATUS: 55457272, 19a, ffe3, then you need to go back to Step 1 and try another stg1 boot package. 
  • If it failed with 55457272, 19a, ffed then go back to Step1 and try the next set of Bad Block package set (#1 or #2)
  • If you see a success code, then proceed to step 4. 

OK

Step 4 : AT+UFWUPD=3, AT+UDWNFILE, to FOAT package into module, or +UFTPC for FTP
  Send stg2 pkg

Step 5 : AT+UFWINSTALL

  It will take up to 21min to install.  

Step 6 : Check FW installed properly with ATI9 and/or ATI  

  ati9
  L0.0.00.00.05.08,A.02.04
1 Like

I can confirm that these .bin files work. I used ExtraPutty and x-modem 1K to transfer the files to the modem. I used AT+UFWUPD=3. Read the readme file carefully.

After the update, it looks like many more cell networks are available. I am now able to open a socket to "cloudsocket.hologram.io".

Hi, I am from india, I als oupgrade the same files now it is showing carrier name . but it isnot showing other networks which are available. it is showing 4g volte carrier only. But others also have 2g,3g,4g network but it is not showing.

There’s no support from Arduino on the NB 1500. I have one of these and it won’t work with Hologram until it gets a firmware upgrade. It was shipped by Arrow with Feb 2018 firmware (it’s almost 2020 now). It won’t upgrade over FOTA. To do this by USB I have to cut and solder wires on the board. The ublox m-center won’t do FOTA either since the software won’t connect to the internet. So, I have to requested the firmware and easy flash via email from ublox (still waiting). Not sure if this will even work. I’m glad to hear someone got it working but I’m not going to download some non-official zip files to update the firmware. I can receive but not send any SMS messages. I’ve been working on this for over a week. This NB 1500 is not something that anyone should buy and try to use. I have a few years experience using Arduinos, including a successful FONA 800 controller, but this is flat out not working any place near out of the box. Find some other cellular controller if you want to do IOT.

Hi zbelding,

what stage 1 file did you use for the firmware update and why? I'm not sure what they mean in the instructions with the upload differentiation by xx months.

Send stg1 pkg1_0m if 0-4 months
OR
Send stg1 pkg2_4m if 4-8 months, 12 - 16 months,20 - 24 months
OR
Send stg1 pkg3_8m if 8-12 months, 16 - 20 months, 24 - 28 months

It was my understanding that the previous firmware caused bad memory blocks. I interpreted the notes in the readme to suggest that the longer the modem was in service with the old firmware, the more bad blocks it may have... My modem was relatively new, so I installed the 0-4 Month package.

Thank you to all that have contributed to this.

I have also had troubles with maintaining a network connection, and am hoping that a firmware update might correct this (Telstra network, Australia). I have downloaded the firmware files mentioned in an earlier post, but they aren’t working for me.

Here is what I have tried:

ATI9
L0.0.00.00.05.06,A.02.01	=> version 201

AT+UFWUPD=3
+UFWUPD: ONGOING

OK
CSending 0bb_stg1_pkg1_0m_L56A0201_to_L58A0204.bin, 34 blocks: Give your local XMODEM receive command now.
Bytes Sent:   4480   BPS:271                             

Transfer complete
AT+UFWINSTALL
OK
AT+UFWSTATUS?
+UFWSTATUS: 55457272, 19a, ffe3

When I try a different package, the error code is ffed which the readme advises to try a different package. The only package that doesn’t return this is 0bb_stg1_pkg1… above. The problem though is that all the files in that package give me an ffe3 error. None of them work on my board.

Any tips?

Thanks.

So to be clear, is this what you tried?:

First attempt: Set #0: stg1_pkg1 + stg2 or stg1_pkg2 + stg2 or stg1_pkg3 + stg2

Second attempt: Set #1: stg1_pkg1 + stg2 or stg1_pkg2 + stg2 or stg1_pkg3 + stg2

Third attempt: Set #2: stg1_pkg1 + stg2 or stg1_pkg2 + stg2 or stg1_pkg3 + stg2

Hi,

are there any complete instructions / tutorials available which describe in more detail how to update the firmware via an Arduino Scetch? I like the approach form zbelding but some more details would be nice.

Thanks.

sladig:
Hi,

are there any complete instructions / tutorials available which describe in more detail how to update the firmware via an Arduino Scetch? I like the approach form zbelding but some more details would be nice.

Thanks.

Going by memory, these are the steps I can remember:

  1. Load the pass-through sketch
  2. Close arduino IDE
  3. Open Extra Putty
  4. Set com port, baud, and "Serial" radio button
  5. On the left click on "Terminal" and select both "Force on" radio buttons
  6. Click "Open" to start terminal
  7. Send AT+UFWUPD=3
  8. After modem replies: "+UFWUPD: ONGOING", choose X-modem-1k transfer from file transfer menu
  9. Choose 0bb_stg1_pkg1_0m_L56A020X_to_L58A0204.bin and begin transfer
  10. After complete, send AT+UFWINSTALL
    10.5. After OK, wait 10 sec. minimum
  11. Send AT+UFWSTATUS?
  12. Compare results to Readme
  13. Depending on results you may have to try another stg1 package per Readme
    ...
    ...
  14. Send AT+UFWUPD=3
  15. After modem replies: "+UFWUPD: ONGOING", choose X-modem-1k transfer from file transfer menu
  16. Choose 0bb_stg2_L56A020X_to_L58A0204.bin and begin transfer
  17. After complete, send AT+UFWINSTALL
  18. wait 21 mins
  19. Send ATI9 to make sure it worked

This is by no means a complete guide, but I think it has most of the steps...

Thanks! I will try is out.

zbelding:
Going by memory, these are the steps I can remember:

  1. Load the pass-through sketch
  2. Close arduino IDE
  3. Open Extra Putty
  4. Set com port, baud, and "Serial" radio button
  5. On the left click on "Terminal" and select both "Force on" radio buttons
  6. Click "Open" to start terminal
  7. Send AT+UFWUPD=3
  8. Quickly chose X-modem-1k transfer from menu (can't remember exact menu nomenclature)
  9. Choose 0bb_stg1_pkg1_0m_L56A020X_to_L58A0204.bin and begin transfer
  10. After complete, send AT+UFWINSTALL
  11. After OK, send AT+UFWSTATUS?
  12. Compare results to Readme
  13. Depending on results you may have to try another stg1 package per Readme
    ...
    ...
  14. Send AT+UFWUPD=3
  15. Quickly chose X-modem-1k transfer from menu (can't remember exact menu nomenclature)
  16. Choose 0bb_stg2_L56A020X_to_L58A0204.bin and begin transfer
  17. After complete, send AT+UFWINSTALL
  18. wait 21 mins
  19. Send ATI9 to make sure it worked

This is by no means a complete guide, but I think it has most of the steps...

On March 5th, 2020 ublox responded to my request for new firmware for my SARA-R410M-02B with version "L0.0.00.00.05.08 [Apr 17 2019 19:34:02]", app ver A.02.04.

Their email was very clear that I could not share the firmware unfortunately, but if you PM me I'll tell you how to go about getting it...

Their zip file also came with EasyFlash and other utilities for upgrading the modem firmware. The procedure hasn't changed for us, we still need to use the passthrough program.

This firmware seems to have fixed all of the issues that I was having with the modem and in general seems much snappier to connect with AT+USOCO.

It's unfortunate that it's so damn tedious to update the firmware; I feel sorry for those staring at a box full of these things.

allenb2800:
Thank you to all that have contributed to this.

I have also had troubles with maintaining a network connection, and am hoping that a firmware update might correct this (Telstra network, Australia). I have downloaded the firmware files mentioned in an earlier post, but they aren't working for me.

Here is what I have tried:

ATI9

L0.0.00.00.05.06,A.02.01 => version 201

AT+UFWUPD=3
+UFWUPD: ONGOING

OK
CSending 0bb_stg1_pkg1_0m_L56A0201_to_L58A0204.bin, 34 blocks: Give your local XMODEM receive command now.
Bytes Sent:  4480  BPS:271

Transfer complete
AT+UFWINSTALL
OK
AT+UFWSTATUS?
+UFWSTATUS: 55457272, 19a, ffe3




When I try a different package, the error code is **ffed** which the readme advises to try a different package. The only package that doesn't return this is 0bb_stg1_pkg1... above. The problem though is that all the files in that package give me an ffe3 error. None of them work on my board.

Any tips?

Thanks.

I had the same problem. On advise of jfarque I ignored the response "+UFWSTATUS: 55457272, 19a, ffe3” and pushed on to stage 2 with success!

MKR NB 1500
SARA-R410M-02B L0.0.00.00.05.06,A.02.01
L0.0.00.00.05.06 [Feb 03 2018 13:00:41]

Hi, thanks for the info. I'm also in Australia with same issue. Can connect to Cat-M1 but not NB-Iot.
I did the below steps according to below Quote from: zbelding on Feb 04, 2020, 11:29 pm, but then after the stage 2, 21 minute transfer, the modem crashed. Not responding to any commands.
Any help to recover the modem would be greatly aprectiated.

EDIT- left the board for a few hours and the modem started working again and was upgraded to L58A0204.

Package set #0, it will update >99% of the units
Use this set first
0bb_stg1_pkg1_0m_L56A0201_to_L58A0204.bin
0bb_stg1_pkg2_4m_L56A0201_to_L58A0204.bin
0bb_stg1_pkg3_8m_L56A0201_to_L58A0204.bin
0bb_stg2_L56A0201_to_L58A0204.bin

zbelding:

zbelding:
Going by memory, these are the steps I can remember:

  1. Load the pass-through sketch
  2. Close arduino IDE
  3. Open Extra Putty
  4. Set com port, baud, and "Serial" radio button
  5. On the left click on "Terminal" and select both "Force on" radio buttons
  6. Click "Open" to start terminal
  7. Send AT+UFWUPD=3
  8. Quickly chose X-modem-1k transfer from menu (can't remember exact menu nomenclature)
  9. Choose 0bb_stg1_pkg1_0m_L56A020X_to_L58A0204.bin and begin transfer
  10. After complete, send AT+UFWINSTALL
  11. After OK, send AT+UFWSTATUS?
  12. Compare results to Readme
  13. Depending on results you may have to try another stg1 package per Readme
    ...
    ...
  14. Send AT+UFWUPD=3
  15. Quickly chose X-modem-1k transfer from menu (can't remember exact menu nomenclature)
  16. Choose 0bb_stg2_L56A020X_to_L58A0204.bin and begin transfer
  17. After complete, send AT+UFWINSTALL
  18. wait 21 mins
  19. Send ATI9 to make sure it worked

This is by no means a complete guide, but I think it has most of the steps...