Monogoto
Back to Monogoto website
  • Welcome
  • Getting Started
    • Quick Start
    • Device Configurations
      • IoT Modules
        • NORDIC nRF9160 DK
        • Quectel BG95-MX
        • Quectel BG96
        • Murata LBAD0XX1SC-DM
          • Satellite NTN Network
        • Sierra Wireless WP7607
        • Sierra Wireless WP7610
        • Sierra Wireless MC7700
        • SIMCom SIM7070G
          • Waveshare SIM7070G
        • SIMCom SIM7600G-H
          • Waveshare SIM7600G-H
        • Telit HE910
        • Thales Cinterion TX62
        • u-blox SARA R4
          • SODAQ SARA R41XM
        • Cellular Devices
          • Openwrt EG95
          • ProView 4GPro-W
          • Teltonika RUT240
          • Teltonika FMB920
          • InHand IR302
          • Provision-ISR PR-LTE01W
          • Sierra Wireless RV50 AirLink
          • Smart Cash Register Configuration to Use Cellular SIM as WiFi Backup
          • Nayax Nova 40
      • iPhone Device
      • Android Device
      • Raspberry Pi
    • Monogoto SIM
      • IoT SIM card
      • Embedded SIM
      • eSIM
      • iSIM
        • Murata LBAD0XX1SC
        • Quectel BG770A-SN
      • SGP.32
        • Kigen Pulse
      • Monogoto SIM Tool Kit (MTK)
    • Cellular Identities in Monogoto
    • Coverage Lists
      • Identity B Coverage
      • Identity C Coverage
      • Identity E Coverage
      • Identity F Coverage
      • Identity P Coverage
      • Identity U Coverage
      • NTN Satellite Coverage
      • LP-WAN Coverage
    • Features List
    • Community Forum
  • FAQ
  • Hub
    • Intro
      • Signup
      • Login
      • Logout
      • Users
        • Create a new user
        • Delete a user
        • Manage users
        • User password reset
      • General Elements
    • Dashboards
      • Active SIMs and Data Usage
        • Daily Active Things
        • Daily Data Usage
        • Top Consuming Things
        • Top Profiles in Use
        • Top Groups by Data Usage
        • Top Networks by Data Usage
        • Top Groups by Active Things
        • Top Networks by Active Things
      • Data Flows
        • Data Transfer
        • Top Destinations
        • Breakout
        • Services
        • Protocols
        • TCP Flags
        • Top Things (upload/download)
    • Things
      • Thing details
        • Understanding OPLMN and FPLMN on the Thing details page
      • Quality of Service
        • Thing QoS tests for public connectivity
        • Thing QoS monitoring for private connectivity
      • SMS
        • Incoming SMS
        • Outgoing SMS
        • SMS Monitoring
      • Location Service
      • NetFlow
    • Campaigns
      • Campaigns Table
      • Campaign Details
      • SMS Campaign
    • Private Networks
      • Backhaul
      • Edge
        • Edge Events
          • Time
          • Messages
          • msg-type
          • Node
          • Direction
          • Interface
          • Type
      • Radio
    • Inbox
    • Integrations
      • Slack
      • Zapier
      • Webhook
        • Webhook CDRs
          • Webhook SMS CDR
          • Webhook DATA CDR
      • Email
    • Captures
      • Basics on How to Read a Packet Capture File
    • Orders
      • Create a new order
    • Payments
  • Advanced Console
    • Intro
    • Security
    • Network
      • Create new Network
      • Edit Network Settings
      • Apply Network Settings
      • Delete Network
      • Add Network NAT
      • Edit Network NAT
      • Delete Network NAT
      • Add Network Route
      • Edit Network Route
      • Delete Network Route
      • Add Network VPN
      • Network VPN status
      • Edit Network VPN
      • Delete Network VPN
      • Download Network VPN configuration
      • Reconnect Network VPN
      • Ping Network VPN
      • How Devices in The Same Network Can Communicate with Each Other?
    • Things Groups
      • Create Things Group
      • Assign Things to Group
      • Edit Things Group
      • Delete Things Group
      • Override Roaming Policy
    • Things
      • Define Thing Status
      • Edit Things Details
      • Refresh Connection
    • Alerts
      • Alert Metrics (types)
      • Create New Alert
      • Disable/Enable Alert
      • Edit Alert
      • Delete Alert
    • Global Pools
    • Price Plans
    • Webhooks
      • Outgoing (MO) SMS Webhook
      • Incoming (MT) SMS Webhook
      • Outgoing (MO) Voice Webhook
      • Incoming (MT) Voice Webhook
      • Triggered Alert Webhook
  • Developer
    • API
      • Authentication
      • Things
        • Get Things List
        • Get Thing Information
        • Get Thing State
        • Update Thing State
        • Update Thing Name
        • Update Thing Description
        • Get Thing Data Session Status
        • Get Thing ICCID using IMSI
        • Get Thing Lifetime Data Usage
        • Get Thing Events Logs
        • Ping Thing IP Address
        • Lock Thing to IMEI
        • Download Thing PCAP File
        • Refresh Thing Network Connection
        • Get Things Services Usage Report
      • Things Groups
        • Get Things Group List
        • Move Thing to Different Things Group
        • Get Things Group Information
        • Lock Things Group to IMEI range (TAC)
      • eSIM
        • Get an eSIM
        • Cancel an eSIM
        • Download an eSIM
      • Alerts
        • Get Triggered Alerts
      • SMS
        • Check if MT SMS was Received
        • Send SMS to Thing
      • Pricing
        • Get Pricing Plan Information
      • Get Roaming Policy
    • Cloud Integrations
      • AWS IoT Core
      • Ubidots
  • Private Networks
    • Intro
      • Getting Started
      • Spectrum Allocation
    • Monogoto Edge
      • 4G Edge Components
      • 5G Edge Components
      • Edge NUC
      • Edge API
        • Authentication
        • Get Edge Configuration
        • Get Edge ID
        • Get Edge CID
        • Get MME S6A And AMF AUSF Status
        • Get Radio List
        • Get Subscriber Information
        • Get Subscription Status
        • Patch Subscription Status
        • Get IMSI IP Mapping
        • Patch IMSI IP Mapping
        • Delete IMSI IP Mapping
        • Get PLMN
        • Post PLMN
        • Get Network Operator Name
        • Patch Network Operator Name
        • Get APN
        • Get APN IP Pool Mapping
        • Get CDR Logs
        • Post PING
        • Get iperf
        • Patch iperf
        • Get Speed Test
        • Get Data Speed
        • Get Capture
        • Post Capture
    • eNodeB
      • Airspan AirVelocity 1500
      • Baicells Nova 227
      • Baicells Nova 442i
      • Baicells Neutrino 430
      • Baicells Nova 230i
      • BreezeCOMPACT 1000
      • Foxconn T99B226
      • Ubiik goRAN
      • Ubiik FreeRAN
      • T&W N02008
      • Mosolabs SCE4255W
      • Mosolabs SCO4255P
    • gNodeB
      • Mosolabs SCE5164
      • Baicells Stellar 227
    • CPE & UE
      • Airspan AirSpot 5410
      • Sierra Wireless EM7565
      • DG505G CBRS 5G USB Dongle
      • DG10 CBRS USB Dongle
      • D-Link DWP-1010W CPE
      • D-Link DWM-311-G 5G M2M
      • D-Link G530 Router
      • IPC SCB800 CBRS Camera
      • Telit LM960A9-P
      • Moxa 5G CCG-1510-US-T
      • InHand 5G ODU2000
      • Peplink MAX BR1 Mini 5G
      • T&W 5G Router
      • Telit LM960A18
      • Baicells EG7010C-M11 CPE
      • Baicells EG7035E-M11 CPE
      • Baicells EG8015G-M11 CPE
      • Telrad 9000 CPE
      • SRW620 CPE
      • Amit IDG500-0GT01
      • Jacs TD0231 Router
  • NTN Satellite Networks
    • NTN Satellite Coverage
    • NTN Billing
    • NB-IoT: Signaling NIDD vs IP Connectivity
    • VPNs in NTN
    • UDP Communication in NTN
    • How to Order NTN Developer Kit?
    • NTN Certified Devices
      • NTN Certified Modules
        • Murata LBAD0XX1SC-DM Satellite NTN Network
        • Quectel BG95-S5 Satellite NTN Network
        • Quectel BG770A-SN Satellite NTN Network
        • Quectel CC660D-LS Satellite NTN Network
        • SIMCom 7070G-HP-S Satellite NTN Network
        • Murata ALT1250 Satellite NTN Network
      • NTN Certified Chipsets
  • University
    • AT Commands
      • What AT Commands Should I Use to Debug a Connectivity Issue?
      • How to Send AT Commands to a Teltonika Router?
    • LTE bands
    • RAT Type (Radio Access Technology)
    • Low Power Modes: eDRX & PSM
    • What is MCC/MNC?
    • Glossary
Powered by GitBook
On this page
  • Quick Navigation
  • Prerequisites
  • Getting Started
  • Install required packages
  • Connect the modem to the Raspberry Pi
  • Start and enable the NetworkManager:
  • Create a new connection interface
  • Start the connection
  • Validate the connection
  • Check the default IP route:
  • Test the connection by sending a PING

Was this helpful?

  1. Getting Started
  2. Device Configurations

Raspberry Pi

Adding cellular connectivity to your Raspberry Pi 3 or 4

PreviousAndroid DeviceNextMonogoto SIM

Last updated 2 years ago

Was this helpful?

Adding cellular connectivity to your Raspberry Pi can be done in a few simple steps.

Quick Navigation

Prerequisites

  • Monogoto SIM

  • Raspberry Pi 3 or 4

  • Mini PCIE cellular modem, for example:

    • Sierra Wireless MC7700 (LTE)

    • Telit ME910C1-WW mini PCle (LTE-M & NB-IoT)

    • Quectel EC25 mini PCle (LTE)

Getting Started

Access the Raspberry Pi by connecting a screen and keyboard (recommended) or connect over SSH.

Install required packages

Open the terminal and validate if the NetworkManager and ModemManager are installed.

NetworkManager -V
ModemManager -V

Make sure that the Raspberry Pi runs NetworkManager version 1.3 or higher and ModemManager version 1.14 or higher. If this is not the case, update or install the NetworkManager and ModemManager using the command:

sudo apt install network-manager modemmanager

In addition, install the libqmi-utils and udhcpc packages.

sudo apt install libqmi-utils udhcpc

Connect the modem to the Raspberry Pi

Add the mini PCle cellular modem to the USB adapter

Add the Monogoto SIM to the USB adapter

Connect the cellular PCle card to the Raspberry Pi, using the USB port

Open the CLI (Command Line Interface) and see of the USB with cellular modem gets detected:

lsusb

Example response:

Bus 001 Device 004: ID 1199:68a2 Sierra Wireless, Inc. MC7700

The cellular modem requires the driver qmi_wwan, to verify if the driver is compatible with the modem, enter lsusb -t:

lsusb -t

|__ Port 2: Dev 4, If 8, Class=Vendor Specific Class, Driver=qmi_wwan, 480M

Check what USB port the cellular modem is connected to.

dmesg | grep tty

Example response:

[    6.728605] usb 1-1.2: Qualcomm USB modem converter now attached to ttyUSB0
[    6.823516] usb 1-1.2: Qualcomm USB modem converter now attached to ttyUSB1
[    6.868118] usb 1-1.2: Qualcomm USB modem converter now attached to ttyUSB2

Start and enable the NetworkManager:

Start and enable the NetworkManager, when doing so you will be asked to fill out your root password.

systemctl start NetworkManager
systemctl enable NetworkManager

After enabling the NetworkManager, the Wifi connection of your Raspberry Pi breaks.

To activate your Wifi again, enter:

nmcli device wifi connect "<SSID>" password "<PASSWORD>"

Expected response:

Device 'wlan0' successfully activated

Create a new connection interface

Create a new connection with name monogoto and set the APN to data.mono:

nmcli c add type gsm ifname '*' con-name monogoto apn data.mono connection.autoconnect yes

Expected response:

Connection `monogoto` (...) successfully added.

To test if the connection was successfully added, a new file with the name monogoto.nmconnection is created and added to the directory system-connections

ls /etc/NetworkManager/system-connections

When opening this file (using sudo vi) it should show something like:

[connection]
id=monogoto
uuid=XXXXX
type=gsm
permissions=
autoconnect=true

[gsm]
apn=data.mono

[ipv4]
dns-search=
method=auto

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto

Start the connection

Manually start the connection using the command:

nmcli c up monogoto

Expected response:

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/0)

Validate the connection

The connection with name monogoto should be linked to the device called cdc-wdm0. If the connection is active, everything is displayed in green.

nmcli c

Expected response:

NAME         UUID         TYPE      DEVICE      
monogoto     .....        gsm       cdc-wdm0
wifi-name    .....        wifi      wlan0

Activate the device

Enter the following command to activate the cdc-wdm0 device:

sudo nmcli device connect cdc-wdm0

Expected response:

Device 'cdc-wdm0' successfully activat

View connection details

List the connected modems:

mmcli -L

Expected response:

/org/freedesktop/ModemManager1/Modem/0 […]

Request information about the connected modem.

Replace 0 with the value you found when running mmcli -L

mmcli -m 0

Example response:

...
  --------------------------------
  Status   |       unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10)
           |                state: connected
           |          power state: on
           |          access tech: lte
           |       signal quality: 86% (recent)
  ...

Check if the cellular interface is added, and if an IP address was derived. Look for the interface with name wwan0

ifconfig

Expected response:

wwan0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.XXX.XXX.XX  netmask 255.255.255.252  destination 10.XXX.XXX.XX
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 7  bytes 1050 (1.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 52  bytes 8118 (7.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

If no wwan0 interface is visible, disconnect the USB with PCIe and reboot the Raspberry Pi. Connect the USB dongle again after the Raspberry Pi has fully booted.

Check the default IP route:

ip route

Expected response:

default via 10.xxx.xxx.xx dev wlan0 proto static metric 600
default via 10.xxx.xxx.xx dev wwan0 proto static metric 700

The lower the metric number, the higher the priority of the connection. In the above example, the wlan0 (wifi) interface has a higher priority than the wwan0 (cellular) interface.

Change priority of the connections (optional)

To change the priorities of the connections, the metric numbers needs to be adapted. To do so, go to the directory: /etc/NetworkManager/system-connections

Open the file (using sudo vi) monogoto.nmconnection

Add the line route-metric=200 under the section [ipv4]. The file becomes:

[connection]
id=monogoto
uuid=.........
type=gsm
permissions=
autoconnect=true

[gsm]
apn=data.mono

[ipv4]
dns-search=
method=auto
route-metric=200

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto

Restart the NetworkManager

systemctl restart NetworkManager

Validate the connectivity priorities by entering:

ip route

Expected response:

default via 10.xxx.xxx.xx dev wwan0 proto static metric 200
default via 10.xxx.xxx.xx dev wlan0 proto static metric 600

Test the connection by sending a PING

Ping IP address 8.8.8.8 to validate the data connection:

When multiple connections are up and running, specify the use of the wwan0 interface through: ping -I wwan0 8.8.8.8

Optionally, you can disable other interfaces (for example the wlan0) using the command: ip link set dev wlan0 down

ping 8.8.8.8

Example response:

PING 8.8.8.8 (8.8.8.8): 56(84) bytes of data
64 bytes from 8.8.8.8: icmp_seq=1 ttl=112 time=72.3 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=112 time=70.8 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=112 time=82.9 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=112 time=78.7 ms

If no wwan0 interface is visible, or the pings result in errors, disconnect the USB with PCIe and reboot the Raspberry Pi. Connect the USB dongle again after the Raspberry Pi has fully booted.

To find NetworkManager logs, enter: systemctl status NetworkManager

USB adapter with mini PCIe and SIM slot ()

Did you manage to connect your Raspberry Pi to Monogoto? Great work! Have a look at the Things logs in the to find more details about the established connection.

example
Monogoto Hub
Getting Started
Create a new connection interface
Check the default IP route
Send a Ping