<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif;" dir="ltr">
<p>Hi, </p>
<p>I'm working on an application which utilizes 4 simcards connected to 2 Sierra Wireless MC7304 modems, to manage an internet connection across internet providers / country borders / etc. </p>
<p><span style="font-size: 12pt;">Simcards are</span><span style="font-size: 12pt;"> </span><span style="font-size: 12pt;">separated by a </span><span style="font-size: 12pt;">GPIO-pin (high/low) to change simslots.</span><br>
</p>
<p><span style="font-size: 12pt;">The goal is to disable a modem, set simcard in low-power-mode change the gpio-pin, set simcard in power-state-on and enable the modem, which will save time and prevent the modemmanager-interface from changing. </span><br>
</p>
<p><span style="font-size: 12pt;"><br>
</span></p>
<p>But, c<span style="font-size: 12pt;">urrently the only way I've found to change between simslots with libmm-glib/mmcli </span><span style="font-size: 12pt;">is to fully reset the modem after changing the gpio-pin with an AT!RESET.</span></p>
<p><span style="font-size: 12pt;"><br>
</span></p>
<p><span style="font-size: 12pt;">Case 1: the first simslot is empty the modem goes to state: FAILED => reset, </span></p>
<p><span style="font-size: 12pt;"><br>
</span></p>
<p><span style="font-size: 12pt;">Case 2: re-detect the new simcard after modem-low-power-mode needs a reset as well, </span></p>
<p><span style="font-size: 12pt;"><br>
</span></p>
<p><span style="font-size: 12pt;">first case is fine, we are not interested in using the empty simslot so that switch can be ignored after initialization, but changing between available simcards "on-the-fly" is one of the points of the whole system, so not
 having to reset the modem is much preferred. </span></p>
<p><br>
</p>
<p><span style="font-size: 12pt;">an example I've been testing with is manually swapping a single simcard (see output below, sorry it's quite large) while manually powering down the modem/simslot, using qmicli along with mmcli and at-commands.</span><br>
</p>
<p><br>
</p>
<p>[NOTE]</p>
<p><br>
</p>
<p>we added <span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">--uim-power-down and <span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">--uim-power-up
 to qmicli to switch the simslot-power on/off, and it's working as intended.</span></span></p>
<p><br>
</p>
<p>[/NOTE]</p>
<p><br>
</p>
<p>A working manual example is: </p>
<p><br>
</p>
<p>Detecting the modem and simcard => </p>
<p><br>
</p>
<p></p>
<div>X@X:~/dev/ModemManager/ModemManager-1.6.4$ sudo qmicli -d /dev/cdc-wdm2 --dms-uim-get-iccid</div>
<div>[/dev/cdc-wdm2] UIM ICCID retrieved:</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>ICCID: '8945020184920077811'</div>
<div><br>
</div>
<div>X@X:~/dev/ModemManager/ModemManager-1.6.4$ ./cli/mmcli -L </div>
<div><span style="font-size: 12pt;">Found 1 modems:</span><br>
</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>/org/freedesktop/ModemManager1/Modem/0 [Sierra Wireless, Incorporated] MC7304</div>
<div><br>
</div>
<div>listing modem 0 info => </div>
<div><br>
</div>
<div>X@X:~/dev/ModemManager/ModemManager-1.6.4$ ./cli/mmcli -m 0 </div>
<div><br>
</div>
<div>/org/freedesktop/ModemManager1/Modem/0 (device id '8bd0cad71e5b53259d0fce6e98dc209d822eb6a7')</div>
<div>  -------------------------</div>
<div>  Hardware |   manufacturer: 'Sierra Wireless, Incorporated'</div>
<div>           |          model: 'MC7304'</div>
<div>           |       revision: 'SWI9X15C_05.05.58.00 r27038 carmd-fwbuild1 2015/03/04 21:30:23'</div>
<div>           |      supported: 'gsm-umts</div>
<div>           |                  lte</div>
<div>           |                  gsm-umts, lte'</div>
<div>           |        current: 'gsm-umts, lte'</div>
<div>           |   equipment id: '356853051353789'</div>
<div>  -------------------------</div>
<div>  System   |         device: '/sys/devices/pci0000:00/0000:00:14.0/usb3/3-7'</div>
<div>           |        drivers: 'option1, qmi_wwan'</div>
<div>           |         plugin: 'Sierra'</div>
<div>           |   primary port: 'cdc-wdm1'</div>
<div>           |          ports: 'ttyUSB4 (at), ttyUSB2 (qcdm), cdc-wdm1 (qmi), cdc-wdm2 (qmi), wwan1 (net), wwan0 (net)'</div>
<div>  -------------------------</div>
<div>  Numbers  |           own : 'unknown'</div>
<div>  -------------------------</div>
<div>  Status   |           lock: 'sim-pin'</div>
<div>           | unlock retries: 'sim-pin (3), sim-pin2 (0), sim-puk (10), sim-puk2 (10)'</div>
<div>           |          state: 'locked'</div>
<div>           |    power state: 'on'</div>
<div>           |    access tech: 'unknown'</div>
<div>           | signal quality: '0' (cached)</div>
<div>  -------------------------</div>
<div>  Modes    |      supported: 'allowed: 2g, 3g, 4g; preferred: none'</div>
<div>           |        current: 'allowed: 2g, 3g, 4g; preferred: none'</div>
<div>  -------------------------</div>
<div>  Bands    |      supported: 'dcs, egsm, pcs, g850, u2100, u1900, u800, u850, u900, eutran-i, eutran-iii, eutran-vii, eutran-viii, eutran-xx'</div>
<div>           |        current: 'dcs, egsm, pcs, g850, u2100, u1900, u850, u900, eutran-i, eutran-iii, eutran-vii, eutran-viii, eutran-xx'</div>
<div>  -------------------------</div>
<div>  IP       |      supported: 'ipv4, ipv6, ipv4v6'</div>
<div>  -------------------------</div>
<div>  SIM      |           path: '/org/freedesktop/ModemManager1/SIM/0'</div>
<div><br>
</div>
<div>  -------------------------</div>
<div>  Bearers  |          paths: 'none'</div>
<div><br>
</div>
<div>X@X:~/dev/ModemManager/ModemManager-1.6.4$ ./cli/mmcli -i 0 </div>
<div>SIM '/org/freedesktop/ModemManager1/SIM/0'</div>
<div>  -------------------------</div>
<div>  Properties |          imsi : 'unknown'</div>
<div>             |            id : '8945020184920077811'</div>
<div>             |   operator id : 'unknown'</div>
<div>             | operator name : 'unknown'</div>
<div><br>
</div>
<div><br>
</div>
<div>simcard is pinlocked, unlocking => </div>
<div><br>
</div>
<div><span style="font-size: 12pt;">X@X:~/dev/ModemManager/ModemManager-1.6.4$ ./cli/mmcli -i 0 --pin=XXXX</span><br>
</div>
<div>successfully sent PIN code to the SIM</div>
<div><span style="font-size: 12pt;">X@X:~/dev/ModemManager/ModemManager-1.6.4$ ./cli/mmcli -i 0 </span><br>
</div>
<div>SIM '/org/freedesktop/ModemManager1/SIM/0'</div>
<div>  -------------------------</div>
<div>  Properties |          imsi : 'unknown'</div>
<div>             |            id : '8945020184920077811'</div>
<div>             |   operator id : 'unknown'</div>
<div>             | operator name : 'unknown'</div>
<div><br>
</div>
<div>X@X:~/dev/ModemManager/ModemManager-1.6.4$ ./cli/mmcli -m 0 </div>
<div><span style="font-size: 12pt;">/org/freedesktop/ModemManager1/Modem/0 (device id '8bd0cad71e5b53259d0fce6e98dc209d822eb6a7')</span><br>
</div>
<div>  -------------------------</div>
<div>  Hardware |   manufacturer: 'Sierra Wireless, Incorporated'</div>
<div>           |          model: 'MC7304'</div>
<div>           |       revision: 'SWI9X15C_05.05.58.00 r27038 carmd-fwbuild1 2015/03/04 21:30:23'</div>
<div>           |      supported: 'gsm-umts</div>
<div>           |                  lte</div>
<div>           |                  gsm-umts, lte'</div>
<div>           |        current: 'gsm-umts, lte'</div>
<div>           |   equipment id: '356853051353789'</div>
<div>  -------------------------</div>
<div>  System   |         device: '/sys/devices/pci0000:00/0000:00:14.0/usb3/3-7'</div>
<div>           |        drivers: 'option1, qmi_wwan'</div>
<div>           |         plugin: 'Sierra'</div>
<div>           |   primary port: 'cdc-wdm1'</div>
<div>           |          ports: 'ttyUSB4 (at), ttyUSB2 (qcdm), cdc-wdm1 (qmi), cdc-wdm2 (qmi), wwan1 (net), wwan0 (net)'</div>
<div>  -------------------------</div>
<div>  Numbers  |           own : 'unknown'</div>
<div>  -------------------------</div>
<div>  Status   |           lock: 'sim-puk2'</div>
<div>           | unlock retries: 'sim-pin (3), sim-pin2 (0), sim-puk (10), sim-puk2 (10)'</div>
<div>           |          state: 'enabled'</div>
<div>           |    power state: 'on'</div>
<div>           |    access tech: 'unknown'</div>
<div>           | signal quality: '59' (recent)</div>
<div>  -------------------------</div>
<div>  Modes    |      supported: 'allowed: 2g, 3g, 4g; preferred: none'</div>
<div>           |        current: 'allowed: 2g, 3g, 4g; preferred: none'</div>
<div>  -------------------------</div>
<div>  Bands    |      supported: 'dcs, egsm, pcs, g850, u2100, u1900, u800, u850, u900, eutran-i, eutran-iii, eutran-vii, eutran-viii, eutran-xx'</div>
<div>           |        current: 'dcs, egsm, pcs, g850, u2100, u1900, u850, u900, eutran-i, eutran-iii, eutran-vii, eutran-viii, eutran-xx'</div>
<div>  -------------------------</div>
<div>  IP       |      supported: 'ipv4, ipv6, ipv4v6'</div>
<div>  -------------------------</div>
<div>  3GPP     |           imei: '356853051353789'</div>
<div>           |  enabled locks: 'sim'</div>
<div>           |    operator id: 'unknown'</div>
<div>           |  operator name: 'unknown'</div>
<div>           |   subscription: 'unknown'</div>
<div>           |   registration: 'idle'</div>
<div>  -------------------------</div>
<div>  SIM      |           path: '/org/freedesktop/ModemManager1/SIM/0'</div>
<div><br>
</div>
<div>  -------------------------</div>
<div>  Bearers  |          paths: 'none'</div>
<div><br>
</div>
<div><br>
</div>
<div>All well modem and simcard detected and unlocked/enabled, but when changing the simcard: </div>
<div><br>
</div>
<div><br>
</div>
<div>X@X:~/dev/ModemManager/ModemManager-1.6.4$ ./cli/mmcli -m 0 -d </div>
<div>successfully disabled the modem</div>
<div><span style="font-size: 12pt;">X@X:~/dev/ModemManager/ModemManager-1.6.4$ sudo qmicli -d /dev/cdc-wdm2 --uim-power-down</span><br>
</div>
<div>[/dev/cdc-wdm2] Successfully performed SIM power down</div>
<div><br>
</div>
<div>****** MANUALLY SWAPPING SIMCARD ******</div>
<div><br>
</div>
<div><span style="font-size: 12pt;">X@X:~/dev/ModemManager/ModemManager-1.6.4$ sudo qmicli -d /dev/cdc-wdm2 --uim-power-up </span><br>
</div>
<div>[/dev/cdc-wdm2] Successfully performed SIM power up</div>
<div><span style="font-size: 12pt;">X@X:~/dev/ModemManager/ModemManager-1.6.4$ sudo qmicli -d /dev/cdc-wdm2 --dms-uim-get-iccid</span><br>
</div>
<div>[/dev/cdc-wdm2] UIM ICCID retrieved:</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>ICCID: '8945061304160073201'</div>
<div><br>
</div>
<div><br>
</div>
<div>ICCID is now changed i.e. new simcard is detected =></div>
<div><br>
</div>
<div><br>
</div>
<div>X@X:~/dev/ModemManager/ModemManager-1.6.4$ ./cli/mmcli -m 0 -e</div>
<div>successfully enabled the modem</div>
<div><span style="font-size: 12pt;">X@X:~/dev/ModemManager/ModemManager-1.6.4$ ./cli/mmcli -m 0 </span><br>
</div>
<div><br>
</div>
<div>/org/freedesktop/ModemManager1/Modem/0 (device id '8bd0cad71e5b53259d0fce6e98dc209d822eb6a7')</div>
<div>  -------------------------</div>
<div>  Hardware |   manufacturer: 'Sierra Wireless, Incorporated'</div>
<div>           |          model: 'MC7304'</div>
<div>           |       revision: 'SWI9X15C_05.05.58.00 r27038 carmd-fwbuild1 2015/03/04 21:30:23'</div>
<div>           |      supported: 'gsm-umts</div>
<div>           |                  lte</div>
<div>           |                  gsm-umts, lte'</div>
<div>           |        current: 'gsm-umts, lte'</div>
<div>           |   equipment id: '356853051353789'</div>
<div>  -------------------------</div>
<div>  System   |         device: '/sys/devices/pci0000:00/0000:00:14.0/usb3/3-7'</div>
<div>           |        drivers: 'option1, qmi_wwan'</div>
<div>           |         plugin: 'Sierra'</div>
<div>           |   primary port: 'cdc-wdm1'</div>
<div>           |          ports: 'ttyUSB4 (at), ttyUSB2 (qcdm), cdc-wdm1 (qmi), cdc-wdm2 (qmi), wwan1 (net), wwan0 (net)'</div>
<div>  -------------------------</div>
<div>  Numbers  |           own : 'unknown'</div>
<div>  -------------------------</div>
<div>  Status   |           lock: 'sim-puk2'</div>
<div>           | unlock retries: 'sim-pin (3), sim-pin2 (0), sim-puk (10), sim-puk2 (10)'</div>
<div>           |          state: 'enabled'</div>
<div>           |    power state: 'on'</div>
<div>           |    access tech: 'unknown'</div>
<div>           | signal quality: '59' (cached)</div>
<div>  -------------------------</div>
<div>  Modes    |      supported: 'allowed: 2g, 3g, 4g; preferred: none'</div>
<div>           |        current: 'allowed: 2g, 3g, 4g; preferred: none'</div>
<div>  -------------------------</div>
<div>  Bands    |      supported: 'dcs, egsm, pcs, g850, u2100, u1900, u800, u850, u900, eutran-i, eutran-iii, eutran-vii, eutran-viii, eutran-xx'</div>
<div>           |        current: 'dcs, egsm, pcs, g850, u2100, u1900, u850, u900, eutran-i, eutran-iii, eutran-vii, eutran-viii, eutran-xx'</div>
<div>  -------------------------</div>
<div>  IP       |      supported: 'ipv4, ipv6, ipv4v6'</div>
<div>  -------------------------</div>
<div>  3GPP     |           imei: '356853051353789'</div>
<div>           |  enabled locks: 'sim'</div>
<div>           |    operator id: 'unknown'</div>
<div>           |  operator name: 'unknown'</div>
<div>           |   subscription: 'unknown'</div>
<div>           |   registration: 'idle'</div>
<div>  -------------------------</div>
<div>  SIM      |           path: '/org/freedesktop/ModemManager1/SIM/0'</div>
<div><br>
</div>
<div>  -------------------------</div>
<div>  Bearers  |          paths: 'none'</div>
<div><br>
</div>
<div>X@X:~/dev/ModemManager/ModemManager-1.6.4$ ./cli/mmcli -i 0 </div>
<div>SIM '/org/freedesktop/ModemManager1/SIM/0'</div>
<div>  -------------------------</div>
<div>  Properties </div>
<div>|          imsi : 'unknown'</div>
<div>|            id : '8945020184920077811'</div>
<div>|   operator id : 'unknown'</div>
<div>| operator name : 'unknown'</div>
<br>
<p></p>
<p><br>
</p>
<p>qmicli shows the new simcard detected, but mmcli shows the old simcard still attached,</p>
<p>is it possible to re-probe the simcard after the simcard-slot has been powered down/up without doing a full modem reset with mmcli/libmm ??<br>
</p>
<p><span style="font-size: 12pt;"></span></p>
</div>
</body>
</html>