Libelium SIM5215 User manual

Waspmote 4G
Networking Guide

-2-
v7.3
Index
Document version: v7.3 - 10/2018
© Libelium Comunicaciones Distribuidas S.L.
INDEX
1. Introduction .......................................................................................................................... 4
2. 3G (SIM5215) vs 4G (LE910) ................................................................................................... 5
3. Hardware ...............................................................................................................................6
3.1. Specications..................................................................................................................................... 6
3.2. Versions.............................................................................................................................................. 6
3.3. How to connect the module ............................................................................................................ 7
3.4. Antennas ............................................................................................................................................ 9
3.5. Power consumption........................................................................................................................ 10
3.6. Time consumption.......................................................................................................................... 10
4. Software...............................................................................................................................11
4.1. Waspmote library............................................................................................................................ 11
4.1.1. Waspmote 4G library ..........................................................................................................11
4.1.2. Class constructor.................................................................................................................11
4.1.3. API constants .......................................................................................................................11
4.1.4. API variables.........................................................................................................................12
4.1.5. API functions........................................................................................................................13
4.1.6. Error codes...........................................................................................................................13
4.2. Switching on .................................................................................................................................... 16
4.3. Switching o .................................................................................................................................... 16
4.4. SIM card............................................................................................................................................ 16
4.4.1. Entering PIN .........................................................................................................................16
4.4.2. Getting IMEI, IMSI and ICCID..............................................................................................17
4.5. Checking network connection status ........................................................................................... 18
4.6. Setting operator parameters......................................................................................................... 19
4.7. SMS ................................................................................................................................................... 19
4.7.1. Setting SMS conguration..................................................................................................19
4.7.2. Sending SMSs.......................................................................................................................20
4.7.3. Reading SMSs.......................................................................................................................20
4.7.4. Deleting SMSs ......................................................................................................................21
4.8. HTTP client ....................................................................................................................................... 22
4.8.1. HTTP connections................................................................................................................22
4.8.2. HTTP request methods.......................................................................................................23
4.8.3. Sending Waspmote frames to Meshlium via HTTP.........................................................25
4.8.4. Sending Waspmote frames to Meshlium via HTTPS.......................................................27
4.9. FTP client.......................................................................................................................................... 28

-3-
v7.3
4.9.1. Opening an FTP session .....................................................................................................28
4.9.2. FTP upload............................................................................................................................29
4.9.3. FTP download ......................................................................................................................30
4.9.4. FTP delete le.......................................................................................................................31
4.9.5. FTP working directory .........................................................................................................31
4.9.6. Closing an FTP session........................................................................................................31
4.10. TCP/UDP connections................................................................................................................... 32
4.10.1. Socket identiers...............................................................................................................32
4.10.2. Socket information structure...........................................................................................32
4.10.3. Socket status structure.....................................................................................................33
4.10.4. Creating a TCP/UDP client socket....................................................................................34
4.10.5. Creating a TCP/UDP server socket ..................................................................................35
4.10.6. Sending data......................................................................................................................36
4.10.7. Receiving data ...................................................................................................................37
4.10.8. Closing a socket.................................................................................................................38
4.10.9. SSL sockets.........................................................................................................................38
4.11. GPS ................................................................................................................................................. 41
4.11.1. Standalone or Autonomous GPS (S-GPS).......................................................................42
4.11.2. Assisted GPS (A-GPS).........................................................................................................42
4.11.3. Get GPS position ...............................................................................................................42
4.11.4. Indoor tracking using 4G and A-GPS mode (geolocation)............................................44
4.12. e-mail management functions .................................................................................................... 47
4.12.1. Reseting e-mail parameters.............................................................................................47
4.12.2. Setting the SMTP server ...................................................................................................47
4.12.3. Conguring SMTP parameters ........................................................................................47
4.12.4. Setting the sender parameters: address, username and password ..........................48
4.12.5. Saving e-mail parameters ................................................................................................48
4.12.6. Sending an e-mail..............................................................................................................48
5. Certications .......................................................................................................................50
6. Code examples and extended information .....................................................................51
7. API changelog ...................................................................................................................... 52
8. Documentation changelog ................................................................................................ 53
Index

-4-
v7.3
Introduction
1. Introduction
This guide explains the features and use of the new 4G module. This module was specically integrated for our
new product lines Waspmote v15, Plug & Sense! v15 and Meshlium v4.0, released on October 2016. The 4G module
is not compatible Waspmote v12, Plug & Sense! v12 or Meshlium 3.x.
If you are using previous versions of our products, please use the corresponding guides, available on our
Development website.
You can get more information about the generation change on the document “New generation of Libelium product
lines”. The 4G module has been integrated into the devices Waspmote OEM, Plug & Sense! and Meshlium.
The new 4G module enables the connectivity to high speed LTE, HSPA+, WCDMA cellular networks in order to
make possible the creation of the next level of worldwide compatible projects inside the new “Internet of Things”
era.
The new communication module is specially oriented to work with Internet servers, implementing internally
several application layer protocols, which make easier to send the information to the cloud. We can make HTTP
navigation, downloading and uploading content to a web server. We can also set secure connections using SSL
certicates and setting TCP/IP private sockets. In the same way, the FTP protocol is also available which is really
useful when your application requires handling les.
The module includes a GPS/GLONASS receiver, able to perform geolocation services using NMEA sentences,
oering information such as latitude, longitude, altitude and speed; that makes it perfect to perform tracking
applications.
The new 4G module oers the maximum performance of the 4G network as it uses 2 dierent antennas (normal
+ diversity) for reception (MIMO DL 2x2), choosing the best received signal at any time and getting a maximum
download speed of 100 Mbps.
We chose the LE910 chipset family from Telit as it comprises the most complete 4G/LTE set of variants released
up to date. It counts with many dierent models, each one specically designed for one market but all of them
with the same footprint:
•LE910-EUG (Europe / Brazil): CE, GCF, ANATEL
•LE910-NAG (US / Canada): FCC, IC, PTCRB, AT&T approved
•LE910-AU V2 (Australia): RCM, Telstra approved
Important note: The current stock of the LE910 4G radio that the manufacturer ‘Telit’ is distributing comprises
the v2 version which does not have GPS. The models are:
•LE910-EU V2 for Europe or Brazil
•LE910-NA V2 for US or Canada
These v2 radios are similar to the v1 ones, but support more bands and do not have a GPS receiver.
Important:
•All documents and any examples they contain are provided as-is and are subject to change without notice.
Except to the extent prohibited by law, Libelium makes no express or implied representation or warranty of
any kind with regard to the documents, and specically disclaims the implied warranties and conditions of
merchantability and tness for a particular purpose.
•The information on Libelium’s websites has been included in good faith for general informational purposes
only. It should not be relied upon for any specic purpose and no representation or warranty is given as to its
accuracy or completeness.

-5-
v7.3
3G (SIM5215) vs 4G (LE910)
2. 3G (SIM5215) vs 4G (LE910)
The new 4G module (specic for the new lines Waspmote v15, Plug & Sense! v15 and Meshlium 4.0) introduces
some changes with respect to the 3G module (available for the old lines Waspmote v12, Plug & Sense! v12,
Meshlium 3.5 and the new Waspmote v15):
•The new 4G counts with many dierent models, one specically designed for each market:
-LE910-EU (Europe / Brazil): CE, GCF, ANATEL
-LE910-NAG (US / Canada): FCC, IC, PTCRB, AT&T approved
-LE910-AU V2 (Australia): RCM, Telstra approved
•The GPS module also makes it possible to perform geo-location services using NMEA sentences, oering
information such as latitude, longitude, altitude and speed, what makes it perfect for tracking applications.
•The new 4G module oers the maximum performance of the 4G network as it uses 2 dierent antennas
(normal + diversity) for reception (MIMO DL 2x2), choosing the best received signal at any time and getting a
maximum download speed of 100 Mbps.
Features comparison:
Features [v12] 3G module (SIM5215) [v15] 4G module (LE910)
Chipset manufacturer SIMCom Telit
Cellular protocols 3G / GPRS / GSM 4G / 3G / GPRS / GSM
Certications CE, GCF, FCC, IC, PTCRB CE, GCF, ANATEL, FCC, IC, PTCRB, AT&T
Compliant, KCC, RCM, NTT DoCoMo, KDDi
GPS No Yes
Camera option Yes No
SD card Yes No
USB connectivity Yes Yes
Download max speed 384 kbps 100 Mbps
Upload max speed 384 kbps 50 Mbps
Antenna diversity No Yes
Cellular carriers (mobile
network operator) Any Any + Specially tested with AT&T, SK Telecom,
Telstra, NTT DoCoMo or KDDi
FTP Yes Yes
FTPS (Secure) Yes No
HTTP Yes Yes
HTTPS (Secure) Yes No
TCP/UDP sockets Yes Yes
SSL sockets No Yes
Mails Yes Yes
4G compatibility:
Item Compatible Notes
Waspmote 12 Yes New Waspmote API needed (v025 or newer)
Waspmote 15 Yes New Waspmote API needed (v025 or newer)
Old 3G codes No The new 4G module provides new improved
examples and libraries

-6-
v7.3
Hardware
3. Hardware
3.1. Specications
The 4G module is based on the LE910 chipset, manufactured by Telit.
The module is managed by UART and it must be connected to socket
1 (direct connection, without Expansion Board). The main features of
the module are listed below:
•Output power:
-Class 4 (2 W, 33 dBm) @ GSM 850 / 900
-Class 1 (1 W, 30 dBm) @ GSM 1800 / 1900
-Class E2 (0.5 W, 27 dBm) @ EDGE 850 / 900
-Class E2 (0.4 W, 26 dBm) @ EDGE 1800 /1900
-Class 3 (0.25 W, 24 dBm) @ UMTS
-Class 3 (0.2 W, 23 dBm) @ LTE
•Data transmission:
-LTE:
»Uplink up to 50 Mbps
»Downlink up to 100 Mbps
-HSPA+:
»Uplink up to 5.76 Mbps
»Downlink up to 42.0 Mbps
-UMTS:
»Uplink/Downlink up to 384 kbps
•Protocols:
-TCP/UDP
-HTTP
-FTP
•GPS receiver (in certain versions)
3.2. Versions
Telit has dierent versions of the LE910 chipset. Each one of them was especially designed to comply with the
RF and cellular regulations in dierent countries or regions of the world. Libelium has integrated the following
versions:
Features LE910 EUG LE910 NAG LE910 AU V2
Region Europe and Brazil USA and Canada
(Americas) Australia
Supported 4G bands B20 (800), B3 (1800), B7
(2600)
B17 (700), B5 (850), B4
(1700), B2 (1900)
B3 (1800), B7 (2600), B28
(700)
3G fall-back Yes Yes No
Supported 3G bands B5 (850), B8 (900), B1
(2100) B5 (850), B2 (1900) None
2G fall-back Yes Yes No
Supported 2G bands GSM 900, DCS 1800 GSM 850, PCS 1900 None
GPS/GLONASS Yes Yes No
Certications CE (R&TTE), GCF FCC, IC, PTCRB, AT&T RCM, Telstra
Figure : 4G module

-7-
v7.3
Hardware
Important note: The current stock of the LE910 4G radio that the manufacturer ‘Telit’ is distributing comprises
the v2 version which does not have GPS. The models are:
•LE910-EU V2 for Europe or Brazil
•LE910-NA V2 for US or Canada
These v2 radios are similar to the v1 ones, but support more bands and do not have a GPS receiver.
Features LE910 EU V2 LE910 NA V2
Region Europe USA and Canada (Americas)
Supported 4G bands B20 (800), B8 (900), B3 (1800), B1
(2100), B7 (2600)
B12 (700), B13 (700), B5 (850), B4
(1700), B2 (1900)
3G fall-back Yes Yes
Supported 3G bands B8 (900), B1 (2100) B5 (850), B2 (1900)
2G fall-back Yes No
Supported 2G bands 900 / 1800 None
GPS/GLONASS No No
3.3. How to connect the module
This module must be connected to the SOCKET1 on the Waspmote board. Like any other cellular radio, the
connection is native so the radio does not need the Expansion Radio Board.
Figure : Module connected to Waspmote in SOCKET1

-8-
v7.3
Hardware
The SIM card used in the 4G module OEM version is a “standard SIM”, also known as “mini SIM”. The next picture
shows how the SIM card must be plugged in the 4G module.
Figure : SIM card installation in OEM version
On the other hand, Plug and Sense! models with 4G radio provide a special connector in order to plug both micro
USB wire and nano SIM card for the 4G module.
Figure : SIM card installation in Plug and Sense! version
Figure : Push-push mechanism in the External SIM/USB socket

-9-
v7.3
Hardware
3.4. Antennas
The 4G module comes with 2 cellular antennas for improving the signal reception: normal (main) antenna and
diversity antenna. Besides, a 3rd antenna is also included for the GPS receiver (when it is available in the 4G
module).
All these 3 antennas are the same model and can be used in any of the 4G sockets. The operating bands of
the dipole antenna go from 698 to 960 MHz and from 1710 to 2690 MHz. The maximum gain of the antenna is
observed at 2.6 GHz: 3.4 dBi.
To get the maximum performance, it is recommended to place the antennas like that:
•The main cellular antenna should be in vertical position, pointing to the sky, in order to radiate better to the
cellular base stations around.
•The diversity cellular antenna should be in horizontal position (orthogonal, 90º, to the main antenna). Besides,
the plane where the antenna is should be also orthogonal to the main antenna’s plain. Finally, it is advised to
place this 2nd cellular antenna as fas as possible from the main antenna. These 3 measures will maximize the
gain due to reception diversity.
•The GPS antenna should be in horizontal position, because the GPS satellite signal will come from above.
Figure : 4G module antennas

-10-
v7.3
Hardware
3.5. Power consumption
The 4G module is directly powered by the battery. The next table shows the Waspmote’s peak current consumption
in dierent states of the 4G module.
State Mean power
consumption
On 100 mA
Transmitting data 400 mA
Receiving data 400 mA
Non-rechargeable batteries are not advised for the 4G module, because the high peaks of current consumption
could make the voltage of these batteries to go below 3.3 V so Waspmote would reset. The rechargeable battery
will not suer this eect as long as its level is above 20%.
3.6. Time consumption
The following table describes the mean elapsed time for some actions in a single test for several attempts:
Action Mean elapsed time
Power on ~11 s
Start data connection ~4 s
Perform HTTP GET or POST ~0.7 s
Open FTP session ~3 s
Perform FTP upload 10 kB le ~7 s
Perform FTP download 10 kB
le ~6 s
Some of these actions approximately have a xed elapsed time like powering on the module. However, the actions
related to data transmission (HTTP, FTP, etc.) are dependent on external circumstances (MNO, coverage quality,
etc) and show more variability from the mean value.

-11-
v7.3
Software
4. Software
4.1. Waspmote library
4.1.1. Waspmote 4G library
The les related to the 4G module library are:
/Wasp4G/Wasp4G.h
/Wasp4G/Wasp4G.cpp
/Wasp4G/utility/Wasp4G_constants.h
/Wasp4G/utility/Wasp4G_error_codes.h
It is mandatory to include the 4G library when using this module. So the following line must be added at the
beginning of the code:
#include <Wasp4G.h>
4.1.2. Class constructor
To start using the Waspmote 4G library, an object from the Wasp4G class must be created. This object, called _4G, is
already created by default inside the Waspmote 4G library. It will be used along this guide to show how Waspmote
works.
When using the class constructor, all variables are initialized to their default values.
4.1.3. API constants
The API constants used in functions are:
Constant Description
DEBUG_WASP4G
This denition enables/disables the debug mode via USB
port:
0: No debug mode enabled
1: Debug mode enabled for error output messages
2: Debug mode enabled for both error and OK messages
LE910_RATE Module's communication baud rate
LE910_INCOMING_SMS Constant to set incoming data type when SMS received
LE910_INCOMING_IP Constant to set incoming data type when IP received
LE910_MAX_DL_PAYLOAD Maximum data payload size to be stored in the data
buer
The are several enumeration denitions for the function inputs. Please refer to the corresponding section in order
to know more about the functions input parameters.

-12-
v7.3
Software
4.1.4. API variables
Variable Description
_buffer The buer of memory used for storing the responses from the module (512
bytes)
_length The length of the contents stored in _buffer
_def_delay The time to wait after sending every command until listen for a response
_baudrate The baudrate to be used when the module is switched on
_uart The selected UART (regarding the socket used: SOCKET0 or SOCKET1)
_errorCode It stores the error code returned by the module when calling a function with
error response
_ip IP address assigned to the 4G module when it is connected to the network
_temp It stores temperature from the module
_tempInterval It stores temperature interval from the module
_rssi It stores the module's RSSI level
_networkType It stores the network type which module is connected to
_incomingType It stores the incoming data type to be read via serial
_smsIndex It stores the SMS index where the incoming message was saved
_smsStatus It stores the status of the SMS read from module's memory
_smsNumber It stores the phone number of the SMS read from module's memory
_smsDate It stores the date of the SMS read from module's memory
_smsTime It stores the time of the SMS read from module's memory
_socketIndex It stores the socket index which is getting data from UDP or TCP
_httpCode It stores the HTTP status code
_lesize It stores the size of the le when FTP upload/download is performed
_ftpWorkingDirectory It stores the current working directory of the FTP session
socketInfo Structure to dene the info to be stored for all sockets
socketStatus Structure to dene the status to be stored for all sockets
socketStatusSSL Structure to dene the status to be stored for all sockets
_latitude It stores latitude from GPS
_latitudeNS It stores the north/south indicator from GPS
_longitude It stores longitude from GPS
_longitudeEW It stores east/west indicator
_altitude It stores altitude from GPS
_time It stores time from GPS
_date It stores date from GPS
_numSatellites It stores the number of satellites “in sight” of the GPS
_xMode It stores x mode set from GPS
_speedOG It stores speed over ground from GPS
_courseOG It stores course over ground from GPS
_hdop It stores the horizontal dilution of precision from GPS

-13-
v7.3
Software
4.1.5. API functions
Through this guide there are lots of examples, showing the use of functions. In these examples, API functions are
called to execute the commands, storing in their related variables the parameter value in each case. The functions
are called using the predened object _4G.
All public functions return dierent possible values:
•0: OK
•Otherwise: ERROR. See corresponding function error code
4.1.6. Error codes
When the 4G module returns an error code, the _errorCode variable stores the corresponding error meaning. Do
not confuse this error code with the returning value from the API functions. There are other types of errors like
“no response from the module” which are not included in the next list. For each function answer, please refer to
the corresponding error values described for each function within the libraries.
The possible module’s error codes are described by constants as the table below:
Constant Value Error code description
WASP4G_CME_ERROR_0000 0 Phone failure
WASP4G_CME_ERROR_0001 1 No connection to phone
WASP4G_CME_ERROR_0002 2 Phone-adapter link reserved
WASP4G_CME_ERROR_0003 3 Operation not allowed
WASP4G_CME_ERROR_0004 4 Operation not supported
WASP4G_CME_ERROR_0005 5Phone SIM (Subscriber Identity Module) PIN (Personal
Identication Number) required
WASP4G_CME_ERROR_0010 10 SIM not inserted
WASP4G_CME_ERROR_0011 11 SIM PIN required
WASP4G_CME_ERROR_0012 12 SIM PUK (Personal Unlocking Key) required
WASP4G_CME_ERROR_0013 13 SIM failure
WASP4G_CME_ERROR_0014 14 SIM busy
WASP4G_CME_ERROR_0015 15 SIM wrong
WASP4G_CME_ERROR_0016 16 Incorrect password
WASP4G_CME_ERROR_0017 17 SIM PIN2 required
WASP4G_CME_ERROR_0018 18 SIM PUK2 required
WASP4G_CME_ERROR_0020 20 Memory full
WASP4G_CME_ERROR_0021 21 Invalid index
WASP4G_CME_ERROR_0022 22 Not found
WASP4G_CME_ERROR_0023 23 Memory failure
WASP4G_CME_ERROR_0024 24 Text string too long
WASP4G_CME_ERROR_0025 25 Invalid characters in text string
WASP4G_CME_ERROR_0026 26 Dial string too long
WASP4G_CME_ERROR_0027 27 Invalid characters in dial string
WASP4G_CME_ERROR_0030 30 No network service
WASP4G_CME_ERROR_0031 31 Network time-out
WASP4G_CME_ERROR_0032 32 Network not allowed - emergency calls only
WASP4G_CME_ERROR_0040 40 Network personalization PIN required
WASP4G_CME_ERROR_0041 41 Network personalization PUK required

-14-
v7.3
Software
WASP4G_CME_ERROR_0042 42 Network subset personalization PIN required
WASP4G_CME_ERROR_0043 43 Network subset personalization PUK required
WASP4G_CME_ERROR_0044 44 Service provider personalization PIN required
WASP4G_CME_ERROR_0045 45 Service provider personalization PUK required
WASP4G_CME_ERROR_0046 46 Corporate personalization PIN required
WASP4G_CME_ERROR_0047 47 Corporate personalization PUK required
WASP4G_CME_ERROR_0100 100 Unknown
WASP4G_CME_ERROR_0770 770 SIM invalid
WASP4G_CME_ERROR_0103 103 Illegal Mobile Station (MS) (#3)*
WASP4G_CME_ERROR_0106 106 Illegal Mobile Equipment (ME) (#6)*
WASP4G_CME_ERROR_0107 107 GPRS service not allowed (#7)*
WASP4G_CME_ERROR_0111 111 PLMN not allowed (#11)*
WASP4G_CME_ERROR_0112 112 Location area not allowed (#12)*
WASP4G_CME_ERROR_0113 113 Roaming not allowed in this location area (#13)*
WASP4G_CME_ERROR_0132 132 Service option not supported (#32)*
WASP4G_CME_ERROR_0133 133 Requested service option not subscribed (#33)*
WASP4G_CME_ERROR_0134 134 Service option temporarily out of order (#34)*
WASP4G_CME_ERROR_0148 148 Unspecied GPRS error
WASP4G_CME_ERROR_0149 149 PDP authentication failure
WASP4G_CME_ERROR_0150 150 Invalid mobile class
WASP4G_CME_ERROR_0550 550 Generic undocumented error
WASP4G_CME_ERROR_0551 551 Wrong state
WASP4G_CME_ERROR_0552 552 Wrong mode
WASP4G_CME_ERROR_0553 553 Context already activated
WASP4G_CME_ERROR_0554 554 Stack already active
WASP4G_CME_ERROR_0555 555 Activation failed
WASP4G_CME_ERROR_0556 556 Context not opened
WASP4G_CME_ERROR_0557 557 Cannot setup socket
WASP4G_CME_ERROR_0558 558 Cannot resolve DN
WASP4G_CME_ERROR_0559 559 Time-out in opening socket
WASP4G_CME_ERROR_0560 560 Cannot open socket
WASP4G_CME_ERROR_0561 561 Remote disconnected or time-out
WASP4G_CME_ERROR_0562 562 Connection failed
WASP4G_CME_ERROR_0563 563 Transmission error
WASP4G_CME_ERROR_0564 564 Already listening
WASP4G_CME_ERROR_0568 568 Wrong PDP
WASP4G_CME_ERROR_0615 615 FTP not connected
WASP4G_CME_ERROR_0623 623 FTP write data closed
WASP4G_CME_ERROR_0643 643 FTP communication timeout
WASP4G_CME_ERROR_0657 657 Network survey error (No Carrier)*
WASP4G_CME_ERROR_0658 658 Network survey error (Busy)*
WASP4G_CME_ERROR_0659 659 Network survey error (Wrong request)*
WASP4G_CME_ERROR_0660 660 Network survey error (Aborted)*
WASP4G_CME_ERROR_0257 257 Network rejected request
WASP4G_CME_ERROR_0258 258 Retry operation

-15-
v7.3
Software
WASP4G_CME_ERROR_0259 259 Invalid deected to number
WASP4G_CME_ERROR_0260 260 Deected to own number
WASP4G_CME_ERROR_0261 261 Unknown subscriber
WASP4G_CME_ERROR_0262 262 Service not available
WASP4G_CME_ERROR_0263 263 Unknown class specied
WASP4G_CME_ERROR_0264 264 Unknown network message
WASP4G_CME_ERROR_0680 680 LU processing
WASP4G_CME_ERROR_0681 681 Network search aborted
WASP4G_CME_ERROR_0682 682 PTM mode
WASP4G_CME_ERROR_0683 683 Active call state
WASP4G_CME_ERROR_0684 684 SSL already activated
WASP4G_CMS_ERROR_0300 300 ME failure
WASP4G_CMS_ERROR_0301 301 SMS service of ME reserved
WASP4G_CMS_ERROR_0302 302 Operation not allowed
WASP4G_CMS_ERROR_0303 303 Operation not supported
WASP4G_CMS_ERROR_0304 304 Invalid PDU mode parameter
WASP4G_CMS_ERROR_0305 305 Invalid text mode parameter
WASP4G_CMS_ERROR_0310 310 SIM not inserted
WASP4G_CMS_ERROR_0311 311 SIM PIN required
WASP4G_CMS_ERROR_0312 312 Phone SIM PIN required
WASP4G_CMS_ERROR_0313 313 SIM failure
WASP4G_CMS_ERROR_0314 314 SIM busy
WASP4G_CMS_ERROR_0315 315 SIM wrong
WASP4G_CMS_ERROR_0316 316 SIM PUK required
WASP4G_CMS_ERROR_0317 317 SIM PIN2 required
WASP4G_CMS_ERROR_0318 318 SIM PUK2 required
WASP4G_CMS_ERROR_0320 320 Memory failure
WASP4G_CMS_ERROR_0321 321 Invalid memory index
WASP4G_CMS_ERROR_0322 322 Memory full
WASP4G_CMS_ERROR_0330 330 SMSC address unknown
WASP4G_CMS_ERROR_0331 331 No network service
WASP4G_CMS_ERROR_0332 332 Network time-out
WASP4G_CMS_ERROR_0340 340 No +CNMA acknowledgement expected
WASP4G_CMS_ERROR_0500 500 Unknown error
WASP4G_CME_ERROR_1001 1001 SSL certs and keys wrong or not stored
WASP4G_CME_ERROR_1003 1003 SSL already activated
WASP4G_CME_ERROR_1008 1008 SSL not connected
WASP4G_ERROR_TIMEOUT 65534 Timeout error when running a command
WASP4G_ERROR_MESSAGE 65535 Generic "ERROR" message from module

-16-
v7.3
Software
4.2. Switching on
The ON() function switches on the 4G module and it opens the MCU UART for communicating with the module.
After this step, the module will be able to receive commands to manage it.
Example of use:
{
_4G.ON();
}
4.3. Switching o
The OFF() function allows the user to switch o the 4G module and close the UART. This function must be called
in order to save battery when the module is not going to be used.
Example of use:
{
_4G.OFF();
}
4.4. SIM card
4.4.1. Entering PIN
The enterPIN() function allows the user to enter the PIN (Personal Identication Number) of the SIM (Subscriber
Identication Module) card. If the SIM card has no PIN (or the PIN was disabled on the SIM card), it is not necessary
to use this function.
Example for entering the PIN:
{
_4G.enterPIN(“1234”);
}
Besides, there is another function prototype in order to set a new one. It is mandatory to specify the current PIN
number and the new one.
Example for setting a new PIN:
{
_4G.enterPIN(“1234”, ”1111”);
}
Example of entering the PIN number:
www.libelium.com/development/waspmote/examples/4g-01-enter-pin-code

-17-
v7.3
Software
4.4.2. Getting IMEI, IMSI and ICCID
The getInfo() function can get more than one information eld to the module. This function needs one input
to indicate the type of information requested. The resulting information is stored in _buffer, and _length is the
number of bytes in the buer. The information possibilities are:
•Wasp4G::INFO_HW: To request the hardware revision
•Wasp4G::INFO_MANUFACTURER_ID: To request the manufacturer identier
•Wasp4G::INFO_MODEL_ID: To request the model identier
•Wasp4G::INFO_REV_ID: To request the rmware revision
•Wasp4G::INFO_IMEI: To request the IMEI (International Mobile Station Equipment Identity), which is the unique
identier of the module, similar to a MAC address
•Wasp4G::INFO_IMSI: To request the IMSI
•Wasp4G::INFO_ICCID: To request the ICCID
Examples of use:
{
// get IMEI number
_4G.getInfo(Wasp4G::INFO_IMEI);
// get IMSI number
_4G.getInfo(Wasp4G::INFO_IMSI);
// get ICCID number
_4G.getInfo(Wasp4G::INFO_ICCID);
}
Related variables:
_4G._buffer → Buer which stores the information requested
_4G._length → Number of bytes in buer
Example of getting module info:
www.libelium.com/development/waspmote/examples/4g-02-get-module-info

-18-
v7.3
Software
4.5. Checking network connection status
There are 2 functions to check the network connection status: checkConnection() and checkDataConnection().
The checkConnection() function checks the module’s network connection status and returns whether the module:
•is connected to a network
•is not connected to a network
•is searching for a new operator to register to
•registration was denied
This function will wait for the module to be connected to a network for the specied time in second units.
Example of use:
{
_4G.checkConnection(60);
}
Possible error codes for this function:
•1: not registered, the Mobile Equipment (ME) is not currently searching for a new operator to register to
•2: not registered, but ME is currently searching for a new operator to register to
•3: registration denied
•4: unknown
The checkDataConnection() function checks the module’s network connection status, connects the module to
data service and returns whether the module:
•is connected to data service
•is not connected to a network
•is searching for a new operator to register to
•registration was denied
This function will wait for the module to be connected to a network for the specied time in second units.
Example of use:
{
_4G.checkDataConnection(60);
}
Possible error codes for this function:
•1: not registered, ME is not currently searching for a new operator to register to
•2: not registered, but ME is currently searching for a new operator to register to
•3: registration denied
•4: unknown
•6: not registered, ME is not currently searching for a new operator to register to
•8: not registered, but ME is currently searching for a new operator to register to
•9: registration denied
•10: unknown
•12: if error setting APN
•13: if error setting login
•14: if error setting password
•15: if error activating GPRS connection

-19-
v7.3
Software
4.6. Setting operator parameters
When the 4G module uses data services like TCP/UDP connections, HTTP services, SMTP or FTP transfers, it is
mandatory to congure the parameters provided by the user’s Mobile Network Operator (MNO): APN, login and
password. The owner of a SIM should be notied with these parameters by the MNO.
The set_APN() function allows the user to save these parameters into Waspmote memory. Later, when data
connection functions are called, Waspmote will congure these parameters into the 4G module.
Example of use:
{
_4G.set_APN(“apn”, ”login”, ”password”);
}
The show_APN() function allows the user to display the current settings stored in Waspmote’s memory which are
used by the libraries when data connections are performed.
Example of use:
{
_4G.show_APN();
}
Related variable:
_4G._apn →Stores the APN name
_4G._apn_login →Stores the APN login
_4G._apn_password →Stores the APN password
4.7. SMS
4.7.1. Setting SMS conguration
The congureSMS() function sets the SMS conguration to:
•Correct SMS format to be read from the module
•Select where SMSs are going to be stored
•Congure the indication method for new SMS received
This function must be called before handling SMSs in the main code loop.
Example of use:
{
_4G.congureSMS();
}

-20-
v7.3
Software
4.7.2. Sending SMSs
The sendSMS() function sends an SMS to the given phone number. The maximum length of the message to be
sent is 164 bytes.
Example of use:
{
char phone_number[] = “*********”;
char text_message[] = “This_is_a_text_message”;
_4G.sendSMS(phone_number, text_message);
}
Possible error codes for this function:
•1: not registered, ME is not currently searching for a new operator to register to
•2: not registered, but ME is currently searching for a new operator to register to
•3: registration denied
•4: unknown connection error
•5: if error setting the phone number
•6: if error sending the body
Example of sending a text message:
www.libelium.com/development/waspmote/examples/4g-04-sending-sms
4.7.3. Reading SMSs
The readSMS() function reads an SMS from the module storage. The user must give the index of the SMS to be
read from memory. In the case a new SMS is received, all SMS related parameters are stored in the Waspmote’s
library structures: index number, status, sender number, date and time. The SMS text eld can be found in _4G._
buffer.
Example of use:
{
uint8_t index = 5;
_4G.readSMS(index);
}
The readNewSMS() function reads the last unread SMS received by the module. There are 2 function prototypes:
with or without timeout. If the user needs to wait for a new text message for a period of time, the timeout must
be specied as input. If no input is dened, the request for new text messages is instantly performed. In the case
a new SMS is received, all SMS related parameters are stored in the Waspmote’s library structures: index number,
status, sender number, date and time. The SMS text eld can be found in _4G._buffer.
Example of use:
{
_4G.readNewSMS(30000);
}
This manual suits for next models
2
Table of contents
Other Libelium Control Unit manuals
Popular Control Unit manuals by other brands

MEIG
MEIG SLM550 Hardware Design Manual

Honeywell
Honeywell CGW-MB Installation and user manual

Fibocom
Fibocom L860-GL Hardware user manual

Panasonic
Panasonic PAN9026 quick start guide

Victaulic
Victaulic FireLock 758-LPA Series Installation, Maintenance, & Testing Manual

Lenze
Lenze E94AYCEO Communications manual

SABAF
SABAF 10 Instructions for use, maintenance instructions

Digi
Digi XTend vB DigiMesh XTP9B-DPM-001 user guide

Parker
Parker D1FB EE Series operating instructions

LEGRAND
LEGRAND 0 676 97 manual

Valmet
Valmet Flowrox PVEG Installation, operation and maintenance instructions

Pilz
Pilz PNOZ mi1p product manual