> 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/quectel-bg950s-gl.md).

# Quectel BG950S-GL

The Quectel BG950S-GL module supports LTE Cat M1 and Cat NB2 technologies with integrated GNSS, offering ultra-low power consumption. It complies with 3GPP Release 14 standards, making it ideal for power-sensitive and location-aware IoT applications.

<img src="/files/ghzPZFr7uttLAYsK0O6K" alt="" width="408">

### Prerequisites

* Monogoto SIM
* BG950S-GL

### Quick Navigation

* [Set up EVB Kit ](#set-up-umts-and-lte-evb-kit)
* [Useful Links](#useful-links)

## Set up EVB Kit

![Quectel BG950S-GL modem](/files/C2PHoBW1sIUX7jFy4b2O)

#### Set up the EVB Kit

* **Connect the LTE antenna**
* Insert the **Monogoto SIM**

#### **Connect your PC to the EVB Kit**

Use the USB to UART converter cable to connect your computer to the **COM1 MAIN** port of the EVB Kit

{% hint style="info" %}
When using Windows, [install the driver](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M0mPxGpottOEfcucXOR%2Fuploads%2FDiNf9oe2RoYtpFrVIA8L%2FUSBMSER.zip?alt=media\&token=18d8a2f5-8e8e-47d2-a553-ddc9fe7653cd) using the disk or USB stick provided by Quectel.
{% endhint %}

Connect to the EVB kit (WCH USB-Serial **Ch** **A**) using a **terminal program**. You can use PuTTY for Windows, or screen, minicom, or miniterm for Mac or Linux.

Once the modem has started, it will report:

```
RDY
APP RDY
```

Enter `AT`, if the connection with the BG950S-GL modem has been established, the board will answer with `OK`.

## Connect the BG950S-GL to Monogoto

{% hint style="info" %}
Keep the **AT Commands manual** next to you for more details about the commands. [**Click** ](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M0mPxGpottOEfcucXOR%2Fuploads%2FmlGFvvryFqAlm4FB39qt%2FQuectel_BG95BG77BG600L_Series_QCFG_AT_Commands_Manual_V2.0.pdf?alt=media\&token=15dabb47-b5b0-4cfa-ad4a-11cecc9f9211)**here** to download the latest version.
{% endhint %}

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

Restore factory settings:

```
AT&F1
```

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

```bash
AT+CEREG=2
```

Check the **status of the SIM card**. The correct response should be: `+CPIN: READY`

```
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, hardware,** and **firmware** **version**:

<pre class="language-bash"><code class="lang-bash"><strong>AT+QGMR
</strong></code></pre>

Example response:  BG950SGLAAR02A01\_01.001.01.001

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:\
`7` indicates **LTE Cat-M1**\
`8` 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;

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

```

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

### Network Activation

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

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

Validate if the **APN** is set correctly:

```
AT+CGDCONT?
```

Expected response: `+CGDCONT: 1,"IP","data.mono","10.X.X.X",0,0,0,0,0,0`&#x20;

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

#### Query the signal measurement <a href="#query-the-signal-measurement" id="query-the-signal-measurement"></a>

request a specific network measurement, such as signal strength, noise levels, or other metrics:

```
AT%MEAS="8"
```

Example response: `%MEAS:Signal Quality:RSRP=-90,RSRQ= -19,SINR= -11,RSSI= -65`&#x20;

**Reports the information of serving cells**

```bash
AT+QENG="servingcell"
```

Example response:&#x20;

+QENG: "servingcell","NOCONN","eMTC","FDD",425,02,3,394,1400,3,5,5,322,-92,-19,-62,-10,38

**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 %}

#### 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 Quectel modem 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 %}

**Send 5 PINGs** to the IP address `8.8.8.8`:

```
AT%PINGCMD=0,"8.8.8.8",5
```

Example response:

```
%PINGCMD:1,"8.8.8.8",698,116
%PINGCMD:2,"8.8.8.8",232,116
%PINGCMD:3,"8.8.8.8",616,116
%PINGCMD:4,"8.8.8.8",220,116
%PINGCMD:5,"8.8.8.8",206,116
```

## Test the connection by sending a UDP payload&#x20;

A UDP payload test when the modem has an active data connection with a Satellite.

**Send UDP Payload** to the IP address `18.199.15.247`

```
AT%SOCKETCMD="ALLOCATE",1,"UDP","OPEN","18.199.15.247",1055
```

response:

```
%SOCKETCMD:1
OK
```

**Set and Active UDP Socket**

```
AT%SOCKETCMD="SETOPT",1,36000,1
AT%SOCKETCMD="ACTIVATE",1
```

response:

```
OK
```

**Send UDP Socket**

```
AT%SOCKETDATA="SEND",1,13,"48656C6C6F2C20776F726C6421"
```

response:

```
%SOCKETDATA:1,13
```

**info UDP Socket**

```
AT%SOCKETCMD="INFO",1
```

response:

```
%SOCKETCMD:"ACTIVATED","UDP","10.22.243.30","34.192.142.126",12345,7
OK
```

**Close UDP Socket**

```
AT%SOCKETCMD="DELETE",1
```

response:

```
OK
```

## Useful Links

* [Quectel BG950S-GL product page](https://www.quectel.com/product/lpwa-bg950s-gl-cat-m1-nb2/)
* [BG950S-GL\_User\_Guide\_V1.0](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M0mPxGpottOEfcucXOR%2Fuploads%2FmCytM70V2sdHz0p55jeH%2Fquectel_bg950s-gl_user_guide_v1-0.pdf?alt=media\&token=e27e2f51-1d9a-42c4-98e4-0cd01da09571)
