VintageNetQMI
This library provides a VintageNet technology for cellular modems that
support the Qualcomm MSM Interface. This includes most USB cellular modems.
See VintageNetMobile
if you have a modem that only supports an AT command interface.
To use this library, first add it to your project's dependency list:
def deps do
[
{:vintage_net_qmi, "~> 0.2.7"}
]
endYou will then need to configure VintageNet. The easiest way to configure
a modem at runtime is by calling VintageNetQMI.quick_configure("the_apn").
For example:
iex> VintageNetQMI.quick_configure("the_apn")
:ok
# wait...
iex> VintageNet.info
Interface wwan0
Type: VintageNetQMI
Power: On (watchdog timeout in 51628 ms)
Present: true
State: :configured (0:41:09)
Connection: :internet (0:40:28)
Addresses: 100.79.205.206/30, fe80::723c:bdc9:10e4:d092/64
Configuration:
%{
type: VintageNetQMI,
vintage_net_qmi: %{service_providers: [%{apn: "the_apn"}]}
}You can't always call quick_configure/1 convenience function so here's the
regular configuration. If you are moving code from vintage_net_mobile, you'll
notice that this format is very similar except that Mobile is now QMI.
VintageNet.configure("wwan0", %{
type: VintageNetQMI,
vintage_net_qmi: %{
service_providers: [%{apn: "the_apn"}]
}
})The :service_providers key should be set to information provided by each of
your service providers. It is common that this is a list of one item.
Currently only one service provider is supported, so replace "fill_in" with
the APN that they gave you.
VintageNet Properties
In addition to the common vintage_net properties for all interface types, this
technology the following:
| Property | Values | Description |
|---|---|---|
signal_asu | 0-31,99 | Reported Arbitrary Strength Unit (ASU) |
signal_4bars | 0-4 | The signal level in "bars" |
signal_dbm | -144 - -44 | The signal level in dBm. Interpretation depends on the connection technology. |
mcc | 0-999 | Mobile Country Code for the network |
mnc | 0-999 | Mobile Network Code for the network |
iccid | string | The Integrated Circuit Card Identifier (ICCID) |
esn | string | The Electronic Serial Number (ESN) |
imei | string | International Mobile Equipment Identity (IMEI) |
meid | string | The Mobile Equipment Identifier (MEID) |
imeisv_svn | string | IMEI software version number |
provider | string | The name of the service provider |
The following properties are TBD:
| Property | Values | Description |
|---|---|---|
network | string | The network operator's name |
lac | 0-65533 | The Location Area Code (lac) for the current cell |
cid | 0-268435455 | The Cell ID (cid) for the current cell |
access_technology | string | The technology currently in use to connect to the network |
band | string | The frequency band in use |
channel | integer | An integer that indicates the channel that's in use |
imsi | string | The International Mobile Subscriber Identity (IMSI) |
System requirements
These requirements are believed to be the minimum needed to be added to the official Nerves systems.
Linux kernel
Enable QMI and drivers for your modem:
CONFIG_USB_NET_CDC_NCM=m
CONFIG_USB_NET_HUAWEI_CDC_NCM=m
CONFIG_USB_NET_QMI_WWAN=m
CONFIG_USB_SERIAL_OPTION=m