Quectel RM500U-EA in airplane mode at boot on Huasifei WH3000 Pro

Hi,

I'm having some issues using OpenWrt on my Huasifei WH3000 Pro. After installing required packages for MBIM + ModemManager, I managed to configure the WWAN connection on /dev/cdc-wdm0 using LuCi.
After setting up the connection, the interface stays with the Following error:

Error: Unknown error (NO_REGISTRATION)

The modem I use is a Quectel RM500U-EA:

root@OpenWrt:~# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux 6.6.119 xhci-hcd xHCI Host Controller
Bus 001 Device 002: ID 05e3:0610 GenesysLogic USB2.1 Hub
Bus 002 Device 001: ID 1d6b:0003 Linux 6.6.119 xhci-hcd xHCI Host Controller
Bus 002 Device 002: ID 05e3:0626 GenesysLogic USB3.1 Hub
Bus 002 Device 003: ID 2c7c:0900 Quectel RM500U-EA

cdc-wdm0 is properly populated:

root@OpenWrt:~# ls -l /dev/cdc-wdm0
crw-------    1 root     root      180, 176 Mar 28 14:22 /dev/cdc-wdm0

But mmcli doesn't seem to detect the modem (not sure if it's related):

root@OpenWrt:~# mmcli -L
No modems were found

Then I restart ModemManager service:
root@OpenWrt:~# service modemmanager restart

And after 1 or 2 minutes, the modem shows up:

root@OpenWrt:~# mmcli -L
    /org/freedesktop/ModemManager1/Modem/0 [Quectel] RM500U-EA

Here we can see it stucked at disabled state:

root@OpenWrt:~# mmcli -m 0
  --------------------------------
  General  |                 path: /org/freedesktop/ModemManager1/Modem/0
           |            device id: 308c8bd4555f48eb2c191482e1869b7f41048017
  --------------------------------
  Hardware |         manufacturer: Quectel
           |                model: RM500U-EA
           |    firmware revision: RM500UEAAAR03A13M2G_01.300.01.300
           |            supported: gsm-umts
           |              current: gsm-umts
           |         equipment id: <REDACTED>
  --------------------------------
  System   |               device: /sys/devices/platform/soc/11200000.usb/usb2/2-1/2-1.4
           |              physdev: /sys/devices/platform/soc/11200000.usb/usb2/2-1/2-1.4
           |              drivers: cdc_mbim, option1
           |               plugin: quectel
           |         primary port: ttyUSB2
           |                ports: ttyUSB2 (at), ttyUSB3 (at), wwan0 (ignored)
  --------------------------------
  Status   |       unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10)
           |                state: disabled
           |          power state: low
  --------------------------------
  Modes    |            supported: allowed: any; preferred: none
           |              current: allowed: any; preferred: none
  --------------------------------
  3GPP     |                 imei: <REDACTED>
  --------------------------------
  3GPP EPS | ue mode of operation: ps-2
  --------------------------------
  SIM      |     primary sim path: /org/freedesktop/ModemManager1/SIM/0

I also tried to enable radio using mbimcli, but it times out:

root@OpenWrt:~# mbimcli --device-open-proxy --device="/dev/cdc-wdm0" --quectel-query-radio-state
error: operation failed: Transaction timed out
root@OpenWrt:~# mbimcli --device-open-proxy --device="/dev/cdc-wdm0" --quectel-set-radio-state=on
error: operation failed: Transaction timed out

The only way to disable airplane mode, is to do it using picocom (note that I don't need to restart ModemManager to run the AT commands):

root@OpenWrt:~# picocom /dev/ttyUSB2
picocom v3.1

port is        : /dev/ttyUSB2
flowcontrol    : none
baudrate is    : 9600
parity is      : none
databits are   : 8
stopbits are   : 1
escape is      : C-a
local echo is  : no
noinit is      : no
noreset is     : no
hangup is      : no
nolock is      : no
send_cmd is    : sz -vv
receive_cmd is : rz -vv -E
imap is        :
omap is        :
emap is        : crcrlf,delbs,
logfile is     : none
initstring     : none
exit_after is  : not set
exit is        : no

Type [C-a] [C-h] to see available commands
Terminal ready
ATE1
+CME ERROR: 0
ATE1
OK
AT+CFUN?
+CFUN: 4

OK
AT+CFUN=1
OK

+CFUN: 1

Then the interface connects successfully.
Any idea how to disable the airplane mode permanently? I tried to use one of the scripts in /usr/share/ModemManager/fcc-unlock.available.d as a workaround but it fails as shown above.

Thanks for any help

As a workaround I added this in my local startup script:

echo -e ATE1 | socat - /dev/ttyUSB2,crnl
sleep 2
echo -e AT+CFUN=1 | socat - /dev/ttyUSB2,crnl

But it would be nice to automatically disable airplane mode during startup

Well that doesn't seem to work every boot :frowning:

Finally manager to get it to work by switching to ECM mode.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.