SPECIFICATIONS SUBJECT TO CHANGE WITHOUT NOTICE Notice While reasonable efforts have been made to assure the accuracy of this document, Telit assumes no liability resulting from any inaccuracies or omissions in this document, or from use of the information obtained herein. The information in this document has been carefully checked and is believed to be entirely reliable. However, no responsibility is assumed for inaccuracies or omissions. Telit reserves the right to make changes to any products described herein and reserves the right to revise this document and to make changes from time to time in content hereof with no obligation to notify any person of revisions or changes. Telit does not assume any liability arising out of the application or use of any product, software, or circuit described herein; neither does it convey license under its patent rights or the rights of others. It is possible that this publication may contain references to, or information about Telit products (machines and programs), programming, or services that are not announced in your country. Such references or information must not be construed to mean that Telit intends to announce such Telit products, programming, or services in your country. Copyrights This instruction manual and the Telit products described in this instruction manual may be, include or describe copyrighted Telit material, such as computer programs stored in semiconductor memories or other media. Laws in the Italy and other countries preserve for Telit and its licensors certain exclusive rights for copyrighted material, including the exclusive right to copy, reproduce in any form, distribute and make derivative works of the copyrighted material. Accordingly, any copyrighted material of Telit and its licensors contained herein or in the Telit products described in this instruction manual may not be copied, reproduced, distributed, merged or modified in any manner without the express written permission of Telit. Furthermore, the purchase of Telit products shall not be deemed to grant either directly or by implication, estoppel, or otherwise, any license under the copyrights, patents or patent applications of Telit, as arises by operation of law in the sale of a product. Computer Software Copyrights The Telit and 3rd Party supplied Software (SW) products described in this instruction manual may include copyrighted Telit and other 3rd Party supplied computer programs stored in semiconductor memories or other media. Laws in the Italy and other countries preserve for Telit and other 3rd Party supplied SW certain exclusive rights for copyrighted computer programs, including the exclusive right to copy or reproduce in any form the copyrighted computer program. Accordingly, any copyrighted Telit or other 3rd Party supplied SW computer programs contained in the Telit products described in this instruction manual may not be copied (reverse engineered) or reproduced in any manner without the express written permission of Telit or the 3rd Party SW supplier. Furthermore, the purchase of Telit products shall not be deemed to grant either directly or by implication, estoppel, or otherwise, any license under the copyrights, patents or patent applications of Telit or other 3rd Party supplied SW, except for the normal non-exclusive, royalty free license to use that arises by operation of law in the sale of a product.
Usage and Disclosure Restrictions License Agreements The software described in this document is the property of Telit and its licensors. It is furnished by express license agreement only and may be used only in accordance with the terms of such an agreement. Copyrighted Materials Software and documentation are copyrighted materials. Making unauthorized copies is prohibited by law. No part of the software or documentation may be reproduced, transmitted, transcribed, stored in a retrieval system, or translated into any language or computer language, in any form or by any means, without prior written permission of Telit High Risk Materials Components, units, or third-party products used in the product described herein are NOT fault-tolerant and are NOT designed, manufactured, or intended for use as on-line control equipment in the following hazardous environments requiring fail-safe controls: the operation of Nuclear Facilities, Aircraft Navigation or Aircraft Communication Systems, Air Traffic Control, Life Support, or Weapons Systems (High Risk Activities"). Telit and its supplier(s) specifically disclaim any expressed or implied warranty of fitness for such High Risk Activities. Trademarks TELIT and the Stylized T Logo are registered in Trademark Office. All other product or service names are the property of their respective owners. Copyright Telit Communications S.p.A. 2013.
The scope of this Application Note is to provide a description of the procedure to update the firmware of the SL869 GNSS module over the NMEA serial port. This document is intended for customers who desire to implement an SL869 firmware update feature in their host platforms. For general contact, technical support, to report documentation errors and to order manuals, contact Telit Technical Support Center (TTSC) at: TS-EMEA@telit.com TS-NORTHAMERICA@telit.com TS-LATINAMERICA@telit.com TS-APAC@telit.com Alternatively, use: http://www.telit.com/en/products/technical-support-center/contact.php For detailed information about where you can buy the Telit modules or for recommendations on accessories and components visit: http://www.telit.com To register for product news and announcements or for product questions contact Telit Technical Support Center (TTSC). Our aim is to make this guide as helpful as possible. Keep us informed of your comments and suggestions for improvements. Telit appreciates feedback from the users of our information.
This document contains the following chapters: Chapter 1: Introduction provides a scope for this document, target audience, contact and support information, and text conventions. Chapter 2: Overview gives an overview of the firmware upgrade feature described in this document. Chapter 3: Procedure describes in detail the steps for performing a firmware upgrade. Chapter 4: Recovery gives some information regarding recovery should a failure occur while performing a firmware upgrade. Chapter 5: Flow Chart provides a graphical representation of the firmware upgrade procedure. Danger This information MUST be followed or catastrophic equipment failure or bodily injury may occur. Caution or Warning Alerts the user to important points about integrating the module, if these points are not followed, the module and end user equipment may fail or malfunction. Tip or Information Provides advice and suggestions that may be useful when integrating the module. All dates are in ISO 8601 format, i.e. YYYY-MM-DD. SL869 Product Description, 80405ST10105A SL869 Software User Guide, 1VV0301002 SL869 Software Authorized User Guide, 1VV0301052
The SL869 module firmware has the ability to be upgraded using the serial host interface without requiring assertion of the Boot pin. Rather than using the Boot pin, a proprietary command is sent to the module in order to put it into a Firmware Update mode. When the module is put into the Firmware Update mode, program execution is passed from the GNSS firmware to a resident flash programming application. The new firmware image is transferred over the serial port using a binary protocol, which is described later in this Application Note. The resident flash programming application responds to binary commands from the Host, receives the new firmware image from the Host, and reprograms the program flash area. It can also erase the non-volatile data area as well. When firmware reprogramming is completed, the module resets itself and begins executing the new firmware. Note that this firmware upgrade ability can be demonstrated on an SL869 EVK using the TeseoII Firmware Upgrade tool from ST Microelectronics. This tool runs on Windows PC operating systems, and is available from Telit Wireless to customers who have signed a Non- Disclosure Agreement (NDA). Caution - Firmware upgrades can only be performed on modules that have already been programmed with firmware and thus contain a resident flash programming application. Caution - Only firmware load files with UPG appended in the filename can be used to upgrade a module in this manner. Using load files with BOOT appended in the filename can cause the module to become inoperable. If this happens the module must be reprogrammed using the Boot pin.
The procedure described in the subsections below outlines the implementation of the Firmware Upgrade feature in the Host application. Firmware upgrades must be conducted using the UART NMEA port, and not the USB interface, on the SL869 module. The SL869 module must first be put into the Firmware Update mode by sending the proprietary NMEA command below: Synopsis: $PSTMFWUPGRADE<cr><lf> There are no parameter fields associated with this command. If the command is received and executed successfully, the SL869 transitions issues the following response: $PSTMFWUPGRADEOK<cr><lf> If the command is successful, the current firmware resets the GNSS device, which then transitions into the Firmware Update mode. If an error occurs while the command is being executed, the update cannot proceed, and the following response is sent by the SL869: $PSTMFWUPDATEERROR<cr><lf> When the SL869 indicates that it has transitioned into Firmware Update mode as described above, the Host initiates a synchronization phase with the SL869 by repeatedly sending it the FLASHER IDENTIFIER word. When the SL869 becomes synchronized, it will respond with the FLASHER SYNC response word. The SL869 should respond within three seconds after the Host sends the first FLASHER IDENTIFIER word. If it does not respond within three seconds, a timeout error has occurred. When the SL869 responds with the FLASHER SYNC word, the Host sends the START COMMUNICATION byte and then waits for acknowledgement from the SL869. If the SL869 does not respond within three seconds, a timeout error has occurred. When the SL869 sends the acknowledgement (ACK) byte, it is ready to receive the binary image options to be used for the firmware update. The options are then sent by the Host as a binary data packet as described in the table below:
Name Size (bytes) Description Erase NVM Flag Program Only Flag byte byte reserved byte Set to 0 If 1, indicates that the non-volatile data area is to be erased If 1, indicates that the program area is not to be erased. This should be set to 0. Baud Rate byte Baud rate at which firmware binary image is to be sent. Set as follows: 0 = 57600 bps 1 = 115200 bps 2 = 230400 bps 3 = 460800 bps 4 = 921600 bps Firmware Size Four bytes Size of the firmware binary image in bytes Firmware CRC Four bytes IEEE CRC32 calculated first on the image file size and then over the entire firmware image NVM Offset Four bytes Offset byte address of NVM data. Should be set to 0x00100000. NVM Size Four bytes Size of the NVM data area in bytes. Should be set to 0x00100000. The image options data format can also be represented as a C data structure as follows: // Binary image options struct ImageOptions { byte erasenvm; byte programonly; byte reserved; byte baudrate; int firmwaresize; uint firmwarecrc; int nvmaddressoffset; int nvmsize; }; Note that there is no acknowledgement from the SL869 after the Host sends the binary image options data packet.
After sending the image options data, the Host changes its UART baud rate to that specified in the image options. The SL869 also changes its baud rate, after which a re-synchronization phase begins. During this phase the Host repeatedly sends the FLASHER_READY byte and waits for an ACK byte in response from the SL869. The SL869 should respond within three seconds after the Host sends the first FLASHER_READY byte. If it does not respond within three seconds, a timeout error has occurred. When the SL869 sends the ACK byte indicating that the re-synchronization phase is complete, it then processes the image options flags and erases flash accordingly. First, the Program Only option is checked by the SL869. If it was set to False by the Host, i.e. to a value of 0, the flash program area is erased, and the Host must wait for the SL869 to send an ACK byte indicating that the erase has been completed. For purposes of re-programming the SL869, the Program Only option should be set to False. Second, the Erase NVM option is checked by the SL869. If it was set to True by the Host, the flash NVM data area is erased, and the Host must wait for the SL869 to send an ACK byte indicating that the erase has been completed. When upgrading to a new firmware version, it is recommended that the Erase NVM option be set to True. In each case the Host software should use a timeout of 60 seconds to wait for the ACK byte, and if no response is received within this time interval, a timeout has occurred. When all expected acknowledgement bytes have been received after the re-synchronization phase, the SL869 is ready to accept the new firmware image. The Host then sends the firmware image by dividing it up into 16Kbyte (16384 byte) data packets. The last packet contains the remainder of the image. Each data packet is acknowledged by the SL869 with an ACK byte. After each data packet is sent the Host software should use a timeout of 30 seconds to wait for the ACK byte, and if no response is received within this time interval, a timeout has occurred. After the SL869 acknowledges the last firmware image data packet, it performs a CRC check on the received image data, comparing the computed CRC against the value that was sent as part of the firmware image options. The CRC is calculated as the IEEE standard CRC-32 over the image size first and then the image data. If the check passes, another ACK byte is sent back to the Host and the downloaded firmware is validated. The SL869 resets itself and starts executing the new firmware. Otherwise, if the check fails, a negative acknowledgement (NAK) byte is sent. The SL869 resets itself and starts up in Firmware Upgrade mode.
The following table defines the constants used in the Firmware Update procedure. Constant Name FLASHER_IDENTIFIER FLASHER_SYNC START_COMMUNICATION FLASHER_READY ACK NAK Value 0xBCD501F4 0x83984073 0xA3 0x4A 0xCC 0xDD
The SL869 has a recovery mode in which the firmware can be updated without a valid GNSS firmware image, provided that the flash programming application has not been overwritten. If the SL869 does not have a valid firmware image in the GNSS program area, it starts up in Firmware Update mode and begins executing the flash programming application. Thus the Host can attempt to recover from a failed firmware upgrade attempt. NOTE: Recovery mode can be used to retry a firmware upgrade if a timeout failure or other interruption occurred during the previous upgrade attempt. At the beginning of the recovery process, the SL869 module should be off. To start the process, the Host repeatedly sends the FLASHER_IDENTIFER word at 115200 bps and then turns on the SL869. At this point the firmware upgrade process is in the Synchronization phase (see paragraph 3.2), and the Host can continue with the rest of the procedure as outlined in the previous chapter.
Revision Date Changes 0 2013-12-09 First issue