# Simcom Modules with Super SIM

## Cellular modules covered on this page <a href="#cellular-modules-covered-on-this-page" id="cellular-modules-covered-on-this-page"></a>

* [SIM7000](#sim7000-cat-m1-nb-iot-gsm)
* [SIM7080](#sim7080-cat-m1-nb-iot-gsm)
* [SIM7600](#sim7600-cat-4)

***

## General getting started information <a href="#general-getting-started-information" id="general-getting-started-information"></a>

Please refer to the main Knowlegdebase page for [modem-independent configuration tips](https://docs.korewireless.com/en-us/supersim/cellular-module-knowledgebase/overview).

***

## SIM7000 `Cat-M1, NB-IoT, GSM` <a href="#sim7000-cat-m1-nb-iot-gsm" id="sim7000-cat-m1-nb-iot-gsm"></a>

{% hint style="danger" %}
Super SIM does not support NB-IoT.
{% endhint %}

### Initialization <a href="#initialization" id="initialization"></a>

Only configure the modem's Radio Access Technology (RAT) preference for Cat-M1 when you are connecting to LTE. To do so, issue `AT+CMNB=1`.

If you wish to limit comms to LTE only, i.e., no GSM, send `AT+CNMP=38`.

A parameter of `13` instead of `38` indicates GSM only. The default is `2`, which is auto.

### Bring up a data connection <a href="#bring-up-a-data-connection" id="bring-up-a-data-connection"></a>

1. Set the APN: `AT+CSTT="super","",""`.
2. Bring up the wireless data connection: `AT+CIICR`.
3. Obtain an IP address (required before TCP/IP operations): `AT+CIFSR`.
4. Optionally, query the current connection status: `AT+CIPSTATUS`.

To shut down the connection when you are done, issue `AT+CIPSHUT`.

### Perform a ping <a href="#perform-a-ping" id="perform-a-ping"></a>

To perform a ping to a remote host after bringing up a connection as described above, issue `AT+CIPPING="8.8.8.8"`. This will yield:

```bash
+CIPPING: 1,"8.8.8.8",111,53
+CIPPING: 2,"8.8.8.8",165,53
+CIPPING: 3,"8.8.8.8",159,53
+CIPPING: 4,"8.8.8.8",154,53
OK
```

### Perform an HTTP GET <a href="#perform-an-http-get" id="perform-an-http-get"></a>

To perform an HTTP `GET` using the built-in HTTP client:

1. Configure the bearer: `AT+SAPBR=3,1,"APN","super"`.
2. Check the bearer's status: `AT+SAPBR=2,1`.
   * This will return `+SAPBR: 1,3,"0.0.0.0"`. The `3` indicates the connection is closed.
3. Connect: `AT+SAPBR=1,1`.
4. Initialize the HTTP service: `AT+HTTPINIT`.
5. Set the URL: `AT+HTTPPARA="URL","http://ifconfig.co/ip"`.
6. Initiate this as a `GET` operation: `AT+HTTPACTION=0`.

After the `OK` response to the last of these commands, some time will pass and then the result will be indicated by a `+HTTPACTION` URC:

```bash
+HTTPACTION: 0,200,13
```

This indicates that we received an HTTP response status of 200 and 13 response bytes. Let's read them starting at index 0. Use `AT+HTTPREAD=0,13`. The response will be something like:

```bash
+HTTPREAD: 13
3.23.456.789

OK
```

To terminate the HTTP service, issue `AT+HTTPTERM`.

Finally, disconnect the bearer with `AT+SAPBR=0,1`.

{% hint style="danger" %}
This uses a service that returns the IP address of the requester.
{% endhint %}

### Low-power modes <a href="#low-power-modes" id="low-power-modes"></a>

The SIM7000 supports the eDRX and PSM low-power modes. The commands to enable each of these are:

<pre class="language-bash"><code class="lang-bash">AT+CEDRXS=1
<strong>AT+CPSMS=1
</strong></code></pre>

Using these features, but especially PSM, can make the modem inaccessible to the terminal during its sleep time. It's best to experiment with these features locally. To disable all power saving, send:

```bash
AT+CEDRXS=0
AT+CPSMS=0
```

You can learn more about implementing these modes in our [low-power usage documentation](https://docs.korewireless.com/en-us/supersim/cellular-module-knowledgebase/low-power-optimization-for-cellular-modules).

### Known issues <a href="#known-issues" id="known-issues"></a>

None at this time.

***

### SIM7080 `Cat-M1, NB-IoT, GSM` <a href="#sim7080-cat-m1-nb-iot-gsm" id="sim7080-cat-m1-nb-iot-gsm"></a>

{% hint style="danger" %}
Super SIM does not support NB-IoT.
{% endhint %}

### Initialization <a href="#initialization-2" id="initialization-2"></a>

If you wish to limit comms to LTE only, i.e., no GSM, send `AT+CNMP=38`.

A parameter of `13` instead of `38` indicates GSM only. The default is `2`, which is auto.

Set the modem's Radio Access Technology (RAT) preference to Cat-M1 when you are connecting to LTE. To do so, issue `AT+CMNB=1`.

{% hint style="danger" %}
After power on, the modem takes approximately 26 seconds to bring up the UART for AT communications.
{% endhint %}

### Data-centric attach mode <a href="#data-centric-attach-mode" id="data-centric-attach-mode"></a>

To set the 7080 to force data-centric attachment, issue `AT+CSDP=1`.

The numeric parameter is the mode:

* `0` — Circuit Switched (CS) only.
* `1` — Packet Switched (PS) only
* `2` — CS and PS

This setting is non-volatile.

### Bring up a data connection <a href="#bring-up-a-data-connection-2" id="bring-up-a-data-connection-2"></a>

1. Activate a data connection: `AT+CNACT=0,1`.
   * The `0` parameter is the PDP context; four (0-3) are available.
2. A successful response includes the string `ACTIVE`.
3. Optionally, obtain an IP address and the current connection status with `AT+CNACT?`.
4. To shut down the connection when you are done, issue `AT+CNACT=0,0`.

### Perform a ping <a href="#perform-a-ping-2" id="perform-a-ping-2"></a>

To perform a ping to a remote host after bringing up a connection as described above, issue `AT+SNPDPID=0` to choose the connected PDP context and then `AT+SNPING4="8.8.8.8"`.

### Perform an HTTP GET <a href="#perform-an-http-get-2" id="perform-an-http-get-2"></a>

To perform an HTTP `GET` using the built-in HTTP client:

1. Activate the data connection as above.
2. Configure a session to the server with `AT+SHCONF="URL","example.com"`.
3. Connect to the server with `AT+SHCONN`.
4. Optionally, check the connection state with `AT+SHSTATE?`.
5. To add headers to the request, set the module's internal header record. Issue `AT+SHCONF="HEADERLEN",350` to set the internal header record's maximum size. Call `AT+SHCHEAD` to clear any existing header and the add header entries with `AT+SHAHEAD`:

   Copy code block

   ```bash
   AT+SHAHEAD="Content-Type","application/x-www-form-urlencoded"
   AT+SHAHEAD="Cache-control","no-cache"
   AT+SHAHEAD="Connection","keep-alive"
   ```
6. The same approach is taken for the request URL parameters, if there is one. Issue `AT+SHCONF="BODYLEN",1024` to set the internal body record's maximum size. Call `AT+SHCPARA` to clear the internal parameter record and then `AT+SHPARA="data","<your_request_parameters>"` to set the new parameter data.
7. Issue the request with `AT+SHREQ="<path_to_resource>",1`.
   * The `1` parameter indicates a `GET` request. Others are:
     * 2 (`PUT`)
     * 3 (`POST`)
     * 4 (`PATCH`)
     * 5 (`HEAD`)
8. The URC will contain `SHREQ: "GET",xxx,yyy` where `xxx` is the HTTP status code and `yyy` the number of bytes received. For example:

   Copy code block

   ```bash
   SHREQ: "GET",200,83
   ```
9. Issue `AT+SHREAD=0,yyy` to get `yyy` bytes from index `0` sent over. For example:

   Copy code block

   ```bash
   AT+SHREAD=0,83
   OK

   +SHREAD: 83
   {
      "userId": 1,
      "id": 1,
      "title": "delectus aut autem",
      "completed": false
   }
   ```
10. Call `AT+SHDISC` to disconnect from the server.
11. Optionally, [close the data connection](#bring-up-a-data-connection)

The steps above assume you are sending an HTTP request. To use HTTPS, you will need to apply additional settings. For testing only, we use:

Copy code block

```bash
AT+CSSLCFG="sslversion",1,3
AT+SHSSL=1,"<cert_name>"
```

This selects SSL configuration index 1, and then SSL version 1.2. The next line applies a certificate name to SSL configuration index 1, but you can pass an empty string to bypass certificate verification **for testing only**.

A full discussion of HTTPS configuration on this module is beyond the scope of this document. For more information, please see [Simcom's HTTPS Application Note](https://www.waveshare.net/w/upload/4/48/SIM7070_SIM7080_SIM7090_Series_HTTP\(S\)_Application_Note_V1.02.pdf).

### Low-power modes <a href="#low-power-modes-2" id="low-power-modes-2"></a>

The SIM7080 supports the eDRX and PSM low-power modes. The commands to enable each of these are:

```bash
AT+CEDRXS=1
AT+CPSMS=1
```

Using these features, but especially PSM, can make the modem inaccessible to the terminal during its sleep time. It's best to experiment with these features locally. To disable all power saving, send:

Copy code block

<pre class="language-bash"><code class="lang-bash">AT+CEDRXS=0
<strong>AT+CPSMS=0
</strong></code></pre>

You can learn more about implementing these modes in our [low-power usage documentation](https://docs.korewireless.com/en-us/supersim/cellular-module-knowledgebase/low-power-optimization-for-cellular-modules).

### Known issues <a href="#known-issues-2" id="known-issues-2"></a>

None at this time.

***

## SIM7600 `Cat 4` <a href="#sim7600-cat-4" id="sim7600-cat-4"></a>

### Initialization <a href="#initialization-3" id="initialization-3"></a>

To configure the APN, use `AT+CGDCONT=1,"IP","super"`.

### Perform a ping <a href="#perform-a-ping-3" id="perform-a-ping-3"></a>

To perform a ping to a remote host after bringing up a connection as described above, issue `AT+CPING="8.8.8.8",1`. This will yield:

```bash
OK
+CPING: 1,8.8.8.8,64,70,255
+CPING: 3,1,1,0,70,70,70
```

### Perform an HTTP GET <a href="#perform-an-http-get-3" id="perform-an-http-get-3"></a>

To perform an HTTP `GET` using the built-in HTTP client:

1. Set IP mode: `AT+CIPMODE=1`.
2. Connect a socket: `AT+NETOPEN`.
3. Initialize the HTTP service: `AT+HTTPINIT`.
4. Check an IP address has been assigned: `AT+CGPADDR`.
   * This will return something like: `+CGPADDR: 1,100.66.159.130`.
5. Set the URL : `AT+HTTPPARA="URL","http://ifconfig.co/ip"`.
6. Initiate this as a `GET` operation: `AT+HTTPACTION=0`.

After the `OK` response, some time will pass and then the result will be indicated by a `+HTTPACTION` URC:

```bash
+HTTPACTION: 0,200,13
```

This indicates that we received an HTTP response status of 200 and 13 response bytes. Let's read them starting at index 0. Issue `AT+HTTPREAD=0,12`. This will yield:

```bash
+HTTPREAD: 13
3.84.68.183

OK
```

To terminate the HTTP service, issue `AT+HTTPTERM`.

Now close the socket with `AT+NETCLOSE`.

{% hint style="danger" %}
This uses a service that returns the IP address of the requester.
{% endhint %}

### Known issues <a href="#known-issues-3" id="known-issues-3"></a>

None at this time.

***

### Additional resources <a href="#additional-resources" id="additional-resources"></a>

* [SIM7500, and SIM7600 Series AT Command Manual](https://www.simcom.com/service-1230.html) *Simcom sign-in required*
* [SIM7070, SIM7080, and SIM7090 Series AT Command Manual](https://www.simcom.com/service-1048.html) *Simcom sign-in required*
* [SIM7000 Series AT Command Manual](https://www.simcom.com/service-193.html) *Simcom sign-in required*
