Jpeg

Previously we have used GPRS shield to establish internet connection. Now we will use 3G, 4G/LTE shield for PPP internet connection. In order to make a 3G and 4G connection we will need to use Quectel UC20 and Quectel EC25 modules respectively.

As this tutorial is for 4G PPP Internet connection, we will use Quectel EC25, which is a series of LTE category 4 module optimized specially for M2M, IoT and multimedia applications. Due to rich set of protocols, industry-standard interfaces and abundant functionalities extend the applicability of the module ti a wide range of M2M and IoT applications such as industrial router, industrial PDA, rugged tablet PC, video surveillance and digital signage.

Features

  • Backward compatible with existing EDGE and GSM/GPRS networks.
  • Data rates: 150Mbps downlink and 50Mbps uplink
  • Simple migration from 3G to 4G
  • Operates with power from Raspberry Pi. Externally, 9V power can be supplied.
  • Operation Temperature -40°C ~ +85°C

Lets have a look on the pin assignment of the shield. GPIO23 disables wireless communications and GPIO24 is used for force hardware reset.

pinmap3g

Sixfab 3G,4G/LTE shield pin assignment

We will need to follow the following steps:

# The tutorial is covered using Raspberry Pi 3

1. Connect EC25 module to the shield.

Jpeg

Sixfab 3G,4G/LTE shield and EC25 module

Jpeg

EC25 module connected to shield

2. Insert SIM into the shield.

Jpeg

Inserting Sim to Shield

3. Attach the shield to the raspberry pi. Connect USB to Raspberry Pi

Jpeg

Shield Attached to Raspberry Pi 3

Jpeg

USB connected

4. Connect Raspberry Pi to Internet via WiFi or Ethernet.

Open the terminal(if you are using desktop or laptop you may connect raspberry pi with SSH. Also enable ssh from the Menu > Preferences > Raspberry Pi Configuration as shown in the figure below)

6

Raspbian Interface

7

Raspberry Pi Configuration

5. Once Raspberry Pi is connected, update Raspberry Pi by following command

piraspberrypi-_017

Update command in Terminal

6. Quectel Module support is to be added to the kernel, since Raspbian Jessie Kernel doesn’t support Quectel EC25/ UC20 modules.

6a. Install rpi-update

9

Installing rpi-update

6b. Update Raspberry Pi Kernel using following command

10

Running rpi-update

6c. Once updated Reboot the device

11

rebooting device

6d. Connect USB Cable to sheild from Raspberry Pi.

Use

and check if ttyUSB3 is available.

12

ls /dev

13

Looking for ttyUSB3

7. Now ppp-creator.sh script is to be downloaded.

14

Downloading ppp-creator.sh

*HOLOGRAM is the APN. As for example, APN for Boost Mobile is Boost_Mobile, for Verizon is  internet, for Virgin Mobile is Sprint etc. ttyUSB3 is the connection.

If you are using UART of Raspberry Pi 3 then use ttyS0 instead of ttyUSB3 or for other versions of Raspberry Pi use ttyAMA0.

15

change mode command

8. Disconnect Raspberry Pi from WiFi or Ethernet.

Type

or

Here & sign allows to run the command in background.

16

Connecting to Internet

The SIGNAL LED indicates the connectivity, HIGH indicates Network is connected.
(Open a browser and check a website)

17

Signal LED

9. Just to check the status of shield and ip, type

18

19

Checking IP and status

62 thoughts on “[Updated] Tutorial 3 | Make a PPP internet connection with 3G, 4G/LTE Shields on Raspberry Pi”

  1. Hello i followed you step by step, i use orange sim, when i arrive to sudo pppd call gprs give me that : connection script error.

    But i fixed the problem in this way but i need to know how can fixed normally:
    I connect the LTE shield with the QNavigator software, and then i use AT+CPIN=”0000″ and after that i reconnect the USB cable to the LTE shield (The LTE shield already connect to the PI and UART SW is ON).
    Then the sudo pppd call gprs work !!!

    I think the problem is the CPIN in the script gprs but i dont know how can i fix .
    Or if you can tell me what is the problem exactly.
    A guys from the support team from sixfab was already did the configuration for it and it was working properly but not now i faced this problem again(connection script failed when i type sudo pppd call gprs)

    Thank you very much

    1. Please modify /etc/chatscripts/quectel-chat-connect file, add bold line

      ABORT \”BUSY\”
      ABORT \”NO CARRIER\”
      ABORT \”NO DIALTONE\”
      ABORT \”ERROR\”
      ABORT \”NO ANSWER\”
      TIMEOUT 30
      \”\” AT
      OK ATE0
      OK ATI;+CSUB;+CSQ;+CPIN?;+COPS?;+CGREG?;&D2
      OK AT+CPIN=0000
      # Insert the APN provided by your network operator, default apn is $1
      OK AT+CGDCONT=1,\”IP\”,\”\\T\”,,0,0
      OK ATD*99#
      CONNECT

  2. Hi this is what happens when I call sudo pppd call gprs
    pppd options in effect:
    debug # (from /etc/ppp/peers/gprs)
    nodetach # (from /etc/ppp/peers/gprs)
    dump # (from /etc/ppp/peers/gprs)
    noauth # (from /etc/ppp/peers/gprs)
    remotename 3gppp # (from /etc/ppp/peers/gprs)
    /dev/ttyUSB3 # (from /etc/ppp/peers/gprs)
    115200 # (from /etc/ppp/peers/gprs)
    lock # (from /etc/ppp/peers/gprs)
    connect chat -s -v -f /etc/chatscripts/quectel-chat-connect -T HOLOGRAM # (from /etc/ppp/peers/gprs)
    disconnect chat -s -v -f /etc/chatscripts/quectel-chat-disconnect # (from /etc/ppp/peers/gprs)
    nocrtscts # (from /etc/ppp/peers/gprs)
    modem # (from /etc/ppp/peers/gprs)
    asyncmap 0 # (from /etc/ppp/options)
    lcp-echo-failure 4 # (from /etc/ppp/options)
    lcp-echo-interval 30 # (from /etc/ppp/options)
    hide-password # (from /etc/ppp/peers/gprs)
    novj # (from /etc/ppp/peers/gprs)
    novjccomp # (from /etc/ppp/peers/gprs)
    ipcp-accept-local # (from /etc/ppp/peers/gprs)
    ipcp-accept-remote # (from /etc/ppp/peers/gprs)
    ipparam 3gppp # (from /etc/ppp/peers/gprs)
    noipdefault # (from /etc/ppp/peers/gprs)
    ipcp-max-failure 30 # (from /etc/ppp/peers/gprs)
    defaultroute # (from /etc/ppp/peers/gprs)
    usepeerdns # (from /etc/ppp/peers/gprs)
    noccp # (from /etc/ppp/peers/gprs)
    noipx # (from /etc/ppp/options)
    abort on (BUSY)
    abort on (NO CARRIER)
    abort on (NO DIALTONE)
    abort on (ERROR)
    abort on (NO ANSWER)
    timeout set to 30 seconds
    send (AT^M)
    expect (OK)
    ^M
    OK
    — got it

    send (ATE0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATI;+CSUB;+CSQ;+CPIN?;+COPS?;+CGREG?;&D2^M)
    expect (OK)
    ^M
    ^M
    Quectel^M
    EC25^M
    Revision: EC25EFAR02A04M4G^M
    ^M
    SubEdition: V03^M
    ^M
    +CSQ: 99,99^M
    ^M
    +CPIN: READY^M
    ^M
    +COPS: 0^M
    ^M
    +CGREG: 0,2^M
    ^M
    OK
    — got it

    send (AT+CGDCONT=1,”IP”,”HOLOGRAM”,,0,0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATD*99#^M)
    expect (CONNECT)
    ^M
    ^M
    CONNECT
    — got it

    Script chat -s -v -f /etc/chatscripts/quectel-chat-connect -T HOLOGRAM finished (pid 1686), status = 0x0
    Serial connection established.
    using channel 6
    Using interface ppp0
    Connect: ppp0 /dev/ttyUSB3
    sent [LCP ConfReq id=0x1 ]
    rcvd [LCP ConfReq id=0xf ]
    No auth is possible
    sent [LCP ConfRej id=0xf ]
    rcvd [LCP ConfAck id=0x1 ]
    rcvd [LCP ConfReq id=0x10 ]
    sent [LCP ConfAck id=0x10 ]
    sent [LCP EchoReq id=0x0 magic=0xb3f50719]
    sent [IPCP ConfReq id=0x1 ]
    rcvd [LCP DiscReq id=0x11 magic=0xd122d3fb]
    rcvd [LCP EchoRep id=0x0 magic=0xd122d3fb b3 f5 07 19]
    Modem hangup
    Connection terminated.
    Any idea what I’m doing wrong?

  3. Hi, i followed this tutorial step by step as well but managed to connect successfully only 3 out of like 30 times. I have read Quectel’s EC25 datasheet and was wondering if this have something to do with USB driver issues ? (datasheet mention something about editing the kernel file)

    I hope you could get back to me as soon as possible.

    1. Hi i have finally made it work by typing this on my Raspberry PI’s command line:

      sudo route add default ppp0

      This is to ensure that the Pi prioritises this ppp connection.

  4. Hi, I am having a similar issue trying to get connected. I am using a working T-Mobile sim that I removed from a tablet. I am using EC25-A and for the APN passed into the ppp-creator.sh script I used fast.tmobile.com. When I try to connect I get the following output.

    [email protected]:~# pppd call gprs
    pppd options in effect:
    debug # (from /etc/ppp/peers/gprs)
    nodetach # (from /etc/ppp/peers/gprs)
    dump # (from /etc/ppp/peers/gprs)
    noauth # (from /etc/ppp/peers/gprs)
    remotename 3gppp # (from /etc/ppp/peers/gprs)
    /dev/ttyUSB3 # (from /etc/ppp/peers/gprs)
    115200 # (from /etc/ppp/peers/gprs)
    lock # (from /etc/ppp/peers/gprs)
    connect chat -s -v -f /etc/chatscripts/quectel-chat-connect -T fast.tmobile.com # (from /etc/ppp/peers/gprs)
    disconnect chat -s -v -f /etc/chatscripts/quectel-chat-disconnect # (from /etc/ppp/peers/gprs)
    nocrtscts # (from /etc/ppp/peers/gprs)
    modem # (from /etc/ppp/peers/gprs)
    asyncmap 0 # (from /etc/ppp/options)
    lcp-echo-failure 4 # (from /etc/ppp/options)
    lcp-echo-interval 30 # (from /etc/ppp/options)
    hide-password # (from /etc/ppp/peers/gprs)
    novj # (from /etc/ppp/peers/gprs)
    novjccomp # (from /etc/ppp/peers/gprs)
    ipcp-accept-local # (from /etc/ppp/peers/gprs)
    ipcp-accept-remote # (from /etc/ppp/peers/gprs)
    ipparam 3gppp # (from /etc/ppp/peers/gprs)
    noipdefault # (from /etc/ppp/peers/gprs)
    ipcp-max-failure 30 # (from /etc/ppp/peers/gprs)
    defaultroute # (from /etc/ppp/peers/gprs)
    usepeerdns # (from /etc/ppp/peers/gprs)
    noccp # (from /etc/ppp/peers/gprs)
    noipx # (from /etc/ppp/options)
    abort on (BUSY)
    abort on (NO CARRIER)
    abort on (NO DIALTONE)
    abort on (ERROR)
    abort on (NO ANSWER)
    timeout set to 30 seconds
    send (AT^M)
    expect (OK)
    ^M
    OK
    — got it

    send (ATE0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATI;+CSUB;+CSQ;+CPIN?;+COPS?;+CGREG?;&D2^M)
    expect (OK)
    ^M
    ^M
    Quectel^M
    EC25^M
    Revision: EC25AFAR02A06M4G^M
    ^M
    SubEdition: V02^M
    ^M
    +CSQ: 99,99^M
    ^M
    +CPIN: READY^M
    ^M
    +COPS: 0^M
    ^M
    +CGREG: 0,0^M
    ^M
    OK
    — got it

    send (AT+CGDCONT=1,”IP”,”fast.tmobile.com”,,0,0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATD*99#^M)
    expect (CONNECT)
    ^M
    ^M
    CONNECT
    — got it

    Script chat -s -v -f /etc/chatscripts/quectel-chat-connect -T fast.tmobile.com finished (pid 15671), status = 0x0
    Serial connection established.
    using channel 6
    Using interface ppp0
    Connect: ppp0 /dev/ttyUSB3
    sent [LCP ConfReq id=0x1 ]
    rcvd [LCP ConfReq id=0xf ]
    No auth is possible
    sent [LCP ConfRej id=0xf ]
    rcvd [LCP ConfAck id=0x1 ]
    rcvd [LCP ConfReq id=0x10 ]
    sent [LCP ConfAck id=0x10 ]
    sent [LCP EchoReq id=0x0 magic=0xd35bf255]
    sent [IPCP ConfReq id=0x1 ]
    rcvd [LCP DiscReq id=0x11 magic=0xd18a38b4]
    rcvd [LCP EchoRep id=0x0 magic=0xd18a38b4 d3 5b f2 55]
    Modem hangup
    Connection terminated.

      1. I tried with and without several times without any luck (i guess the log provided was from one of the times I tried without) but I tried again the next day and was able to get connected.

  5. A tip for people wanting to get pppd to start on boot…

    1. Edit /etc/ppp/peers/gprs and comment out “nodetach”.
    2. Create a /etc/network/interfaces.d/tunnel with contents…
    auto tunnel
    iface tunnel inet ppp
    provider gprs
    3. Reboot and ppp0 should be there if connection was successful. Logs will go to /var/log/messages

  6. Hi all,

    I got the exact same issue as Scott has, I’m using my T-mobile SIM card on EC25-A having the errors!! please HELP!!!

  7. Can anyone guide what could be the issue !! Many thanks

    [email protected]:/home/pi# sudo pppd call gprs
    pppd options in effect:
    debug # (from /etc/ppp/peers/gprs)
    nodetach # (from /etc/ppp/peers/gprs)
    dump # (from /etc/ppp/peers/gprs)
    noauth # (from /etc/ppp/peers/gprs)
    remotename 3gppp # (from /etc/ppp/peers/gprs)
    /dev/ttyUSB3 # (from /etc/ppp/peers/gprs)
    115200 # (from /etc/ppp/peers/gprs)
    lock # (from /etc/ppp/peers/gprs)
    connect chat -s -v -f /etc/chatscripts/quectel-chat-connect -T internet.ae # (from /etc/ppp/peers/gprs)
    disconnect chat -s -v -f /etc/chatscripts/quectel-chat-disconnect # (from /etc/ppp/peers/gprs)
    nocrtscts # (from /etc/ppp/peers/gprs)
    modem # (from /etc/ppp/peers/gprs)
    asyncmap 0 # (from /etc/ppp/options)
    lcp-echo-failure 4 # (from /etc/ppp/options)
    lcp-echo-interval 30 # (from /etc/ppp/options)
    hide-password # (from /etc/ppp/peers/gprs)
    novj # (from /etc/ppp/peers/gprs)
    novjccomp # (from /etc/ppp/peers/gprs)
    ipcp-accept-local # (from /etc/ppp/peers/gprs)
    ipcp-accept-remote # (from /etc/ppp/peers/gprs)
    ipparam 3gppp # (from /etc/ppp/peers/gprs)
    noipdefault # (from /etc/ppp/peers/gprs)
    ipcp-max-failure 30 # (from /etc/ppp/peers/gprs)
    defaultroute # (from /etc/ppp/peers/gprs)
    usepeerdns # (from /etc/ppp/peers/gprs)
    noccp # (from /etc/ppp/peers/gprs)
    noipx # (from /etc/ppp/options)
    abort on (BUSY)
    abort on (NO CARRIER)
    abort on (NO DIALTONE)
    abort on (ERROR)
    abort on (NO ANSWER)
    timeout set to 30 seconds
    send (AT^M)
    expect (OK)
    ^M
    OK
    — got it

    send (ATE0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATI;+CSUB;+CSQ;+CPIN?;+COPS?;+CGREG?;&D2^M)
    expect (OK)
    ^M
    ^M
    Quectel^M
    EC25^M
    Revision: EC25AUFAR02A02M4G^M
    ^M
    SubEdition: V09^M
    ^M
    +CSQ: 19,99^M
    ^M
    +CPIN: READY^M
    ^M
    +COPS: 0^M
    ^M
    +CGREG: 0,2^M
    ^M
    OK
    — got it

    send (AT+CGDCONT=1,”IP”,”internet.ae”,,0,0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATD*99#^M)
    expect (CONNECT)
    ^M
    ^M
    CONNECT
    — got it

    Script chat -s -v -f /etc/chatscripts/quectel-chat-connect -T internet.ae finished (pid 2142), status = 0x0
    Serial connection established.
    using channel 6
    Using interface ppp0
    Connect: ppp0 /dev/ttyUSB3
    sent [LCP ConfReq id=0x1 ]
    rcvd [LCP ConfReq id=0xf ]
    No auth is possible
    sent [LCP ConfRej id=0xf ]
    rcvd [LCP ConfAck id=0x1 ]
    rcvd [LCP ConfReq id=0x10 ]
    sent [LCP ConfAck id=0x10 ]
    sent [LCP EchoReq id=0x0 magic=0x7c7fd76a]
    sent [IPCP ConfReq id=0x1 ]
    rcvd [LCP DiscReq id=0x11 magic=0xd131bd5b]
    rcvd [LCP EchoRep id=0x0 magic=0xd131bd5b 7c 7f d7 6a]
    Modem hangup
    Connection terminated.
    [email protected]:/home/pi#

  8. Completely new to Raspberry Pi and Sixfab, so I’ll apologise for any stupid questions.

    when I execute: sudo pppd call gprs
    my connection is terminated
    I’m using my AT&T sim card from my iPad and using APN name ATT

    Thanks in advance,

    [email protected]:~ $ sudo pppd call gprs
    pppd options in effect:
    debug # (from /etc/ppp/peers/gprs)
    nodetach # (from /etc/ppp/peers/gprs)
    dump # (from /etc/ppp/peers/gprs)
    noauth # (from /etc/ppp/peers/gprs)
    remotename 3gppp # (from /etc/ppp/peers/gprs)
    /dev/ttyUSB3 # (from /etc/ppp/peers/gprs)
    115200 # (from /etc/ppp/peers/gprs)
    lock # (from /etc/ppp/peers/gprs)
    connect chat -s -v -f /etc/chatscripts/quectel-chat-connect -T ATT # (from /etc/ppp/peers/gprs)
    disconnect chat -s -v -f /etc/chatscripts/quectel-chat-disconnect # (from /etc/ppp/peers/gprs)
    nocrtscts # (from /etc/ppp/peers/gprs)
    modem # (from /etc/ppp/peers/gprs)
    asyncmap 0 # (from /etc/ppp/options)
    lcp-echo-failure 4 # (from /etc/ppp/options)
    lcp-echo-interval 30 # (from /etc/ppp/options)
    hide-password # (from /etc/ppp/peers/gprs)
    novj # (from /etc/ppp/peers/gprs)
    novjccomp # (from /etc/ppp/peers/gprs)
    ipcp-accept-local # (from /etc/ppp/peers/gprs)
    ipcp-accept-remote # (from /etc/ppp/peers/gprs)
    ipparam 3gppp # (from /etc/ppp/peers/gprs)
    noipdefault # (from /etc/ppp/peers/gprs)
    ipcp-max-failure 30 # (from /etc/ppp/peers/gprs)
    defaultroute # (from /etc/ppp/peers/gprs)
    usepeerdns # (from /etc/ppp/peers/gprs)
    noccp # (from /etc/ppp/peers/gprs)
    noipx # (from /etc/ppp/options)
    abort on (BUSY)
    abort on (NO CARRIER)
    abort on (NO DIALTONE)
    abort on (ERROR)
    abort on (NO ANSWER)
    timeout set to 30 seconds
    send (AT^M)
    expect (OK)
    ^M
    OK
    — got it

    send (ATE0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATI;+CSUB;+CSQ;+CPIN?;+COPS?;+CGREG?;&D2^M)
    expect (OK)
    ^M
    ^M
    Quectel^M
    EC25^M
    Revision: EC25AFAR02A06M4G^M
    ^M
    SubEdition: V02^M
    ^M
    +CSQ: 12,99^M
    ^M
    +CPIN: READY^M
    ^M
    +COPS: 0,0,”AT&T”,7^M
    ^M
    +CGREG: 0,1^M
    ^M
    OK
    — got it

    send (AT+CGDCONT=1,”IP”,”ATT”,,0,0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATD*99#^M)
    expect (CONNECT)
    ^M
    ^M
    CONNECT
    — got it

    Script chat -s -v -f /etc/chatscripts/quectel-chat-connect -T ATT finished (pid 7739), status = 0x0
    Serial connection established.
    using channel 11
    Using interface ppp0
    Connect: ppp0 /dev/ttyUSB3
    sent [LCP ConfReq id=0x1 ]
    rcvd [LCP ConfReq id=0x1e ]
    No auth is possible
    sent [LCP ConfRej id=0x1e ]
    rcvd [LCP ConfAck id=0x1 ]
    rcvd [LCP ConfReq id=0x1f ]
    sent [LCP ConfAck id=0x1f ]
    sent [LCP EchoReq id=0x0 magic=0x173bd578]
    sent [IPCP ConfReq id=0x1 ]
    rcvd [LCP DiscReq id=0x20 magic=0xee6239de]
    rcvd [LCP EchoRep id=0x0 magic=0xee6239de 17 3b d5 78]
    Modem hangup
    Connection terminated.

    1. this problem is caused by the operator, at previous comments Scott says : I tried with and without several times without any luck (i guess the log provided was from one of the times I tried without) but I tried again the next day and was able to get connected.

  9. Hey guys, Has anyone had success with maintaining reliable connection for extended time? I have put in a script on the lxterminal auto start to establish a connection every time the pi is restarted/shutdown as previous mentioned method did not work for me, this works well and every time I get a connection, the issue I am having is if it is left on for over 24hrs the ip address on the sim is updated and the connection drops out and does not reconnect and I have to either use ifdown ppp0 then ifup ppp0 or use pppd call gprs, Is there a way to auto reconnect let’s say if ppp0 drops out or pinging to google is lost etc these device will be located in remote areas and the connection needs to be fully automated, has anyone had any success? The same goes for if the sim runs out of data, it needs to keep attempting to reconnect so once the sim is loaded with data again it connects back online. Thanks

  10. connection work but ppp0 inet xxx.xxx.xxx.xxx show different ip to no-ip
    i get no remote access, port 80 dont work to the pi what i make wrong

  11. any idea why it’s nor working. I change the pin code

    [email protected]:~ $ sudo pppd call gprs
    pppd options in effect:
    debug # (from /etc/ppp/peers/gprs)
    nodetach # (from /etc/ppp/peers/gprs)
    dump # (from /etc/ppp/peers/gprs)
    noauth # (from /etc/ppp/peers/gprs)
    remotename 3gppp # (from /etc/ppp/peers/gprs)
    /dev/ttyUSB3 # (from /etc/ppp/peers/gprs)
    115200 # (from /etc/ppp/peers/gprs)
    lock # (from /etc/ppp/peers/gprs)
    connect chat -s -v -f /etc/chatscripts/quectel-chat-connect -T free # (from /etc/ppp/peers/gprs)
    disconnect chat -s -v -f /etc/chatscripts/quectel-chat-disconnect # (from /etc/ppp/peers/gprs)
    nocrtscts # (from /etc/ppp/peers/gprs)
    modem # (from /etc/ppp/peers/gprs)
    asyncmap 0 # (from /etc/ppp/options)
    lcp-echo-failure 4 # (from /etc/ppp/options)
    lcp-echo-interval 30 # (from /etc/ppp/options)
    hide-password # (from /etc/ppp/peers/gprs)
    novj # (from /etc/ppp/peers/gprs)
    novjccomp # (from /etc/ppp/peers/gprs)
    ipcp-accept-local # (from /etc/ppp/peers/gprs)
    ipcp-accept-remote # (from /etc/ppp/peers/gprs)
    ipparam 3gppp # (from /etc/ppp/peers/gprs)
    noipdefault # (from /etc/ppp/peers/gprs)
    ipcp-max-failure 30 # (from /etc/ppp/peers/gprs)
    defaultroute # (from /etc/ppp/peers/gprs)
    usepeerdns # (from /etc/ppp/peers/gprs)
    noccp # (from /etc/ppp/peers/gprs)
    noipx # (from /etc/ppp/options)
    abort on (BUSY)
    abort on (NO CARRIER)
    abort on (NO DIALTONE)
    abort on (ERROR)
    abort on (NO ANSWER)
    timeout set to 30 seconds
    send (AT^M)
    expect (OK)
    ^M
    OK
    — got it

    send (ATE0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATI;+CSUB;+CSQ;+CPIN?;+COPS?;+CGREG?;&D2^M)
    expect (OK)
    ^M
    ^M
    Quectel^M
    EC25^M
    Revision: EC25EFAR02A08M4G^M
    ^M
    SubEdition: V04^M
    ^M
    +CSQ: 14,99^M
    ^M
    +CPIN: READY^M
    ^M
    +COPS: 0,0,”Free Free”,0^M
    ^M
    +CGREG: 0,5^M
    ^M
    OK
    — got it

    send (AT+CPIN=1234^M)
    expect (OK)
    ^M
    ^M
    +CME ERROR
    — failed
    Failed (ERROR)
    Script chat -s -v -f /etc/chatscripts/quectel-chat-connect -T free finished (pid 1015), status = 0x7
    Connect script failed

    1. Hello Lando, you can use with UART but connection speed will be extreme low.
      If you want to use with uart and don’t need high speed internet connection, you can choose GSM/GPRS Shield.

  12. I managed to finish the tutorial when I got the antennas (I see the same when i do ifconfig ppp0 on a terminal), nevertheless, I can’t have any traffic. Any idea why? the sim card works properly when used in the phone.

  13. How can I delay the start of the networking in systemd until /dev/ttyUSB3 is detected? I find that occasionally, it is not up in time when attempting to start ppp at boot, causing the internet to not come up.

  14. I’m getting the following error after typing $ sudo pppd call gprs. Please tell me what’s the problem here. It’s for my project, so it’s kind of urgent. Thank you.

    [email protected]:~ $ sudo pppd call gprs
    pppd options in effect:
    debug # (from /etc/ppp/peers/gprs)
    nodetach # (from /etc/ppp/peers/gprs)
    dump # (from /etc/ppp/peers/gprs)
    noauth # (from /etc/ppp/peers/gprs)
    remotename 3gppp # (from /etc/ppp/peers/gprs)
    /dev/ttyUSB3 # (from /etc/ppp/peers/gprs)
    115200 # (from /etc/ppp/peers/gprs)
    lock # (from /etc/ppp/peers/gprs)
    connect chat -s -v -f /etc/chatscripts/quectel-chat-connect -T airtelgrprs.com # (from /etc/ppp/peers/gprs)
    disconnect chat -s -v -f /etc/chatscripts/quectel-chat-disconnect # (from /etc/ppp/peers/gprs)
    nocrtscts # (from /etc/ppp/peers/gprs)
    modem # (from /etc/ppp/peers/gprs)
    asyncmap 0 # (from /etc/ppp/options)
    lcp-echo-failure 4 # (from /etc/ppp/options)
    lcp-echo-interval 30 # (from /etc/ppp/options)
    hide-password # (from /etc/ppp/peers/gprs)
    novj # (from /etc/ppp/peers/gprs)
    novjccomp # (from /etc/ppp/peers/gprs)
    ipcp-accept-local # (from /etc/ppp/peers/gprs)
    ipcp-accept-remote # (from /etc/ppp/peers/gprs)
    ipparam 3gppp # (from /etc/ppp/peers/gprs)
    noipdefault # (from /etc/ppp/peers/gprs)
    ipcp-max-failure 30 # (from /etc/ppp/peers/gprs)
    defaultroute # (from /etc/ppp/peers/gprs)
    usepeerdns # (from /etc/ppp/peers/gprs)
    noccp # (from /etc/ppp/peers/gprs)
    noipx # (from /etc/ppp/options)
    abort on (BUSY)
    abort on (NO CARRIER)
    abort on (NO DIALTONE)
    abort on (ERROR)
    abort on (NO ANSWER)
    timeout set to 30 seconds
    send (AT^M)
    expect (OK)
    ^M
    OK
    — got it

    send (ATE0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATI;+CSUB;+CSQ;+CPIN?;+COPS?;+CGREG?;&D2^M)
    expect (OK)
    ^M
    ^M
    Quectel^M
    EC25^M
    Revision: EC25EFAR02A08M4G^M
    ^M
    SubEdition: V04^M
    ^M
    +CSQ: 17,99^M
    ^M
    +CME ERROR
    — failed
    Failed (ERROR)
    Script chat -s -v -f /etc/chatscripts/quectel-chat-connect -T airtelgrprs.com finished (pid 1386), status = 0x7
    Connect script failed

  15. I get a similar error as Vishal, shield connected to pi via pin and usb cable.

    $ sudo pppd call gprs
    pppd options in effect:
    debug # (from /etc/ppp/peers/gprs)
    nodetach # (from /etc/ppp/peers/gprs)
    dump # (from /etc/ppp/peers/gprs)
    noauth # (from /etc/ppp/peers/gprs)
    remotename 3gppp # (from /etc/ppp/peers/gprs)
    /dev/ttyUSB3 # (from /etc/ppp/peers/gprs)
    115200 # (from /etc/ppp/peers/gprs)
    lock # (from /etc/ppp/peers/gprs)
    connect chat -s -v -f /etc/chatscripts/quectel-chat-connect -T h2g2 # (from /etc/ppp/peers/gprs)
    disconnect chat -s -v -f /etc/chatscripts/quectel-chat-disconnect # (from /etc/ppp/peers/gprs)
    nocrtscts # (from /etc/ppp/peers/gprs)
    modem # (from /etc/ppp/peers/gprs)
    asyncmap 0 # (from /etc/ppp/options)
    lcp-echo-failure 4 # (from /etc/ppp/options)
    lcp-echo-interval 30 # (from /etc/ppp/options)
    hide-password # (from /etc/ppp/peers/gprs)
    novj # (from /etc/ppp/peers/gprs)
    novjccomp # (from /etc/ppp/peers/gprs)
    ipcp-accept-local # (from /etc/ppp/peers/gprs)
    ipcp-accept-remote # (from /etc/ppp/peers/gprs)
    ipparam 3gppp # (from /etc/ppp/peers/gprs)
    noipdefault # (from /etc/ppp/peers/gprs)
    ipcp-max-failure 30 # (from /etc/ppp/peers/gprs)
    defaultroute # (from /etc/ppp/peers/gprs)
    usepeerdns # (from /etc/ppp/peers/gprs)
    noccp # (from /etc/ppp/peers/gprs)
    noipx # (from /etc/ppp/options)
    abort on (BUSY)
    abort on (NO CARRIER)
    abort on (NO DIALTONE)
    abort on (ERROR)
    abort on (NO ANSWER)
    timeout set to 30 seconds
    send (AT^M)
    expect (OK)
    ^M
    OK
    — got it

    send (ATE0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATI;+CSUB;+CSQ;+CPIN?;+COPS?;+CGREG?;&D2^M)
    expect (OK)
    ^M
    ^M
    Quectel^M
    EC25^M
    Revision: EC25AFAR05A04M4G^M
    ^M
    SubEdition: V06^M
    ^M
    +CSQ: 17,99^M
    ^M
    +CME ERROR
    — failed
    Failed (ERROR)
    Script chat -s -v -f /etc/chatscripts/quectel-chat-connect -T h2g2 finished (pid 926), status = 0x7
    Connect script failed

  16. Hi.

    I get this errormessage when i try to connect with pppd call gprs.
    I have followed the tutorial step by step, but it doesn’t work.
    Anyone know why i gets this error?

    [email protected]:/etc/chatscripts# pppd call gprs
    pppd options in effect:
    debug # (from /etc/ppp/peers/gprs)
    nodetach # (from /etc/ppp/peers/gprs)
    dump # (from /etc/ppp/peers/gprs)
    noauth # (from /etc/ppp/peers/gprs)
    remotename 3gppp # (from /etc/ppp/peers/gprs)
    /dev/ttyUSB3 # (from /etc/ppp/peers/gprs)
    115200 # (from /etc/ppp/peers/gprs)
    lock # (from /etc/ppp/peers/gprs)
    connect chat -s -v -f /etc/chatscripts/quectel-chat-connect -T telenor # (from /etc/ppp/peers/gprs)
    disconnect chat -s -v -f /etc/chatscripts/quectel-chat-disconnect # (from /etc/ppp/peers/gprs)
    nocrtscts # (from /etc/ppp/peers/gprs)
    modem # (from /etc/ppp/peers/gprs)
    asyncmap 0 # (from /etc/ppp/options)
    lcp-echo-failure 4 # (from /etc/ppp/options)
    lcp-echo-interval 30 # (from /etc/ppp/options)
    hide-password # (from /etc/ppp/peers/gprs)
    novj # (from /etc/ppp/peers/gprs)
    novjccomp # (from /etc/ppp/peers/gprs)
    ipcp-accept-local # (from /etc/ppp/peers/gprs)
    ipcp-accept-remote # (from /etc/ppp/peers/gprs)
    ipparam 3gppp # (from /etc/ppp/peers/gprs)
    noipdefault # (from /etc/ppp/peers/gprs)
    ipcp-max-failure 30 # (from /etc/ppp/peers/gprs)
    defaultroute # (from /etc/ppp/peers/gprs)
    usepeerdns # (from /etc/ppp/peers/gprs)
    noccp # (from /etc/ppp/peers/gprs)
    noipx # (from /etc/ppp/options)
    abort on (BUSY)
    abort on (NO CARRIER)
    abort on (NO DIALTONE)
    abort on (ERROR)
    abort on (NO ANSWER)
    timeout set to 30 seconds
    send (AT^M)
    expect (OK)
    ^M
    OK
    — got it

    send (ATE0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATI;+CSUB;+CSQ;+COPS?;+CGREG?;&D2^M)
    expect (OK)
    ^M
    ^M
    Quectel^M
    EC25^M
    Revision: EC25EFAR02A08M4G^M
    ^M
    SubEdition: V04^M
    ^M
    +CSQ: 23,99^M
    ^M
    +COPS: 0^M
    ^M
    +CGREG: 0,2^M
    ^M
    OK
    — got it

    send (AT+CGDCONT=1,”IP”,”telenor”,,0,0^M)
    expect (OK)
    ^M
    ^M
    ERROR
    — failed
    Failed (ERROR)
    Script chat -s -v -f /etc/chatscripts/quectel-chat-connect -T telenor finished (pid 17643), status = 0x7
    Connect script failed

  17. If I am connected to the network with pppd, how can I get the signal strength for the board from linux userspace without killing the connection?

    Thanks

  18. I tryed serveral time to get a connection, but the ppp0 hangs up.
    I guess the reason is the singal qualitiy, isn’t it?

    —-

    pppd options in effect:
    debug # (from /etc/ppp/peers/gprs)
    nodetach # (from /etc/ppp/peers/gprs)
    dump # (from /etc/ppp/peers/gprs)
    noauth # (from /etc/ppp/peers/gprs)
    remotename 3gppp # (from /etc/ppp/peers/gprs)
    /dev/ttyUSB3 # (from /etc/ppp/peers/gprs)
    115200 # (from /etc/ppp/peers/gprs)
    lock # (from /etc/ppp/peers/gprs)
    connect chat -s -v -f /etc/chatscripts/quectel-chat-connect -T web.vodafone.de # (from /etc/ppp/peers/gprs)
    disconnect chat -s -v -f /etc/chatscripts/quectel-chat-disconnect # (from /etc/ppp/peers/gprs)
    nocrtscts # (from /etc/ppp/peers/gprs)
    modem # (from /etc/ppp/peers/gprs)
    asyncmap 0 # (from /etc/ppp/options)
    lcp-echo-failure 4 # (from /etc/ppp/options)
    lcp-echo-interval 30 # (from /etc/ppp/options)
    hide-password # (from /etc/ppp/peers/gprs)
    novj # (from /etc/ppp/peers/gprs)
    novjccomp # (from /etc/ppp/peers/gprs)
    ipcp-accept-local # (from /etc/ppp/peers/gprs)
    ipcp-accept-remote # (from /etc/ppp/peers/gprs)
    ipparam 3gppp # (from /etc/ppp/peers/gprs)
    noipdefault # (from /etc/ppp/peers/gprs)
    ipcp-max-failure 30 # (from /etc/ppp/peers/gprs)
    defaultroute # (from /etc/ppp/peers/gprs)
    usepeerdns # (from /etc/ppp/peers/gprs)
    noccp # (from /etc/ppp/peers/gprs)
    noipx # (from /etc/ppp/options)
    abort on (BUSY)
    abort on (NO CARRIER)
    abort on (NO DIALTONE)
    abort on (ERROR)
    abort on (NO ANSWER)
    timeout set to 30 seconds
    send (AT^M)
    expect (OK)
    AT^M^M
    OK
    — got it

    send (ATE0^M)
    expect (OK)
    ^M
    ATE0^M^M
    OK
    — got it

    send (ATI;+CSUB;+CSQ;+COPS?;+CGREG?;&D2^M)
    expect (OK)
    ^M
    ^M
    Quectel^M
    EC25^M
    Revision: EC25EFAR02A08M4G^M
    ^M
    SubEdition: V04^M
    ^M
    +CSQ: 4,99^M
    ^M
    +COPS: 0^M
    ^M
    +CGREG: 0,2^M
    ^M
    OK
    — got it

    send (AT+CPIN=1234^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (AT+CGDCONT=1,”IP”,”web.vodafone.de”,,0,0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATD*99#^M)
    expect (CONNECT)
    ^M
    ^M
    CONNECT
    — got it

    Script chat -s -v -f /etc/chatscripts/quectel-chat-connect -T web.vodafone.de finished (pid 871), status = 0x0
    Serial connection established.
    using channel 1
    Using interface ppp0
    Connect: ppp0 /dev/ttyUSB3
    sent [LCP ConfReq id=0x1 ]
    rcvd [LCP ConfReq id=0x0 ]
    No auth is possible
    sent [LCP ConfRej id=0x0 ]
    rcvd [LCP ConfAck id=0x1 ]
    rcvd [LCP ConfReq id=0x1 ]
    sent [LCP ConfAck id=0x1 ]
    sent [LCP EchoReq id=0x0 magic=0x7efbe5e0]
    sent [IPCP ConfReq id=0x1 ]
    rcvd [LCP DiscReq id=0x2 magic=0xd24df012]
    rcvd [LCP EchoRep id=0x0 magic=0xd24df012 7e fb e5 e0]
    Modem hangup
    Connection terminated.
    —-

    which type of connector is used for antennas? Which antennas I can use?
    My signal say, +CSQ: 4,99 –> means I’ve to connect antennas

    On an other website (http://m2msupport.net/m2msupport/signal-quality/) I found the following table:

    The RSSI values returned by the CSQ command is mapped to dBm value in the table below. In the above example, rssi value of 25 corresponds to -63 dBm which implies an excellent signal condition.
    Value RSSI dBm Condition
    2 -109 Marginal
    3 -107 Marginal
    4 -105 Marginal
    5 -103 Marginal
    6 -101 Marginal
    7 -99 Marginal
    8 -97 Marginal
    9 -95 Marginal
    10 -93 OK
    11 -91 OK
    12 -89 OK
    13 -87 OK
    14 -85 OK
    15 -83 Good
    16 -81 Good
    17 -79 Good
    18 -77 Good
    19 -75 Good
    20 -73 Excellent
    21 -71 Excellent
    22 -69 Excellent
    23 -67 Excellent
    24 -65 Excellent
    25 -63 Excellent
    26 -61 Excellent
    27 -59 Excellent
    28 -57 Excellent
    29 -55 Excellent
    30 -53 Excellent

    —-

    An other question. How can I solve the problem with the PIN. Normaly the PIN is used for the first startup. But when I start the “pppd call gprs” I sent the AT+CPIN command every time.

    after the scond start i got the following Error:

    —-
    send (AT+CPIN=1234^M)
    expect (OK)
    ^M
    ^M
    +CME ERROR
    — failed
    Failed (ERROR)
    Script chat -s -v -f /etc/chatscripts/quectel-chat-connect -T web.vodafone.de finished (pid 991), status = 0x7
    Connect script failed

    —-

    thanks for support

    1. Yes, signal quality 4 is very low.

      Secondly, Please modify /etc/chatscripts/quectel-chat-connect file like following lines

      ABORT \”BUSY\”
      ABORT \”NO CARRIER\”
      ABORT \”NO DIALTONE\”
      ABORT \”ERROR\”
      ABORT \”NO ANSWER\”
      TIMEOUT 30
      \”\” AT
      OK ATE0
      OK AT+CPIN=1234
      OK ATI;+CSUB;+CSQ;+COPS?;+CGREG?;&D2
      OK AT+CGDCONT=1,\”IP\”,\”\\T\”,,0,0
      OK ATD*99#
      CONNECT

  19. Is the command to call 4G/LTE speed using following command?
    $ sudo pppd call gprs&

    my results:
    [email protected]:~ $ sudo pppd call gprs&
    [1] 3436
    [email protected]:~ $ pppd options in effect:
    debug # (from /etc/ppp/peers/gprs)
    nodetach # (from /etc/ppp/peers/gprs)
    dump # (from /etc/ppp/peers/gprs)
    noauth # (from /etc/ppp/peers/gprs)
    remotename 3gppp # (from /etc/ppp/peers/gprs)
    /dev/ttyUSB3 # (from /etc/ppp/peers/gprs)
    115200 # (from /etc/ppp/peers/gprs)
    lock # (from /etc/ppp/peers/gprs)
    connect chat -s -v -f /etc/chatscripts/quectel-chat-connect -T TELKOMSEL # (from /etc/ppp/peers/gprs)
    disconnect chat -s -v -f /etc/chatscripts/quectel-chat-disconnect # (from /etc/ppp/peers/gprs)
    nocrtscts # (from /etc/ppp/peers/gprs)
    modem # (from /etc/ppp/peers/gprs)
    asyncmap 0 # (from /etc/ppp/options)
    lcp-echo-failure 4 # (from /etc/ppp/options)
    lcp-echo-interval 30 # (from /etc/ppp/options)
    hide-password # (from /etc/ppp/peers/gprs)
    novj # (from /etc/ppp/peers/gprs)
    novjccomp # (from /etc/ppp/peers/gprs)
    ipcp-accept-local # (from /etc/ppp/peers/gprs)
    ipcp-accept-remote # (from /etc/ppp/peers/gprs)
    ipparam 3gppp # (from /etc/ppp/peers/gprs)
    noipdefault # (from /etc/ppp/peers/gprs)
    ipcp-max-failure 30 # (from /etc/ppp/peers/gprs)
    defaultroute # (from /etc/ppp/peers/gprs)
    usepeerdns # (from /etc/ppp/peers/gprs)
    noccp # (from /etc/ppp/peers/gprs)
    noipx # (from /etc/ppp/options)
    Removed stale lock on ttyUSB3 (pid 1913)
    abort on (BUSY)
    abort on (NO CARRIER)
    abort on (NO DIALTONE)
    abort on (ERROR)
    abort on (NO ANSWER)
    timeout set to 30 seconds
    send (AT^M)
    expect (OK)
    ^M
    OK
    — got it

    send (ATE0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATI;+CSUB;+CSQ;+COPS?;+CGREG?;&D2^M)
    expect (OK)
    ^M
    ^M
    Quectel^M
    EC25^M
    Revision: EC25EFAR02A08M4G^M
    ^M
    SubEdition: V04^M
    ^M
    +CSQ: 29,99^M
    ^M
    +COPS: 0,0,”IND TELKOMSEL”,7^M
    ^M
    +CGREG: 0,1^M
    ^M
    OK
    — got it

    send (AT+CGDCONT=1,”IP”,”TELKOMSEL”,,0,0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATD*99#^M)
    expect (CONNECT)
    ^M
    ^M
    CONNECT
    — got it

    Script chat -s -v -f /etc/chatscripts/quectel-chat-connect -T TELKOMSEL finished (pid 3441), status = 0x0
    Serial connection established.
    using channel 2
    Using interface ppp0
    Connect: ppp0 /dev/ttyUSB3
    sent [LCP ConfReq id=0x1 ]
    rcvd [LCP ConfReq id=0x3 ]
    No auth is possible
    sent [LCP ConfRej id=0x3 ]
    rcvd [LCP ConfAck id=0x1 ]
    rcvd [LCP ConfReq id=0x4 ]
    sent [LCP ConfAck id=0x4 ]
    sent [LCP EchoReq id=0x0 magic=0xef88fdc5]
    sent [IPCP ConfReq id=0x1 ]
    rcvd [LCP DiscReq id=0x5 magic=0x1ca25bf9]
    rcvd [LCP EchoRep id=0x0 magic=0x1ca25bf9 ef 88 fd c5]
    rcvd [IPCP ConfReq id=0x2]
    sent [IPCP ConfNak id=0x2 ]
    rcvd [IPCP ConfRej id=0x1 ]
    sent [IPCP ConfReq id=0x2 ]
    rcvd [IPCP ConfReq id=0x3]
    sent [IPCP ConfAck id=0x3]
    rcvd [IPCP ConfNak id=0x2 ]
    sent [IPCP ConfReq id=0x3 ]
    rcvd [IPCP ConfAck id=0x3 ]
    Could not determine remote IP address: defaulting to 10.64.64.64
    not replacing default route to wlan0 [10.20.16.1]
    local IP address 10.130.219.24
    remote IP address 10.64.64.64
    primary DNS address 192.168.39.28
    Script /etc/ppp/ip-up started (pid 3450)
    Script /etc/ppp/ip-up finished (pid 3450), status = 0x0

    But when I disconnect from wifi. I think my pi cannot open a webpage yet. Connection time out.

    Would you mind to correct to call TELKOMSEL (Indonesia gsm provider) setting?

    thank you very much in advance.

  20. I am correcting error : “Could not determine remote IP address: defaulting to 10.64.64.64″ by edit
    /etc/resolv.conf and put
    nameserver 8.8.8.8

    but now I get error:
    Modem hangup
    Connection terminated.

    please help. thanks.

    my last status as folow:
    [email protected]:~ $ pppd options in effect:
    debug # (from /etc/ppp/peers/gprs)
    nodetach # (from /etc/ppp/peers/gprs)
    dump # (from /etc/ppp/peers/gprs)
    noauth # (from /etc/ppp/peers/gprs)
    remotename 3gppp # (from /etc/ppp/peers/gprs)
    /dev/ttyUSB3 # (from /etc/ppp/peers/gprs)
    115200 # (from /etc/ppp/peers/gprs)
    lock # (from /etc/ppp/peers/gprs)
    connect chat -s -v -f /etc/chatscripts/quectel-chat-connect -T TELKOMSEL # (from /etc/ppp/peers/gprs)
    disconnect chat -s -v -f /etc/chatscripts/quectel-chat-disconnect # (from /etc/ppp/peers/gprs)
    nocrtscts # (from /etc/ppp/peers/gprs)
    modem # (from /etc/ppp/peers/gprs)
    asyncmap 0 # (from /etc/ppp/options)
    lcp-echo-failure 4 # (from /etc/ppp/options)
    lcp-echo-interval 30 # (from /etc/ppp/options)
    hide-password # (from /etc/ppp/peers/gprs)
    novj # (from /etc/ppp/peers/gprs)
    novjccomp # (from /etc/ppp/peers/gprs)
    ipcp-accept-local # (from /etc/ppp/peers/gprs)
    ipcp-accept-remote # (from /etc/ppp/peers/gprs)
    ipparam 3gppp # (from /etc/ppp/peers/gprs)
    noipdefault # (from /etc/ppp/peers/gprs)
    ipcp-max-failure 30 # (from /etc/ppp/peers/gprs)
    defaultroute # (from /etc/ppp/peers/gprs)
    usepeerdns # (from /etc/ppp/peers/gprs)
    noccp # (from /etc/ppp/peers/gprs)
    noipx # (from /etc/ppp/options)
    abort on (BUSY)
    abort on (NO CARRIER)
    abort on (NO DIALTONE)
    abort on (ERROR)
    abort on (NO ANSWER)
    timeout set to 30 seconds
    send (AT^M)
    expect (OK)
    ^M
    OK
    — got it

    send (ATE0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATI;+CSUB;+CSQ;+COPS?;+CGREG?;&D2^M)
    expect (OK)
    ^M
    ^M
    Quectel^M
    EC25^M
    Revision: EC25EFAR02A08M4G^M
    ^M
    SubEdition: V04^M
    ^M
    +CSQ: 14,99^M
    ^M
    +COPS: 0,0,”TELKOMSEL”,2^M
    ^M
    +CGREG: 0,2^M
    ^M
    OK
    — got it

    send (AT+CGDCONT=1,”IP”,”TELKOMSEL”,,0,0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATD*99#^M)
    expect (CONNECT)
    ^M
    ^M
    CONNECT
    — got it

    Script chat -s -v -f /etc/chatscripts/quectel-chat-connect -T TELKOMSEL finished (pid 1298), status = 0x0
    Serial connection established.
    using channel 1
    Using interface ppp0
    Connect: ppp0 /dev/ttyUSB3
    sent [LCP ConfReq id=0x1 ]
    rcvd [LCP ConfReq id=0x3 ]
    No auth is possible
    sent [LCP ConfRej id=0x3 ]
    rcvd [LCP ConfAck id=0x1 ]
    rcvd [LCP ConfReq id=0x4 ]
    sent [LCP ConfAck id=0x4 ]
    sent [LCP EchoReq id=0x0 magic=0xa152cbcd]
    sent [IPCP ConfReq id=0x1 ]
    rcvd [LCP DiscReq id=0x5 magic=0x1ce95382]
    rcvd [LCP EchoRep id=0x0 magic=0x1ce95382 a1 52 cb cd]
    Modem hangup
    Connection terminated.

    [1]+ Exit 16 sudo pppd call gprs

  21. i try to use internet or Internet
    $ sudo ./ppp-creator.sh internet ttyUSB3
    then
    $ sudo pppd call gprs&
    Still no luck. Modem hangup.

    $ tail /var/log/messages as follow:
    [email protected]:~ $ tail /var/log/messages
    Apr 19 16:40:19 xtal pppd[1921]: Serial connection established.
    Apr 19 16:40:19 xtal pppd[1921]: Using interface ppp0
    Apr 19 16:40:19 xtal pppd[1921]: Connect: ppp0 /dev/ttyUSB3
    Apr 19 16:40:19 xtal NetworkManager[378]: [1524130819.4039] manager: (ppp0): new Generic device (/org/freedesktop/NetworkManager/Devices/8)
    Apr 19 16:40:19 xtal NetworkManager[378]: [1524130819.4307] devices added (path: /sys/devices/virtual/net/ppp0, iface: ppp0)
    Apr 19 16:40:19 xtal NetworkManager[378]: [1524130819.4308] device added (path: /sys/devices/virtual/net/ppp0, iface: ppp0): no ifupdown configuration found.
    Apr 19 16:40:20 xtal pppd[1921]: Modem hangup
    Apr 19 16:40:20 xtal pppd[1921]: Connection terminated.
    Apr 19 16:40:20 xtal NetworkManager[378]: [1524130820.4684] devices removed (path: /sys/devices/virtual/net/ppp0, iface: ppp0)
    Apr 19 16:40:21 xtal pppd[1921]: Exit.

    —–
    [email protected]:~ $ pppd options in effect:
    debug # (from /etc/ppp/peers/gprs)
    nodetach # (from /etc/ppp/peers/gprs)
    dump # (from /etc/ppp/peers/gprs)
    noauth # (from /etc/ppp/peers/gprs)
    remotename 3gppp # (from /etc/ppp/peers/gprs)
    /dev/ttyUSB3 # (from /etc/ppp/peers/gprs)
    115200 # (from /etc/ppp/peers/gprs)
    lock # (from /etc/ppp/peers/gprs)
    connect chat -s -v -f /etc/chatscripts/quectel-chat-connect -T internet # (from /etc/ppp/peers/gprs)
    disconnect chat -s -v -f /etc/chatscripts/quectel-chat-disconnect # (from /etc/ppp/peers/gprs)
    nocrtscts # (from /etc/ppp/peers/gprs)
    modem # (from /etc/ppp/peers/gprs)
    asyncmap 0 # (from /etc/ppp/options)
    lcp-echo-failure 4 # (from /etc/ppp/options)
    lcp-echo-interval 30 # (from /etc/ppp/options)
    hide-password # (from /etc/ppp/peers/gprs)
    novj # (from /etc/ppp/peers/gprs)
    novjccomp # (from /etc/ppp/peers/gprs)
    ipcp-accept-local # (from /etc/ppp/peers/gprs)
    ipcp-accept-remote # (from /etc/ppp/peers/gprs)
    ipparam 3gppp # (from /etc/ppp/peers/gprs)
    noipdefault # (from /etc/ppp/peers/gprs)
    ipcp-max-failure 30 # (from /etc/ppp/peers/gprs)
    defaultroute # (from /etc/ppp/peers/gprs)
    usepeerdns # (from /etc/ppp/peers/gprs)
    noccp # (from /etc/ppp/peers/gprs)
    noipx # (from /etc/ppp/options)
    abort on (BUSY)
    abort on (NO CARRIER)
    abort on (NO DIALTONE)
    abort on (ERROR)
    abort on (NO ANSWER)
    timeout set to 30 seconds
    send (AT^M)
    expect (OK)
    ^M
    OK
    — got it

    send (ATE0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATI;+CSUB;+CSQ;+COPS?;+CGREG?;&D2^M)
    expect (OK)
    ^M
    ^M
    Quectel^M
    EC25^M
    Revision: EC25EFAR02A08M4G^M
    ^M
    SubEdition: V04^M
    ^M
    +CSQ: 14,99^M
    ^M
    +COPS: 0,0,”TELKOMSEL”,2^M
    ^M
    +CGREG: 0,2^M
    ^M
    OK
    — got it

    send (AT+CGDCONT=1,”IP”,”internet”,,0,0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATD*99#^M)
    expect (CONNECT)
    ^M
    ^M
    CONNECT
    — got it

    Script chat -s -v -f /etc/chatscripts/quectel-chat-connect -T internet finished (pid 1922), status = 0x0
    Serial connection established.
    using channel 3
    Using interface ppp0
    Connect: ppp0 /dev/ttyUSB3
    sent [LCP ConfReq id=0x1 ]
    rcvd [LCP ConfReq id=0x9 ]
    No auth is possible
    sent [LCP ConfRej id=0x9 ]
    rcvd [LCP ConfAck id=0x1 ]
    rcvd [LCP ConfReq id=0xa ]
    sent [LCP ConfAck id=0xa ]
    sent [LCP EchoReq id=0x0 magic=0xe1b5815b]
    sent [IPCP ConfReq id=0x1 ]
    rcvd [LCP DiscReq id=0xb magic=0x1d599f06]
    rcvd [LCP EchoRep id=0x0 magic=0x1d599f06 e1 b5 81 5b]
    Modem hangup
    Connection terminated.

    [1]+ Exit 16 sudo pppd call gprs

  22. is there any way that we could issue at command to the ttyUSB3 directly?
    such as
    AT
    ATE0
    ATI;+CSUB;+CSQ;+COPS?;+CGREG?;&D2
    AT+CGDCONT=1,”IP”,”internet”,,0,0
    ATD*99#

    btw, why i still got
    +COPS: 0,0,”TELKOMSEL”,2
    after change into internet or Internet using this command $ sudo ./ppp-creator.sh internet ttyUSB3 ?

    Thanks.

  23. Can I use wvdial? its configuration at /etc/wvdial.conf
    What I found from internet Telkomsel settings are as follow:
    [Dialer telkomsel]
    Init1 = ATZ
    Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
    Init3 = at +cgdcont = 4, “ip”, “telkomsel”
    Modem Type = USB Modem
    Baud = 460800
    New PPPD = yes
    Modem = / d ev / t tyACM0
    ISDN = 0
    Phone = *99***4#
    Password = “wap123”
    Username = “wap”

    Will EC25-E connect as wap speed or 4G/LTE speed?

    1. [email protected]:~ $ wvdial
      –> WvDial: Internet dialer version 1.61
      –> Cannot set information for serial port.
      –> Initializing modem.
      –> Sending: ATZ
      ATZ
      OK
      –> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
      ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
      OK
      –> Sending: AT+CGDCONT=4,”IP”, “TELKOMSEL”
      AT+CGDCONT=4,”IP”, “TELKOMSEL”
      OK
      –> Modem initialized.
      –> Sending: ATDT*99***1#
      –> Waiting for carrier.
      ATDT*99***1#
      CONNECT 150000000
      –> Carrier detected. Waiting for prompt.
      –> Don’t know what to do! Starting pppd and hoping for the best.
      –> Unable to run /usr/sbin/pppd.
      –> Check permissions, or specify a “PPPD Path” option in wvdial.conf.
      –> Don’t know what to do! Starting pppd and hoping for the best.
      –> Unable to run /usr/sbin/pppd.
      (same error repeats here). I press ^C to break the process.

    2. Now I try to use sudo wvdial

      [email protected]:~ $ sudo wvdial
      –> WvDial: Internet dialer version 1.61
      –> Initializing modem.
      –> Sending: ATZ
      ATZ
      OK
      –> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
      ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
      OK
      –> Sending: AT+CGDCONT=4,”IP”, “TELKOMSEL”
      AT+CGDCONT=4,”IP”, “TELKOMSEL”
      OK
      –> Modem initialized.
      –> Sending: ATDT*99***1#
      –> Waiting for carrier.
      ATDT*99***1#
      CONNECT 150000000
      –> Carrier detected. Waiting for prompt.
      –> Don’t know what to do! Starting pppd and hoping for the best.
      –> Starting pppd at Sat Apr 21 12:25:25 2018
      –> Pid of pppd: 3266
      –> Using interface ppp0
      –> pppd: �W�[01]�U�[01]�W�[01]
      –> pppd: �W�[01]�U�[01]�W�[01]
      –> pppd: �W�[01]�U�[01]�W�[01]
      –> pppd: �W�[01]�U�[01]�W�[01]
      –> pppd: �W�[01]�U�[01]�W�[01]
      –> pppd: �W�[01]�U�[01]�W�[01]
      –> Disconnecting at Sat Apr 21 12:25:25 2018
      –> The PPP daemon has died: A modem hung up the phone (exit code = 16)
      –> man pppd explains pppd error codes in more detail.
      –> Try again and look into /var/log/messages and the wvdial and pppd man pages for more information.
      –> Auto Reconnect will be attempted in 5 seconds

      EXIT STATUS
      16 The link was terminated by the modem hanging up.

      Is it because the modem need more ampere?
      In the other website, someone said: case is solved when only 1-2 devices plugged into the raspberry pi 3. In my case, I use all usb ports.

      I put max_usb_current=1 into /boot/config.txt

        1. Dear Metin,

          Yes I connect short usb cable that come with the shield.
          My last error said: there is no sim card. The sim card removed and inserted again.
          I check my telkomsel sim card at my phone, it still have 2,004 MB internet quota and Rp. 10.000,-.
          The erorr still the same.

          [email protected]:~ $ mmcli -m 0

          /org/freedesktop/ModemManager1/Modem/0 (device id ‘b522d02f7a0cb299b79b4ab55f1f6278b53c2287’)
          ————————-
          Hardware | manufacturer: ‘QUALCOMM INCORPORATED’
          | model: ‘QUECTEL Mobile Broadband Module’
          | revision: ‘EC25EFAR02A08M4G’
          | supported: ‘gsm-umts
          | lte
          | gsm-umts, lte’
          | current: ‘gsm-umts, lte’
          | equipment id: ‘861107035903922’
          ————————-
          System | device: ‘/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3’
          | drivers: ‘option1, qmi_wwan’
          | plugin: ‘Generic’
          | primary port: ‘cdc-wdm0’
          | ports: ‘ttyUSB0 (qcdm), ttyUSB2 (at), cdc-wdm0 (qmi), wwan0 (net), ttyUSB3 (at)’
          ————————-
          Numbers | own : ‘unknown’
          ————————-
          Status | lock: ‘unknown’
          | unlock retries: ‘unknown’
          | state: ‘failed’
          | failed reason: ‘sim-missing’
          | power state: ‘unknown’
          | access tech: ‘unknown’
          | signal quality: ‘0’ (cached)
          ————————-
          Modes | supported: ‘allowed: 2g, 3g, 4g; preferred: none’
          | current: ‘allowed: any; preferred: none’
          ————————-
          Bands | supported: ‘unknown’
          | current: ‘unknown’
          ————————-
          IP | supported: ‘ipv4, ipv6, ipv4v6’
          ————————-
          SIM | path: ‘none’

          ————————-
          Bearers | paths: ‘none’

          Any solution for this?

          Thank you very much in advance.

          Warmest Regards,
          Suryadi

  24. Shuting down the raspberry with the shield then unplug and replug power cord help a lot about script error or CM error .

  25. My carrier is AT&T. I tried using ATT as my APN. Below is what I got from running:

    sudo pppd call gprs

    Any advice?

    ********************************************************
    pppd options in effect:
    debug # (from /etc/ppp/peers/gprs)
    nodetach # (from /etc/ppp/peers/gprs)
    dump # (from /etc/ppp/peers/gprs)
    noauth # (from /etc/ppp/peers/gprs)
    remotename 3gppp # (from /etc/ppp/peers/gprs)
    /dev/ttyUSB3 # (from /etc/ppp/peers/gprs)
    115200 # (from /etc/ppp/peers/gprs)
    lock # (from /etc/ppp/peers/gprs)
    connect chat -s -v -f /etc/chatscripts/quectel-chat-connect -T ATT # (from /etc/ppp/peers/gprs)
    disconnect chat -s -v -f /etc/chatscripts/quectel-chat-disconnect # (from /etc/ppp/peers/gprs)
    nocrtscts # (from /etc/ppp/peers/gprs)
    modem # (from /etc/ppp/peers/gprs)
    asyncmap 0 # (from /etc/ppp/options)
    lcp-echo-failure 4 # (from /etc/ppp/options)
    lcp-echo-interval 30 # (from /etc/ppp/options)
    hide-password # (from /etc/ppp/peers/gprs)
    novj # (from /etc/ppp/peers/gprs)
    novjccomp # (from /etc/ppp/peers/gprs)
    ipcp-accept-local # (from /etc/ppp/peers/gprs)
    ipcp-accept-remote # (from /etc/ppp/peers/gprs)
    ipparam 3gppp # (from /etc/ppp/peers/gprs)
    noipdefault # (from /etc/ppp/peers/gprs)
    ipcp-max-failure 30 # (from /etc/ppp/peers/gprs)
    defaultroute # (from /etc/ppp/peers/gprs)
    usepeerdns # (from /etc/ppp/peers/gprs)
    noccp # (from /etc/ppp/peers/gprs)
    noipx # (from /etc/ppp/options)
    abort on (BUSY)
    abort on (NO CARRIER)
    abort on (NO DIALTONE)
    abort on (ERROR)
    abort on (NO ANSWER)
    timeout set to 30 seconds
    send (AT^M)
    expect (OK)
    ^M
    OK
    — got it

    send (ATE0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATI;+CSUB;+CSQ;+COPS?;+CGREG?;&D2^M)
    expect (OK)
    ^M
    ^M
    Quectel^M
    EC25^M
    Revision: EC25AFAR05A04M4G^M
    ^M
    SubEdition: V06^M
    ^M
    +CSQ: 9,99^M
    ^M
    +COPS: 0,0,”AT&T”,2^M
    ^M
    +CGREG: 0,1^M
    ^M
    OK
    — got it

    send (AT+CGDCONT=1,”IP”,”ATT”,,0,0^M)
    expect (OK)
    ^M
    ^M
    OK
    — got it

    send (ATD*99#^M)
    expect (CONNECT)
    ^M
    ^M
    CONNECT
    — got it

    Script chat -s -v -f /etc/chatscripts/quectel-chat-connect -T ATT finished (pid 1985), status = 0x0
    Serial connection established.
    using channel 6
    Using interface ppp0
    Connect: ppp0 /dev/ttyUSB3
    sent [LCP ConfReq id=0x1 ]
    rcvd [LCP ConfReq id=0xf ]
    No auth is possible
    sent [LCP ConfRej id=0xf ]
    rcvd [LCP ConfAck id=0x1 ]
    rcvd [LCP ConfReq id=0x10 ]
    sent [LCP ConfAck id=0x10 ]
    sent [LCP EchoReq id=0x0 magic=0x607d1f76]
    sent [IPCP ConfReq id=0x1 ]
    rcvd [LCP DiscReq id=0x11 magic=0x9af78c6b]
    rcvd [LCP EchoRep id=0x0 magic=0x9af78c6b 60 7d 1f 76]
    rcvd [IPCP ConfNak id=0x1 ]
    sent [IPCP ConfReq id=0x2 ]
    Modem hangup
    Connection terminated.

    1. I figured it out. With ATT, I need to use the APN “broadband”. I also needed to put ppp0 at top priority with:

      sudo route add default ppp0

      Now everything works!

Leave a Reply

Your email address will not be published. Required fields are marked *