Testing U-Blox Sara-G350 on NuttX

This is the result of my Sara G350 debug on NuttX:

NuttShell (NSH)
nsh> pppd
tun fd:3
tty fd:4
ipcp init

AHDLC_TX - transmit frame, protocol 0xc021, length 4  offline 0

0x05 0x01 0x00 0x04 


AHDLC_TX - transmit frame, protocol 0xc021, length 4  offline 1

0x05 0x02 0x00 0x04 

chat: char = ~ (0x7E)
chat: char = � (0xFF)
chat: char = } (0x7D)
chat: char = # (0x23)
chat: char = � (0xC2)
chat: char = # (0x23)
chat: char = (0x7F)
chat: char = ' (0x27)
chat: char = (0x7F)
chat: char = # (0x23)
chat: char = (0x7F)
chat: char = " (0x22)
chat: char = (0x7F)
chat: char = & (0x26)
chat: char = ? (0x3F)
chat: char = � (0xC7)
chat: char = ~ (0x7E)
chat: char = ~ (0x7E)
chat: char = � (0xFF)
chat: char = } (0x7D)
chat: char = # (0x23)
chat: char = � (0xC1)
chat: char = ! (0x21)
chat: char = } (0x7D)
chat: char = % (0x25)
chat: char = } (0x7D)
chat: char = " (0x22)
chat: char = } (0x7D)
chat: char =   (0x20)
chat: char = } (0x7D)
chat: char = % (0x25)
chat: char = Y (0x59)
chat: char = ) (0x29)
chat: char = ~ (0x7E)
chat: char = + (0x2B)
chat: char = ; (0x3B)
chat: char = + (0x2B)
chat: char = A (0x41)
chat: char = T (0x54)
chat: char = E (0x45)
chat: char = 1 (0x31)
 (0x0D)har = 
 (0x0D)har = 
chat: char = 
 (0x0A)
chat: char = O (0x4F)
chat: char = K (0x4B)
 (0x0D)har = 
chat: char = 
 (0x0A)
chat: send 'ATZ`
chat_check_response read: 
chat: char = A (0x41)
chat_check_response read: A
chat: char = T (0x54)
chat_check_response read: T
chat: char = Z (0x5A)
chat: wait for 'OK`
chat_check_response read: 
 (0x0D)har = 
chat_check_response read: 
 (0x0D)har = 
chat_check_response read: 
chat: char = 
 (0x0A)
chat_check_response read: 

chat: char = O (0x4F)
chat_check_response read: O
chat: char = K (0x4B)
chat: got it!
 (0x0D)har = 
chat: char = 
 (0x0A)
chat: send 'AT`
chat_check_response read: 
chat: char = A (0x41)
chat_check_response read: A
chat: char = T (0x54)
chat: wait for 'OK`
chat_check_response read: 
 (0x0D)har = 
chat_check_response read: 
 (0x0D)har = 
chat_check_response read: 
chat: char = 
 (0x0A)
chat_check_response read: 

chat: char = O (0x4F)
chat_check_response read: O
chat: char = K (0x4B)
chat: got it!
 (0x0D)har = 
chat: char = 
 (0x0A)
chat: send 'AT+CGDCONT = 1,"IP","internet"`
chat_check_response read: 
chat: char = A (0x41)
chat_check_response read: A
chat: char = T (0x54)
chat_check_response read: T
chat: char = + (0x2B)
chat_check_response read: +
chat: char = C (0x43)
chat_check_response read: C
chat: char = G (0x47)
chat_check_response read: G
chat: char = D (0x44)
chat_check_response read: D
chat: char = C (0x43)
chat_check_response read: C
chat: char = O (0x4F)
chat_check_response read: O
chat: char = N (0x4E)
chat_check_response read: N
chat: char = T (0x54)
chat_check_response read: T
chat: char =   (0x20)
chat_check_response read:  
chat: char = = (0x3D)
chat_check_response read: =
chat: char =   (0x20)
chat_check_response read:  
chat: char = 1 (0x31)
chat_check_response read: 1
chat: char = , (0x2C)
chat_check_response read: ,
chat: char = " (0x22)
chat_check_response read: "
chat: char = I (0x49)
chat_check_response read: I
chat: char = P (0x50)
chat_check_response read: P
chat: char = " (0x22)
chat_check_response read: "
chat: char = , (0x2C)
chat_check_response read: ,
chat: char = " (0x22)
chat_check_response read: "
chat: char = i (0x69)
chat_check_response read: i
chat: char = n (0x6E)
chat_check_response read: n
chat: char = t (0x74)
chat_check_response read: t
chat: char = e (0x65)
chat_check_response read: e
chat: char = r (0x72)
chat_check_response read: r
chat: char = n (0x6E)
chat_check_response read: n
chat: char = e (0x65)
chat_check_response read: e
chat: char = t (0x74)
chat_check_response read: t
chat: char = " (0x22)
chat: wait for 'OK`
chat_check_response read: 
 (0x0D)har = 
chat_check_response read: 
 (0x0D)har = 
chat_check_response read: 
chat: char = 
 (0x0A)
chat_check_response read: 

chat: char = O (0x4F)
chat_check_response read: O
chat: char = K (0x4B)
chat: got it!
 (0x0D)har = 
chat: char = 
 (0x0A)
chat: send 'ATD*99***1#`
chat_check_response read: 
chat: char = A (0x41)
chat_check_response read: A
chat: char = T (0x54)
chat_check_response read: T
chat: char = D (0x44)
chat_check_response read: D
chat: char = * (0x2A)
chat_check_response read: *
chat: char = 9 (0x39)
chat_check_response read: 9
chat: char = 9 (0x39)
chat_check_response read: 9
chat: char = * (0x2A)
chat_check_response read: *
chat: char = * (0x2A)
chat_check_response read: *
chat: char = * (0x2A)
chat_check_response read: *
chat: char = 1 (0x31)
chat_check_response read: 1
chat: char = # (0x23)
chat: wait for 'CONNECT`
chat_check_response read: 
 (0x0D)har = 
chat_check_response read: 
 (0x0D)har = 
chat_check_response read: 
chat: char = 
 (0x0A)
chat_check_response read: 

chat: char = C (0x43)
chat_check_response read: C
chat: char = O (0x4F)
chat_check_response read: O
chat: char = N (0x4E)
chat_check_response read: N
chat: char = N (0x4E)
chat_check_response read: N
chat: char = E (0x45)
chat_check_response read: E
chat: char = C (0x43)
chat_check_response read: C
chat: char = T (0x54)
chat: got it!
ipcp init
ipcp init

Sending LCP request packet -  len 10

AHDLC_TX - transmit frame, protocol 0xc021, length 10  offline 0

0x01 0x00 0x00 0x0a 0x02 0x06 0xff 0xff 0xff 0xff 


Receiving packet with good crc value, len 24

0x01 0x01 0x00 0x14 0x02 0x06 0x00 0x00 0x00 0x00 0x05 0x06 0xed 0xb6 0x5b 0x05 
0x07 0x02 0x08 0x02 

LCP Packet - ipcp init
received [LCP Config Request id 1
   
Send ACK!
Writing ACK frame 

AHDLC_TX - transmit frame, protocol 0xc021, length 20  offline 1

0x02 0x01 0x00 0x14 0x02 0x06 0x00 0x00 0x00 0x00 0x05 0x06 0xed 0xb6 0x5b 0x05 0x07 0x02 0x08 0x02 

- end ACK Write frame


Receiving packet with good crc value, len 14

0x02 0x00 0x00 0x0a 0x02 0x06 0xff 0xff 0xff 0xff 

LCP Packet - LCP-ACK - >>>>>>>> good ACK id up! 0


**Sending IPCP Request packet

AHDLC_TX - transmit frame, protocol 0x8021, length 10  offline 0

0x01 0x00 0x00 0x0a 0x03 0x06 0x00 0x00 0x00 0x00 


Receiving packet with good crc value, len 14

0x01 0x01 0x00 0x0a 0x03 0x06 0xbf 0x78 0xee 0x5e 

IPCP Packet - IPCP len 10
check lcplist
IPCP options are good
Peer IP 
Send IPCP ACK!
SET- stuff -- are we up? c=10 dif=2 
Writing ACK frame 

AHDLC_TX - transmit frame, protocol 0x8021, length 10  offline 1

0x02 0x01 0x00 0x0a 0x03 0x06 0xbf 0x78 0xee 0x5e 

- End ACK Write frame


Receiving packet with good crc value, len 14

0x03 0x00 0x00 0x0a 0x03 0x06 0xbf 0x78 0xee 0x5e 

IPCP Packet - IPCP len 10
CONF NAK



**Sending IPCP Request packet

AHDLC_TX - transmit frame, protocol 0x8021, length 10  offline 0

0x01 0x01 0x00 0x0a 0x03 0x06 0xbf 0x78 0xee 0x5e 


Receiving packet with good crc value, len 14

0x02 0x01 0x00 0x0a 0x03 0x06 0xbf 0x78 0xee 0x5e 

IPCP Packet - IPCP len 10
CONF ACK
were up! 



Receiving packet with good crc value, len 44

0x45 0x00 0x00 0x28 0x7b 0xfb 0x40 0x00 0x40 0x06 0xfc 0xf0 0xad 0xfc 0x66 0x10 
0xbf 0x78 0xee 0x5e 0x01 0xbb 0xd6 0x15 0x39 0x78 0xcc 0xf2 0x00 0x00 0x00 0x00 0x50 0x04 0x00 0x00 0x0f 0xc1 0x00 0x00 

IPV4 Packet---

 len 8

Writing ECHO-REQUEST frame 

AHDLC_TX - transmit frame, protocol 0xc021, length 8  offline 0

0x09 0x01 0x00 0x08 0x00 0x00 0x00 0x00 

- end ECHO-REQUEST Write frame

Receiving packet with good crc value, len 12

0x0a 0x01 0x00 0x08 0xed 0xb6 0x5b 0x05 

LCP Packet - LCP-ECHO REPLY


Receiving packet with good crc value, len 44

0x45 0x00 0x00 0x28 0x0a 0x36 0x40 0x00 0x40 0x06 0xfd 0x24 0x41 0x37 0x44 0x67 
0xbf 0x78 0xee 0x5e 0x01 0xbb 0xa7 0x8c 0x87 0x92 0x83 0x53 0x00 0x00 0x00 0x00 0x50 0x04 0x00 0x00 0xc8 0x3d 0x00 0x00 

IPV4 Packet---


Receiving packet with good crc value, len 44

0x45 0x00 0x00 0x28 0x92 0xf2 0x40 0x00 0x40 0x06 0xe5 0xf9 0xad 0xfc 0x66 0x10 
0xbf 0x78 0xee 0x5e 0x01 0xbb 0xcf 0xf6 0x06 0x37 0xf1 0xec 0x00 0x00 0x00 0x00 0x50 0x04 0x00 0x00 0x24 0x27 0x00 0x00 

IPV4 Packet---

 len 8

Writing ECHO-REQUEST frame 

AHDLC_TX - transmit frame, protocol 0xc021, length 8  offline 0

0x09 0x02 0x00 0x08 0x00 0x00 0x00 0x00 

- end ECHO-REQUEST Write frame

Receiving packet with good crc value, len 12

0x0a 0x02 0x00 0x08 0xed 0xb6 0x5b 0x05 

LCP Packet - LCP-ECHO REPLY

This is the small “workaround” I did to get the modem working:

diff --git a/netutils/pppd/chat.c b/netutils/pppd/chat.c
index 35ab4c2..637686c 100644
--- a/netutils/pppd/chat.c
+++ b/netutils/pppd/chat.c
@@ -110,7 +110,12 @@ static int chat_check_response(int fd, const char* response, int timeout)
 
   while (*response)
     {
+      /* Just a workaround to get data from modem */
+      printf("chat_check_response read: %c\n", c);
+
       ret = chat_read_byte(fd, &c, timeout);
+      //printf("chat_check_response read: %c\n", c);
+
       if (ret < 0)
         {
           return ret;
@@ -153,6 +158,10 @@ int ppp_chat(int fd, struct chat_script_s *script, int echo)
 
   while (request)
     {
+      /* Wait data arrived before flushing */
+
+      usleep(100000);
+
       chat_flush(fd);
 
       printf("chat: send '%s`\n", request);

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s