RAK2013 on RPi 4

Issue:
Hello all, yesterday I’ve installed succesfully my RAK2013 on my RPi 3B+.
Today I wanted to make it work on my RPi4. I’ve installed the rak2013_for_rpi sucessfully.
I’ve set the APN according to my SIM configuration, which is ‘internet’.
The module is not working as expected. I don’t see ppp0 interface showing up.

Here is the output :

[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/ttyAMA0 # (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
BG96^M
Revision: BG96MAR02A07M1G^M
^M
SubEdition: V08^M
^M
+CSQ: 99,99^M
^M
+COPS: 0^M
^M
+CGREG: 0,4^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 1346), status = 0x0
Serial connection established.
using channel 4
Using interface ppp0
Connect: ppp0 <--> /dev/ttyAMA0
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x613ad4d7> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x9 <asyncmap 0x0> <auth chap MD5> <magic 0xd08a569f> <pcomp> <accomp>]
No auth is possible
sent [LCP ConfRej id=0x9 <auth chap MD5>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x613ad4d7> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0xa <asyncmap 0x0> <magic 0xd08a569f> <pcomp> <accomp>]
sent [LCP ConfAck id=0xa <asyncmap 0x0> <magic 0xd08a569f> <pcomp> <accomp>]
sent [LCP EchoReq id=0x0 magic=0x613ad4d7]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
rcvd [LCP DiscReq id=0xb magic=0xd08a569f]
rcvd [LCP EchoRep id=0x0 magic=0xd08a569f 61 3a d4 d7]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
sent [LCP EchoReq id=0x1 magic=0x613ad4d7]
IPCP: timeout sending Config-Requests
sent [LCP TermReq id=0x2 "No network protocols running"]
sent [LCP TermReq id=0x3 "No network protocols running"]
Connection terminated.
abort on (ERROR)
abort on (NO DIALTONE)
unterminated quote (line 4)
Script chat -s -v -f /etc/chatscripts/quectel-chat-disconnect finished (pid 1379), status = 0x1
disconnect script failed
Modem hangup

Any idea why it doesn’t keep the connection ?
Thanks

Actually, resetting the module with the reset button made it work…

[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/ttyAMA0 # (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)
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
BG96^M
Revision: BG96MAR02A07M1G^M
^M
SubEdition: V08^M
^M
+CSQ: 19,99^M
^M
+COPS: 0,0,“Sunrise Sunrise”,8^M
^M
+CGREG: 0,4^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 1037), status = 0x0
Serial connection established.
using channel 2
Using interface ppp0
Connect: ppp0 <–> /dev/ttyAMA0
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x23cdb9bf> ]
rcvd [LCP ConfReq id=0x0 <asyncmap 0x0> <magic 0x9b684576> ]
No auth is possible
sent [LCP ConfRej id=0x0 ]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x23cdb9bf> ]
rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x9b684576> ]
sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x9b684576> ]
sent [LCP EchoReq id=0x0 magic=0x23cdb9bf]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
rcvd [LCP DiscReq id=0x2 magic=0x9b684576]
rcvd [LCP EchoRep id=0x0 magic=0x9b684576 23 cd b9 bf]
rcvd [IPCP ConfReq id=0x0]
sent [IPCP ConfNak id=0x0 <addr 0.0.0.0>]
rcvd [IPCP ConfNak id=0x1 <addr 10.60.164.104> <ms-dns1 10.200.102.243> <ms-dns2 10.200.102.244>]
sent [IPCP ConfReq id=0x2 <addr 10.60.164.104> <ms-dns1 10.200.102.243> <ms-dns2 10.200.102.244>]
rcvd [IPCP ConfReq id=0x1]
sent [IPCP ConfAck id=0x1]
rcvd [IPCP ConfAck id=0x2 <addr 10.60.164.104> <ms-dns1 10.200.102.243> <ms-dns2 10.200.102.244>]
Could not determine remote IP address: defaulting to 10.64.64.64
not replacing default route to wlan0 [192.168.0.3]
local IP address 10.60.164.104
remote IP address 10.64.64.64
primary DNS address 10.200.102.243
secondary DNS address 10.200.102.244
Script /etc/ppp/ip-up started (pid 1044)
Script /etc/ppp/ip-up finished (pid 1044), status = 0x0

1 Like

One more question @Nicholas : is there a command to close connection ? Once it’s up ?

Hello @laoky

The “sudo systemctl disalbe rak-pppd” command is to disable automatic dialing when the Raspberry Pi is turned on.

@ZhuQI Thanks for the quick answer. I am not sure however if I understand correctly. The lack of documentation is probably the main cause of all this confusion. I don’t understand what you mean by

automatic dialing

Should the RAK2013 automatically connect when the rpi boots up ?

  1. If yes, it is not the case here. I must always call sudo pppd call gprs to connect.
  2. If no, is it possible to do it ?

I’m sorry, I just made a mistake.

If you want to RAK2013 automatically connect when the rpi boots up, you need to execute the command sudo systemctl enable rak-pppd.

1 Like

@ZhuQI Thanks a lot, now I understand. However, if I launch the connection manually, is there a way to disconnect properly ?
I noticed that the module is not able to recover from bad disconnection (if i kill the process) even if i restart it with the reset button. I always have to reboot the pi in order to make it work again.

Are you using this code?

I just updated it.
If RAK2013 is disconnected, it will automatically reconnect after 1-2 minutes.

1 Like

@ZhuQI Yes, I am using this.
Another question : connection is veeeeeeeeeeery slow. I know the BG96 is capable of way more speed. Can’t I increase the speed of the serial transmission ? I think this could be the current bottleneck ?

@ZhuQI

It’s still very weird that I have to reboot to get it work again. A simple reset should do the job… Can you have a look at it once ? We can call on Skype if you want to discuss more in details.
Thanks !

You can use the following commands to increase the speed of the serial.

  1. sudo minicom -D /dev/ttyAMA0 -b 115200

  2. Input “at+ipr=921600”

  3. exit minicom

  4. sudo minicom -D /dev/ttyAMA0 -b 921600

  5. Input “at&w”

1 Like

Done, thanks, it works fine. Can you have a look at my other question also ? About the reboot

I will reply you after using RAK2013.

1 Like