Cellular support
Supported modems
Digi Embedded Yocto includes support for the following cellular modems:
- Telit LE910
- Telit HE910
- Huawei ME909u
- Sierra Wireless MC7710
-
Quectel EC20
The Digi Embedded Yocto distribution uses the ModemManager daemon to identify your modem and configure it correctly.
ModemManager is a DBus-activated daemon that controls mobile broadband devices and connections. Digi Embedded Yocto uses ModemManager to enable the modem. The daemon runs at startup to connect to your service provider. It provides a low-level command line utility called mmcli.
Configuration settings
Set the following variables in your Digi Embedded Yocto project's conf/local.conf to configure your cellular interface and network provider:
• CELLULAR_INTERFACE (required): Name of the network interface created by the modem, usually wwan0, usb0, or eth1 (for network drivers) or ppp0 (for serial drivers).
Note The name of the interface could change depending on the firmware of the cellular modem and other devices connected to the module. You can verify the name of all the network interfaces in the system by running:
ifconfig -a
- CELLULAR_APN (required): Access Point Name (APN) as defined by your cellular provider. You can also obtain this information from the Mobile Broadband Information web page.
- CELLULAR_USER (optional): Username for authentication.
- CELLULAR_PASSWORD (optional): Password for authentication.
- CELLULAR_PIN (optional): SIM card pin number. Do not define if the SIM card is not locked.
- CELLULAR_AUTO (optional): If defined, the cellular network interface is brought up on boot.
The authentication settings are optional depending on the cellular network. See the Mobile Broadband Information web page.
The configuration above should be enough to work with most modern cellular modems, such as the Telit LE910, Huawei ME909u, and Sierra Wireless MC7710, and Quectel EC20. These modems do not need to use pppd to create a network interface. Other older serial-only modems such as the Telit HE910 do require pppd to bring up a network interface and thus require the following additional configuration settings:
- CELLULAR_PORT (required): Device node name of the data serial port of the modem, usually ttyUSBn or ttyACMn. This is mandatory for serial-only modems.
The cellular variables on your project's conf/local.conf are inserted into the /etc/network/interfaces file as shown in the following example:
conf/local.conf
CELLULAR_INTERFACE = "wwan0" CELLULAR_APN = "movistar.es" CELLULAR_PIN = "1234" CELLULAR_AUTO = "1"
Building the Yocto project with that configuration will attach the following section in the /etc/network/interfaces file, within the generated image.
/etc/network/interfaces
# Cellular interface auto wwan0 iface wwan0 inet manual apn movistar.es pin 1234
You can also manually edit this file directly in the target to match other environments.
The information in that file is then used by the scripts at /etc/network/if-pre-up/ and /etc/network/if-post-down/ to establish or close a cellular connection when bringing the network interface up or down, respectively.
Protocols
The following table shows the default protocol and other protocols supported by these modems.
Modem | Default protocol | Other supported protocols |
---|---|---|
Telit LE910 | QMI | USB Serial |
Telit HE910 | USB Serial | - |
Huawei ME909u | USB NET | Serial, MBIM |
Sierra Wireless MC7710 | USB NET | Serial, QMI, MBIM |
Quectel EC20 | QMI | USB Serial |
Configuration examples
The following sections list specific configuration for the modems listed above. In these examples, we use movistar.es as provider and a locked SIM with the pincode "1234".
Telit LE910
local.conf
CELLULAR_INTERFACE = "wwan0" CELLULAR_APN = "movistar.es" CELLULAR_PIN = "1234" CELLULAR_AUTO = "1"
Telit HE910
local.conf
CELLULAR_INTERFACE = "ppp0" CELLULAR_APN = "movistar.es" CELLULAR_PIN = "1234" CELLULAR_AUTO = "1" CELLULAR_PORT = "ttyACM0" CELLULAR_USER = "movistar" CELLULAR_PASSWORD = "movistar"
Huawei ME909u
local.conf
CELLULAR_INTERFACE = "eth1" CELLULAR_APN = "movistar.es" CELLULAR_PIN = "1234" CELLULAR_AUTO = "1"
Sierra Wireless MC7710
local.conf
CELLULAR_INTERFACE = "wwan0" CELLULAR_APN = "movistar.es" CELLULAR_PIN = "1234" CELLULAR_AUTO = "1"
Quectel EC20
local.conf
CELLULAR_INTERFACE = "wwan0" CELLULAR_APN = "movistar.es" CELLULAR_PIN = "1234" CELLULAR_AUTO = "1"
Instructions for unsupported modems
If Digi Embedded Yocto does not support your modem, Digi can provide a "Cellular Integration Guide" to help you integrate a modem into your Digi Embedded Yocto system. Contact your local Digi representative or Digi Technical Support to obtain the Cellular Integration Guide.
Known issues
- The ConnectCore 6 SBC version 1 (PCB number 30014752 01) delivers a maximum of 1500 mA on the PCIe interface. To avoid random communication problems, ensure that the cellular modem you use doesn't exceed the power limits of the ConnectCore 6 SBC PCIe interface.
- When you are using the QMI protocol, ModemManager disconnects the connection upon receipt of a "limited capability" message.
- When you are using ModemManager, the initialization of some cellular modems could fail if there is no power cycling of the card between two initializations. This could happen during a software reset. To avoid this situation, we recommend you incorporate a mechanism in your carrier board to power cycle the modem at boot time.
Limitations
The cellular support in Digi Embedded Yocto is based on the ModemManager open source software package.