Skip to content

FM350-GL stuck at 'Activate modem' - URC not sent by modem firmware 81600.0000.00.29.19.16 #106

@gladiator9797

Description

@gladiator9797

FM350-GL modem stuck at "Activate modem" - never establishes data connection

Summary

FM350-GL modem is detected correctly, SIM card recognized, APN auto-detected, but connection never completes. The ATC script gets stuck waiting for URC (Unsolicited Result Codes) from the modem that are never sent, preventing data connection establishment.

Environment

Hardware:

  • Board: Banana Pi BPI-R3 Mini
  • Modem: Fibocom FM350-GL (USB mode, RNDIS)
  • USB ID: 0e8d:7127
  • Firmware Version: 81600.0000.00.29.19.16
  • SIM: MCC: detected, MNC: detected

Software:

  • Firmware: BananaWRT/ImmortalWrt 24.10.4 (r33602-e717d133ed6d)
  • Kernel: 6.6.110
  • Release: 2025.10.29-1540 (latest as of Oct 31, 2025)
  • Packages:
    • atc-fib-fm350_gl: 20250606-r3.13
    • luci-proto-atc: 20250511-r2.1
    • atc-apn-database: 20250529-r1.23
    • comgt: 0.32-r36

Configuration

network.wwan=interface
network.wwan.proto='atc'
network.wwan.device='/dev/ttyUSB3'
network.wwan.apn='v-internet'
network.wwan.pdp='IP'
network.wwan.auth='0'
network.wwan.delay='15'
network.wwan.atc_debug='2'

Problem Description

The wwan interface initialization proceeds normally through these steps:

  1. ✅ "Initiate modem with interface eth2" - Success
  2. ✅ "SIMcard ready" - Success
  3. ✅ "FM350-GL" detected - Success
  4. ✅ "Configure modem" - Success
  5. ✅ "Auto APN detection enabled" - Success
  6. ✅ "Auto-detected APN: v-internet for carrier: Viettel" - Success
  7. "Activate modem" - STUCK HERE FOREVER

After "Activate modem", the script blocks indefinitely and never proceeds.

Root Cause Analysis

The ATC script (/lib/netifd/proto/atc.sh) uses an event-driven architecture:

# Line 525-527
echo Activate modem
COMMAND='AT+CFUN=1' gcom -d "$device" -s /etc/gcom/at.gcom

while read URCline
do
    # Process URC codes like +COPS, +CEREG, +CGREG, +CGEV
    ...
done < ${device}  # Line 792 - reads directly from /dev/ttyUSB3

The script waits for URCs (Unsolicited Result Codes) such as:

  • +COPS - Operator selection
  • +CEREG - EPS network registration
  • +CGREG - GPRS network registration

However, the FM350-GL (firmware 81600.0000.00.29.19.16) in RNDIS/USB mode does NOT send these URCs, even after enabling them with:

  • AT+CREG=2 ✅ (command accepted)
  • AT+CEREG=2 ✅ (command accepted)
  • AT+CGREG=2 ✅ (command accepted)

The modem accepts these commands (returns OK) but never actually sends the URC messages, causing the while read loop to block forever.

Observable Symptoms

  1. Interface status: "up": false, "pending": true - stuck in pending state
  2. eth2 state: DOWN (never brought UP)
  3. No error messages - script is waiting, not failing
  4. LTE LED: Never lights up
  5. Logs show: Process stuck after "Activate modem", no further progress

Troubleshooting Attempted

  1. Tried different ttyUSB ports (ttyUSB3, ttyUSB4) - same result
  2. Enabled URC reporting (CREG=2, CEREG=2, CGREG=2) - modem accepts but doesn't send URCs
  3. Added explicit APN configuration - no change
  4. Clean firmware flash (factory reset) - same behavior
  5. Verified SIM and modem detection - all OK
  6. Tested with atc_debug=2 - shows modem configured correctly, just stuck waiting
  7. Installed QMI drivers - FM350 in RNDIS mode doesn't expose QMI interface (no /dev/cdc-wdm*)
  8. Attempted to rewrite ATC script with polling - resulted in crash loop (requires deep integration changes)

Expected Behavior

Based on documentation claiming FM350 is "plug and play" with BananaWRT, the modem should:

  1. Complete all initialization steps
  2. Receive network registration URCs
  3. Establish PDP context
  4. Assign IP address to eth2
  5. Bring up data connection

Actual Behavior

Modem gets stuck at step 7 "Activate modem" indefinitely, waiting for URCs that never arrive.

Questions

  1. Does BananaWRT work with THIS specific FM350 firmware version? (81600.0000.00.29.19.16)
  2. Are there known FM350 firmware versions that send URCs properly in RNDIS mode?
  3. Is there a custom ATC script version with polling support instead of URC-based?
  4. Should this modem be used in PCIe mode instead? (though documentation mentions PCIe has stability issues)

Logs

Full wwan initialization log
Fri Oct 31 17:38:25 2025 daemon.notice netifd: Interface 'wwan' is setting up now
Fri Oct 31 17:38:26 2025 daemon.notice netifd: wwan (7073): Initiate modem with interface eth2
Fri Oct 31 17:38:29 2025 daemon.notice netifd: wwan (7073): SIMcard ready
Fri Oct 31 17:38:31 2025 daemon.notice netifd: wwan (7073): Fibocom Wireless Inc.
Fri Oct 31 17:38:31 2025 daemon.notice netifd: wwan (7073): FM350-GL
Fri Oct 31 17:38:31 2025 daemon.notice netifd: wwan (7073): 81600.0000.00.29.19.16
Fri Oct 31 17:38:31 2025 daemon.notice netifd: wwan (7073): Configure modem
Fri Oct 31 17:38:40 2025 daemon.notice netifd: wwan (7073): Activate modem
[STUCK HERE - no further progress]

Request

Could you please provide guidance on:

  1. Compatible FM350 firmware versions for RNDIS mode
  2. Any custom patches or modifications needed for this modem
  3. Alternative configuration approaches (ModemManager, QMI, etc.)
  4. Or confirm if this specific FM350 firmware simply isn't supported

Thank you!


Hardware: Banana Pi BPI-R3 Mini + Fibocom FM350-GL
Firmware: BananaWRT 24.10.4 (2025.10.29-1540)
Issue: Data connection never establishes - stuck waiting for URC

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions