QUECTEL LTE-A Module Series Module with USB Adapter
Product Information
Specifications
- Product Series: EG512R&EM12xR&EM160R Series
- Module Version: LTE-A Module Series Version 1.2
- Date: 2024-09-25
- Status: Released
Product Usage Instructions
Getting Started
Before using the product, ensure you have read the user manual thoroughly.
Installation
Follow the installation instructions provided in the user manual to set up the product correctly.
Operation
Operate the product according to the guidelines outlined in the user manual for optimal performance.
Maintenance
Regularly maintain and update the product as per the maintenance schedule provided in the user manual.
INTRODUCTION
- At Quectel, we aim 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 non-exclusive, royalty-free license to use the material. We reserve the right to take legal action for noncompliance with the abovementioned requirements, unauthorized use, or other illegal or malicious use of the 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 third-party intellectual property rights about 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 of our products or any other hardware, software, device, tool, information, or product. We disclaim any warranties arising from the course of dealing or usage of trade.
Privacy Policy
To implement module functionality, certain device data is uploaded to Quectel’s or third-party 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 policies.
Disclaimer
- We acknowledge no liability for any injury or damage arising from the reliance upon the information.
- We shall bear no liability resulting from any inaccuracies or omissions, or from the use of the information contained herein.
- 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.
- 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.
Introduction
- Quectel LTE-A EG512R-EA、EM120R-GL、EM121R-GL, and EM160R-GL series modules support FOTA (Firmware Over-The-Air) function to upgrade the firmware of partitions such as modem, system, boot, sbl, and tz.
- With this function, you (the user) can upgrade the module firmware to a new version or revert the firmware to an old version. The firmware package only contains the difference between the original firmware version and the target firmware version, with the amount of data transmission greatly reduced and the transmission time greatly shortened.
FOTA Implementation and User Responsibility
- Quectel follows industry best practices with regard to firmware updates for its modules by enabling users to offer FOTA updates. Please note that Quectel cannot unilaterally push updates to users’ devices. Quectel hands full control over the FOTA process to users. In the process, Quectel solely provides the updated firmware but cannot initiate FOTA updates on users’ devices.
- Users can determine when to push the update to the Quectel modules using the FOTA mechanism by configuring corresponding parameters for the update that the users host on their infrastructures.
Application Modules
Table 1: Applicable Modules

Firmware Upgrade Procedure Over FOTA
The following chart illustrates the firmware upgrade procedure via FOTA when the firmware package is stored on an FTP/HTTP(S) server.

As shown in the above figure, the following steps need to be performed to update the firmware when the firmware package is stored on an FTP/HTTP(S) server:
- Step 1: Get the firmware package from Quectel Technical Support.
- Step 2: Upload the firmware package from the host to your FTP/HTTP(S) server.
- Step 3: Execute AT+QFOTADL on the host to trigger automatic firmware upgrade on the module.
- Step 4: The module automatically downloads the firmware package from your FTP/HTTP(S) server via LTE/WCDMA network.
- Step 5: The module internally runs the updating program to automatically upgrade the module firmware.
NOTE
You are responsible for providing and managing the FTP/HTTP(S) server for the firmware upgrade. Quectel does not supply the server or assist with its setup.
Get Firmware Package
Before firmware upgrading, check the original firmware version name with ATI and confirm the target firmware version, and then send the two firmware versions to Quectel Technical Support to obtain the corresponding firmware package.
Upload Firmware Package to FTP/HTTP(S) Server
- Step 1: Please set up an FTP/HTTP(S) server before using the FOTA function. (Quectel does not provide such servers.)
- Step 2: After completing the server setup, upload the firmware package to your server and save the storage path.
Execute AT Command to Upgrade the Firmware
After uploading the firmware package to the FTP/HTTP(S) server, execute AT+QFOTADL on the host to initiate the automatic over-the-air download and upgrade of the module firmware package.
NOTE
The module supports firmware upgrades via both the FTP/HTTP(s) server and the local file system. For more information on the firmware upgrades via the local file system.
Description of FOTA AT Commands
AT Command Introduction
Definitions
- <CR> Carriage return character.
- <LF> Line feed character.
- <…> Parameter name. Angle brackets do not appear on the command line.
- […] Optional parameter of a command or an optional part of the TA information response. Square brackets do not appear on the command line. When an optional parameter is not given in a command, the new value equals its previous value or the default settings, unless otherwise specified.
- Underline the Default setting of a parameter.
AT Command Syntax
All command lines must start with AT or at and end with <CR>. Information responses and result codes always start and end with a carriage return character and a line feed character:
<CR><LF><response><CR><LF>. In tables presenting commands and responses throughout this document, only the commands and responses are presented, and <CR> and <LF> are deliberately omitted.
Table 2: Types of AT Commands

Declaration of AT Command Examples
The AT command examples in this document are provided to help you learn about the use of the AT commands introduced herein. The examples, however, should not be taken as Quectel’s recommendations or suggestions about how to design a program flow or what status to set the module into. Sometimes multiple examples may be provided for one AT command. However, this does not mean that there is a correlation among these examples, or that they should be executed in a given sequence. The URLs, domain names, IP addresses, usernames/accounts, and passwords (if any) in the AT command examples are provided for illustrative and explanatory purposes only, and they should be modified to reflect your actual usage and specific needs.
AT+QFOTADL Firmware Upgrade via FOTA
This command enables automatic firmware upgrade via FOTA. After executing the corresponding command, the module will automatically download or load the firmware package from an FTP/HTTP(S) server or the local file system. After the package is successfully downloaded or loaded, the module will automatically upgrade the firmware and then reboot.
| AT+QFOTADL Firmware Upgrade via FOTA | |
| Test Command
AT+QFOTADL=? |
Response
OK |
| Maximum Response Time | 300 ms |
AT+QFOTADL=<FTP_URL> Upgrade Firmware over FTP Server
If the firmware package is stored on an FTP server, execute AT+QFOTADL=<FTP_URL> to initiate automatic firmware upgrade via FOTA. The module will download the package from the FTP server over the air, and then reboot and upgrade the firmware automatically.
| AT+QFOTADL=<FTP_URL> Upgrade Firmware over FTP Server | |
| Write Command
AT+QFOTADL=<FTP_URL> |
Response
OK |
| +QIND: “FOTA”, “FTPSTART”
+QIND: “FOTA”,”FTPEND”,<FTP_err> +QIND: “FOTA”, “START” +QIND: “FOTA”, “UPDATING”,<percent> +QIND: “FOTA”, “UPDATING”,<percent> … +QIND: “FOTA”, “END”,<err> |
|
| Maximum Response Time | 300 ms |
| Characteristics | – |
Parameter
- <FTP_URL> String type. The URL where the firmware package is stored on the FTP server.
The maximum length: 512; Unit: byte. It should start with “ftp://”.
For example: “ftp://<username>:<password>@<serverURL>:<port>/<file_path>”. - <username> String type. The user name for authentication.
- <password> String type. The password for authentication.
- <serverURL> String type. The address of the FTP server owned and operated by you.
- <port> Integer type. The port of the FTP server. Range: 1–65535. Default: 21.
- <file_path> String type. The file name on the FTP server.
- <FTP_err> Integer type. The FTP error code.
0 Downloaded the firmware package from the FTP server successfully.
Others failed to download the firmware package from the FTP server. - <percent> Integer type. The upgrade progress is in percentage. Range: 0–100.
- <err> Integer type. Error code of upgrading. 0 Upgraded the firmware successfully
Others failed to upgrade the firmware.
Example
- You can perform the firmware upgrade after storing the firmware package on your FTP server.
“ftp://test:test@192.0.2.2:21/Jun/update-v12-to-v13.zip” is used as an example URL below. (The URL is provided for illustrative purposes only. Please replace it with a valid URL that corresponds to your FTP server and firmware package.) Execute the following command to initiate automatic firmware upgrade via FOTA. The module downloads the firmware package and upgrades the firmware automatically. - AT+QFOTADL=”ftp://test:test@192.0.2.2:21/Jun/update-v12-to-v13.zip” OK
- +QIND: “FOTA”, “FTPSTART”
- +QIND: “FOTA”, “FTPEND”,0 //Finish downloading the firmware package from the FTP server.
- The module reboots automatically, and the USB port is reinitialized. If the current port is a USB port, the MCU should close and reopen it. After the module is rebooted, the first URC should be reported within 90 seconds. Otherwise, it means an unknown error occurs.
- +QIND: “FOTA”, “START”
- +QIND: “FOTA”, “UPDATING”,1
- +QIND: “FOTA”, “UPDATING”,20
- +QIND: “FOTA”, “UPDATING”,100
- +QIND: “FOTA”, “END”,0 //The module automatically restarts to complete the FOTA upgrade.
AT+QFOTADL=<HTTP_URL> Upgrade Firmware over HTTP(S) Server
If the firmware package is stored on an HTTP(S) server, execute AT+QFOTADL=<HTTP_URL> to initiate automatic firmware upgrade via FOTA. The module will download the package from the HTTP(S) server over the air, and then reboot and upgrade the firmware automatically.
| AT+QFOTADL=<HTTP_URL> Upgrade Firmware over HTTP(S) Server | |
| Write Command
AT+QFOTADL=<HTTP_URL> |
Response
OK |
| +QIND: “FOTA”, “HTTPSTART”
+QIND: “FOTA”, “HTTPEND”,<HTTP_err> +QIND: “FOTA”, “START” +QIND: “FOTA”, “UPDATING”,<percent> +QIND: “FOTA”, “UPDATING”,<percent> … +QIND: “FOTA”, “END”,<err> If there is any error: ERROR |
|
| Maximum Response Time | 300 ms |
| Characteristics | – |
Parameter
- <HTTP_UTheeThe URL where the firmware packagestored indinn the HTTP(S) server. The maximum length is 512; Unit: byte.
It should start with “http(s)://”. For example: “http(s)://<HTTP_server_URL>:<HTTP_port>/<HTTP_file_path>”. - <HTTP_server_URL> String type. The IP address or domain name of the HTTP(S) server owned and operated by you.
- <HTTP_port> Integer type. The port of the HTTP(S) server. Range: 1–65535. Default: 80.
- <HTTP_file_path> String type. The file name on the HTTP(S) server.
- <HTTP_err> Integer type. The HTTP(S) error code.
- 0 Downloaded the firmware package from the HTTP(S) server successfully
- Others failed to download the firmware package from the HTTP(S) server.
- <percent> Integer type. The upgrade progress is in percentage. Range: 0–100.
- <err> Integer type. Error code of upgrading.
- 0 Upgraded the firmware successfully
- Others Failed to upgrade the firmware.
Example
- You can perform the firmware upgrade after storing the firmware package on your HTTP(S) server. “http://www.example.com:100/update.zip” is used as an example URL below. (The URL is provided for illustrative purposes only. Please replace it with a valid URL that corresponds to your HTTP(S) server and firmware package.) Execute the following command to initiate automatic firmware upgrade via FOTA.
The module downloads the firmware package and upgrades the firmware automatically.
AT+QFOTADL=”http://www.example.com:100/update.zip” OK- +QIND: “FOTA”, “HTTPSTART”
- +QIND: “FOTA”, “HTTPEND”,0 //Finish downloading the firmware package from the HTTP server.
- The module reboots automatically, and the USB port is rereinitialized. The current port is a USB port; the MCU should close and reopen it. After the module is rebooted, the first URC should be reported within 90 seconds. Otherwise, it means an unknown error occurs.
- +QIND: “FOTA”, “START”
- +QIND: “FOTA”, “UPDATING”,1
- +QIND: “FOTA”, “UPDATING”,2
- +QIND: “FOTA”, “UPDATING”,100
- +QIND: “FOTA”, “END”,0 //The module automatically restarts to complete the FOTA upgrade.
AT+QFOTADL=<file_name> Upgrade Firmware over Local File System
If the firmware package has already been stored in the module’s file system, execute AT+QFOTADL=<file_name> to initiate automatic firmware upgrade via FOTA. Then the module will load the package from the local file system, and then reboot and upgrade the firmware automatically.
| AT+QFOTADL=<file_name> Upgrade Firmware over Local File System | |
| Write Command
AT+QFOTADL=<file_name> |
Response
OK |
| +QIND: “FOTA”, “START”
+QIND: “FOTA”, “UPDATING”,<percent> +QIND: “FOTA”, “UPDATING”,<percent> … |
|
| Maximum Response Time | 300 ms |
| Characteristics | – |
Parameter
- <file_name> String type. The path of the firmware packages is stored on the local file system. The maximum length is: 512; Unit: byte. It should start with “/cache/ufs/” in UFS.
- <percent> Integer type. The upgrade progress is in percentage. Range: 0–100.
- <err> Integer type. Error code of upgrading.
- 0 Upgraded the firmware successfully
- Others failed to upgrade the firmware.
NOTE
- Before using this command, make sure that the firmware package is stored in the module. You can upload the package to the module through AT+QFUPL. For details of AT+QFUPL, see document [1].
- Please disconnect the data call of the host first before proceeding with the FOTA upgrade, because when the host performs a data call with the module, it causes the internal FOTA upgrade program of the module to be unable to perform a data call.
- The first APN is used for data calls during FOT, the A upgrade by default. If the data call with the first APN is occupied by any program of the module, the module cannot use this APN to perform another data call at the same time. Therefore, the module should perform FOTA upgrade after the program disconnects the data call with this APN or after you execute AT+QFOTAPID to switch the channel.
- If Verizon certification uses the first APN to perform a data call, it is suggested to use AT+QFOTAPID to switch channels for FOTA upgrade.
- For details of AT+QFOTAPID, please contact Quectel Technical Support.
Example
- Upgrade firmware when the firmware package is stored on the local file system.
AT+QFOTADL=”/cache/ufs/update-v12-to-v13.zip”
OK - The module reboots automatically, and the USB port is rereinitialized. The current port is a USB port, the MCU should close and reopen it. After the module is rebooted, the first URC should be reported within 90 seconds. Otherwise, it means an unknown error occurs.
- +QIND: “FOTA”, “START”
- +QIND: “FOTA”, “UPDATING”,1
- +QIND: “FOTA”, “UPDATING”,2
- +QIND: “FOTA”, “UPDATING”,100
- +QIND: “FOTA”, “END”,0 //The module automatically restarts to complete the FOTA upgrade.
Exception Handling and Precautions
Exception Handling
To improve the upgrade success rate, the module will set the upgrade flag before starting the upgrade. When an error is reported during the upgrade, the module will automatically restart. After the upgrade flag is found, the module will continue to upgrade. If the upgrade fails five times, the upgrade is a complete failure, and the module will delete the flag, exit, and try to start the module normally. The upgrade interface is as follows:
- +QIND: “FOTA”, “START”
- +QIND: “FOTA”, “UPDATING”,20
- +QIND: “FOTA”, “END”,<err>
…
//The module restarts automatically
… - +QIND: “FOTA”,”START”
- +QIND: “FOTA”,”UPDATING”,20
- +QIND: “FOTA”,”UPDATING”,30
… - +QIND: “FOTA “, “END”,0
NOTE
The consecutive upgrade timare is only valid when an upgrade error is reported, while there is no limit to the number of upgrades in the event of an abnormal power failure. If an abnormal power failure occurs durithe ng mthe odule upgrade process, the upgrade can also continue after the module is restarted. After the upgrade is successful, the upgrade flag will also be deleted.
Precautions
- After AT+QFOTADL is executed, the host receives URC +QIND: “FOTA”, “START”, which means that the upgrade begins, and URC +QIND: “FOTA”, “END”,0 means the upgrade is completed. After the upgrade, the module automatically restarts and enters normal mode. Do not power off the module during the upgrade.
- If the host does not receive any URC within 4 minutes during the upgrade process, you can restart the module.
- It is recommended to set up a flag to mark the firmware upgrade task and remove it after the upgrade is completed successfully.
NOTE
It is recommended not to power off the module during the FOTA upgrade process.
Summary of Error Codes
This chapter introduces the error codes related to Quectel modules and other networks. details about <FTP_err>, <HTTP_err>, and <err> are described in the following tables.
Table 3: Summary of <FTP_err> Codes

Table 4: Summary of <HTTP_err> Codes

Table 5: Summary of <err> Codes

Appendix References
Table 6: Related Documents

Table 7: Terms and Abbreviations

About the Document
Revision History

Frequently Asked Questions (FAQ)
- Where can I find technical support for the product?
For technical support, visit http://www.quectel.com/support/technical.htm or email support@quectel.com. - How do I report documentation errors?
To report documentation errors, visit http://www.quectel.com/support/technical.htm or contact support@quectel.com.
Documents / Resources
![]() |
QUECTEL LTE-A Module Series Module with USB Adapter [pdf] User Guide EG512R, EM12xR, EM160R, LTE-A Module Series Module with USB Adapter, LTE-A Module Series, Module with USB Adapter, with USB Adapter, USB Adapter |




