Teseo-LIV3F - How-To recover from a wrong configuration

Document created by Francesco Virlinzi Employee on Jun 7, 2018Last modified by Francesco Virlinzi Employee on Jun 21, 2018
Version 4Show Document
  • View in full screen mode

In the Teseo-LIV3F GNSS module the firmware configuration sits in the internal flash memory, in detail the configuration sits in a flash-section called NVM, which isn't overwritten during the firmware-update procedure.


It has been selected this design to guarantee a customer can raise a campaign of Teseo-LIV3F's update on the field with no care of configuration which will remain as it is.


The configuration can be modified by the customer bases on its needed using the ST system configuration commands (see the Teseo-LIV3F - Software User Manual.):

If a customer sets and saves a wrong configuration the whole Teseo-LIV3F could stop working.


If the Teseo-LIV3F stops working due to a wrong configuration, customer can always recover the module raising a specific firmware-update where it's requested the erasing of NVM section.


In detail during the firmware update procedure the firmware-provider has to send the ImageOptions data-field to drive the firmware-update procedure.


The struct ImageOptions is reported as below (for the whole description see the Teseo-LIV3F - Software User Manual.):


struct ImageOptions {
      unsigned char eraseNVM;
      unsigned char programOnly;
      unsigned char chunk_size;
      unsigned char baudRate;
      int firmwareSize;
      unsigned int firmwareCRC;
      unsigned int reserved_0;
      unsigned int reserved_1;


The field ImageOptions.eraseNVM  can be used by the customer to recover from a wrong configuration because in case this field is set to '1' during the firmware-update procedure the NVM flash-section is erased removing the not-working-configuration.


In the Teseo-Suite.FirmwareUpdate panel (see below):

  • enable the Recovery checkbox to upgrade the Teseo-LIV3F
  • enable the Erase NVM checkbox to recover from wrong configuration




During the following bootstrap Teseo-LIV3F  a clean NVM section is found and the system rewrites the whole configuration using the default provided by STMicroelectronics.

With this methodology, every customer can always recover the Teseo-LIV3F module, from a wrong configuration.