SKU_TEL0163_A7670G_CAT1_4G_Communication_Module WIKI

1. Introduction

This is a 4G CAT1 module, supporting wireless communication modes such as LTE-TDD/LTE-FDD/GSM, with global coverage. Its maximum downlink speed of 10Mbps and uplink speed of 5Mbps will provide you with a dependable low-speed data transmission experience.

Furthermore, this module integrates a plethora of network protocol support, including TCP/IP/IPV4/Multi-PDP/FTP/FTPS/HTTP/HTTPS/DNS, offering you a variety of options for your data transmission needs. Whether it's simple data transfer or intricate network communication, it can all be effortlessly accomplished. Additionally, SMS functionality has been thoughtfully included, supporting MT/MO/CB/Text and PDU modes, allowing for flexible text message interaction.

In terms of design, the module comes with power indicator lights, network signal indicator lights, antenna interfaces, and other features that greatly facilitate your project development and validation process. You can easily monitor the module's status and connectivity, enabling more efficient debugging and testing. Combined with detailed AT commands, the use of our provided communication routines will allow you to quickly grasp module operation and configuration, thus expediting the achievement of your project goals.

This series of 4G products differentiates the modules based on communication speed and satellite positioning. The table below presents the functional parameters of each 4G product for your reference during selection:

Product name CAT1: SIM7600G 4G communication module CAT4: SIM7600G-H 4G communication module CAT1: A7670G 4G communication module
Product SKU TEL0161 TEL0162 TEL0163
Network classification CAT1 CAT4 CAT1
Communication rate 10Mbps/5Mbps 150Mbps/50Mbps 10Mbps/5Mbps
Frequency band LTE-FDD: B1/B2/B3/B4/B5/B7/B8/B12/B13/B18/
B19/B20/B25/B26/B28/B66 LTE-TDD: B34/B38/B39/B40/B41 WCDMA: B1/B2/B4/B5/B6/B8/B19 GSM: 850/900/1800/1900
LTE-FDD: B1/B2/B3/B4/B5/B7/B8/B12/B13/B18/
B19/B20/B25/B26/B28/B66 LTE-TDD: B34/B38/B39/B40/B41 WCDMA: B1/B2/B4/B5/B6/B8/B19 GSM: 850/900/1800/1900
LTE-FDD: B1/B2/B3/B4/B5/B7/B8/B12/B13/
B18/B19/B20/B25/B26/B28/B66 LTE-TDD: B38/B39/B40/B41 GSM: 850/900/1800/1900
Frequency band applicable region global global global
GNSS satellite positioning GNSS engine (GPS,GLONASS and BD) Protocol: NMEA 0183 GNSS engine (GPS,GLONASS and BD) Protocol: NMEA 0183 ×
USB interface
Onboard microphone
External power supply voltage 5V~12V 5V~12V 5V~12V
Network protocol TCP/IP/IPV4/Multi-PDP/FTP/FTPS/HTTP/HTTPS/DNS TCP/IP/IPV4/Multi-PDP/FTP/FTPS/HTTP/HTTPS/DNS TCP/IP/IPV4/Multi-PDP/FTP/FTPS/HTTP/HTTPS/DNS
Short message MT/MO/CB/TEXT /PDU MT/MO/CB/TEXT /PDU MT/MO/CB/TEXT /PDU

2. Technical Specifications:

3. Functional Diagram

Interface Name Description
ANT The 4G signal antenna interface, connects to GSM antenna
UART UART interface (interface voltage level 3.3V-5V)
USB-Type C USB device interface, used for communication and parameter configuration with a computer
Power IN External power supply required when using the UART interface (5V-12V)
Audio OUT External 8Ω 1.0W speaker
SIM Card Insert a SIM card

Important Notes:

1.When using the PH2.0 socket for module communication, an external power supply of 5V-12V is required.

2.Net - Network signal indicator:

4. Dimensional Diagram

5. Common AT Commands

Command Significance Return Value
AT AT test command OK
ATE ATE1 sets echo, ATE0 disables echo OK
AT+CGMI Query module manufacturer OK
AT+CGMM Query module model OK
AT+CGSN Query product serial number OK
AT+CSUB Query module version and chip OK
AT+CGMR Query firmware version number OK
AT+IPR=9600 Set the module's temporary hardware serial port baud rate to 9600 +IPR: OK
AT+IPR? Query the current hardware serial port baud rate +IPR: Baud Rate
AT+CRESET Reset the module (the module will restart and automatically register on the network) OK
AT+CSQ Query network signal quality, returns signal value +CSQ: 14,99 OK
AT+CPIN? Query SIM card status, returns READY if the SIM card is recognized +CPIN: READY
AT+COPS? Query the current operator, will return operator information after normal connection +COPS: OK
AT+CREG? Query network registration status +CREG: OK

Note: This AT command is case-insensitive.

6. Sample Applications

Hardware Preparation:

Software Preparation:

Driver Installation:

Install the driver, unzip the package, and locate the extracted files.

Select "Next"

Please install the driver file onto the disk of your choice.

Restart the system, and the driver installation will be successful.

Using Windows 10 as an example, after successfully installing the driver following the aforementioned method, connect the USB-type C interface on the module and wait for the appearance of the "Simcom Port" in the computer device management interface.

The "Simcom Network Adapter Driver" will appear in the network adapter interface.

(1)Initiating and Receiving Phone Calls

Command Significance Response
AT+CNUM Query the local number (not all SIM cards support this command) +CNUM OK
ATD; Dial a specified target mobile number OK
AT+CHUP Hang up the call OK
AT+CLIP=1 Enable caller ID display OK
ATA Answer the call OK

Demonstration of Making and Receiving Phone Calls:

1.Send the ATD138xxxxxxxx; command to dial the target user's phone number. Note: Remember to add a semicolon at the end of the command.

VOICE CALL: BEGIN: Indicates the call has started. After hanging up, you will see VOICE CALL END: xxxxx and NO CARRIER, indicating the end of the call.

RING: Indicates an incoming call. Use the ATA command to answer the call.

VOICE CALL BEGIN: Indicates that the call has been answered.

2.During the call, use the AT+CHUP command to hang up.

(2)Transmitting Text Messages

Command Significance Response
AT+CMGF=1 Set SMS mode to TEXT mode OK
AT+CMGS="phone number" Set the recipient's phone number Return ">," to send the required content
AT+CMGR=SMS number Read the Nth message Read the message
AT+CMGD=SMS number Delete the Nth message OK
AT+CPMS? Check message storage and number of messages "SM," number of messages, maximum message limit

Demonstration of Sending Messages and Querying:

1.Send the AT+CMGF=1 command to set the SMS mode to TEXT mode.

2.Then, input AT+CMGS="138xxxxxxxx" to send a message to the target phone. You will receive the ">" prompt, then input the message you want to send. Note: When dispatching the contents of the message, omit the carriage returns and line breaks.

3.After composing and sending the message, confirm it and check "SendHEX" to send the message in 16-bit hexadecimal. Send 1A (used to instruct the module to perform the sending operation), and receive +CMGS: ok, indicating successful transmission.

These are the steps for sending SMS messages. If you want to inquire about the number of existing messages and the message limit, you can use the AT+CPMS? command. Note: The number of existing messages starts from 1.

You can also input AT+CMGR=X to read the specific content of the Xth message or use AT+CMGD=X to delete the Xth message.

(3)MQTT Connection

Command Significance Response
AT+CMQTTSTART Initiate the MQTT service OK
+CMQTTSTART: 0
AT+CMQTTACCQ=0,"client test ID",, Acquire an MQTT client
"client test ID" can be customized; indicates the server type (0: TCP, 1: SSL/TLS); indicates the MQTT protocol version (3: MQTT version 3.1, 4: MQTT version 3.1.1)
OK
AT+CMQTTCONNECT=0,"",,,"user_name","password" Connect to the MQTT server
must start with "tcp://". If does not include a port, the default port is 1883, e.g., tcp://116.247.119.165:5141; is the interval between receiving two messages by the client (1 second to 64800 seconds); indicates two session flags when the client disconnects from the server, defaulting to 1;
OK
AT+CMQTTSUB=0,,0 Subscribe to a message from the server
input the length of the topic data (1 to 1024 bytes)
>

OK
AT+CMQTTTOPIC=0, Input the message publishing topic
input the length of the topic data (1 to 1024 bytes)
>

OK
AT+CMQTTPAYLOAD=0, Input the message body for publishing
input the length of the message data (1 to 10240 bytes)
>

OK
AT+CMQTTPUB=0,, Publish the message to the server
(0: at most once, 1: at least once, 2: exactly once); (60 seconds to 180 seconds)
OK
AT+CMQTTDISC=0,120 Disconnect from the server
Here, set the disconnect timeout value to 120 seconds, within the range of 60 seconds to 180 seconds
OK
+CMQTTDISC: 0,0

Demonstration of Sending Messages to the Target Server:

This example demonstrates sending a predefined message to the Easy IoT platform using AT commands with the A7670G module.

Enter Easy IoT. If you do not possess an account, you may commence by registering one.

Upon successful login, proceed to open your workspace. Retrieve your credentials: username, password. Then, proceed to add a novel device, denoted as a Topic, and meticulously document the aforementioned three pivotal parameters.

1.Open the SSCOM assistant and send the AT+CMQTTSTART command to initiate the module's MQTT service.

2.Send the AT+CMQTTACCQ=0,"EASYIOT" command (set the connection mode to TCP and customize the username as "EASIOT").

3.Send the AT+CMQTTCONNECT=0,"tcp://iot.dfrobot.com:1883",120,1,"user","password" command (TCP, set the server address to Easy IoT, set the message interval to 120 seconds [maximum 64800], enter the account [user] and password [password] obtained from the Easy IoT platform, and clear user information when the device is offline).

4.Send the AT+CMQTTSUB=0,9,1 command (parameter 1 is the client parameter, parameter 2 sets the number of message publications, parameter 3 sets the publication timeout interval in seconds) and wait for the ">" prompt. Then send the topic obtained from the Easy IoT platform.

5.Send the AT+CMQTTTOPIC=0,9 command (set the publishing topic, with parameter 1 as the client parameter and parameter 2 as the topic data length). Wait for the ">" prompt and then send the topic obtained from the Easy IoT platform.

6.Send the AT+CMQTTPAYLOAD=0,12 command (set the message content, similar to AT+CMQTTTOPIC, and directly send characters afterward; ensure the length matches). Wait for the ">" prompt and then send the message content (HELLODFROBOT).

7.Send the AT+CMQTTPUB=0,1,60 command (publish the message, parameter 1 is the client parameter, parameter 2 sets the number of message publications, and parameter 3 sets the publication timeout interval in seconds).

8.Finally, access the Easy IoT workspace, check the detailed information of the created topic, and verify that the message (HELLODFROBOT) sent from the module has been received.

Note: Line breaks should also be entered when inputting topics and messages.

(4)Audio Playback

Command Significance Response
AT+CREC=1,"c:/recording.wav" Start recording a WAV audio and save it to the local path c:/recording.wav. "1" represents the local path. +CREC: 1
OK
AT+CREC=0 Stop recording WAV audio +CREC: 0
OK
+RECSTATE: crec stop
AT+CCMXPLAYWAV="c:/recording.wav",, Play the local path's WAV audio, (0: local path, 1: remote path); (0: ) +WAVSTATE: wav play
OK
+WAVSTATE: wav play stop
AT+CCMXSTOPWAV Stop playing WAV audio files +CCMXSTOPWAV:
OK
+WAVSTATE: wav play stop
AT+CCMXPLAY="c:/rec.mp3",0,0 Play an audio file from the local path. "0,0" indicates default local playback and playback once. +CCMXPLAY:
OK
+AUDIOSTATE: audio play
+AUDIOSTATE: audio play stop
AT+CCMXSTOP Stop playing audio files +CCMXSTOP:
OK
+AUDIOSTATE: audio play stop

Recording and Playing Back WAV Audio - Demonstration

1.Input AT+CREC=1,"c:/rec.wav" to start recording WAV audio and save it to the local path e:/rec.wav. A return of +CREC: 1, OK indicates successful recording, while ERROR indicates recording failure. *Note: *Use only English characters when sending AT commands.

2.Send AT+CREC=0 to stop recording WAV audio. To play the previously recorded WAV audio, use the command AT+CCMXPLAYWAV="c:/rec.wav",0,255. If you want to stop playback, you can use the AT+CCMXSTOPWAV command.

Please take note: The audio file should be placed within the "C:/" directory.

(5)Power Saving Mode

Command Significance Response
AT+CFUN=0 Minimum functional mode. The serial port can still be used, but functions related to RF and SIM card, as well as some AT commands, cannot be used. OK
AT+CFUN=1 Full functional mode with maximum power. OK

(6)Sleep Mode

In sleep mode, the module can still receive paging, SMS, and voice calls from the network.

Command Significance Response
AT+CSCLK=0 UART remains operational OK
AT+CSCLK=1 DTR raised, module enters DTR sleep mode OK
AT+CSCLK=2 Module enters RX sleep state, can be awakened by sending data via the serial port (e.g., AT) OK
AT+CSCLK? View the current UART sleep state +CSCLK: Status OK

7. Arduino Example Code

In addition to the methods mentioned earlier for controlling the A7670G module via PC and onboard USB virtual serial port, you can also use Arduino to send AT commands to debug and operate the A7670G module.

In this example, we will modify the baud rate of the A7670G module and the main controller.

Hardware Preparation:

Software Preparation:

Connection Diagram and Steps:

Steps

  1. Insert the SIM card into the expansion board and connect it to the DFRduino UNO R3 mainboard as shown in the diagram. Connect an external power supply as well.
  2. Wait for the SIM card to register on the network. The NET status indicator LED should start flashing rapidly (once every 1 second).
  3. Download the program below to the DFRduino UNO R3 and open the serial monitor, setting the baud rate to 115200.
#include "SoftwareSerial.h"
   SoftwareSerial softSerial(/*rx =*/4, /*tx =*/5);

void setup() {

  Serial.begin(115200); // Initialize the hardware UART
  softSerial.begin(115200); // Initialize the software UART
  Serial.println("For example, if you type AT\\r\\n, OK\\r\\n will be responsed!");
  Serial.println("Enter your AT command :");
}

void loop() {
  if (softSerial.available()) {
    char data = softSerial.read(); // Read data from the software UART
    Serial.write(data); // Transmit to the hardware UART
  }

  if (Serial.available()) {
    char data = Serial.read(); // Read data from the hardware UART
    softSerial.write(data); // Transmit to the software UART
  }
}

Transmitting AT commands, receiving "OK" as the serial response, signifies successful communication.

Please note that when using an Arduino UNO for serial communication, the module's default communication rate is 115200. The oscillation frequency of the external crystal can result in significant baud rate errors, causing data corruption. It is necessary to set both the module's baud rate and the program's baud rate to 9600.

To achieve this, send the command "AT+IPREX=9600" to set the module's baud rate to 9600 after a restart.

Subsequently, modify the UNO's serial communication rate and re-upload the program.

#include "SoftwareSerial.h"
   SoftwareSerial softSerial(/*rx =*/4, /*tx =*/5);

void setup() {

  Serial.begin(9600); // Initialize the hardware UART
  softSerial.begin(9600); // Initialize the software UART
  Serial.println("For example, if you type AT\\r\\n, OK\\r\\n will be responsed!");
  Serial.println("Enter your AT command :");
}

void loop() {
  if (softSerial.available()) {
    char data = softSerial.read(); // Read data from the software UART
    Serial.write(data); // Transmit to the hardware UART
  }

  if (Serial.available()) {
    char data = Serial.read(); // Read data from the hardware UART
    softSerial.write(data); // Transmit to the software UART
  }
}

Using a baud rate of 9600, send "AT" and "AT+IPREX?" to the serial port, which should return "OK" and the current baud rate value of 9600, confirming the successful modification of the communication rate.

8. Internet Access on LattePanda

Hardware Preparation:

Operation steps:

9. Querying Result Codes and Their Meanings

Detailed Result Code Meaning
OK Command executed successfully with no errors
CONNECT Connection successful
RING Ring detected (incoming call received)
NO CARRIER No established connection or connection disconnected
ERROR Invalid command or command failed
NO DIALTONE No dial tone, unable to dial, incorrect mode
BUSY Currently in a call or server is busy
NO ANSWER Connection timed out

More Document Downloads

FAQ

For any questions, advice or cool ideas to share, please visit the DFRobot Forum.