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


---

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