USING ARDUINO COMPATIBLE SIM7600 4G GSM/GPS MODULE TO MAKE CALL AND SEND SMS.

Introduction

In this project, We will learn how to use SIM7600 4G GSM/GPS module with Arduino. We will describe different hardware components used in SIM7600 module in detail. Finally, we will see how we can send SMS and make call in SIM7600 module by providing different AT commands.

We are very much familiar with SIM800 and SIM900 GSM module and have done many projects like SMART CROP PROTECTION SYSTEM USING GSM AND ARDUINO , WEATHER STATION WITH GSM BASED NOTICE BOARD and SMART BLIND STICK USING ARDUINO ,GSM MODULE ,GSM MODULE,ULTRASONIC SENSOR AND RAIN SENSOR. These module are 2G modules and are band in many countries like Australia and Canada. This SIM7600 4G GSM/GPS module with Arduino may be the solution to such project which requires remote wireless communications.

 Maduino Zero 4G LTE is the  Arduino board  integrated with GPS and GPS which is designed and manufactured by Makerfabs . This Maduino Zero 4G LTE module uses the SIMCOM7600(E/A)CAT4 module, to help Makers to achieve the 4G connection easily. Besides, this module can be a fully 4G access to your computer/PI, and also for telephone/SMS.

Bill of Materials

SNCOMPONENTS NAMEDESCRIPTIONQUANTITY
1SIM7600 BoardMaduino Zero 4G LTE(SIM7600X)1Makerfabs Link

PCB Manufacturer

This project is sponsored by PCBWAY. It is world fastest pcb manufacturing company.

You Will get FREE prototype pcb from PCBWAY. So do not be late to register and place your first order from PCBWAY

If you want to order pcb from PCBWAY . CLICK IN THE LINK BELOW:

SIM7600 4G GSM/GPS MODULE

The SIM7600 series is the LTE Cat 1 module which supports wireless communication modes of LTE-TDD/ LTE-FDD/HSPA+/GSM/GPRS/EDGE etc. It supports maximum 10Mbps downlink rate and 5Mbps uplink rate.

The SIM7600 series adopts LCC1 form factor and is compatible with SIM5320/SIM5360 series(UMTS/HSPA+ modules), and SIM7600/SIM7600-H series(LTE modules) , which enables smooth migration from 3G products to LTE products, and greatly facilitates more compatible product design for the customer needs.

The SIM7600 series integrates multiple satellite high accuracy positioning GNSS systems, with multiple built-in network protocols, supports drivers for main operation systems (USB driver for Windows, Linux and Android etc.) and software function, AT commands are compatible with SIM7500/SIM7600-H series modules.  Meanwhile the SIM7600 series integrates main industrial standard interfaces, with powerful expansibility, including abundant interfaces such as UART, USB, I2C, GPIO, which is suitable for main IoT applications such as telematics, surveillance devices, CPE, industrial routers, and remote diagnostics etc.

Features of Maduino Zero 4G LTE(SIM7600X) Board

  • Windows and Raspberry Pi support
  • Qualcomm MDM9x07 Chipset
  • Audio Codec: NAU8810
  • Level Shifter: TXS0108E
  • Board USB supply voltage range: 4.8~5.5V, 5.0V Typical
  • Board Battery supply voltage range: 3.4~4.2V, 3.7V Typical
  • 3GPP E-UTRA Release 11
  • Onboard charger, up to 1A charge current
  • Overcharge protection(OCP), 4.3V
  • Over-discharge protection(ODP), 2.5V
  • Power Manager, the board can be supplied by USB or battery.
  • Supports dial-up, phone, SMS, TCP, UDP, DTMF, HTTP, FTP, and so on
  • Dual USB Type C port
  • Control Via AT Commands
  • IPEX Antenna, GSM/UMTS/LTE main antenna. UMTS/LTE auxiliary antenna. GNSS antenna
  • SMS support

Hardware overview of 4G GSM MODULE SIM7600

Makerfabs Maduino Zero 4G LTE module is Arduino friendly and we can easily program it using Arduino IDE. It is based on ATSAMD21G18A.

Front view of 4G GSM MODULE SIM7600
Back view of 4G GSM MODULE SIM7600

Getting Started with 4G GSM MODULE SIM7600 and Arduino IDE

In this section we will see how we can interface our 4G LTE(SIM7600X) with our aurdio IDE and also we will see all the configuration AT commands and finally we will see the AT command for making call and sending the SMS.

4G GSM MODULE SIM7600
  • Plug the Battery into the battery connector in the board or plug USB for powering the module.
  • Plug the SIM card into the sim card slot of the module.
  • Plug the GPS antenna into the interface.
  • Plug two 4G-GSM antennas into the main antenna interface and auxiliary one.

Note: The glowing of blue led on module indicates GSM MODULE SIM7600 is working.

Setting up Arduino IDE

The ATSAMD21G18A board isn’t installed in the Arduino IDE at the beginning so we need to manually install it from the board manager.

select Tools-> Board-> Boards Manager to open the board manager. Then install Arduino SAMD Boards(32-bits ARM Cortex-M0+).

Setting up Arduino IDE for GSM MODULE SIM7600

Before uploading the code you must select the board to Arduino Zero as shown in the figure below .

Setting up Arduino IDE for GSM MODULE SIM7600

Program or Source Code

You can directly copy this and paste this code in your Arduino IDE to see the results of AT commands in your serial monitor.

#include <stdio.h>
#include <string.h>
 
#define DEBUG true
#define MODE_1A
 
#define DTR_PIN 9
#define RI_PIN 8
 
#define LTE_PWRKEY_PIN 5
#define LTE_RESET_PIN 6
#define LTE_FLIGHT_PIN 7
 
String from_usb = "";
 
void setup()
{
    SerialUSB.begin(115200);
    //while (!SerialUSB)
    {
        ; // wait for Arduino serial Monitor port to connect
    }
 
    delay(100);
 
    Serial1.begin(115200);
 
    //Serial1.begin(UART_BAUD, SERIAL_8N1, MODEM_RXD, MODEM_TXD);
 
    pinMode(LTE_RESET_PIN, OUTPUT);
    digitalWrite(LTE_RESET_PIN, LOW);
 
    pinMode(LTE_PWRKEY_PIN, OUTPUT);
    digitalWrite(LTE_RESET_PIN, LOW);
    delay(100);
    digitalWrite(LTE_PWRKEY_PIN, HIGH);
    delay(2000);
    digitalWrite(LTE_PWRKEY_PIN, LOW);
 
    pinMode(LTE_FLIGHT_PIN, OUTPUT);
    digitalWrite(LTE_FLIGHT_PIN, LOW); //Normal Mode
    // digitalWrite(LTE_FLIGHT_PIN, HIGH);//Flight Mode
 
    SerialUSB.println("Maduino Zero 4G Test Start!");
 
    sendData("AT+CGMM", 3000, DEBUG);
}
 
void loop()
{
    while (Serial1.available() > 0)
    {
        SerialUSB.write(Serial1.read());
        yield();
    }
    while (SerialUSB.available() > 0)
    {
#ifdef MODE_1A
        int c = -1;
        c = SerialUSB.read();
        if (c != '\n' && c != '\r')
        {
            from_usb += (char)c;
        }
        else
        {
            if (!from_usb.equals(""))
            {
                sendData(from_usb, 0, DEBUG);
                from_usb = "";
            }
        }
#else
        Serial1.write(SerialUSB.read());
        yield();
#endif
    }
}
 
bool moduleStateCheck()
{
    int i = 0;
    bool moduleState = false;
    for (i = 0; i < 5; i++)
    {
        String msg = String("");
        msg = sendData("AT", 1000, DEBUG);
        if (msg.indexOf("OK") >= 0)
        {
            SerialUSB.println("SIM7600 Module had turned on.");
            moduleState = true;
            return moduleState;
        }
        delay(1000);
    }
    return moduleState;
}
 
String sendData(String command, const int timeout, boolean debug)
{
    String response = "";
    if (command.equals("1A") || command.equals("1a"))
    {
        SerialUSB.println();
        SerialUSB.println("Get a 1A, input a 0x1A");
 
        //Serial1.write(0x1A);
        Serial1.write(26);
        Serial1.println();
        return "";
    }
    else
    {
        Serial1.println(command);
    }
 
    long int time = millis();
    while ((time + timeout) > millis())
    {
        while (Serial1.available())
        {
            char c = Serial1.read();
            response += c;
        }
    }
    if (debug)
    {
        SerialUSB.print(response);
    }
    return response;
}

Results Of SIM7600 AT Commands

We have made a trail with most common AT commands and the result is presented in the picture below:

AT+CGMI   –  Request manufacturer identification

AT+CGMM  –  Request model identification

AT+CGSN   –  Request product serial number identification

AT+CSUB   –  Request the module version and chip

Results Of SIM7600 AT Commands

AT+CPIN?    – Request the state of the SIM card

AT+CICCID  –   Read ICCID from SIM card

AT+CNUM   –   Request the subscriber number

AT+CNMP?  –   Preferred mode selection

AT+COPS?    – Check the current network operator

Results Of SIM7600 AT Commands

AT+IPREX?  –   Check local baud rate

AT+CRESET   –  Reset the module

Results Of SIM7600 AT Commands

Make a call

You can make or receive a call with SIM7600 using following AT Commands.

AT+CSDVC     –    Switch voice channel device

 AT+CSDVC=1    –   1-Handset, 3-Speaker phone 

 AT+CLVL=2     –   Set loudspeaker volume level to 2, the level range is 0 to 5

SIM7600 AT Commands to make call

Send and receive SMS

We can send SMS using SIM7600 & Arduino. Is recommended to use other serial monitors not the Arduino IDE one to send the AT command for this demo.

AT+CSCA=”XXXXXX”       // Set the SMS service centre address
AT+CMGF=1              // Select SMS message format
AT+CMGS=”xxxxxx”       // Send message to “xxxxxx”(the receiver number).
AT+CMGR=3        // Read message
 AT+CMGD=3        // Delete message

After sending the above AT commands, it will show “>” and then you can send your message. When you finish your message, you need to send “1A” with the hexadecimal for confirming or send “1B” with the hexadecimal for cancel. This is why it is recommended to use other serial monitor.

Get the GNSS location

To get the GNSS Location from SIM7600, use the following AT Commands.


AT+CGPS=1      // Start GPS session
AT+CGPSINFO    // Get GPS fixed position information
AT+CGPS=0      // Stop GPS session

Using Internet From SIM7600 Module

Connect usb cable from second usb port of SIM7600 to your PC as shown in the figure below:

Sim7600 connection with PC

Go to your device manager. If you see the below error message then you need to install the driver first .

The Driver is available below:

Open Device Manager –> Other equipment –>“SimTech,Incorporated”- > Update the driver –> Browse my computer to find driver files –> Select a path for saving the driver file based on the system- >The installation is complete.

Install all the driver until all the yellow mark is removed

If the PC does not connect to the internet through this device, please open the serial monitor and send the AT command to start the networking.

 AT$QCRMCALL=1,1

The network icon will then appear as a cellular network.

If have are still not able to connect to the internet, please use the PPP dial-up connection way to start networking. More info you can get from GITHUB below:

https://github.com/Makerfabs/Maduino-Zero-4G-LTE#usage-windows

Youtube video

Recommended For You

About the Author: admin

Leave a Reply

Your email address will not be published.