Mobile data connection troubleshooting
This is a quick guide to help in the debugging process of a router if encounters issues with mobile data connection.
1. Connect to router via CLI/SSH (use SSH software such as Putty): • CLI/SSH login: root • CLI/SSH password: <your router’s password>
2. Connect to mobile module of the router: • ifdown ppp • /etc/init.d/gsmd stop • microcom /dev/modem_cmd • ATE1 • at+qcsq=0 (*most likely you will not see anything and that’s because screen echo might be disabled. ATE1 will enable it so that you can see what you write. at+qcsq=0 command stops showing unnecessary output) 3. Check communication (wait for the module to respond OK): • AT 4. Query SIM card status: • AT+CPIN? 5. If PIN is required, initialize modem with your PIN code: • AT+CPIN="xxxx" 6. Check SIM card status again (Reboot the module if it fails to identify SIM): • AT+CPIN? 7. Check GSM connection (OK means that the module has registered on CS domain service): • AT+CREG 8. Check PS Service (OK means that the module has registered in UMTS/LTE network) • AT+CGREG 9. Configure APN, user name, password and auth type by AT+QICSGP • AT+QICSGP=<contextID>[,<context_type>,<APN>[,<username>,<password>)[,<authentication>]]] <context type> The protocol type (1 – IPV4; 2 – IPv6). <context id> The range is 1-16. <authentication> The authentication methods (0 – NONE; 1 – PAP; 2 – CHAP; 3-PAP or CHAP). Example: AT+QICSGP=1,1,"APN_Name","","",1
10. Activate a PDP context: • AT+QIACT=<contextID>
11. Query IP Address of the PDP context: • AT+QIACT? (*Try and activate a PDP context a few times. If failed, then reboot the module). 12. Open connection: • AT+QIOPEN (*If failed – deactivate PDP context - use command AT+QIDEACT=<context ID> to deactivate PDP context.) 13. Use AT commands to ping a Remote Server • AT+QPING=1,"8.8.8.8"
- 1 –The context ID. The range is 1-16;
- 8.8.8.8 - The host address in string type. The format is a dotted decimal IP address.
Response: • If ping a remote server successfully, response: OK (means that the module works properly) • If there is any error, response: ERROR (means the problem is in the module)
Example fo the provided configuration: