> For the complete documentation index, see [llms.txt](https://docs.monogoto.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.monogoto.io/getting-started/general-device-configurations/iot-devices/simcom-sim7070g.md).

# 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*
