Can't connect with AT&T PPP?

Hey all,

Recently received the cellular hat and i’m having some issues getting up and running. I’m using an AT&T SIM, and have the following output from pon below. I also tried debugging in minicom, and i’m able to search for networks, but unable to connect due to +CME ERROR: 30 (which would indicate that there’s no network service??). I tested the SIM in a phone right next to the device and was able to receive several bars of signal. The wwan0 interface appears to have a 169.254.x.x IP, indicating that indeed the device cannot see the network.

Any suggestions on how to further debug this? I’m using the PPP setup from the sixfab docs.

Thanks in advance for any suggestions :pray:t2:

pppd options in effect:
debug		# (from /etc/ppp/peers/provider)
updetach		# (from /etc/ppp/peers/provider)
dump		# (from /etc/ppp/peers/provider)
noauth		# (from /etc/ppp/peers/provider)
remotename 3gppp		# (from /etc/ppp/peers/provider)
/dev/ttyUSB3		# (from /etc/ppp/peers/provider)
115200		# (from /etc/ppp/peers/provider)
lock		# (from /etc/ppp/peers/provider)
connect chat -s -v -f /etc/chatscripts/chat-connect -T NXTGENPHONE		# (from /etc/ppp/peers/provider)
disconnect chat -s -v -f /etc/chatscripts/chat-disconnect		# (from /etc/ppp/peers/provider)
nocrtscts		# (from /etc/ppp/peers/provider)
modem		# (from /etc/ppp/peers/provider)
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/provider)
novj		# (from /etc/ppp/peers/provider)
novjccomp		# (from /etc/ppp/peers/provider)
ipcp-accept-local		# (from /etc/ppp/peers/provider)
ipcp-accept-remote		# (from /etc/ppp/peers/provider)
ipparam 3gppp		# (from /etc/ppp/peers/provider)
noipdefault		# (from /etc/ppp/peers/provider)
ipcp-max-failure 30		# (from /etc/ppp/peers/provider)
defaultroute		# (from /etc/ppp/peers/provider)
usepeerdns		# (from /etc/ppp/peers/provider)
noccp		# (from /etc/ppp/peers/provider)
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)
 -- got it

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

send (AT+QCFG="band",F,400A0E189F,A0E189F,1^M)
expect (OK)
 -- got it

send (AT+QCFG="nwscanseq",02,1^M)
expect (OK)
 -- got it

send (AT+QCFG="nwscanmode",3,1^M)
expect (OK)
 -- got it

send (AT+QCFG="iotopmode",0,1^M)
expect (OK)
 -- got it

send (ATI;+CSUB;+CSQ;+COPS?;+CGREG?;&D2^M)
expect (OK)
Revision: BG96MAR02A07M1G^M
SubEdition: V08^M
+CSQ: 31,99^M
+COPS: 0^M
+CGREG: 0,4^M
 -- got it

expect (OK)
 -- got it

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

Script chat -s -v -f /etc/chatscripts/chat-connect -T NXTGENPHONE finished (pid 805), status = 0x0
Serial connection established.
using channel 5
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB3
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x79568da0> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0xc <asyncmap 0x0> <auth chap MD5> <magic 0xd0874bed> <pcomp> <accomp>]
No auth is possible
sent [LCP ConfRej id=0xc <auth chap MD5>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x79568da0> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0xd <asyncmap 0x0> <magic 0xd0874bed> <pcomp> <accomp>]
sent [LCP ConfAck id=0xd <asyncmap 0x0> <magic 0xd0874bed> <pcomp> <accomp>]
sent [LCP EchoReq id=0x0 magic=0x79568da0]
sent [IPCP ConfReq id=0x1 <addr> <ms-dns1> <ms-dns2>]
rcvd [LCP DiscReq id=0xe magic=0xd0874bed]
rcvd [LCP EchoRep id=0x0 magic=0xd0874bed 79 56 8d a0]
Modem hangup
Connection terminated.

Hi @iceclimber,
First, try to use the following AT command:


Secondly, remove following lines from /etc/chatscripts/chat-connect


Thanks for the reply, @ensar

AT+CGATT=1 results in +CME ERROR: 30, so seems like the same problem. After removing the lines you mentioned, I think we’re getting a different result; based on - i’m seeing the “idle” state. This appears to be validated by inspecting via the serial port:

+COPS: 0,0,"AT&T",8

For my own understanding, what is the impact of the change here? The AT command guide appears to suggest that this stopped configuring the device to connect on a specific band; is that right? Despite appearing to be connected, the interface still has a 169.254.x.x address, and is unable to ping, presumably as it doesn’t have a valid IP address on the cell network.

To further validate, I rebooted and noticed when reconnect.service is running (i.e. systemctl enable), the system doesn’t actually appear to connect to the network (LED indicates searching mode). This got me curious so I decided to re-install (running the, but this time disabling the auto-reconnect from the get go. Upon power-up, the board is not recognized by the pi (using lsub -t), so i tapped the power button on the board and then the device gets registered (this was expected). The device was then able to connect and return to the idle state based on the flashing, but still with a 169.254.x.x IP. I validate the device was attached to the network like so:


So, this leaves me with more questions:

  • How can I get the device to allow me to access the network from here?
  • What is the reconnect service doing that is causing this trouble?

Thanks in advance!

Greetings, I’m just another user but for what it’s worth:
assuming you have the right kernel, drivers, etc and the shield is recognized & loads properly …

  1. your log indicates a BG96 quectel - that’s CAT.M1 (low power wide area, low throughput, etc)
  2. All SIMs are NOT created equal - did you pull this SIM from a phone?
  3. try another APN: ‘’ (for IoT devices) / ‘broadband’ (laptops & tablets). ‘nxtgenphone’ (voice over LTE) - rebuild your connect scripts with applicable values.
  4. You’re trying to establish a connection using PPP (serial), when successful you’ll see the interface ‘ppp0’ when using ‘ifconfig’ or ‘ip a’. ‘wwan0’ will be active for a QMI connection.

Post back findings.


1 Like

@mark.donofrio good sir, thank you! That was super helpful of you! Two bits of information there were super key:

  1. the broadband APN - I didn’t know they used a different one for the different services, which makes total sense but i hadn’t thought to look.
  2. the note of PPP vs QMI was not clear at all from the docs, and indeed, as QMI is specified as a “second” choice in the manual i tried PPP first. What would be fantastic is if Sixfab updated their FAQ to provide some guidance on the use-cases of each.

I’m now able to access the internet via my AT&T SIM without issues using QMI. For any later readers who find this, I do indeed have a generic AT&T pay-as-you-go SIM that i picked up from Target.

1 Like

I was trying to use the Quectel EC25-A as a WiFi hotspot and after spending a half-day with an AT&T technician (+1-800-331-0500 for data tech support) I found the solution in this forum in this post. Thank you.

First, I, too, was trying to use a generic AT&T pay-as-you-go SIM that i picked up from BestBuy. In my AT&T wireless phone account the “Add-A-Line” option was only $20 month extra which was a much better deal for me than any of the other pre-paid plans.

So in trying to add a line it presents you with two boxes. One on the left for the IMEI of your device and one on the right for the SIM card ID. The IMEI printed on the Quectel EC25-A was not accepted by AT&T and I could proceed no further. So I tried using the IMEI of my Android Moto-G5+ phone. Well, that wasn’t accepted either. They did accept an iPhone-6S IMEI. I ended up submitting the IMEI of an old Netgear hotspot device I was no longer using and then entered the ICCID of the SIM and everything seemed finished. Except the hotspot did not register with LTE service (only WCDMA was enabled) and the PPP connection was being rejected.

The next morning I got a message from AT&T saying my new line had been provisioned and it listed my new phone number. Tried again with the same results. No LTE, no PPP. Called AT&T tech support and got a technician who spent a lot of time with me trying to resolve this issue. He stated:

  • The IMEI number given must match the SIM card ID given. (Really?)
  • His system recognized the Quectel IMEI (It should, Quectel’s website has press releases about gaining AT&T certificates).
  • He removed some unwanted provision features (related to voice or SMS, I think).
  • He confirmed “nxtgenphone” was the correct APN to use (it isn’t).

I don’t know which of the above are true. Tried it again with the same results - no PPP, no LTE.

Changed my APN to “broadband” in the wvdial.conf file and bingo, it worked:

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,“IP”,“broadband”
Modem Type = Analog Modem
Baud = 720000000
Stupid Mode = 1
New PPPD = yes
Modem = /dev/ttyUSB2
ISDN = 0
Phone = *99#
Username = []
Password = []

The PPP device is showing up and stable, it’s registering with LTE and I’m getting about 11 Mbps download speeds.

Prior to this I had been using StraightTalk (Walmart) SIM cards with their prepaid plans. Last year and currently in Michigan I was getting LTE service with 10 Mbps+ performance, but this year in California it seems like AT&T is blocking LTE for StraightTalk. I’ve tried four different cell sites and even with -65 dBm signals all I can get is HSPA+ (WCDMA) service in areas that are known to have LTE (my cellphone show LTE). It’s like StraightTalk is now a second-class service.

Does AT&T supports the Cellular IoT HAT?
We are testing the Verizon version on Verizon network and it’s working great. Super stable connections.

However, the M2M Verizon pricing is nuts. We discovered that AT&T offers unlimited data plan for around $35 -

I’m not able to find SixFab or Quectel BG96 as a certified device or chipset on their approved devices list.


Hi Radek,

The SIM product page mentions it supports all the ATT approved modules and device.
Quectel BG96 is one of the approved modules. You may find it in the attached file.