# SIMCom SIM7070G

The [**SIMCom SIM7070G**](https://www.simcom.com/product/SIM7070G.html) modem has global support for LTE Cat-M1, NB-IoT, GPRS and EDGE, as well as GNSS positioning.

![](/files/5E9qPBNMa0N2PlLb2KWJ)

### Quick Navigation

* [Connect the SIM7070G to Monogoto](#connect-the-sim7070g-to-monogoto)
* [Test the connection by sending a PING](#test-the-connection-by-sending-a-ping)
* [Useful Links](#useful-links)
* [Getting Started with the Waveshare SIM7070G](/getting-started/general-device-configurations/iot-devices/simcom-sim7070g/waveshare-sim7070g.md)

### Prerequisites

* Monogoto SIM
* SIM7070G modem

## Connect the SIM7070G to Monogoto

{% hint style="info" %}
When connecting to the SIMCom modem, keep the **AT Commands manual** next to you to look up details about commands. To download the latest version, visit the [**SIMCom website**](https://www.simcom.com/product/SIM7070G.html) and scroll down to the section **File Download**.
{% endhint %}

**Reset the modem** to its default configuration:

```bash
AT+CFUN=1,1
```

Set the error reporting to **verbose**, resulting in more descriptive error messages (optional):

```bash
AT+CMEE=2
```

Check if the SIM card is attached and is not locked with a PIN, expected response: `+CPIN: READY`:

```bash
AT+CPIN?
```

{% hint style="warning" %}
If you receive an error, the SIM may not be inserted properly or the SIM is protected with a PIN. By default, Monogoto SIMs are not PIN protected.
{% endhint %}

### Query device information

Request the **product type** number:

```bash
ATI
```

Request the modem **hardware version**:

```
AT+CGMM
```

Request the modem **firmware version**:

```bash
AT+CGMR
```

Request the **IMSI** (International Mobile Subscriber Identity):

```
AT+CIMI
```

Request the **ICCID** (Integrated Circuit Card ID), which is the identification number of the SIM card

```bash
AT+CCID
```

### Network Configuration

It is possible to let the modem select the network automatically, or to manually define a network to connect with.

#### **Option 1: Automatic Network Selection**

To set the modem to **automatic network selection** enter the command:

```bash
AT+COPS=0
```

Check the **network and cellular technology the modem** is currently using:

```
AT+COPS? 
```

Expected response: `+COPS: 0,0,"<name of operator>",X`. The last digit indicates the cellular technology:\
`0` indicates **GSM**\
`1` indicates **GSM compact**,\
`3` indicates **GSM EGPRS**\
`7` indicates **LTE Cat-M1** \
`9` indicates **NB-IoT**

#### Option 2: Manual Network Selection

Start with searching for available networks:

```
AT+COPS=?
```

{% hint style="warning" %}
It may take several minutes before the modem responds.&#x20;
{% endhint %}

The modem responds with the names and the **MCCMNC** codes of the available networks. It also shows the cellular technologies the networks support:&#x20;

Example response:&#x20;

```
+COPS: (1,"NL KPN","NL KPN","20408",0),(2,"NL KPN","NL KPN","20408",7),(1,"vodafone NL","voda NL","20404",7),(1,"T-Mobile NL","TMO NL","20416",7),(1,"T-Mobile NL","TMO NL","20416",0),(1,"vodafone NL","voda NL","20404",0),,(0,1,2,3,4),(0,1,2)  
```

To find which of the networks Monogoto has **roaming agreements** with, review the [**Coverage lists**](/getting-started/global-public-coverage.md).

{% hint style="info" %}
To find the **profile** of your SIM, visit the [**Monogoto Console**](https://console.monogoto.io/), open the page **Things** ![](/files/OWVV2DjKOVW5iaNl1NcG) and select a specific **Thing**. Scroll down to **Mobile Identities** to find your profile in the column **Network Provider Name**.

![](/files/0IINqu41pSHJSRJYujvX)
{% endhint %}

Check the **network and cellular technology** the modem is currently using:

```
AT+COPS? 
```

Expected response: `+COPS: 0,0,"<name of operator>",X`. The last digit indicates the cellular technology.

**Manually set the network and the cellular technology**:

```
AT+COPS=1,2,"XXXXX",7
```

Replace `XXXXX` with the **MCCMNC** code of your operator, for example`"20404"` for Vodafone NL. Use `7` for **LTE Cat-M1**.

**Check the radio signal strength and signal quality:**

```bash
AT+CSQ
```

{% hint style="info" %}
`+CSQ` returns 2 values separated by a comma. The first value represents the **signal strength** and provides a value between 0 and 31; higher numbers indicate better signal strength. The second value represents the **signal quality** indicated by a value between 0 and 7. If `AT+CSQ` returns `99,99`, the signal is undetectable or unknown.
{% endhint %}

#### Define the cellular band(s) (optional)

It is possible to **lock the modem to one or more specific bands**. This may result in a faster boot cycle as the modem does not need to scan for available bands at startup.

To **find** the available bands the modem support:

```
AT+CBANDCFG=?
```

Expected response:&#x20;

```
+CBANDCFG: (CAT-M,NB-IOT),(1,2,3,4,5,8,12,13,14,18,19,20,25,26,27,28,66,71,85)  
```

{% hint style="warning" %}
Although the modem may support many different bands, your local network operator may not. Have a look at the [**LTE Cat-M1 overview**](broken://pages/GDSRxI85QWE6Z2lsLeS3) to find the available band(s) in your region.
{% endhint %}

To **lock** the modem to a specific band: \
Replace `<band>` with your band of choice

```
AT+CBANDCFG="CAT-M",<band>
```

**Test** if the band is properly set:

```
AT+CBANDCFG?
```

Expected response: `+CBANDCFG: "CAT-M",<band>`

### Network Activation

**Set the APN to** `data.mono`:

```
AT+CGDCONT=1,"IP","data.mono"
```

To **test** if the APN is set correctly, enter:

```
AT+CGDCONT?
```

Expected response: `+CGDCONT: 1,"IP","data.mono","0.0.0.0",0,0,0`

**Activate the PDP (packet data protocol) context:**

```
AT+CGACT=1,1
```

**Test** if the PDP context is activated:

```
AT+CGACT?
```

Expected response: `+CGACT: 1,1`

To **test** what cellular technology and what band the modem is using request the UE (User Equipment) System Information:

```
AT+CPSI?
```

The first variable shows the cellular technology, `BANDXX` specifies the band. Example response:&#x20;

```
+CPSI: LTE CAT-M1,Online,204-08,0xF48B,2680589,331,EUTRAN-BAND20,6400,3,3,-10,-5
```

#### Validate if your device received an **IP address**:

```bash
AT+CGPADDR
```

Expected response: `+CGPADDR: 1,XX.XXX.XX.XXX`

{% hint style="success" %}
Do you see an IP address? **Congratulations!** 🎉 **You’ve successfully connected the SIM7070G to Monogoto.**
{% endhint %}

## Test the connection by sending a PING

A PING test can be performed to test if the modem has an active data connection with a mobile network.

{% hint style="warning" %}
When cellular modems are idle for a long period of time, cell towers might drop the data connection to save resources. Sending regular PINGs is a good method for testing the data connection, as well as for keeping the connection alive because the operator registers your device as being actively used.
{% endhint %}

**Activate a data connection** for PDP index `0`**:**

```
AT+CNACT=0,1
```

Expected response: `+APP PDP: 0,ACTIVE`

**Select the PDP index** `0` for the PING test:

```
AT+SNPDPID=0
```

Expected response: `OK`

**Send 5 PINGs** to IP address `8.8.8.8`  with a timeout of 20 seconds.

```
AT+SNPING4="8.8.8.8",5,1,20000
```

If the connection is active, you will see 5 PINGs with a number representing the response time in milliseconds. Example response:

```
+SNPING4: 1,8.8.8.8,104
+SNPING4: 2,8.8.8.8,93
+SNPING4: 3,8.8.8.8,145
+SNPING4: 4,8.8.8.8,75
+SNPING4: 5,8.8.8.8,157
```

**Deactivate the PDP index** after completing the PING test.

```
AT+CNACT=0,0
```

Expected response: `+APP PDP: 0,DEACTIVE`

{% hint style="success" %}
**Great work on connecting the SIM7070G to Monogoto!** Have a look at the **Things** logs in the [**Monogoto Console**](https://console.monogoto.io/) to find more details about the established connection.
{% endhint %}

## Useful Links

* [Waveshare SIM7070G shop](https://www.waveshare.com/sim7070g-cat-m-nb-iot-gprs-hat.htm)
* [Waveshare wiki](https://www.waveshare.com/wiki/SIM7070G_Cat-M/NB-IoT/GPRS_HAT)
* [SIMCom SIM7070G product page](https://www.simcom.com/product/SIM7070G.html)
* [SIMCom AT Commands](<https://www.simcom.com/product/SIM7070G.html >)\
  \&#xNAN;*Scroll down to the section **File Download** to find the latest version*


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.monogoto.io/getting-started/general-device-configurations/iot-devices/simcom-sim7070g.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
