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
- Controlled by AT commands.
- Supports GNSS satellite positioning (GPS, GLONASS, BeiDou).
- Supports multiple frequency bands: LTE-FDD/LTE-TDD/WCDMA/GSM.
- SMS support for MT, MO, CB, Text, and PDU modes.
- Supports various network protocols: TCP/IP/IPv4/Multi-PDP/FTP/FTPS/HTTP/HTTPS/DNS.
- Provides functionality for dial-up internet, phone calls, messaging, TCP, and HTTP.
- Offers two LED status displays: power supply status and network status.
3.Technical Specifications:
- Operating Voltage: DC 5V
- Network Support Frequency Bands:
- LTE-TDD B34/B38/B39/B40/B41
- LTE-FDD B1/B2/B3/B4/B5/B7/B8/B12/B13/B18/B19/B20/B25/B26/B28/B66
- UMTS/HSDPA/HSPA+ B1/B2/B4/B5/B6/B8/B19
- GSM/GPRS/EDGE 850/900/1800/1900 MHz
- 4G Communication Rate: CAT4 (uplink speed of 50Mbps, downlink speed of 150Mbps)
- GNSS Satellite Navigation Technology (GPS, BD, GLONASS)
- Operating Environment: -40℃ to 85℃
- Dimensions: 69×54mm
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:
- 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.
- The SIM7600G(-H) module has an onboard microphone (MIC) and a 3.5mm SIM7600G(-H) microphone interface, both using the same microphone channel.
- 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.
- 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. *
- Net - Network signal indicator light.
- Solid blue light: Searching for network.
- Rapid blue flashing (once every 1s): Network registration completed.
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
- SIM7600G(-H) 4G(LTE) Shield x1
- Windows 11 PC x1
- SIM mobile card x1
- MicroUSB data cable x1
- DFRduino UNO R3 x1
- 7.4V external battery
Software Preparation
- SIMCOM Driver [Download Link]
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
- 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.
- Open SSCOM and send the AT+NETOPEN command to open the network.
- Send AT+CIPOPEN=0, "TCP", "IP address", port number. Upon receiving the "OK" response, the module is successfully connected to the server.
- Send AT+CIPSEND=0, 5 (send five characters). When the ">" prompt appears, send "HELLO".
- 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
- 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.
- 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.
- Hardware
- Arduino UNO x1
- SIM7600G-H Expansion Board x1
- External Power Supply x1
- Software
- Latest version of Arduino IDE Click here to download Arduino IDE
Steps
- Insert the SIM card into the expansion board and connect the SIM7600CE-T expansion board to Arduino UNO. Connect the external power supply.
- 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).
- Depending on the control board type, use jumper caps to select D0/D1 or D7/D8 as the communication serial port.
- 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 |