You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: 'Learn how to set up the Arduino® Portenta Cat. M1/NB IoT GNSS Shield and get a quick overview of the functionality. Obtain information regarding pins and how to use the different communication technologies.'
3
+
description: 'Learn how to set up the Arduino® Portenta Cat. M1/NB IoT GNSS Shield and get a quick overview of its functionality. Obtain information regarding pins and how to use the different communication technologies.'
The **Arduino® Portenta Cat. M1/NB IoT GNSS Shield** is a board that enables cellular connectivity with both Cat. M1 and NB-IoT networks. Easily track your valuable assets across the city or worldwide with your choice of the GPS, GLONASS, Galileo or BeiDou Satellite navigation system.
25
+
The **Arduino® Portenta Cat. M1/NB IoT GNSS Shield** is a board that enables cellular connectivity with both Cat. M1 and NB-IoT networks. Easily track your valuable assets across the city or worldwide by choosing among GPS, GLONASS, Galileo or BeiDou Satellite navigation system.
26
26
27
27
This article is a collection of guides, API calls and tutorials that can help you get started with the Arduino® Portenta Cat. M1/NB IoT GNSS Shield board. You can also visit the [documentation product page for the Arduino® Portenta Cat. M1/NB IoT GNSS Shield](/hardware/portenta-cat-m1-nb-iot-gnss-shield) for more in-depth tutorials about the different features.
28
28
@@ -48,42 +48,42 @@ The Portenta Cat. M1/NB IoT GNSS Shield can be programmed through the **Arduino
48
48
49
49
### Web Editor
50
50
51
-
The board can be programmed through the **Web Editor**. To get started with your board, you will only need to install a plugin, which is explained in the guide below:
51
+
The board can be programmed through the **Web Editor**. To get started with your board, you will only need to install a plug-in, which is explained in the guide below:
52
52
53
53
-[Getting started with the Web Editor](/cloud/web-editor/tutorials/getting-started/getting-started-web-editor)
54
54
55
55
## Pins
56
-
As a Portenta family Shield it uses the High density pins to be available for the Portenta board which is being connected.
56
+
As a Portenta family shield, it uses High Density Connectors to interface with the Portenta board which is connected to.
57
57
58
58

59
59
60
60
## GSM
61
61
62
62
### Requirements
63
63
64
-
The GPS Feature requires:
64
+
The GSM feature requires:
65
65
66
-
* An antenna (e.g [Dipole antenna, at the Arduino store](https://store.arduino.cc/products/dipole-pentaband-waterproof-antenna)at the **RF OUT** antenna connector on the top side of the shield.
67
-
* SIM Card capable of running with the CatM1 specifications (check with your provider if your Card has that feature)
66
+
* An antenna (e.g [Dipole antenna, at the Arduino store](https://store.arduino.cc/products/dipole-pentaband-waterproof-antenna)connected to the **RF OUT** antenna connector on the top side of the shield
67
+
* SIM card capable of running according to Cat. M1 specifications (check with your provider if your SIM card has this feature)
68
68
69
-
To check if our setup it's working we can open an example sketch from the GSM library inside the Mbed Portenta Core. Under **Examples > GSM > GSMClient** we open a sketch that connects to the SIM card provider, then connects to a webpage and downloads the content of it to display it inside the Serial Monitor.
69
+
To check if your setup is properly working, you can open an example sketch from the GSM library inside the Mbed Portenta Core. Under **Examples > GSM > GSMClient**, open a sketch that allows you to connect to the SIM card provider, then connect to a webpage, download its content and display it inside the Serial Monitor.
70
70
71
71
Make sure you go to the `arduino_secrets.h` tab and:
72
72
73
-
* Enter the PIN of your SIM card and store it at`SECRET_PIN`.
74
-
* Check the mobile APN of your SIM card provider, e.g "online.provider.com" and save it inside the `SECRET_APN` You can find it by searching Google for APN + provider name.
73
+
* Enter the PIN of your SIM card and store it in the variable`SECRET_PIN`.
74
+
* Check the mobile APN of your SIM card provider, e.g "online.provider.com", and save it inside the `SECRET_APN`. You can find this information by searching online for APN + provider name.
75
75
76
76
APN stands for 'Access Point Name'. An APN is a gateway between a cellular network and the Internet.
77
77
78
-
After finishing this setup compile and upload the program. If everything went fine you should see the HTML content of the web page printed in the serial monitor.
78
+
After finishing this setup, compile and upload the program. If everything went fine, you should see the HTML content of the webpage printed in the Serial Monitor.
79
79
80
-
***Sometimes it takes time to connect to the provider's APN, please be patient, it can take up to 30 minutes. If you cannot connect after that time, make sure you entered the correct SIM pin and the APN. If the issue persists, contact your provider and make sure they have CAT M1 enabled on your SIM card.***
80
+
***Sometimes it takes time to connect to the provider's APN, please be patient, it can take up to 30 minutes. If you cannot connect after that time, make sure you entered the correct SIM pin and the APN. If the issue persists, contact your provider and verify whether Cat. M1 is enabled on your SIM card.***
81
81
82
82
### API
83
83
84
-
To get familiar with the commands, you can have a look at the [GSM library](https://www.arduino.cc/en/Reference/GSM) which uses the same API.
84
+
To get familiar with the commands, you can take a look at the [GSM library](https://www.arduino.cc/en/Reference/GSM) which uses the same API.
85
85
86
-
This library contains some commands that are quite different, that's because it is using mbed APIs. In this case it uses the NetworkInterface, CellularContext and CellularDevice classes. For more information about their API visit [https://os.mbed.com/docs/mbed-os/v6.14/apis/network-interface-apis.html](https://os.mbed.com/docs/mbed-os/v6.14/apis/network-interface-apis.html).
86
+
This library contains some commands that are quite different, because it leverages mbed APIs. In this case, it uses the NetworkInterface, CellularContext and CellularDevice classes. For more information about API visit [https://os.mbed.com/docs/mbed-os/v6.14/apis/network-interface-apis.html](https://os.mbed.com/docs/mbed-os/v6.14/apis/network-interface-apis.html).
87
87
88
88
89
89
@@ -94,7 +94,7 @@ This library contains some commands that are quite different, that's because it
94
94
|`GSM.getTime()`|Returns the time, you can set a new one with setTime()|
95
95
|`GSM.getLocalTime()`| Returns the local time|
96
96
|`GSM.setTime()`| Set the time, it will be saved and it can be read with getTime() |
97
-
|`GSM.debug()`| After this command, the Serial monitor will output more detailed info about the GSM class commands, connections, etc... |
97
+
|`GSM.debug()`| After this command, the Serial Monitor will output more detailed info about the GSM class commands, connections, etc... |
98
98
|`GSMClient.connect(server,port)`| Connect to a remote server |
99
99
|`GSMClient.available()`| Check if the server that is connected to has some bytes ready to be read |
100
100
|`GSMClient.read()`| Returns data from the server |
@@ -103,9 +103,9 @@ This library contains some commands that are quite different, that's because it
103
103
#### Connect to Your Provider
104
104
105
105
You need to enter the Pin code and the APN link of your provider.
106
-
The user name and password depend on your provider. They are required to authenticate with the APN gateway. The values can usually be found by searching Google for APN credentials + provider name. Sometimes they can be left blank.
106
+
The user name and password depend on your provider; they are required to authenticate with the APN gateway. These values can usually be found by searching online for APN credentials + provider name. Sometimes they can be left blank.
107
107
108
-
This sketch will initialize the SIM card and connect to your provider's network
108
+
This sketch will initialize the SIM card and connect to your provider network
109
109
110
110
```cpp
111
111
#include<GSM.h>
@@ -128,7 +128,7 @@ void setup() {
128
128
129
129
#### Send a HTTP GET Request and Receive Data
130
130
131
-
The following sketch will connect to your provider and use a HTTP GET request to get the data from the server you connect to. In this case it connects to "example.com" and prints out the content through the Serial monitor.
131
+
The following sketch will connect to your provider and use a HTTP GET request to get data from the server you are connected to. In this case, it connects to "example.com" and prints out the content through the Serial Monitor.
132
132
133
133
```cpp
134
134
#include<GSM.h>
@@ -194,19 +194,19 @@ void loop() {
194
194
195
195
### Requirements
196
196
197
-
The GPS Feature requires:
197
+
The GPS feature requires:
198
198
199
-
* A GPS active antenna (e.g [GPS active antenna 28dB](https://www.digikey.com/en/products/detail/adafruit-industries-llc/960/5353630)) at the **GNS ANT** antenna connector on the Top side of the shield.
199
+
* A GPS active antenna (e.g [GPS active antenna 28dB](https://www.digikey.com/en/products/detail/adafruit-industries-llc/960/5353630)) connected to the **GNS ANT** antenna connector on the top side of the shield.
200
200
* You may need a connector converter from the active GPS antenna, we used this one [Coaxial to SMA](https://www.digikey.com/en/products/detail/taoglas-limited/CAB.719/3664639)
201
201
202
-
To check if our setup it's working we can open an example inside the GSM library from the Mbed Portenta Core, going to **Examples > GSM > GNSSClient** we will open an sketch that connects to the SIM card provider and initialize the active GPS antenna, then it will print out GPS readings.
202
+
To check if your setup is properly working, you can open an example inside the GSM library from the Mbed Portenta Core, going to **Examples > GSM > GNSSClient**. You will open an sketch that connects to the SIM card provider and initializes the active GPS antenna. At this point, it will print out GPS readings.
203
203
204
204
Make sure you go to the `arduino_secrets.h` tab and:
205
205
206
-
* introduce the PIN of the SIM card you are using and store it at `SECRET_PIN`.
207
-
* Browse to your IT provider and check the mobile APN link, e.g "online.provider.com" save it inside the `SECRET_APN`
206
+
* Add the PIN of the SIM card you are using and store it in the variable `SECRET_PIN`.
207
+
* Browse your IT provider and check the mobile APN link, e.g "online.provider.com" save it inside the `SECRET_APN`
208
208
209
-
***Sometimes it takes time to connect to the provider's APN, please be patient, it can take up to 30 minutes. If you can not connect after that time, make sure you introduced the correct SIM pin and the APN, if the issue continues, contact with your provider and make sure they have CAT M1 enabled on your SIM card.***
209
+
***Sometimes it takes time to connect to the provider's APN, please be patient, it can take up to 30 minutes. If you cannot connect after that time, make sure you added the correct SIM pin and the APN. If the issue continues, contact your provider and verify whether Cat. M1 is enabled on your SIM card.***
210
210
211
211
### API
212
212
@@ -217,14 +217,14 @@ Make sure you go to the `arduino_secrets.h` tab and:
217
217
| `GPS.end()` | Turn OFF the GPS modem. |
218
218
| `GPS.available()` | Check if the GPS has new data to be read. |
219
219
| `GPS.read()` | Returns a `char` with the reading from the GPS module. |
220
-
| `GPS.readAndPrint()` | Output data on the Serial monitor, only if there is new data.|
220
+
| `GPS.readAndPrint()` | Output data on the Serial Monitor, only if there is new data.|
221
221
| `GPS.readAndDrop()` | Read the data and do nothing with it. |
222
222
| `GPS.checkGNSSEngine()` | Check if the GNSS modem is receiving data correctly. |
223
223
224
224
225
225
#### Get GPS Data
226
226
227
-
The following example connects to the GSM provider, then initialize the GPS antenna, gets the data and print it out on the Serial monitor. As you previously done, you need to provide the GSM data by filling in the secrets in `arduino_secrets.h`
227
+
The following example connects to the GSM provider, then initializes the GPS antenna, gets data and prints them out on the Serial Monitor. As done previously, you need to provide the GSM data by filling the secrets in `arduino_secrets.h`
228
228
229
229
Open the example by going to **Examples > GSM > GNSSClient**.
230
230
@@ -262,21 +262,21 @@ Open the example by going to **Examples > GSM > GNSSClient**.
262
262
}
263
263
```
264
264
265
-
***Remember to connect to the GSM provider and secondly connect to the GNSS (mandatory).***
265
+
***Remember to connect to the GSM provider first and secondly connect to the GNSS (mandatory).***
266
266
267
-
You will see the **NMEA** data in the Serial monitor.
267
+
You will see the **NMEA** data in the Serial Monitor.
268
268
269
269

270
270
271
271
#### Parse NMEA GPS Sentences
272
272
273
273
Previously we went through how to show the GPS data in the Serial Monitor, but it was not possible to evaluate those messages (NMEA sentences).
274
274
275
-
To do so you can use an **NMEA parser** this will convert the messages received from the GPS modem, parsing and saving them into variables. You can use the **107-Arduino-NMEA-Parser** library. This library can be found in the library manager inside the Arduino IDE.
275
+
To do so, you can use an **NMEA parser**. This will convert messages received from the GPS modem, parsing and saving them into variables. You can use the **107-Arduino-NMEA-Parser** library. This library can be found in the library manager inside the Arduino IDE.
276
276
277
-
This makes it possible to interact with the data that you need for your application, for example if you only want to get the latitude and longitude. You will be able to save those needed values into variables, instead of having the whole NMEA messages.
277
+
In this way, it is possible to interact with the data that you need for your application, for instance getting only latitude and longitude. You will be able to save those values into variables, instead of having the whole NMEA messages.
278
278
279
-
Open the example from the library at **Examples > 107-Arduino-NMEA-Parser > NMEA-Basic** and you need to add the following:
279
+
Open the example from the library at **Examples > 107-Arduino-NMEA-Parser > NMEA-Basic** and add the following:
280
280
281
281
Include the needed libraries.
282
282
@@ -316,13 +316,13 @@ Edit the loop to parse the `GPS` readings instead of the `Serial1`.
316
316
}
317
317
```
318
318
319
-
***You will see the output data as various "-1" until the GPS has enough visible satellites to get the correct data, make sure the GPS antenna is somewhere that can see the sky.***
319
+
***You will see the output data as various "-1" until the GPS has enough visible satellites to get the correct data. Make sure the GPS antenna is pointing at the sky.***
320
320
321
321
#### Low Power GPS
322
322
323
323
The GPS antenna is active, that means that it needs power to function as it has electronics inside of it.
324
324
325
-
One way to save power on your project is to enable the GPS module only when it is needed to read the data:
325
+
One way to save power on your project is to enable the GPS module only when it needs to read data:
326
326
327
327
```cpp
328
328
//Start the GPS module
@@ -341,7 +341,7 @@ By using this method, you don't need to initialize the GPS inside the `setup()`.
341
341
342
342
## Conclusion
343
343
344
-
This cheat sheet is written as a quick reference, to look up the GSM and GPS feature of this product. For a more in-depth walk through experience please have a look at the other tutorials.
344
+
This cheat sheet is written as a quick reference to look up the GSM and GPS feature of this product. For a more in-depth walk through experience, please have a look at the other tutorials.
345
345
346
346
## Troubleshooting
347
347
@@ -351,4 +351,4 @@ Make sure you included first the `GPS.h` library and then the `GSM.h`
351
351
352
352
### Can't Upload the Sketch
353
353
354
-
Sometimes if the GPS module is getting readings, you will not be able to upload a new sketch, double tap the reset button on your Portenta H7 and upload the new sketch.
354
+
Sometimes, while the GPS module is getting readings, you will not be able to upload a new sketch. Double tap the reset button on your Portenta H7 and upload the new sketch.
0 commit comments