# Arduino Portenta C33

The **Portenta C33**, paired with the **Portenta Mid Carrier** and **Pro 4G Module**, is an official Arduino development kit that delivers high-performance cellular connectivity for professional IoT and embedded applications. Leveraging LTE Cat 4 for fast and reliable 4G communications, this kit offers seamless integration with the Arduino ecosystem, secure cloud connectivity, and hardware expansion through the Mid Carrier interface. It is ideal for industrial automation, edge computing, and remote monitoring, combining flexibility, ease of development, and robust performance.

![](https://3922449203-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M0mPxGpottOEfcucXOR%2Fuploads%2FJfwSvhGqRl1Wko15amS1%2FportentaMIDcarrier_x8_4g_animated.gif?alt=media\&token=9f145282-4702-4a16-bb6b-0365eeb30ed2)

### Prerequisites

* [Portenta C33 board](https://docs.arduino.cc/hardware/portenta-c33/)
* [Portenta Mid Carrier](https://d37-fh04.eu1.hs-sales-engage.com/Ctc/5G+23284/d37-fH04/Jll2-6qcW7Y8-PT6lZ3pBW71zlWv4FlM2HW8YfDBs8jNbltW1xJG3k73CgwDW5HlSHJ3ByZVXW4Gj-Sf8TxcZpVyNQXS1JgmGbW4Gr_4b3KyqtHW4FkDc92lZ3SWN8_-SWWRKvm4W1dZq6f6QLHf0W2mG0C-7Tct8DW3tj6pK38QbclW5QjCxQ7LFV_wW6b8hjj1RNRKSW6b3Phv4Wj8NWW1RcghR222B1JW5wFq1B54Zj8KW1Z-y6K2xtZnQW2t-XvL11zXKgW5CKTHY11VMdwW6G1S055zxnZ3W4F039P27bsxrN3418Rs23CTwW5CxsDV6dt-kMN2zCMKznP4mXW3GCM2n4X0Zw4f6Rzgw604)&#x20;
* [Pro 4G Module](https://d37-fh04.eu1.hs-sales-engage.com/Ctc/5G+23284/d37-fH04/Jl22-6qcW7lCdLW6lZ3kVN6fkF7knSrynW7rBj0j7FWj0qW1rLZrw2j7nHQV3KyPZ219vrsW3QtFJj5yzqb_W7LVkNS37z3kwW5XdTX-3YDHlXVSVHSZ27cKNsW4PPQC67g-F2xW7JxR7r8Q4rQ3W2s2FTV1lk_ZHW381Rz04N71dTW26JvYR8ZhRkLW333np450r1hpW28rVFY953qD4V4T7DP1XhRlLW6kXLsl2PldHxW2gkyzP1jtfxgF5Nxw9Q5THyW8hqRdz5R9bSrN1mlB26TM2gVW6zk_Mn98-lNgW586nQm4RC881W4m1JF52T1MS6f5PpD7P04)
* Monogoto Cellular SIM
* [Arduino IDE (Version 2.3.6 or later)](https://www.arduino.cc/en/software/)
* [Arduino Cellular library](https://docs.arduino.cc/libraries/arduino_cellular/)
* [ModemTerminal Arduino sketch files](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M0mPxGpottOEfcucXOR%2Fuploads%2FNcNc99J3g7BuQPxvbCId%2FModemTerminal.zip?alt=media\&token=098b4fab-0bce-4920-8473-e90fcab15885)

## **Hardware Connection Instructions**

![](https://3922449203-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M0mPxGpottOEfcucXOR%2Fuploads%2Fe5L7jinQykCXmUPpXNLH%2FArduino%20Portenta%20C33_Device.png?alt=media\&token=15c2c6ef-d350-41d4-8f35-47006a280028)

* Ensure proper wiring between **Serial1 (J17)** and **mini PCIe Breakout (J16)** as per Arduino’s pin mapping:
  * J17 RX → J16 CK\_N
  * J17 TX → J16 CK\_P
  * J17 RTS → J16 RX\_N
  * J17 CTS → J16 RX\_P
  * J17 mPCIE\_GPIO\_RST → J16 mPCIE\_RST
* Connect the **Portenta C33** to the Portenta Mid Carrier kit.&#x20;
* Connect the **Quectel EG25 module** to the Portenta Mid Carrier kit.&#x20;
* Connect the **LTE (Main) antenna** and the **GPS antenna** to the Quectel EG25 module
* Power the board via USB-C.

#### **Connect your PC to the** Portenta Mid Carrier EVB&#x20;

Use the [USB-C to USB cable ](https://store.arduino.cc/products/usb-cable2in1-type-c)to connect your computer to the **Portenta C33** port in the EVB

<figure><img src="https://3922449203-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M0mPxGpottOEfcucXOR%2Fuploads%2FJDRWda6h6NIdDroZ4TQn%2FArduino%20Portenta%20C33_Select.png?alt=media&#x26;token=87788d51-c365-481e-9f09-5d191d9d8982" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Bring Your Projects to Life with [Arduino IDE 2.3.6 Software](https://www.arduino.cc/en/software/)&#x20;
{% endhint %}

Run the Arduino IDE 2.3.6 to open the Serial Monitor.

<figure><img src="https://3922449203-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M0mPxGpottOEfcucXOR%2Fuploads%2FNhEaudvmQRk5qHGbjQ2Y%2FArduino%20Portenta%20C33_Serial%20Monitor.png?alt=media&#x26;token=bd0aced5-bbe5-4a87-9535-2c221977c763" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Install the [Cellular library ](https://docs.arduino.cc/libraries/arduino_cellular/)toolkit with [Sketch ModemTerminal files](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M0mPxGpottOEfcucXOR%2Fuploads%2FNcNc99J3g7BuQPxvbCId%2FModemTerminal.zip?alt=media\&token=098b4fab-0bce-4920-8473-e90fcab15885)
{% endhint %}

## Connect the EG25 to Monogoto

Request the **product type, hardware** and **firmware** **version**:

```bash
ATI
```

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**\
`2` indicates **3G**\
`7` indicates **LTE**

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

OK
```

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

{% hint style="info" %}
To find the **profile** of your SIM, visit the [**Monogoto Console**](https://console.monogoto.io/), open the page **Things** ![](https://3922449203-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M0mPxGpottOEfcucXOR%2Fuploads%2FfH8DCNlIW5R2VRiHwMG5%2FThings.png?alt=media\&token=2a63b922-cb41-4271-803e-ba9eab36566d) and select a specific **Thing**. Scroll down to **Mobile Identities** to find your profile in the column **Network Provider Name**.

![](https://3922449203-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M0mPxGpottOEfcucXOR%2Fuploads%2FddQeceTZxjtQYFPAHe95%2Fimage.png?alt=media\&token=4a3f1cbf-3922-48f9-af5d-2e292bd76b72)
{% 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**.

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

#### Query Network information

This command returns the Radio Access Technology (RAT), MCCMNC operator code, and LTE band currently in use.

```
AT+QNWINFO
```

Example response: `+QNWINFO: "FDD LTE","20408","LTE BAND 3",1800`.&#x20;

### 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","0.0.0.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`

#### 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 3 PINGs** to IP address `8.8.8.8`:

```
AT+QPING=1,"8.8.8.8",3
```

Example response:

```
+QPING: 0,"8.8.8.8",32,543,255
+QPING: 0,"8.8.8.8",32,396,255
+QPING: 0,"8.8.8.8",32,262,255
```

## Useful Links

* [Portenta Mid Carrier User Manual](https://docs.arduino.cc/tutorials/portenta-mid-carrier/user-manual/#first-use-of-your-portenta-mid-carrier)
* [Portenta Mid Carrier](https://d37-fh04.eu1.hs-sales-engage.com/Ctc/5G+23284/d37-fH04/Jll2-6qcW7Y8-PT6lZ3pBW71zlWv4FlM2HW8YfDBs8jNbltW1xJG3k73CgwDW5HlSHJ3ByZVXW4Gj-Sf8TxcZpVyNQXS1JgmGbW4Gr_4b3KyqtHW4FkDc92lZ3SWN8_-SWWRKvm4W1dZq6f6QLHf0W2mG0C-7Tct8DW3tj6pK38QbclW5QjCxQ7LFV_wW6b8hjj1RNRKSW6b3Phv4Wj8NWW1RcghR222B1JW5wFq1B54Zj8KW1Z-y6K2xtZnQW2t-XvL11zXKgW5CKTHY11VMdwW6G1S055zxnZ3W4F039P27bsxrN3418Rs23CTwW5CxsDV6dt-kMN2zCMKznP4mXW3GCM2n4X0Zw4f6Rzgw604)&#x20;
* [Portenta C33](https://docs.arduino.cc/hardware/portenta-c33/)
* [Pro 4G Module](https://d37-fh04.eu1.hs-sales-engage.com/Ctc/5G+23284/d37-fH04/Jl22-6qcW7lCdLW6lZ3kVN6fkF7knSrynW7rBj0j7FWj0qW1rLZrw2j7nHQV3KyPZ219vrsW3QtFJj5yzqb_W7LVkNS37z3kwW5XdTX-3YDHlXVSVHSZ27cKNsW4PPQC67g-F2xW7JxR7r8Q4rQ3W2s2FTV1lk_ZHW381Rz04N71dTW26JvYR8ZhRkLW333np450r1hpW28rVFY953qD4V4T7DP1XhRlLW6kXLsl2PldHxW2gkyzP1jtfxgF5Nxw9Q5THyW8hqRdz5R9bSrN1mlB26TM2gVW6zk_Mn98-lNgW586nQm4RC881W4m1JF52T1MS6f5PpD7P04)
