I’m using your CellularHelper repo as a jumping off point for testing cellular connectivity however the part where I read what type of network I’ve connected to with
CellularHelperEnvironmentCellData::postProcess()
is confusing me.
The band that this function is parsing is coming out as either DCS 1800
or GSM 900
, even though I am testing on a U-260 Electron.
Note that I am using AT+UBANDSEL to successfully select the 850 and 1900 MHz bands as per:
[ Modem::getBandAvailable ] = = = = = = = = = =
10.753 AT send 15 "AT+UBANDSEL=?\r\n"
10.764 AT read + 27 "\r\n+UBANDSEL: (0,850,1900)\r\n"
10.775 AT read OK 6 "\r\nOK\r\n"
0000010775 [app.main] INFO: Available bands:
0,850,1900
[ Modem::getBandSelect ] = = = = = = = = = =
10.776 AT send 14 "AT+UBANDSEL?\r\n"
10.786 AT read + 23 "\r\n+UBANDSEL: 850,1900\r\n"
10.796 AT read OK 6 "\r\nOK\r\n"
0000010796 [app.main] INFO: Selected bands:
850,1900
0000010796 [app.main] INFO: Trying band: BAND_0
[ Modem::setBandSelect ] = = = = = = = = = =
[ Modem::getBandAvailable ] = = = = = = = = = =
10.797 AT send 15 "AT+UBANDSEL=?\r\n"
10.808 AT read + 27 "\r\n+UBANDSEL: (0,850,1900)\r\n"
10.818 AT read OK 6 "\r\nOK\r\n"
[ Modem::getBandSelect ] = = = = = = = = = =
10.818 AT send 14 "AT+UBANDSEL?\r\n"
10.829 AT read + 23 "\r\n+UBANDSEL: 850,1900\r\n"
10.839 AT read OK 6 "\r\nOK\r\n"
0000010839 [app.main] WARN: band(s) set! Value will be saved in NVM when powering off modem.
0000010839 [app.main] INFO: Checking that band really was set correctly....
[ Modem::getBandSelect ] = = = = = = = = = =
10.840 AT send 14 "AT+UBANDSEL?\r\n"
10.851 AT read + 23 "\r\n+UBANDSEL: 850,1900\r\n"
10.861 AT read OK 6 "\r\nOK\r\n"
0000010861 [app.main] INFO: Selected bands:
850,1900
0000010861 [app.main] WARN: --------------------DONE GET/SET BANDS---------------------
and
[ Modem::getBandAvailable ] = = = = = = = = = =
77.071 AT send 15 "AT+UBANDSEL=?\r\n"
77.081 AT read + 27 "\r\n+UBANDSEL: (0,850,1900)\r\n"
77.091 AT read OK 6 "\r\nOK\r\n"
0000077091 [app.main] INFO: Available bands:
0,850,1900
[ Modem::getBandSelect ] = = = = = = = = = =
77.092 AT send 14 "AT+UBANDSEL?\r\n"
77.102 AT read + 23 "\r\n+UBANDSEL: 850,1900\r\n"
77.112 AT read OK 6 "\r\nOK\r\n"
0000077112 [app.main] INFO: Selected bands:
850,1900
0000077112 [app.main] INFO: Trying band: BAND_850
[ Modem::setBandSelect ] = = = = = = = = = =
[ Modem::getBandAvailable ] = = = = = = = = = =
77.113 AT send 15 "AT+UBANDSEL=?\r\n"
77.124 AT read + 27 "\r\n+UBANDSEL: (0,850,1900)\r\n"
77.134 AT read OK 6 "\r\nOK\r\n"
[ Modem::getBandSelect ] = = = = = = = = = =
77.134 AT send 14 "AT+UBANDSEL?\r\n"
77.145 AT read + 23 "\r\n+UBANDSEL: 850,1900\r\n"
77.155 AT read OK 6 "\r\nOK\r\n"
77.155 AT send 17 "AT+UBANDSEL=850\r\n"
78.576 AT read OK 6 "\r\nOK\r\n"
0000078576 [app.main] WARN: band(s) set! Value will be saved in NVM when powering off modem.
0000078576 [app.main] INFO: Checking that band really was set correctly....
[ Modem::getBandSelect ] = = = = = = = = = =
78.577 AT send 14 "AT+UBANDSEL?\r\n"
78.588 AT read + 18 "\r\n+UBANDSEL: 850\r\n"
78.598 AT read OK 6 "\r\nOK\r\n"
0000078598 [app.main] INFO: Selected bands:
850
0000078598 [app.main] WARN: --------------------DONE GET/SET BANDS---------------------
and
[ Modem::getBandAvailable ] = = = = = = = = = =
143.091 AT send 15 "AT+UBANDSEL=?\r\n"
143.101 AT read + 27 "\r\n+UBANDSEL: (0,850,1900)\r\n"
143.111 AT read OK 6 "\r\nOK\r\n"
0000143111 [app.main] INFO: Available bands:
0,850,1900
[ Modem::getBandSelect ] = = = = = = = = = =
143.112 AT send 14 "AT+UBANDSEL?\r\n"
143.122 AT read + 18 "\r\n+UBANDSEL: 850\r\n"
143.132 AT read OK 6 "\r\nOK\r\n"
0000143132 [app.main] INFO: Selected bands:
850
0000143132 [app.main] INFO: Trying band: BAND_1900
[ Modem::setBandSelect ] = = = = = = = = = =
[ Modem::getBandAvailable ] = = = = = = = = = =
143.133 AT send 15 "AT+UBANDSEL=?\r\n"
143.144 AT read + 27 "\r\n+UBANDSEL: (0,850,1900)\r\n"
143.154 AT read OK 6 "\r\nOK\r\n"
[ Modem::getBandSelect ] = = = = = = = = = =
143.154 AT send 14 "AT+UBANDSEL?\r\n"
143.165 AT read + 18 "\r\n+UBANDSEL: 850\r\n"
143.175 AT read OK 6 "\r\nOK\r\n"
143.175 AT send 18 "AT+UBANDSEL=1900\r\n"
165.986 AT read OK 6 "\r\nOK\r\n"
0000165986 [app.main] WARN: band(s) set! Value will be saved in NVM when powering off modem.
0000165987 [app.main] INFO: Checking that band really was set correctly....
[ Modem::getBandSelect ] = = = = = = = = = =
165.987 AT send 14 "AT+UBANDSEL?\r\n"
165.998 AT read + 19 "\r\n+UBANDSEL: 1900\r\n"
166.008 AT read OK 6 "\r\nOK\r\n"
0000166008 [app.main] INFO: Selected bands:
1900
0000166008 [app.main] WARN: --------------------DONE GET/SET BANDS---------------------
but those just result in the following:
38.652 AT send 11 "AT+CGED=5\r\n"
38.663 AT read ERR 39 "\r\n+CME ERROR: operation not supported\r\n"
38.664 AT send 11 "AT+CGED=3\r\n"
38.684 AT read + 22 "\r\n+CGED: RAT:\"UMTS\",\r\n"
38.694 AT read UNK 61 "\r\nMCC:302, MNC:720, LAC:cf35, CI:012020d, DLF:1037, ULF:812\r\n"
38.705 AT read OK 6 "\r\nOK\r\n"
service rat=UMTS mcc=302, mnc=720, lac=cf35 ci=12020d band=DCS 1800 dlf=1037 ulf=812
and
99.735 AT send 11 "AT+CGED=5\r\n"
99.746 AT read ERR 39 "\r\n+CME ERROR: operation not supported\r\n"
99.747 AT send 11 "AT+CGED=3\r\n"
99.757 AT read + 22 "\r\n+CGED: RAT:\"UMTS\",\r\n"
99.767 AT read UNK 61 "\r\nMCC:302, MNC:720, LAC:cf35, CI:012020d, DLF:1037, ULF:812\r\n"
99.778 AT read OK 6 "\r\nOK\r\n"
service rat=UMTS mcc=302, mnc=720, lac=cf35 ci=12020d band=DCS 1800 dlf=1037 ulf=812`
and
192.938 AT send 11 “AT+CGED=5\r\n”
192.949 AT read ERR 39 “\r\n+CME ERROR: operation not supported\r\n”
192.950 AT send 11 “AT+CGED=3\r\n”
192.960 AT read + 22 “\r\n+CGED: RAT:“UMTS”,\r\n”
192.970 AT read UNK 59 “\r\nMCC:302, MNC:720, LAC:cf35, CI:0122fba, DLF:437, ULF:37\r\n”
192.981 AT read OK 6 “\r\nOK\r\n”
service rat=UMTS mcc=302, mnc=720, lac=cf35 ci=122fba band=GSM 900 dlf=437 ulf=37
I’m guessing that there must be a bug in the CellularHelper code?
I tried to figure out the bug but the uBlox AT command documentation doesn’t really specify what the ULF and DLF frequencies mean:
I’m guessing since
16383 = (2^14) - 1
that these values represent some kind of bitmask? Or maybe their range is just a function of a allocated chunk of memory (14 bits?) on the modem rather than actually being used as a bitmask?
@rickkas7 should know I guess, you wrote the darn thing!