The Waveshare Sim7000G is a GSM/GPRS/NB-IoT module designed for cellular communication in IoT applications. Manufactured by Waveshare, this versatile module supports multiple frequency bands and offers features such as GPS positioning, making it ideal for remote monitoring, asset tracking, smart metering, and other IoT use cases. Its compact design and low power consumption make it a popular choice for battery-powered devices.
Parameter | Value |
---|---|
Manufacturer | Waveshare |
Part ID | Sim7000G |
Communication Protocols | GSM, GPRS, NB-IoT, LTE Cat-M1 |
GPS Support | Yes |
Operating Voltage | 3.4V to 4.2V |
Power Consumption | Idle: ~1.2mA (NB-IoT mode), Active: ~300mA (GPRS mode) |
Frequency Bands | GSM: 850/900/1800/1900 MHz, LTE: B1/B2/B3/B4/B5/B8/B12/B13/B18/B19 |
Operating Temperature | -40°C to +85°C |
Dimensions | 30mm x 30mm |
The Sim7000G module has a standard pinout for interfacing with microcontrollers and other devices. Below is the pin configuration:
Pin Number | Pin Name | Description |
---|---|---|
1 | VCC | Power supply input (3.4V to 4.2V) |
2 | GND | Ground connection |
3 | TXD | UART Transmit Data |
4 | RXD | UART Receive Data |
5 | PWRKEY | Power-on key (active low) |
6 | NET_STATUS | Network status indicator |
7 | RST | Reset pin (active low) |
8 | GPS_TXD | GPS UART Transmit Data |
9 | GPS_RXD | GPS UART Receive Data |
10 | ADC | Analog-to-Digital Converter input |
11 | SIM_DET | SIM card detection pin |
12 | DTR | Data Terminal Ready (used for sleep mode control) |
Below is an example of how to send an SMS using the Sim7000G module with an Arduino UNO:
#include <SoftwareSerial.h>
// Define RX and TX pins for SoftwareSerial
SoftwareSerial sim7000G(7, 8); // RX = Pin 7, TX = Pin 8
void setup() {
// Initialize serial communication
Serial.begin(9600); // For debugging
sim7000G.begin(9600); // For Sim7000G communication
// Power on the module
pinMode(9, OUTPUT); // PWRKEY connected to Pin 9
digitalWrite(9, LOW); // Pull PWRKEY low
delay(1000); // Wait for 1 second
digitalWrite(9, HIGH); // Release PWRKEY
// Wait for the module to initialize
delay(5000);
// Send AT commands to configure the module
sendCommand("AT"); // Check communication
sendCommand("AT+CMGF=1"); // Set SMS mode to text
sendCommand("AT+CMGS=\"+1234567890\""); // Replace with recipient's phone number
sim7000G.print("Hello from Sim7000G!"); // SMS content
sim7000G.write(26); // Send Ctrl+Z to send the SMS
}
void loop() {
// Check for responses from the module
if (sim7000G.available()) {
Serial.write(sim7000G.read());
}
}
// Function to send AT commands
void sendCommand(String command) {
sim7000G.println(command);
delay(1000); // Wait for the module to process the command
}
+1234567890
with the recipient's phone number.Module Not Powering On
No Network Connection
AT+CSQ
command to check signal strength. A value above 10 is recommended.GPS Not Working
AT+CGNSPWR=1
command to enable GPS functionality.AT Commands Not Responding
Can the Sim7000G work with 5V microcontrollers?
What is the maximum data rate supported?
How do I update the firmware?
Can I use the module for voice calls?