I have used a Huawei E392 modem for my main Internet connection needs since 2016. I've attached it to a Raspberry Pi that acts as a router.
This is an old school modem that appears as a serial device (AT command modem) and PPP is used to run the Internet Protocol. Compared to newer USB modems (that appear as Ethernet devices running their own IP stacks with NAT, Web UIs and whatever other malware), the AT command interface is much more low-level and hackable, as it allows you to both monitor and control some aspects of the radio link.
The modem has turned out to be pretty robust. The ones I bought were already second-handed, and they have been running pretty much 7/24 since (it's now end of 2024). Maybe once a year there's a hang that requires power cycling. The performance is sufficient. I haven't had the need to use an external antenna - in every location in Finland where I've used it, the signal has been good enough.
This article documents some technical low-level stuff that I've found from other sources and/or reverse-engineered.
This stuff can be totally country or even operator specific. I think I downloaded the updates from some Elisa source - you had to run them on a Windows machine.
From ATI command output:
Manufacturer: Huawei Technologies Co., Ltd. Model: E392 Revision: 11.433.57.00.260
Wanted band/RAT | AT command |
---|---|
4G | AT^SYSCFGEX="03",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF,"","" |
4G: 800 MHz | AT^SYSCFGEX="03",3FFFFFFF,1,2,80000,"","" |
4G: 900 MHz | AT^SYSCFGEX="03",3FFFFFFF,1,2,80,"","" |
4G: 1800 MHz | AT^SYSCFGEX="03",3FFFFFFF,1,2,4,"","" |
4G: 2100 MHz | AT^SYSCFGEX="03",3FFFFFFF,1,2,1,"","" |
4G: 2600 MHz | AT^SYSCFGEX="03",3FFFFFFF,1,2,40,"","" |
3G | AT^SYSCFGEX="02",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF,"","" |
2G | AT^SYSCFGEX="01",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF,"","" |
Auto mode | AT^SYSCFGEX="00",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF,"","" |
The following commands enable tracing of the current cell:
AT+CREG=2 AT+CREG?
When monitoring and tracing is enabled, the following heuristics can be used to determine the used RAT:
If ``AT^LTERSRP?'' works the connection is 4G. Otherwise, the connection is either 2G or 3G. In that case check ``AT^SYSMODE''.
Use the following commands:
AT^ANQUERY? ^ANQUERY:<?>,<?>,<RSSI>,<?>,<?>,<?>
AT+CSQ +CSQ: <RSSI>,<?>
AT^SYSMODE ^SYSMODE:<MODE>
From output, you can decode:
MODE = Used technology (only seen EDGE here, probably GPRS also valid)
RSSI = Received Signal Strength Indicator (encoded, bigger is better)
RSSI value | Meaning |
---|---|
0 | -113 dBm or less |
1 | -111 dBm |
2 .. 30 | -109 dBm .. -53 dBm |
31 | -51 dBm or more |
The signal is strong when RSSI > 20.
Use the following commands:
AT^ANQUERY? ^ANQUERY:<RSCP>,<ECIO>,<RSSI>,<?>,<?>,<?>
AT+CSQ +CSQ: <RSSI>,<?>
AT^SYSMODE ^SYSMODE:<MODE>
From output, you can decode:
MODE = Used technology (slowest to fastest: WCDMA, HSPAPLUS)
ECIO = Energy To Interference Ratio
ECIO value | meaning |
---|---|
0 .. 65 | -32 dB .. 0 dB, bigger is better |
RSCP = Receive Signal Code Power
RSCP value | meaning |
---|---|
0 .. 96 | -120 dBm .. -25 dBm, bigger is better |
RSSI = Received Signal Strength Indicator
RSSI value | meaning |
---|---|
0 | -113 dBm or less |
1 | -111 dBm |
2 .. 30 | -109 dBm .. -53 dBm |
31 | -51 dBm or more |
The signal is strong when ECIO > 46, RSCP > 46, RSSI > 20.
Use the following commands:
AT^ANQUERY? ^ANQUERY:<?>,<?>,<RSSI>,<?>,<RSRP>,<RSRQ> AT^LTERSRP? ^LTERSRP: <RSRP>,<RSRQ> AT^LTESCINFO? ^LTESCINFO:<PCI>,<SINR>,<?>,<?> AT+CSQ +CSQ: <RSSI>,<?>
From output, you can decode:
PCI = Physical Cell Identifier (0 .. 503)
RSRP = Reference Signal Received Power (dBm, bigger is better)
RSRQ = Reference Signal Received Quality (dB, bigger is better)
RSSI = Received Signal Strength Indicator (encoded, bigger is better)
RSSI value | Meaning |
---|---|
0 | -113 dBm or less |
1 | -111 dBm |
2 .. 30 | -109 dBm .. -53 dBm |
31 | -51 dBm or more |
SINR = Signal-To-Interference-Plus-Noise Ratio (encoded, see below)
SINR value | Meaning |
---|---|
0 .. 18 | -6 dB .. 30 dB, bigger is better |
19 .. 25 | -20 dB .. -8 dB, bigger is better |
For strong signal: RSRP > -90, RSRQ > -15, RSSI > 20, SINR > 8, SINR <19.
Last updated: 2024-12-29 21:25 (EET)