# Arduino Portenta H7

The **Portenta H7**, paired with the **Portenta Cat. M1/NB IoT GNSS Shield** is a high-performance Arduino development platform designed for advanced IoT and embedded applications requiring low-power, wide-area cellular connectivity. Supporting LTE Cat-M1 and NB-IoT, it ensures reliable long-range communications while maintaining energy efficiency, making it ideal for battery-powered or remote deployments. The integrated GNSS functionality provides precise location tracking, while seamless compatibility with the Arduino ecosystem enables rapid prototyping and secure cloud integration. This kit is well-suited for smart city infrastructure, asset tracking, environmental monitoring, and other mission-critical use cases that demand robust performance, versatility, and global connectivity.

![](https://3922449203-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M0mPxGpottOEfcucXOR%2Fuploads%2FnsBBmKgAIL6LE7w9yr4m%2FArduino%20Portenta%20H7.png?alt=media\&token=e5aa4af6-5f15-4357-a730-e793bd853995)

### Prerequisites

* [Portenta H7 board](https://docs.arduino.cc/hardware/portenta-c33/)
* [Portenta Cat. M1/NB IoT GNSS Shield](https://docs.arduino.cc/hardware/portenta-cat-m1-nb-iot-gnss-shield/#tutorials)
* 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%2FHbjZZGe0NXzMfv7MEx9c%2FGSMSerialPassthrough.zip?alt=media\&token=205d9476-a6bc-4819-b467-9ffe1eca3533)

## **Hardware Connection Instructions**

![](https://3922449203-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M0mPxGpottOEfcucXOR%2Fuploads%2Fl9NYCc8ALqITaxvt3cvo%2FArduino%20Portenta%20H7AndCatM1.png?alt=media\&token=061bba36-ad9e-4196-9a94-7db0f78bd866)

* Connect the **Portenta Cat. M1/NB IoT GNSS Shield** to the Portenta H7.&#x20;
* Connect the **LTE (RF OUT) antenna** and the **GPS antenna** to the Portenta Cat. M1/NB IoT GNSS Shield
* Power the board via USB-C.

#### **Connect your PC to the** Portenta H7&#x20;

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

<figure><img src="https://3922449203-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M0mPxGpottOEfcucXOR%2Fuploads%2FPdPfr4SaSvPKsDaOws9Y%2FArduino%20Portenta%20H7_Select.png?alt=media&#x26;token=c439ecbf-992d-41c3-aaa4-5622da3852bb" 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%2FhVACQZtK6LADiCWAAVDw%2FArduino%20Portenta%20H7_Serial%20Monitor.png?alt=media&#x26;token=76f214b3-5b61-46e4-9ca4-e980ab16b358" 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%2FHbjZZGe0NXzMfv7MEx9c%2FGSMSerialPassthrough.zip?alt=media\&token=205d9476-a6bc-4819-b467-9ffe1eca3533)
{% endhint %}

## Connect the Telit Cinterion TX62-W 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^SCID
```

### 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 **Cat.M1**\
`9` indicates **Cat.NB1**

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

#### Query Network information

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

```
AT^SMONI
```

Example response: `^SMONI: Cat.M1,9260,28,-,FDD,204,04,18BB,010A20C,330,42,-82,-13,NOCONN,3`&#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^SICA=1,1
```

**Test** if the PDP context is activated:

```
AT^SICA?
```

Expected response: `^SICA: 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 Telit 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 2 PINGs** to IP address `8.8.8.8`:

```
AT^SISX="Ping",1,"8.8.8.8",2
```

Example response:

```
^SISX: "Ping",1,1,"8.8.8.8",186
^SISX: "Ping",1,1,"8.8.8.8",151
^SISX: "Ping",2,1,2,2,0,0
^SISX: "Ping",3,1,151,186,168
```

## Useful Links

* [Portenta H7 board](https://docs.arduino.cc/hardware/portenta-c33/)
* [Portenta Cat. M1/NB IoT GNSS Shield](https://docs.arduino.cc/hardware/portenta-cat-m1-nb-iot-gnss-shield/#tutorials)
* [Telit Cinterion TX62-W AT Command Manual](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M0mPxGpottOEfcucXOR%2Fuploads%2FTpbqvEhHtZAeYkpGFQ3c%2FTC_TX62-W_AT_Command_Set_User_Guide_01.200_r0.pdf?alt=media\&token=66ad69c4-030c-46da-948d-6720ef343243)


---

# 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/arduino-portenta-h7.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.
