WWAN

Overview

  • WWAN modules : TOBY - L210
  • Modem Firmware : 16.19,A01.04 (Caution: older versions may not work stable!)
  • NetworkManager (nmcli) connection configuration files are stored under /etc/NetworkManager/system-connections

Preparation

  1. Insert SIM Card in sim slot

Usage

All the configuration can be done by NetworkManager but sometimes it can be useful to check lower level configurations with ModemManager.

Firmware update

Warning

Downgrading a WWAN modem will likely lead to a broken modem

On some devices, the modem is delivered with the firwmare 15.63 or 16.19,A01.02. It is highly recommended to upgrade the firmware to most recent version 16.19,A01.04.

How to check firmare version and upgrade is explain at Updating firmware.

Initial configuration

The WWAN modem is configured at each boot by a script named wwan-config. This script is using the configuration file /etc/wwan/wwan0.conf to setup the modem before letting ModemManager handle it.

This configuration file is divided in three sections:
  • apn: must configured to use a private APN
  • sim: is used to choose between the different sim cards available on the device
  • ublox: low level configurations for ublox modem. This should normaly not be modified

APN configuration

When using a private APN, this section has to be configured with the following fields:

[apn]
apn=<APN>
user=<USER>
password=<PASSWORD>

When the default APN provided by the network when using LTE must be used, make sure that this fields are not set.

After any change to this file, the system has to reooted or the following command to be run:

$ systemctl restart wwan-config@wwan0

SIM card configuration

This section is used to choose which SIM card to use with the modem. There are four SIM cards slot that can be used by the modem.

[sim]
SIM=<value>

Where <value> can be :

  • auto: The script will detect if a physical SIM card is present and switch to m2m SIM card (soldered to the board) if it is not the case
  • sim1: Use the physical SIM card on the main board
  • m2m: Use the m2m SIM card soldered on the main board
  • ui-top: Use the SIM card that is on top of the User Interface
  • ui-btm: Use the SIM card that is on the bottom of the User Interface

After any change to this file, the system has to be rebooted or the following command to be run:

$ systemctl restart wwan-config@wwan0

NetworkManager commands

$ # Create connection
$ nmcli c add type gsm con-name wwan ifname "" ipv6.method ignore gsm.apn <APN>

$ # Create connection with APN authentication
$ nmcli c add type gsm con-name wwan ifname "" ipv6.method ignore \
  gsm.apn <APN> gsm.username <USER> gsm.password <PASSWORD>

$ # Set PIN number
$ nmcli c modify wwan gsm.pin <pin number>

$ # Start the connection
$ nmcli c up wwan

ModemManager configuration

$ mmcli -L  # list modems and get modem id
$ mmcli -M  # list modems in a loop, useful when waiting after a reset
$ mmcli -m 0 # See state of the modem 0
$ mmcli -i 0 --pin=<pin number>  # Entering pin on modem 0
$ mmcli -m 0 -r # Reset the modem

Low level configuration

  1. Launch ModemManager in debug mode
$ systemctl stop ModemManager
$ ModemManager --debug > /dev/null 2> /dev/null &
  1. Execute the commands
$ mmcli -m 0 --command "AT+UBMCONF=2"  # Set modem to bridge mode
$ mmcli -m 0 --command 'AT+UUSBCONF=2,"ECM",0'  # Set USB mode to ECM
$ mmcli -m 0 --command 'AT+UUSBCONF=3'  # Set USB mode to RNDIS
  1. Restart ModemManager normaly
$ killall ModemManager
$ systemctl start ModemManager

ModemManager extensions

The ModemManager version used in NetModule linux is the version 1.14.8. with some NetModule specific extensions.

It is maintained and up to date with latest bug and security fixes.

NetModule did the following changes to the community version :

1. Support configuration of default EPS bearer for u-blox modems

In 4G (LTE), the handling of the APN configuration is different than in 2G and 3G and specific to each vendor. U-blox modems is not supported in the community version.

2. Handling of reconnect requests

Events like reconnection and disconnection on the radio side trigger AT messages that are not handled by ModemManager. The NetModule version handles this messages, leading to a faster reconnection.

3. Change AT commands timeout to 3 minutes

The u-blox modems can take up to 3 minutes before answering and AT command. The default timeout varies between 3 and 60 seconds depending on the commands. This difference made MM send more commands while the modem was still processing the first one, leading to a lock of the modem.

4. Show more precise signal quality in output of mmcli -m

By default MM is showing a pretty coarse value for signal quality when showing modem status with mmcli -m 0 (20% steps). With this change MM is showing a more precise value, more representative of what is retrieved with mmcli -m 0 –signal-get.