FX30 network problem with cellular connection


#1

Hi.

I’m trying to get an FX30 device with Legato 16.10.1 connected to internet with cellular network. So far I have installed a SIM card with data plan, here are the info given by cm commands:

iroot@fx30:~# cm radio
Power:      ON
Current Network Operator: FI elisa
RAT:        UMTS network (LE_MRC_RAT_UMTS)
Status:     Registered, home network (LE_MRC_REG_HOME)
Signal:     Very strong signal strength (5)

root@fx30:~# cm sim
SIM card is inserted and unlocked (LE_SIM_READY).


root@fx30:~# cm data
Index:      1
APN:        internet
PDP Type:   IPV4V6
Connected:  noternet
PDP Type:   IPV4V6
Connected:  no

APN should be fine. For some reason I cannot change RAT from UMTS to LTE but the task fails with error:

Aug  7 08:32:56 | modemDaemon[572]/le_pa T=main | pa_mrc_qmi.c pa_mrc_SetRatPreferences() 
3348 | The platform does not support the specified RAT (0x04)
Aug  7 08:32:56 | modemDaemon[572]/modemDaemon T=main | le_mrc.c le_mrc_SetRatPreferences() 
1337 | Unable to set the Radio Access Technology preferences.
Aug  7 08:32:56 | cm[5557]/cm T=main | cm_mrc.c cm_mrc_ProcessRadioCommand() 459 | Failed to set rat value

When trying to connect with cm data connect & I get only looping error message as below:

Aug  2 11:11:35 | modemDaemon[572]/swiQmi T=main | swiQmi.c swiQmi_CheckResponse() 781 | Sending QMI_WDS_START_NETWORK_INTERFACE_REQ_V01 failed: rc=0 (), resp.result=1.[0x01], resp.error=14.[0x0e]
Aug  2 11:11:35 | modemDaemon[572]/le_pa T=main | pa_mdc_qmi.c StartSession() 1690 | Data connection failure Call End provided 45, Code 1
Aug  2 11:11:35 | modemDaemon[572]/le_pa T=main | pa_mdc_qmi.c StartSession() 1701 | Data connection failure Verbose Call End provided Type 2, Verbose 204
Aug  2 11:11:35 | modemDaemon[572]/modemDaemon T=main | le_mdc.c le_mdc_StartSession() 919 | Get Connection failure 45, 1, 2, 204
Aug  2 11:11:35 | modemDaemon[572]/swiQmi T=main | swiQmi.c swiQmi_CheckResponse() 781 | Sending QMI_WDS_GET_RUNTIME_SETTINGS_REQ_V01 failed: rc=0 (), resp.result=1.[0x01], resp.error=15.[0x0f]
Aug  2 11:11:35 | modemDaemon[572]/swiQmi T=main | swiQmi.c swiQmi_CheckResponse() 781 | Sending QMI_WDS_GET_RUNTIME_SETTINGS_REQ_V01 failed: rc=0 (), resp.result=1.[0x01], resp.error=15.[0x0f]
Aug  2 11:11:35 | dcsDaemon[568]/dataConnectionService T=main | dcsServer.c SetDefaultGateway() 1010 | Default gateway or interface is empty
Aug  2 11:11:35 | dcsDaemon[568]/dataConnectionService T=main | dcsServer.c LoadSelectedTechProfile() 786 | No value set for 'SSID'!
Aug  2 11:11:35 | dcsDaemon[568]/dataConnectionService T=main | dcsServer.c TryStartWifiSession() 1633 | Impossible to use Wifi profile, result -1 (LE_NOT_FOUND)
Aug  2 11:11:35 | wifiService[594]/daemon T=main | le_wifiClient.c le_wifiClient_Disconnect() 1198 | Disconnect
Aug  2 11:11:35 | wifiService[594] |  | WIFICLIENT_DISCONNECT
Aug  2 11:11:35 | wifiService[594] |  | Failed to connect to non-global ctrl_ifname: wlan0  error: No such file or directory
Aug  2 11:11:35 | wifiService[594]/daemon T=main | pa_wifi_client_ti.c pa_wifiClient_Disconnect() 1041 | WiFi Client Command Failed: (24832)wlan0 WIFICLIENT_DISCONNECT
Aug  2 11:11:35 | wifiService[594]/framework T=main | le_wifiClient_server.c Handle_le_wifiClient_Disconnect() 1228 | Sending response to client session 0x27dcc : 4 bytes sent
Aug  2 11:11:35 | dcsDaemon[568]/dataConnectionService T=main | dcsServer.c TryStopWifiSession() 1851 | Impossible to disconnect wifi client
Aug  2 11:11:35 | modemDaemon[572]/le_pa T=main | pa_mrc_qmi.c pa_mrc_GetNetworkRegState() 2040 | called
Aug  2 11:11:35 | modemDaemon[572]/swiQmi T=main | swiQmi.c swiQmi_CheckResponse() 781 | Sending QMI_WDS_START_NETWORK_INTERFACE_REQ_V01 failed: rc=0 (), resp.result=1.[0x01], resp.error=14.[0x0e]
Aug  2 11:11:35 | modemDaemon[572]/le_pa T=main | pa_mdc_qmi.c StartSession() 1690 | Data connection failure Call End provided 45, Code 1
Aug  2 11:11:35 | modemDaemon[572]/le_pa T=main | pa_mdc_qmi.c StartSession() 1701 | Data connection failure Verbose Call End provided Type 2, Verbose 204

Is there something I’m missing or what could cause the problem?
Thank you for any help.


#2

Hi Amatson,

About failed to change RAT to LTE, would you check “cm info”?
FX30 has different variant, 3G only or 3G/LTE, if it shows “WP8” then this unit is 3G only.

For “cm data connect” failed, is it possible to test different SIM card on your FX30?
Does the current FI elisa SIM works on ordinate cellular phone?

The error “204” is similar to this post: AirVantage service failing to connect
Are you connecting Windows PC with FX30 over USB? If yes, would you please check does Windows start mobile connection automatically?

Thx


#3

Hi lotam and thank you for the reply.
Took some time to find a phone that would accept a bigger sim card used in the FX30.

Here is the cm info values:

root@fx30:~# cm info
Device:     FX30
IMEI:       353984080059353
FSN:        LL709601100610
Firmware:   SWI9X15Y_07.11.22.00 r33729 CARMD-EV-FRMWR1 2017/01/11 18:04:06
Bootloader: SWI9X15Y_07.11.22.00 r33729 CARMD-EV-FRMWR1 2017/01/11 18:04:06
priIdPn:    9906645
priIdRev:   01.02
skuId:      1103214

Shouldn’t this device have an LTE support?

I tested the SIM card on a smart phone and the data connection worked (although, it was very slow). So the problem should not be with the SIM. Phone, however, needed to load some settings before connecting, but I assume that FX30 can do this automatically.

And yes, I’m using FX30 over USB with Windows PC. How can I check whether Windows starts mobile connection automatically? I don’t quite understand.

Thank you! Super happy to get some tips after weeks of struggling.


#4

Hi Amatson,
Windows will not start the data session automatically. You are correct to manually start the session by issuing “cm data connect” at the linux prompt.

Could you please ensure the APN “internet” is correct for your carrier? If not, then try changing the APN using the command “cm data apn”

BR,
Chris


#5

Hiya,

Stock FX30 uses the WP8548 - which is UMTS (3G) only. So you can’t change the RAT to LTE.

ciao, Dave


#6

Hi!

Thank you for the information, at least that is not a malfunction but a feature in this case. 3G should be fine for my needs as a data connection so this is not a problem.

APN should be correct, at least according to service provider websites: https://elisa.fi/asiakaspalvelu/aihe/matkapuhelinliittymat/asetukset/
(I’m using Elisa, not Elisa Saunalahti mobile)
I also thought I tested changing this previously before posting here, but here are the results. And they are groovy.

I tried to change to “internet.saunalahti” APN. Connecting was now successful and I was able to get a response IP address with curl icanhazip.com. However, ping google.com or anything else (except to localhost) did not. The same situation was after changing APN to “internet4” and/or back to “internet”. After reboot, connecting ended once again to failure. When trying couple of times changing APN back and forth, the device managed to get a connection that responded to ping command. This also worked with all the mentioned APN settings. I changed APN on-the-go by turning radio off, I’m not sure if this is good reconnecting compared to reboot and connect but I was able to change APN after radio off.
When issuing cm data after changing APN the result is sometimes the given APN value but mostly just “internet”. I tried booting and connecting with different APN settings several times. After each reboot the connection could not be established with default values, but after changing APN to something else and also back to assumed default value the connection usually was established without problems (couple of times the same error loop started running).

So I’m a bit confused here. Glad that something is working at some level, but the uncertainty of this makes it hard to consider the situation solved. Any tips to start digging the reason behind this?

Thank you for your support!


#7

Hi @Amatson,

No problems. If you want LTE (cat M1/300kbs or so) or 2G connectivity, you’ll have to put a WP7702 into a mangoh board. Sounds like 3G will be ok for you. I ported a ‘speedtest.net’ client to the WP8548 and managed to get about 12 Mbs down and just under 3Mbs up. OK, I’m also about 50m away from the cell tower… but that’s still pretty good.

This is the second report I have had of an ‘auto-changing’ APN on the FX30. I’m currently fighting it with one of my clients. I’ve been absolutely assured that it is impossible for this to happen. But it is.

Can I ask a few more questions please:

  1. can you reboot the FX30 please and dig out the following info:
  • cm radio
  • cm sim
  • cm sim info
  • cm data
  1. can you please set the APN correctly using cm data apn XXX and then repeat the cm data command.

  2. start the data connection using cm data connect &. The & will run the command in the background.

  3. once again, please capture the output of:

  • cm data
  • ifconfig
  1. Have you upgraded to the latest R14 firmware for the FX30?. This firmware has only been released for a week or so, so I suspect that you haven’t updated yet.

At this point in time, I’m suspecting that there may be a problem with IPv4 and IPv6 connections being supplied to the FX30. There is a bug in firmware R13 that stops the modem setting the network DNS configuration when the ISP issues both IPv6 and IPv4 addresses to the FX30. My limited testing so far indicates that this particular bug has been resolved in R14/Legato 16.10.1.m3.

ciao, Dave


#8

Hi @davidc,
Certainly! Although now I’m not sure what the correct APN should be but here goes.

root@fx30:~# cm radio
Power:      ON
Current Network Operator: FI elisa
RAT:        UMTS network (LE_MRC_RAT_UMTS)
Status:     Registered, home network (LE_MRC_REG_HOME)
Signal:     Very strong signal strength (5)

root@fx30:~# cm sim
SIM card is inserted and unlocked (LE_SIM_READY).

root@fx30:~# cm sim info
Type:       EXTERNAL_SLOT_1
ICCID:      89358021160622040379
Home Network Operator: FI elisa
IMSI:       244052162599818
Phone Number: 

root@fx30:~# cm data
Index:      1
APN:        internet
PDP Type:   IPV4V6
Connected:  no

root@fx30:~# cm data apn internet.saunalahti
root@fx30:~# cm data
Index:      1
APN:        internet.saunalahti
PDP Type:   IPV4V6
Connected:  no

root@fx30:~# cm data connect &
root@fx30:~# Connected through interface 'rmnet0'  //(this was printed by the OS)

root@fx30:~# cm data
Index:      1
APN:        internet        # yep, this is reverted back to default value
PDP Type:   IPV4V6
Connected:  yes

root@fx30:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:14:3E:28:E7:F1  
          inet addr:192.168.13.31  Bcast:192.168.13.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:680 (680.0 B)  TX bytes:680 (680.0 B)

rmnet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet6 addr: 2001:999:51:e64f:5a68:2441:fed3:c661/64 Scope:Global
          inet6 addr: fe80::5a68:2441:fed3:c661/64 Scope:Link
          UP RUNNING  MTU:1500  Metric:1
          RX packets:5 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:392 (392.0 B)  TX bytes:752 (752.0 B)

usb0      Link encap:Ethernet  HWaddr 4E:31:C6:9F:40:A5  
          inet addr:192.168.2.2  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::4c31:c6ff:fe9f:40a5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7200 errors:0 dropped:4 overruns:0 frame:0
          TX packets:7262 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:756653 (738.9 KiB)  TX bytes:2813132 (2.6 MiB)

At this point curl icanhazip.com returns the IP of the device, but

root@fx30:~# ping google.com
PING google.com (172.217.21.142): 56 data bytes
ping: sendto: Network is unreachable

I did another reboot cycle and used “internet4” now instead of “internet.saunalahti”. Otherwise same as above (APN also reverted back to “internet”), but ping google.com starts getting packets transmitted. Here is ifconfigresults.

eth0      Link encap:Ethernet  HWaddr 00:14:3E:28:E7:F1  
          inet addr:192.168.13.31  Bcast:192.168.13.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:680 (680.0 B)  TX bytes:680 (680.0 B)

rmnet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:100.91.131.75  Mask:255.255.255.248
          inet6 addr: fe80::a97a:d9f:4300:1465/64 Scope:Link
          inet6 addr: 2001:999:52:7d8c:a97a:d9f:4300:1465/64 Scope:Global
          UP RUNNING  MTU:1500  Metric:1
          RX packets:22 errors:0 dropped:0 overruns:0 frame:0
          TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2776 (2.7 KiB)  TX bytes:2604 (2.5 KiB)

usb0      Link encap:Ethernet  HWaddr 9A:0D:71:BA:07:0E  
          inet addr:192.168.2.2  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::980d:71ff:feba:70e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:15398 errors:0 dropped:5 overruns:0 frame:0
          TX packets:16570 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1633576 (1.5 MiB)  TX bytes:6491476 (6.1 MiB)

The connection functionality is varying reboot after reboot and with different APN values. During these tests I was unable to get the APN to stay as set after connecting.

Most likely I haven’t, although there is a possibility that my colleague has done something with the device that I’m not aware of but this is unlikely. Is there way to check the firmware being used? And should I try to update the firmware or can I give you more test data?

Once again, thank you so much for the advice.


#9

hi Amatson,
To check the FX30 version, you can type:
fwupdate query

Also, when you execute the “cm data” command and post the output, could you also at the same time, post the output of the AT command “AT+CGDCONT?”

This would help us to distinguish if the changing APN issue is Legato related or not.

BR,
Chris


#10

Hi @Amatson,

Thanks for the info. Thanks also for catching the issue of the apn reverting. That’s NOT supposed to be possible!

I can see another two things happening here that may be causing you grief.

  1. the apn internet is only giving you an IPv6 address (you can see this through the rmnet0 info from ifconfig). This is why you can’t ping google.com at the IPv4 address (ping: sendto: Network is unreachable). But … I suspect if you’d done an ping6 google.com you would have received a reply from the IPv6 google server…

  2. using the apn internet4 gives you an IPv4 address and and IPv6 address (again, see the rmnet0 entry from ifconfig). Due to the DNS/routing bug that is in the R13/Legato 16.10.1 firmware on the FX30, you still won’t be able to correctly route to the Google (or any other) IPv4 hosts.

There are two solutions here that I would suggest:

  1. in the short term, force the FX30 to only request a IPv4 address:

    cm data pdp IPV4
    

    and connect using your internet4 apn.

  2. A better solution is to update the FX30 to the R14 firmware that is available on ‘The Source’. In my limited testing, the R14 firmware bundle appears to solve the IPv4/IPv6 issues.

But … this still doesn’t explain how the network is changing the APN on the FX30.

ciao, Dave


#11

Hi @Amatson and @davidc,

As long as the the connection is established, I wouldn’t care too much about the APN.
We are struggling with the same issue at a customer in Spain, and we have been able to (occasionally) establish a connection across 3 different APNs (also depending on the region, which makes it nearly impossible to reproduce effectively). We are still unaware (and puzzled) why the APN is changing, but the main issue is the lack of consistency in the data connection.

@Amatson,
Contrary to what is mentioned above, keeping the USB connected on during a power cycle has an effect on the FX30.
So, I would try to make the checks again with the USB disconnected during the reboot.

If confirmed that R14 is working better on IPV4V6, I would go for that.

@davidc,
Didn’t you have a similar issue in India that forced you to use IPV4 only?

Cheers,
Vitor.


#12

Hi all, and thanks for your help!

@davidc you’re right, ping6 google.com gives a reply when connection is established and ping google.com doesn’t work.
I tried to change the pdp to IPV4 and connecting with internet4 apn but the problem is still the reverting of the apn. However, after reboot -> cm data connect (no result) -> “changing” the apn to internet I got connected, no IPv4 address though. Then I changed the apn to internet4 and established connection, the apn reverted back to internet but now I was able to ping IPv4 google address. curl icanhazip.com on the other hand did not work.

@cchenry thank you, I checked the version and it is indeed R13.1.2.004.
I’m using Developer Studio with SSH Terminal connection to query the device, so AT commands are apparently inputted with microcom -E /dev/ttyAT command (based on this source)? Just to make sure.
The AT+CGDCONT? gives either

+CGDCONT: 1,"IPV4V6","internet4","0.0.0.0",0,0

or

+CGDCONT: 1,"IPV4V6","internet","0.0.0.0",0,0

depending on the situation, it is the same what apn data gives out.

This is now pretty hard to reproduce as I changed the pdp to IPV4 and apn to internet4, rebooted the device with also plugging of the power supply, and now the apn is sometimes internet4 after reboot and sometimes internet. Each time the cm data connect gets stuck in an endless loop failing to establish the connection right after reboot, but changing the apn (either to something else or “changing” to the default) the connection now succeeds to establish.
I’ll try to update the firmware and see if it has any effect to this. I will post the results here after I’ve managed to do that.

Thank you!


#13

Hi Amatson,
Could you try:
AT+CGDCONT=1,“IP”,“internet”
or
AT+CGDCONT=1,“IP”,“internet4”

and see if that helps?
BR,
Chris


#14

Hi @cchenry

Right after startup these commands did not make any difference, connection attempt just started looping. APN was also changed automatically to “internet4” after setting it to “internet” with AT command.

Sorry about the delay with the issue. I’ll now try to update the device and return to the topic as soon as I can!
Thanks!


#15

Hi everyone!

Just updated the FX30 firmware to R14.0.4.002 from the Source. First data connect (default APN: “internet” and PDP: “IPV4V6”) ended to connection loop again.
Changed the APN to “internet4” and connection was successful. However, during and after disconnection the APN had once again reverted back to “internet”, only IPv6 address received.
I changed the APN once again to “internet4” and connected and now the connection succeeded and APN managed to stay as previously set.
After software reboot the APN was “internet4”, connection was not successful. I changed it to “internet” and connection was successful, and during connection the APN had reverted to “internet4” like a little stubborn brat it is. ifconfig is giving only IPv6 address.
Another try with APN set to “internet”, now small while with loop and connection is established and APN stayed as set to “internet”, both IPv4 and IPv6 addresses working.

Hard manual power off cycle seemed to repeat it all over again, first “internet” and no connection, change to “internet4”, connection established but APN reverted back on its own, one more change to “internet4” and APN started obeying and connection is set.
The problem seems to occur randomly but it looks like there is some repeatability when trying the same steps over and over again.

My colleague is trying to find out more information considering the SIM card as it is apparently not an ordinary data card but something called M2M data card used in IoT applications. We also try to contact the tech support of the service provider to find out what APN setting should really be used.
Also, in our application the power off cycle is not needed but only ultra low power mode, this is entered multiple times a day so if the connection can be established without problem after returning from ULP-mode this is still usable.

All helps and tips are still very much appreciated. I’ll be happy to provide more test data if needed.
Thank you all for your support!


#16

Hi!

Back again, so sorry about the delay. I had some other projects that required my time.
Anyways, the issue hasn’t proceeded in any way. I was unable to test the data connection after the device enters the ULPM as the application has started crashing. I have no idea why this happens. I had no problems with crashing applications before the firmware update so I guess it has something to do with it. After the firmware update all the non-default applications were removed so I did not notice the app crashing until now that I tried to test the data connection with ULPM.

So, this is probably off the original topic, but is there some changes in the firmware that might cause some applications to crash or should I do something about the application settings after update to make them work?

Thank you in advance!


#17

Hi Amatson,
Perhaps you could try re-building your Legato application using the toolchain for Legato 16.10.1.m3 released with R14.0.4.002. You can find the toolchain here:

https://source.sierrawireless.com/resources/airlink/software_downloads/fx30-firmware/fx30-firmware/

BR,
Chris


#18

Hi!

Quick test with new toolchain did not help. At this point we had to change the device as the prototype stage would have involved a relay controlled power off and on cycle. If the network is not reliable and needs manual setting after reboot we are not able to use FX30 for the application.

Thank you all for the help given, this has been at least educating for me.


#19

Hi Amatson,
I’m sorry you’re still having difficulties with the FX30. Would you mind trying to run your FX30 without your legato application to verify its stability? It would be good to perform an FX30 factory reset by pressing the reset button upon power up for >10 seconds in order to ensure files have not been manually modified.

In addition, when your app is running, can you please post the output of:
logread
app status

The syslog will hopefully provide some info why your app is crashing.

BR,
Chris


#20

Hi cchenry.

Some applications did run on the FX30 without problems but my custom application crashed during app startup. When I updated the firmware the applications I had installed were removed so these crashes occurred after I reinstalled them to the device. When I tried to test the crashing with some demo template applications I had some compiler errors that prevented me to install them to FX30.

Unfortunately, this is all the information I am now able to give as I got assigned to another task and don’t have time to get in touch with the FX30 anymore. I’m truly sorry about this, yet I’m grateful for the help you have given me in this task.