diff options
-rw-r--r-- | plugins/ublox/README | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/plugins/ublox/README b/plugins/ublox/README new file mode 100644 index 00000000..573be2ce --- /dev/null +++ b/plugins/ublox/README @@ -0,0 +1,162 @@ + +The 'ublox' plugin is originally targeted for the u-blox TOBY-L2 series, +although it may be used with other kind of devices likely without many issues. + +===================================== + USB profiles and networking modes +===================================== + +The TOBY-L2 devices may work in multiple different USB profiles: + + * AT+UUSBCONF=0: fairly back-compatible profile, where only cdc-acm TTYs are + exposed. ModemManager will default to PPP for the connection setup when in + this profile. + + * AT+UUSBCONF=2: ECM profile, where multiple cdc-acm TTYs are exposed along + with a ECM network interface. + + * AT+UUSBCONF=3: RNDIS profile, where one cdc-acm TTY and a RNDIS network + interface are exposed. This is the default factory-programmed value. + +When a profile with a network interface (ECM or RNDIS) is in use, the device may +work in multiple networking modes: + + * AT+UBMCONF=1: Router mode, with a built-in DHCP server running behind the + network interface. The network interface will be assigned an IP address from + a subnet managed by the device itself. This is the default factory-programmed + value. E.g.: + + $ ip addr + 9: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000 + link/ether 02:07:01:15:00:0b brd ff:ff:ff:ff:ff:ff + inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic usb0 + valid_lft 43009sec preferred_lft 43009sec + + $ ip route + default via 192.168.1.1 dev usb0 proto static metric 700 + 192.168.1.0/24 dev usb0 proto kernel scope link src 192.168.1.100 metric 700 + + * AT+UBMCONF=2: Bridge mode, where static IP addressing and routing must be + performed once connected. The network interface will be assigned the same IP + address provided by the network operator. The plugin uses 'AT+UIPADDR=N' the + default gateway IP settings and 'AT++CGCONTRDP=N' to retrieve the interface + IP settings and DNS setup. + + $ ip addr + 11: usb0: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000 + link/ether 02:07:01:15:00:0b brd ff:ff:ff:ff:ff:ff + inet 47.59.109.26/32 brd 47.59.109.26 scope global usb0 + valid_lft forever preferred_lft forever + + $ ip route + default via 47.59.109.229 dev usb0 proto static metric 700 + 47.59.109.26 dev usb0 proto kernel scope link src 47.59.109.26 metric 700 + 47.59.109.229 dev usb0 proto static scope link metric 700 + +The 'ublox' plugin in ModemManager works with any of the previous combinations +seamlessly. It is assumed that the device doesn't change either USB profile or +networking mode once it has been detected and processed by ModemManager. + +NOTE: If manually selecting different USB profiles or networking modes, remember +to reset the module before assuming the new settings have been applied. E.g., +using plain mmcli commands: + $ sudo mmcli -m 0 --command="AT+UUSBCONF=3" + $ sudo mmcli -m 0 --reset + +================================= + Connection setup +================================= + +The plugin allows to connect to specific APNs in the usual way (i.e. by creating +a PDP context for the specific APN), and then activating the PDP context with +'AT+CGACT=[CID]'. + +Authentication settings of the APN (user, password, authentication type) are +also supported via the 'AT+UAUTHREQ' command. + +The plugin doesn't currently support reporting as auto-connected the default LTE +bearer. + +======================================== + Connection monitoring and statistics +======================================== + +The status of the connection of the specific PDP context is monitored +periodically using 'AT+CGACT?', in order to detect network-originated +disconnections. This implementation is given in the Generic broadband bearer +implementation, and is not ublox-specific. + +If the device supports it, connection TX/RX statistics will also be periodically +loaded using the AT+UGCNTRD command. Note, though, that the TOBY-L2 doesn't seem +to support this information via control commands. + +=========================================== + Supported and current mode combinations +=========================================== + +The full list of supported mode combinations is loaded using 'AT+URAT=?', and +then filtered by device product name to remove technologies not supported in +several devices. E.g. the standard TOBY-L2 list of supported mode combinations +will include all 2G, 3G and 4G, but if the device is a L201, 2G support will be +removed from the list. + +The current mode combination in use is loaded using 'AT+URAT?', and the setting +may be changed using the 'AT+URAT=X' request. + +In order to be able to update this setting, the device will be put in low-power +mode ('AT+CFUN=4'), then the setting update will be run, and finally the device +will recover the previous functionality mode it was in (e.g. 'AT+CFUN=1' if it +was in full functionality mode). + +=============================== + Supported and current bands +=============================== + +The full list of supported bands is hardcoded based on the supported modes of the +device. There is no runtime loading of which are the supported bands because the +'AT+UBANDSEL=?' command gives different results depending on the current access +technology (i.e. there is no single full list of supported bands reported). + +The current list of bands is loaded via the 'AT+UBANDSEL?' command, and the +setting may be changed using the 'AT+UBANDSEL=X' request. + +In order to be able to update this setting, the device will be put in low-power +mode ('AT+CFUN=4'), then the setting update will be run, and finally the device +will recover the previous functionality mode it was in (e.g. 'AT+CFUN=1' if it +was in full functionality mode). + +====================== + Functionality mode +====================== + +The plugin implements a custom 'AT+CFUN?' response parser because it provides +multiple modes that may be treated as 'low-power' by ModemManager (e.g. mode +'0' is minimum functionality, mode '4' is airplane mode and mode '19' is +minimum functionality with SIM deactivated). + +The plugin implements power-on ('AT+CFUN=1'), power-down ('AT+CFUN=4'), reset +('AT+CFUN=16') and power-off ('AT+CPWROFF'). As usual, a reset will trigger a +power cycle of the device, and the power-off will render the modem unusable +until it's power cycled externally. + +==================================== + Network registration and quality +==================================== + +The LTE specific 'AT+CEREG' registration checks will be enabled by default if +the module supports LTE. Additionally, a custom 'CREG/CGREG/CEREG' state number +parser is provided to support u-blox specific reported states (e.g. state '6' +to indicate 'sms only registration' on the '+CREG' indications for the CS +network when on LTE). + +The plugin implements the extended Signal interface, providing RSSI, RSCP, Ec/Io +and RSRQ measurements obtained with the 'AT+CESQ' command. + +================== + PIN management +================== + +A custom method to load the PIN/PUK remaining attempts is implemented based on +the 'AT+UPINCNT' command. + +Have fun! |