cancel
Showing results for 
Search instead for 
Did you mean: 

Teseo-LIV4 GNSS Firmware Update CRC Error

JCharette
Associate II

I'm attempting to update the firmware for the LIV4 GNSS module, and everything seems to goes well until the CRC step, where it hangs for a few seconds then reports a failure. The module is no longer publishing any data, but when using the 'recovery' method for firmware updating, the module does communicate with Teseo_Suite, but it stops responding on the CRC step.  I'm using an FTDI and can see both RX and TX LEDs illuminate during the process,  but neither light up during the CRC step.  Any help with this would be greatly appreciated.

Thanks in advance, 

-Jake

10 REPLIES 10
GalaxyQuest
ST Employee

Hi Jake,

Can you please refer to this post regarding CRC error you are getting?

Solved: LIV4F firmware update protocol - STMicroelectronics Community


In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
JCharette
Associate II

Thank you for the reply.  I did come across that in my searches, but I believe my issue differs a bit.  In my case, I cannot get the firmware to update using Teseo-Suite in Windows,  in that case they are updating the firmware with their own software.  I would like to have the ability to update firmware from a linux machine, but my current issue is that I cannot seem to update the firmware at all, and the module seems to be left in a broken state, where it only communicates in the recovery mode.  IE: I need to use the reset pin to trigger a firmware update, and all goes well until the timeout occurs waiting for the CRC ack from the module.  Also, no NMEA can be read from the device in it's current state.

Thanks again, 

-Jake

Hi Jake,

When programming with Teseo Suite in Windows, can you please make sure Erase NVM and Recovery are checked.

Attaching screenshot below. Please let me know if that works

GalaxyQuest_0-1747243014517.png

 

 

 


In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
JCharette
Associate II

I tried as you suggested, double checking that my screen matched your screenshot, but am still facing the same "CRC Error" at the end of the update process.

Some additional information: 

- TeseoSuite - The version I downloaded is in a zip titled "en.teseosuitepro7-4-4.7z" but the file contained inside is titled "TeseoSuitePro7_4_3.exe"

- LIV4 Firmware - The version downloaded is in a zip titled "en.STA8041_LIV4F.7z" and the folder inside is titled "4.6.8.5.9" I tried flashing all of the contained files, all failing on the CRC Check step.  I also tried with an older firmware version I had downloaded previously, "4.6.8.5.9" but it also fails the CRC step.

Thank you again for the help!

-Jake

Perhaps try another machine?

Perhaps different serial adapter, or speed?

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

Thanks for the suggestions, I'll attempt with another machine, but the part confusing me is that it successfully communicates with the device up until the CRC.  I can confirm that the module,

- responds to 'TESEO_FLASHER_IDENTIFIER' with 'TESEO_FLASHER_SYNC' after a reset

- responds to 'DEVICE_START_COMMUNICATION' with an ACK

- responds to 'ImageOptions' and 'FLASHER_READY' with ACKS

- responds to each firmware-block with an ACK

Then there is the timeout 'CRC Error'

I've been attempting to write a python script for updating firmware because when implemented in our use-case, we will not be able to connect to a windows machine, instead an embedded linux computer will be used.  I was fighting the CRC timeout issue, and figured I'd sanity check myself by using TeseoSuite, but it seems to be having the same trouble as my script.

I'd have thought I bricked the device, but the majority of the communication goes fine, it's just that last step, the CRC check, times out.

I have another module I will try to update via TeseoSuite; does it seem possible/plausible that it can be bricked, even though all of the above-listed communication goes fine? The device was never unexpectedly powered-off during an attempted update or otherwise.

Hi Jake,

Per your comment below,

 


I'd have thought I bricked the device, but the majority of the communication goes fine, it's just that last step, the CRC check, times out.

 

When simply connected to Teseo Suite or connected to a serial terminal program, do you see NMEA communications coming out ? 

Just as a sanity check, is this the first time you are trying to upgrade the device and the update fails i.e. another version of firmware has not been programmed before?


In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.

I tried the alternative firmware updater you provided and it's having the same CRC Failed issue.

I do not get any NMEA communications from the device, either in serial terminal or Teseo Suite.

I did try and use a jar I found to update the firmware, 'FWUPG.jar' and I'm now thinking that may actually be what caused my issue.. I did use the LIV4 firmware file, but I have the sniffed communication for that update attempt and I think I'm seeing a differences in the byte 'reserved_0' of the ImageOptions.  I don't know for sure that that's when the issue began, but I now very much suspect it.  I apologize for the issues, I don't have regular access to a windows machine, which is why I tried the jar. Below is the start of the communication sniffed from the jar attempt to update firmware,

< 0xf4 TESEO_FLASHER_IDENTIFIER
< 0x01 TESEO_FLASHER_IDENTIFIER
< 0xd5 TESEO_FLASHER_IDENTIFIER
< 0xbc TESEO_FLASHER_IDENTIFIER
> 0x73 TESEO_FLASHER_SYNC
> 0x40 TESEO_FLASHER_SYNC
> 0x98 TESEO_FLASHER_SYNC
> 0x83 TESEO_FLASHER_SYNC
< 0xf4 TESEO_FLASHER_IDENTIFIER
< 0x01 TESEO_FLASHER_IDENTIFIER
< 0xd5 TESEO_FLASHER_IDENTIFIER
< 0xbc TESEO_FLASHER_IDENTIFIER
< 0xa3 DEVICE_START_COMMUNICATION
> 0xcc ACK
< 0x00 ImageOptions reserved_0
< 0x00 ImageOptions reserved_1
< 0x00 ImageOptions chunk_size
< 0x01 ImageOptions reserved_2
< 0xe0 ImageOptions firmwareSize
< 0x5e ImageOptions firmwareSize
< 0x05 ImageOptions firmwareSize
< 0x00 ImageOptions firmwareSize
< 0xf2 ImageOptions firmwareCRC
< 0xf4 ImageOptions firmwareCRC
< 0xcd ImageOptions firmwareCRC
< 0x04 ImageOptions firmwareCRC
< 0x00 ImageOptions reserved_3
< 0x00 ImageOptions reserved_3
< 0x10 ImageOptions reserved_3
< 0x00 ImageOptions reserved_3
< 0x00 ImageOptions reserved_4
< 0x00 ImageOptions reserved_4
< 0x10 ImageOptions reserved_4
< 0x00 ImageOptions reserved_4
< 0x4a FLASHER_READY
> 0xcc ACK
> 0xcc ACK
> 0xcc ACK

Hi Jake,

The FWUPG.jar - I am guessing you found this in X-NUCLEO-GNSS1 installation - this only works for LIV3x products. However, I tried to program LIV4F using this utility that I shared and was able to recover.

I will send out a meeting invite.

Thanks,

George


In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.