BG95-M3 PPP instructions

I am trying to incorporate the BG95 into my company’s Android remote monitoring device.

I have started the process by followed the instructions in Quectel_LTE&5G_Linux_USB_Driver_User_Guide_V2.0.pdf. The device is recognized and show up as ttyUSB*. I noticed in another thread (link) that someone else was doing the same thing but for the EC25 and they mention a document called Quectel_EC25&EC21_PPP_Application_Note_V1.0.pdf.

Is there a document like that for the BG95 or can I follow the instruction in that doc?

I would like to eventually get it fully integrated into Android’s RIL. I have been given Quectel_Android_RIL_Driver_V2.6.7 but this seems like the logical 1st step. Am I thinking about this the right way? Should I get ppp working then start working my way through RIL integration?

Any comments would be welcome.

Quectel_BG96_PPP_Application_Note_V1.0.pdf (1.2 MB)

  1. i attached one BG96 PPP doc for you regerence 。the procedure is same as BG96 。

for the introdction of Bg95 RIL ,pls refer to the below docQuectel_Android_RIL_Driver_User_Guide_V1.9.pdf (663.4 KB)

Are you able to send AT commands via ttyUSB2 and ttyUSB3?
In my case, I have failed to send AT commands via ttyUSB3 while ttyUSB2 is working fine.

My Host device: Raspberry PI 4
Operating System: Raspberry Pi OS
Kernel: 5.4.83-v7l+

I can only send AT commands to ttyUSB2.
I get no response from ttyUSB3.

in my etc/ppp/peers/quectel-ppp script, should I be using dev/ttyUSB3 or dev/ttyUSB2?

I just learned the BG95 module has 3 USB interfaces, i.e ttyUSB0-ttyUSB2.
There shouldn’t be any ttyUSB3.
The option_probe function of the option.c file should contain the following.

I ended up getting pppd to connect correctly using ttyUSB2.
I’m able to ping 8.8.8.8 using the ppp0 interface, so I’m feeling like PPP integration is complete.
Now I am moving on to RIL integration.
Let me know if you need my ppp scripts or have any questions.

Thanks for checking
I am also okay with the pppd via ttyUSB2.
All I am confused about is the output of usb-devices or lsusb -t.

Where did you learn this(that there shouldn’t be a ttyUSB3)?
I am having problems getting the BG95 integrated with Android’s RIL and I’m wondering if this might be part of the problem. It is trying to use ttyUSB3 for the PPP connection.

The module doesn’t have a ttyUSB3 interface.
I have been in contact with Quectel FAE for support.

@mslaMaker @saeed Can you please provide ppp scripts you have used?

Im not able to get ppp working with the BG95 on an RPi. The device is detected properly and I can use AT commands on /dev/ttyUSB2. It fails after the chat-script is completed and the ppp communication is to be set up:
Connect: ppp0 <–> /dev/ttyUSB2
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xeea7c77b> ]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xeea7c77b> ]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xeea7c77b> ]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xeea7c77b> ]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xeea7c77b> ]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xeea7c77b> ]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xeea7c77b> ]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xeea7c77b> ]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xeea7c77b> ]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xeea7c77b> ]
LCP: timeout sending Config-Requests

The same script works perfectly fine for BG96.

The PPP script I used is available here.
Replace the #DEVICE with the port name such as /dev/ttyUSB2
and #APN with your apn.

Before execution make sure you are connected to the network. Check if everything is fine

AT+CPIN?
AT+CFUN?
AT+COPS?
AT+CGDCONT?
AT+CREG?
AT+CSQ
AT+QNWINFO
AT+CGATT?

Thanks. Quite similar to what I use. Also tried to do modifications to my PPP script to make them similar, without
any luck. Device is connected and has no issues with AT commands, but does not answer on the LCP when the PPP is to be set up.

@saeed Did you have to do anything special regarding Linux drivers?

No, I have not changed anything on driver.