QUECTEL LTE Standard Module Series User Guide

July 4, 2024
QUECTEL

QDownloadProj Linux
User Guide
LTE Standard Module Series
Version: 1.0
Date: 2024-03-25
Status: Released

LTE Standard Module Series

At Quectel, our aim is to provide timely and comprehensive services to our customers. If you require any assistance, please contact our headquarters:
Quectel Wireless Solutions Co., Ltd.
Building 5, Shanghai Business Park Phase III (Area B), No.1016 Tianlin Road, Minhang District, Shanghai 200233, China
Tel: +86 21 5108 6236
Email: info@quectel.com
Or our local offices. For more information, please visit:
http://www.quectel.com/support/sales.htm.
For technical support, or to report documentation errors, please visit:
http://www.quectel.com/support/technical.htm.
Or email us at: support@quectel.com.
Legal Notices
We offer information as a service to you. The provided information is based on your requirements and we make every effort to ensure its quality. You agree that you are responsible for using independent analysis and evaluation in designing intended products, and we provide reference designs for illustrative purposes only. Before using any hardware, software or service guided by this document, please read this notice carefully. Even though we employ commercially reasonable efforts to provide the best possible experience,
you hereby acknowledge and agree that this document and related services hereunder are provided to you on an “as available” basis. We may revise or restate this document from time to time at our sole discretion without any prior notice to you.
Use and Disclosure Restrictions
License Agreements
Documents and information provided by us shall be kept confidential, unless specific permission is granted.
They shall not be accessed or used for any purpose except as expressly provided herein.
Copyright
Our and third-party products hereunder may contain copyrighted material. Such copyrighted material shall not be copied, reproduced, distributed, merged, published, translated, or modified without prior written consent. We and the third party have exclusive rights over copyrighted material. No license shall be granted or conveyed under any patents, copyrights, trademarks, or service mark rights. To avoid ambiguities, purchasing in any form cannot be deemed as granting a license other than the normal nonexclusive, royalty-free license to use the material. We reserve the right to take legal action for noncompliance with abovementioned requirements, unauthorized use, or other illegal or malicious use ofthe material.
Trademarks
Except as otherwise set forth herein, nothing in this document shall be construed as conferring any rights to use any trademark, trade name or name, abbreviation, or counterfeit product thereof owned by Quectel or any third party in advertising, publicity, or other aspects.
Third-Party Rights
This document may refer to hardware, software and/or documentation owned by one or more third parties (“third-party materials”). Use of such third-party materials shall be governed by all restrictions and obligations applicable thereto.
We make no warranty or representation, either express or implied, regarding the third-party materials, including but not limited to any implied or statutory, warranties of merchantability or fitness for a particular purpose, quiet enjoyment, system integration, information accuracy, and non- infringement of any thirdparty intellectual property rights with regard to the licensed technology or use thereof. Nothing herein constitutes a representation or warranty by us to either develop, enhance, modify, distribute, market,  sell, offer for sale, or otherwise maintain production of any our products or any other hardware, software, device, tool, information, or product. We moreover disclaim any and all warranties arising from the course of dealing or usage of trade.
Privacy Policy
To implement module functionality, certain device data are uploaded to Quectel’s or third-party’s servers, including carriers, chipset suppliers or customer-designated servers. Quectel, strictly abiding by the relevant laws and regulations, shall retain, use, disclose or otherwise process relevant data for the purpose of performing the service only or as permitted by applicable laws. Before data interaction with third parties, please be informed of their privacy and data security policy.
Disclaimer
a) We acknowledge no liability for any injury or damage arising from the reliance upon the information.
b) We shall bear no liability resulting from any inaccuracies or omissions, or from the use of the information contained herein.
c) While we have made every effort to ensure that the functions and features under development are free from errors, it is possible that they could contain errors, inaccuracies, and omissions. Unless otherwise provided by valid agreement, we make no warranties of any kind, either implied or express, and exclude all liability for any loss or damage suffered in connection with the use of features and functions under development, to the maximum extent permitted by law, regardless of whether such loss or damage may have been foreseeable.
d) We are not responsible for the accessibility, safety, accuracy, availability, legality, or completeness of information, advertising, commercial offers, products, services, and materials on third-party websites and third-party resources.

Copyright © Quectel Wireless Solutions Co., Ltd. 2024. All rights reserved.

About the Document

Revision History

Version Date Author Description
3/6/2024 Aaron LIU Creation of the document
1.0 3/25/2024 Aaron LIU First official release

Introduction

This document outlines how to use the QDownloadProj toolkit to upgrade the firmware of Quectel EG800Q series, EG915Q series and EG916Q-GL modules on a Linux system.

Toolkit

QDownloadProj toolkit includes configuration files, the executable file, header files, source code files, usage demos, compilation demos, and the tool release note, as listed below.
Table 1: File List

Folder/File Description
demo Configuration files and JSON files used for erasing partitions.
gccout Executable file generated by compilation.
inc Header files.
src Source code files.
cli_demo.txt Usage demos.
compile_cmd.txt Compilation demos.
ReleaseNote Release note.

Parameters

QDownloadProj supports multiple parameters for different commands, and you can configure the specified parameters as needed. This chapter provides a detailed description of the usage and configuration of each parameter.

Table 2: Parameter Description

Command Description
-p Configures the UART or USB port number for downloading firmware.
: UART or USB port number. String without double quotes. Required parameter. -c | Configures the path of the configuration file required for firmware upgrade. : Configuration file path, determined by the module model. String without double quotes. Required parameter. -S| Divides the FullFOTA upgrade package into three independent files (BL, AP and CP types) used for the upgrade. -b | Downloads an independent file, such as -b BL. : Type of independent file. String without double quotes. Required parameter. BL  Bin file whose name starts with ap_bootloader AP  Bin file whose name starts with ap_at_command CP  Bin file whose name starts with cp-demo-flash -B …| Downloads multiple independent files and separate two files with a space, such as -B “BL AP CP”. : Type of independent file. String with double quotes. Required parameter. BL  Bin file whose name starts with ap_bootloader AP  Bin file whose name starts with ap_at_command CP  Bin file whose name starts with cp-demo-flash -e | Erases a partition, such as -e “0x800000 0x400000 0”. : Partition to be erased. String with double quotes. Format: . Required parameter. : Integer type. Starting address for erasure. Required parameter. : Integer type. Length of data to be erased from the partition. Required parameter. : Integer type. Type of erasure. Fixed to 0 (Erasing a block). Required parameter. -E | Erases multiple partitions, such as -E “all”. : Partition identifier. String with double quotes. Required parameter. all  Partitions other than cal. nvm  NVM partition. cal  Calibration partition. -r| Reboots the module after the FullFOTA upgrade. -s| Downloads the upgrade package with the agentboot partition skipped. -v| Displays the QDownloadProj toolkit version. -h| Displays help information.

Usage

This chapter explains how to compile and utilize the QDownloadProj toolkit to upgrade the module firmware on a Linux system using the EG800Q series module as an example.

4.1. Compile Source Code

Execute the following command to compile the source code and generate an executable program (tool), e.g., DownloadCLI (You can customize the name of the tool) and store the tool in the gccout folder.

gcc -D_LINUX -g -o gccout/DownloadCLI -I inc src/download_cli.c src/action.c src/linux_comm.c src/utils.c src/package.c src/crc.c src/sha256.c src/ini.c src/cJSON.c

4.2. Modify Configuration File
Step 1
: Open the QDownloadProj toolkit, enter the \demo\config directory and open the corresponding configuration file depending on the module model and upgrade method.

  • Configuration file for the firmware upgrade via UART: cfg_ec618_uart.ini
  • Configuration file for the firmware upgrade via USB: cfg_ec618_usb.ini

Step 2: Modify the specified parameters in the configuration file as shown below.

  • Configure pkgpath under [package_info] to change the storage path for the FullFOTA upgrade package.

[package_info] pkgpath = ./root/EG800QEULCR01A03M04/at command.binpkg
EG800QEULCR01A03M04 in the above path is only an example and should be replaced with the actual module firmware version used.

  • Configure agpath under [agentboot] to change the path for the agentboot file.

For the firmware upgrade via UART:

[agentboot] agpath = ./demo/image_ec618/agentboot_uart/agentboot.bin
For the firmware upgrade via USB: [agentboot] agpath = ./demo/image_ec618/agentboot_usb/agentboot.bin

  • Configure blpath, syspath and cp_syspath under [bootloader], [system] and [cp_system] to change the storage paths of each type of firmware files (BL, AP and CP types) generated after the division of the FullFOTA upgrade package.

[bootloader] blpath = ./root/EG800QEULCR01A03M04/ap_bootloader.bin burnaddr = 0×4000
[system] syspath = ./root/EG800QEULCR01A03M04/ap_at_command.bin burnaddr = 0×24000
[cp_system] cp_syspath = ./root/EG800QEULCR01A03M04/cp-demo-flash.bin burnaddr = 0×0
EG800QEULCR01A03M04 in the above path is only an example and should be replaced with the actual firmware version used.

  • Configure [otherfile] (Optional)

The default configuration of [otherfile] is displayed below. You can customize the filepath, burnaddr and storage_type parameters as needed.

[otherfile1] filepath = ap_application.bin
burnaddr = 0×200000
storage_type=ap_flash
4.3. Divide Upgrade Package
According to the inherent logic of the QDownloadProj toolkit, a FullFOTA upgrade package is divided into three independent files for a firmware upgrade as follows:

Step 1: Copy both the FullFOTA upgrade package and the QDownloadProj toolkit containing the DownloadCLI tool generated in Chapter 4.1 to the Linux device.
Step 2: Execute the following command in Linux device’s QDownloadProj/gccout directory to run DownloadCLI tool and divide the FullFOTA upgrade package.

For the firmware upgrade via UART:
./DownloadCLI -c ../demo/config/cfg_ec618_uart.ini -S
For the firmware upgrade via USB:
./DownloadCLI -c ../demo/config/cfg_ec618_usb.ini -S
Step 3 : Once the upgrade package is divided, DownloadCLI tool automatically exits. To verify if the division is successful, check the exit code using the following command. 0 indicates a successful division, while other values indicate failed division.

echo $?

4.4. Upgrade Firmware
Firmware upgrade can be performed via UART or USB.
4.4.1. Firmware Upgrade via UART
Step 1 : Connect the module to the device through USB to serial cable.
Step 2: Execute the following command in the device’s QDownloadProj/gccout directory to run DownloadCLI tool for the firmware upgrade. The three independent files (BL, AP and CP types) are downloaded by default.
./DownloadCLI -c ../demo/config/cfg_ec618_uart.ini -p /dev/ttyUSB0 -B “BL AP CP” -r
To download a custom file to the module, add OTHER1 after BL AP CP as shown below:
./DownloadCLI -c ../demo/config/cfg_ec618_uart.ini -p /dev/ttyUSB0 -B “BL AP CP OTHER1” -r
Step 3: Once the upgrade is completed, DownloadCLI tool automatically exits. To verify the firmware upgrade success, check either the exit code of DownloadCLI tool or the message displayed in the last line of the log printed on the terminal where the DownloadCLI tool was executed during the upgrade process.
Execute the following command to get the exit code of DownloadCLI tool. 0 indicates a successful upgrade, while other values indicate an upgrade failure.

echo $?

If the firmware is upgraded successfully, “Burnlist success” is displayed in the last line of the log, as shown below. Other information displayed indicates firmware upgrade failure.

./DownloadCLI -c ../demo/config/cfg_ec618_uart.ini -p /dev/ttyUSB0 -B “BL AP

CP OTHER1” -r
[2024-0-24 16:35:22:445][INFO][src/action.c-125]:Burnlist = BL AP CP OTHER1
[2024-0-24 16:35:22:445][INFO][src/action.c-128]:Burn 4 files
[2024-0-24 16:35:22:445][INFO][src/action.c-24]:Burn action start, type = BL

[2024-0-24 16:36:10:431][INFO][src/package.c-310]:Current progress: 67%
[2024-0-24 16:36:10:432][INFO][src/package.c-36]:Ab handshake
[2024-0-24 16:36:11:015][INFO][src/package.c-310]:Current progress: 100%
[2024-0-24 16:36:11:140][INFO][src/action.c-101]:Burn action success
[2024-0-24 16:36:11:140][INFO][src/package.c-40]:Lpc handshake
[2024-0-24 16:36:11:148][INFO][src/action.c-109]:System reset success
[2024-0-24 16:36:11:251][INFO][src/action.c-144]:Burnlist success
In case of a firmware upgrade failure, please contact Quectel Technical Support for assistance and resolution.
4.4.2. Firmware Upgrade via USB
Step 1 : Manually short the USB_BOOT pin and power on the module.
Step 2 : Execute the following command in the device’s QDownloadProj/gccout directory to run the DownloadCLI tool for the firmware upgrade. The three independent files (BL, AP and CP types) are downloaded by default.
./DownloadCLI -c ../demo/config/cfg_ec618_usb.ini -p /dev/ttyACM0 -B “BL AP CP” -r
To download a custom file to the module, add OTHER1 after BL AP CP as shown below.
./DownloadCLI -c ../demo/config/cfg_ec618_usb.ini -p /dev/ttyACM0 -B “BL AP CP OTHER1” -r
Step 3 : Once the upgrade is completed, the DownloadCLI tool automatically exits. To verify firmware upgrade success, check either the exit code of the DownloadCLI tool or the message displayed in the last line of the log printed on the terminal where the DownloadCLI tool was executed during the upgrade process.
Execute the following command to get the exit code of the DownloadCLI tool. 0 indicates a successful upgrade, while other values indicate an upgrade failure.

echo $?

If the firmware is upgraded successfully, “Burnlist success” is displayed in the last line of the log, as shown below. Other information displayed indicates firmware upgrade failure.

./DownloadCLI -c ../demo/config/cfg_ec618_usb.ini -p /dev/ttyACM0 -B “BL AP

CP” -r
[2024-0-24 16:46:18:411][INFO][src/action.c-125]:Burnlist = BL AP CP
[2024-0-24 16:46:18:411][INFO][src/action.c-128]:Burn 3 files
[2024-0-24 16:46:18:411][INFO][src/action.c-24]:Burn action start, type = BL

[2024-0-24 16:46:58:474][INFO][src/package.c-310]:Current progress: 88%
[2024-0-24 16:46:58:474][INFO][src/package.c-36]:Ab handshake
[2024-0-24 16:46:58:933][INFO][src/package.c-310]:Current progress: 100%
[2024-0-24 16:46:59:057][INFO][src/action.c-101]:Burn action success
[2024-0-24 16:46:59:057][INFO][src/package.c-40]:Lpc handshake
[2024-0-24 16:46:59:065][INFO][src/action.c-109]:System reset success
[2024-0-24 16:46:59:066][INFO][src/action.c-144]:Burnlist success
In case of a firmware upgrade failure, please contact Quectel Technical Support for assistance and resolution.

Appendix Reference

Table 3: Terms and Abbreviations

Abbreviation Description
JSON JavaScript Object Notation
LTE Long Term Evolution
NVM Non-Volatile Memory
UART Universal Asynchronous Receiver/Transmitter
USB Universal Serial Bus

QDownloadProj_Linux_User_Guide

Read User Manual Online (PDF format)

Read User Manual Online (PDF format)  >>

Download This Manual (PDF format)

Download this manual  >>

Related Manuals