SIM7600G_H_LTE_Shield_V1.0_SKU_TEL0124-DFRobot

1.Introduction

SIM7600G-H 4G (LTE) is an Arduino Shield that provides support for 2G/3G/4G, GNSS satellite positioning, and LTE CAT4 (150Mbps DL, 50Mbps UL). It adheres to the standard Arduino pin package and is compatible with Arduino UNO, Leonardo, Mega, and other main controllers. It supports LTE-TDD/LTE-FDD/WCDMA/GSM frequency bands, and GNSS positioning supports GPS, CLONASS, BD, and other satellite systems. It incorporates various network protocols and is suitable for global regions. By utilizing this expansion board, one can effortlessly achieve high-speed internet access, wireless communication, audio recording and playback, telephony, messaging, and global positioning functionalities.

2.Features

3.Technical Specifications:

4: Interface Diagram

Function Name Interface Name Function/Interface Description
Main antenna interface MAIN Connect GSM antenna
Auxiliary antenna interface AUX Connect GSM antenna
Positioning antenna interface GNSS Connect GPS positioning antenna
Digital interface 8 D8
Digital interface 7 D7
RX RXD/Receiving data
TX TXD/Sending data
Digital interface 1 D1
Digital interface 0 D0
RI RI normally stays high, but when a short message is received, or when a URC is reported, RI will output low
DTR Pull up to enter sleep mode, pull down to exit sleep mode
Flight mode interface FT Flight mode enable port, active low
GND Grounding
USB function interface USB device interface for communication with PC for testing or setting parameters

Attention:

  1. Occupied pins: D0, D1, D12, where digital pin "D12" is internally connected to the power on/off pin of the SIM7600G(-H) module, used for controlling the power on/off of the SIM7600G(-H) module.
  2. The SIM7600G(-H) module has an onboard microphone (MIC) and a 3.5mm SIM7600G(-H) microphone interface, both using the same microphone channel.
  3. Boot switch button - Power on/off switch for the SIM7600G(-H) module. Short press for 1s to power on, long press for 3s to power off.
  4. Indicator light "ON" - Power indicator light for the SIM7600G(-H) module.*The module can only work properly when an external power supply is connected. When ending serial debugging, disconnect the serial connection first, and then disconnect the external power. *
  5. Net - Network signal indicator light.

5: Dimensional Diagram

6.Common AT Information Command Set

Command Meaning Return Value
AT AT Testing Commands OK
ATE ATE1 for enabling echo, ATE0 for disabling 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 serial number OK
AT+IPREX Set module hardware serial port baud rate +IPREX: OK
AT+CRESET Reset 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 to indicate the SIM card is properly recognized +CPIN: READY
AT+COPS? Query current operator, returns operator information after successful network connection +COPS: OK
AT+CREG? Query network registration status +CREG: OK

Note: This AT command is case-insensitive.

7. Network Card Functionality

Hardware Preparation

Software Preparation

Install the driver by extracting the compressed package and locating the extracted files.

Select "Next"

Install the driver file to your chosen disk

Restart the system, successful installation of the driver

aking Windows 11 as an example, following the above method, after successfully installing the driver, connect the Micro USB port on the module, press the BOOT button, and wait for the Simcom port to appear in the computer device manager interface

Simcom network card driver appears in the network adapter interface

Additional mobile network options appear in the computer's network interface, open the connection to the mobile network

Enter www.dfrobot.com in the web browser, use the module as the internet card, the webpage opens normally, network connection successful

8. MQTT Connection

This experiment involves using AT commands to send predefined messages from SIM7600G(-H) to the target server.

Operating Steps:

Access Easy IoT, if you don't have an account, you can register first.

After successful login, open the workspace and obtain the account (user) and (password), add a new device (Topic), and record the three important parameters mentioned above

Open SSCOM assistant, send AT+CMQTTSTART (to start the MQTT service) to start the module's MQTT service

Send AT+CMQTTACCQ=0, "EASYIOT" (Set the connection mode as TCP and the username as EASIOT). Note: (0: TCP, 1: SSL, username can be customized). Set the connection mode as TCP and the username as EASYIOT

Send AT+CMQTTCONNECT=0, "tcp://iot.dfrobot.com:1883", 120, 1, "user", "password" (TCP, set the server address as Easy IoT, heartbeat time is 120 seconds [maximum 64800], enter the account (user) and password (password) obtained from the Easy IoT platform in the user and password fields respectively. Clear user information when the device is offline, user, password)

Send AT+CMQTTSUB=0, 9, 1 (Parameter 1 is the client parameter, parameter 2 is the message publishing count setting, parameter 3 is the publishing timeout interval in seconds). When the ">" symbol appears, send the topic obtained from the Easy IoT platform

Send AT+CMQTTTOPIC=0, 9 (Set the publishing topic, the first parameter is the client numeric parameter 0, 1, the second parameter is the length of the topic data). When the ">" symbol appears, send the topic obtained from the Easy IoT platform

Send AT+CMQTTPAYLOAD=0, 12 (Set the message content, similar to the parameters of AT+CMQTTTOPIC, directly send the characters afterwards, the length should correspond). When the ">" symbol appears, send the message content (helloDFROBOT)

Send AT+CMQTTPUB=0, 1, 60 (Publish the message, parameter 1 is the client parameter, parameter 2 is the message publishing count setting, parameter 3 is the publishing timeout interval in seconds)

Access the Easy IoT workspace and view the detailed information of the created topic, confirming the receipt of the message (helloDFROBOT) sent from the module.

Note: Press Enter/Return after inputting the topic and message.

9. TCP/IP Connection

  1. To establish a TCP/IP connection with the module, find a public TCP server. Open the public TCP server and note down its IP address and port number.
  2. Open SSCOM and send the AT+NETOPEN command to open the network.
  3. Send AT+CIPOPEN=0, "TCP", "IP address", port number. Upon receiving the "OK" response, the module is successfully connected to the server.
  4. Send AT+CIPSEND=0, 5 (send five characters). When the ">" prompt appears, send "HELLO".
  5. The public TCP server receives the data message "HELLO" from the SIM7600G(-H) module, confirming a successful TCP connection.

10. Dialing and Answering Calls

Command Meaning Return Value
AT+CNUM Query Local Number (not all SIM cards support this command) +CNUM OK
AT+CSDVC AT+CSDVC=1: Switch to headphone output AT+CSDVC=3: Switch to speaker output OK
AT+CLVL=? Query volume range OK
AT+CLVL=2 Set volume to 2 OK
ATD; Dial the specified mobile number OK
AT+CHUP Hang up the call OK
AT+CLIP=1 Set caller ID display OK
ATA Answer the call OK

Demonstration of Making and Receiving Phone Calls

Send the command ATD138xxxxxxxx; to dial the target user's phone number. Note: The command should end with a semicolon.

After answering the call, the conversation begins. Upon hanging up, the message VOICE CALL END:xxxxx and NO CARRIER appear, indicating the end of the call.

When you hear the phone ringing, it means there is an incoming call. Use the command ATA to answer the call.

The message VOICE CALL BEGIN indicates that the call has been connected.

To end the call during the conversation, input the command AT+CHUP to hang up.

11. Sending and Receiving Short Messages

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

Demonstration of Sending English SMS

Send AT+CMGF=1 (set SMS mode to TEXT mode).

Then use the command AT+CMGS="187xxxxxxxx" to send a message to the target phone number. When it returns the symbol ">", immediately input the message you want to send.

Enter the message you want to send, Note: Do not include line breaks when sending.

After completing the message, press "SendHEX" to send the message in hexadecimal format. Send 1A (to instruct the module to perform the sending operation). It will return +CMGS: ok, indicating successful sending.

The receiving end successfully receives the message.

Demonstration of Receiving English SMS and Querying Message Limit

When a message is received, the serial port will print +CMTI: "SM", X, where X represents there are X+1 messages in SM. Send AT+CMGR=X to read the X+1th message, and the content of the SMS will be printed via the serial port.

Send AT+CPMS? to query the number of existing messages and the message limit.

12. GNSS Positioning

To use GNSS positioning, first connect the GPS antenna and place the module outdoors. Power on and wait for 1 minute before starting the positioning function.

Command Meaning Response
AT+CGPS=1 Turn on GPS OK
AT+CGPSINFO Print GPS information to the serial port
AT+CGPS=0 Turn off GPS OK

AT serial port display

To display GPS information on the screen, use the following command:

The GPS positioning data printed via the serial port is as follows:

Note: The latitude and longitude information printed via the serial port cannot be directly used for positioning. It needs to be converted using a formula.

Assuming the data read is +CGPSINFO:1234.567891,N,12345.678912,E,141023,012523.0,455.1,0.0,

Conversion formula:

Latitude (North) 1234.567891

(1) 1234.567891÷100 = 12 (rounded)

(2) 34567891÷60 = 576.13152

The latitude coordinate in degrees is N 12.57613152°

Longitude (East) 12345.678912

(1) 12345.678912÷100 = 123 (rounded)

(2) 45678912÷60 = 761.3152

The longitude coordinate in degrees is E 123.7613152°

Open a latitude and longitude lookup website and enter the calculated latitude and longitude data one by one to obtain the location.

Obtaining detailed positioning data information via NMEA serial port

  1. Open two SSCOM windows, one port connected to Simcom HS-USB AT PORT 9001, and the other port connected to Simcom HS-USB NMEA 9001. Use the port connected to AT PORT 9001 to send the AT+CGPS=1 command, and the port connected to NMEA 9001 will automatically print all the detailed positioning data.
  2. Regarding NMEA, NMEA stands for National Marine Electronics Association, which is the abbreviation of the association responsible for GPS navigation devices' unified RTCM standard protocol.

For detailed data analysis, refer to the NMEA Encyclopedia.

13. Power Saving Mode

Command Meaning Return Value
AT+CFUN=0 In minimum function mode, the serial port can still be used, but functions related to RF, SIM card, and some AT commands cannot be used. OK
AT+CFUN=1 Full function mode, full power OK
AT+CFUN=4 Flight mode, the module can still use the serial port, but RF-related and some AT commands cannot be used. OK

Use the AT+CFUN=0 command to set the module to the minimum function mode.

Send ATD10086; to dial 10086, and receive the error response "ERROR." Unable to make calls to the mobile company, and the network card function cannot be used.

14. Sleep Mode

Command Meaning Return Value
AT+CSCLK=0 UART remains active OK
AT+CSCLK=1 When DTR is high, UART enters sleep mode; when DTR is low, UART exits sleep mode. OK
AT+CSCLK? Check the current sleep status of UART. +CSCLK: status OK

In sleep mode, it is still possible to receive paging, messages, and voice calls from the network.

15. Arduino Example

In addition to controlling the SIM7600G-(H) module via the onboard USB virtual serial port on a PC, you can also use the Arduino IDE to debug the SIM7600G-(H) expansion board by sending AT commands through the Arduino serial port.

Steps

  1. Insert the SIM card into the expansion board and connect the SIM7600CE-T expansion board to Arduino UNO. Connect the external power supply.
  2. Press the Boot button and wait for the SIM card to register on the network. The Net status indicator LED should enter fast flash mode (1 flash per second).
  3. Depending on the control board type, use jumper caps to select D0/D1 or D7/D8 as the communication serial port.
  4. In the following example, Arduino UNO is used. Download the code below to the UNO and use jumper caps to connect RX-D8/TX-D7.
#include <SoftwareSerial.h>
SoftwareSerial myserial(7, 8); // Define virtual serial port, Rx: 7, Tx: 8
void setup()
{
  myserial.begin(115200); // Initialize virtual serial port
  Serial.begin(115200); // Initialize Arduino default serial port
}

void loop()
{
  while (1) {
    while (myserial.available()) {
      Serial.write(myserial.read()); // If Serial receives data, output through mySerial
    }
    while (Serial.available()) {
      myserial.write(Serial.read()); // If mySerial receives data, output through Serial
    }
  }
}

After uploading the example code, open the built-in serial monitor in Arduino.

Send AT, and the serial port will return OK, indicating successful communication. Note (When using Arduino UNO for serial communication, since the module's default communication rate is 115200, the external crystal oscillation frequency can cause significant baud rate errors and garbled characters. It is recommended to use AT commands to modify the baud rate in the subsequent steps).

Send AT+IPREX=9600 to set the baud rate to 9600.

Then modify the communication rate of the UNO serial port and upload again.

#include <SoftwareSerial.h>
SoftwareSerial myserial(7, 8); // Define virtual serial port, Rx: 7, Tx: 8
void setup()
{
  myserial.begin(9600); // Initialize virtual serial port
  Serial.begin(9600); // Initialize Arduino default serial port
}

void loop()
{
  while (1) {
    while (myserial.available()) {
      Serial.write(myserial.read()); // If Serial receives data, output through mySerial
    }
    while (Serial.available()) {
      myserial.write(Serial.read()); // If mySerial receives data, output through Serial
    }
  }
}

Then, send AT and*AT+IPREX? *to the serial port using 9600 baud rate.The serial port will return OK and the current baud rate value, indicating that the communication rate modification was successful.

Querying Return Values and Meanings

Detailed Result Code Meaning
OK Command executed, no errors
CONNECT Connection successful
RING Ring detected (incoming call received)
NO CARRIER Connection not established or disconnected
ERROR Invalid command or command failed
NO DIALTONE No dial tone, unable to dial, incorrect mode
BUSY Busy on call or server busy
NO ANSWER Connection timeout

Additional Downloads