Cellular IoT App Shield - LTE Not Connecting

After serveral days trying i have been not able to connect my Cellular IoT Application Shield to the internet via LTE data service. I have read the tutorials but still don’t understand what i’m doing wrong.
My goal is to enable my rpi to access internet via LTE data service, in order to connect an small web app with my server and send or pull general information via http requests.

Can someone help me find what i’m doing wrong?

More details about my case:

The hardware i’m using:

  • Raspberry PI 4
  • Cellular IoT Application Shield – LTE-M & NB-IoT & eGPRS (BG96, Firmware: BG96MAR02A10M1G)
  • LTE – GNSS Dual u.FL Antenna – 100mm
  • Right Angle Micro USB Cable

My laptop operative system is: Ubuntu
For Raspberry pi, i’m using: Raspbian Buster Lite

Providers tested:

  • Movistar Panama with FDD LTE 700MHz B28.
  • Claro Panama with the same 4G LTE (B28 700 MHz).

SIM Cards used:
1-) Movistar panama SIM card with prepaid normal data. (working fine on regular android phone)
2-) Movistar panama SIM card with prepaid unlimited data for 7 days. (working fine on regular android phone)
3-) Claro panama SIM card with postpaid plan used for a mobile wifi modem. (working fine on the huawei modem)

APN Settings used:

  • Movistar: internet.movistar.pa, user: movistarpa & password: movistarpa
  • Claro: web.claro.com.pa, user: claroweb & password claroweb

steps:

1-) Parts has been assembled exactly as documented on hardware setup steps at: sixfab docs raspberry-pi-cellular-iot-application-shield-getting-started

2-) Flashing a 32GB sd card with 2019-09-26-raspbian-buster-lite.img & enabling ssh by doing:
cd /media/pc-user/boot && touch ssh

3-) Unplug the USB cable from Cellular IoT App Shield. (in order to start with installation of QMI Interface with Cellular IoT App Shield, documented on: sixfab docs qmi-interface-with-cellular-iot-app-shield)

4-) Installing sd card & sim card to the rpi.

5-) Connecting raspberry pi to my local network via ethernet, and ssh into the rpi… (e.g.: ssh -l pi 192.168.2.104).

6-) Updating rpi: sudo apt update && sudo apt upgrade -y

7-) Installing rpi kernel headers: sudo apt-get install raspberrypi-kernel-headers

:sunglasses: Rebooting rpi. (sudo reboot now)

9-) Login back to rpi and download script: wget https://raw.githubusercontent.com/sixfab/Sixfab_RPi_3G-4G-LTE_Base_Shield/master/tutorials/QMI_tutorial/qmi_install.sh

10-) set permission: sudo chmod +x qmi_install.sh

11-) Run script (with module disconnected): (sudo ./qmi_install.sh) everything seems to finish ok, just with several warning messages on finishing the script… so proceeding to reboot.

12-) Rebooting again the rpi & reconnecting the USB cable to the shield.

13-) Login back to rpi and moving into: cd files/quectel-CM

14-) Testing QMI with command: sudo ./quectel-CM which shows the messages:
pi@raspberrypi:~/files/quectel-CM $ sudo ./quectel-CM
[05-09_20:50:05:654] WCDMA&LTE_QConnectManager_Linux&Android_V1.1.45
[05-09_20:50:05:655] ./quectel-CM profile[1] = (null)/(null)/(null)/0, pincode = (null)
[05-09_20:50:05:656] Cannot find qmichannel((null)) usbnet_adapter((null)) for Quectel modules

15-) Manually powerup quectel module by pressing POWEKEY hardward button… waiting few seconds until red led is on and blue led is blinking…

16-) Trying again the QMI with command: sudo ./quectel-CM which shows the messages:
pi@raspberrypi:~/files/quectel-CM $ sudo ./quectel-CM
[05-09_20:53:53:215] WCDMA&LTE_QConnectManager_Linux&Android_V1.1.45
[05-09_20:53:53:216] ./quectel-CM profile[1] = (null)/(null)/(null)/0, pincode = (null)
[05-09_20:53:53:217] Find /sys/bus/usb/devices/1-1.2 idVendor=2c7c idProduct=0296
[05-09_20:53:53:217] Find /sys/bus/usb/devices/1-1.2:1.4/net/wwan0
[05-09_20:53:53:217] Find usbnet_adapter = wwan0
[05-09_20:53:53:218] Find /sys/bus/usb/devices/1-1.2:1.4/usbmisc/cdc-wdm0
[05-09_20:53:53:218] Find qmichannel = /dev/cdc-wdm0
[05-09_20:53:53:233] cdc_wdm_fd = 7
[05-09_20:53:53:255] Get clientWDS = 1
[05-09_20:53:53:257] Get clientDMS = 1
[05-09_20:53:53:259] Get clientNAS = 1
[05-09_20:53:53:261] Get clientUIM = 1
[05-09_20:53:53:263] Get clientWDA = 1
[05-09_20:53:53:265] requestBaseBandVersion BG96MAR02A10M1G
[05-09_20:53:53:275] requestGetSIMStatus SIMStatus: SIM_READY
[05-09_20:53:53:279] requestGetProfile[1] internet.movistar/movistarpa/movistarpa/2
[05-09_20:53:53:281] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW
[05-09_20:53:53:283] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[05-09_20:53:53:287] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW
[05-09_20:53:58:292] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW
[05-09_20:54:03:297] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW
[05-09_20:54:08:301] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW
[05-09_20:54:13:306] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW
[05-09_20:54:18:311] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW

17-) Here is where i get stuck.… It just show a “requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED” and Registration state keep saying “requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW” for ever…

I have tried other stuff like explicit apn & apn with password:

  • sudo ./quectel-CM -s internet.movistar.pa
  • sudo ./quectel-CM -s internet.movistar.pa movistarpa movistarpa

with same results:
[05-09_21:35:47:391] requestGetSIMStatus SIMStatus: SIM_READY
[05-09_21:35:47:391] requestSetProfile[1] internet.movistar.pa/movistarpa/movistarpa/2
[05-09_21:35:47:405] requestGetProfile[1] internet.movistar.pa/movistarpa/movistarpa/2
[05-09_21:35:47:407] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW
[05-09_21:35:47:409] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[05-09_21:35:47:413] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW
[05-09_21:35:52:417] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW

No connected, no ip and checking ifconfig shows:
wwan0: flags=4291<UP,BROADCAST,RUNNING,NOARP,MULTICAST> mtu 1500
inet 169.254.50.218 netmask 255.255.0.0 broadcast 169.254.255.255
inet6 fe20::a23f:8b16:6c34:b81f prefixlen 64 scopeid 0x20
ether 8a:3d:5a:0a:f5:50 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 79 bytes 8760 (8.5 KiB)
TX errors 0 dropped 5 overruns 0 carrier 0 collisions 0

Other stuff i have tried:
Testing Sensors: (Which seems working ok)
pi@raspberrypi:~ $ mkdir sixfab
pi@raspberrypi:~ $ cd sixfab/
pi@raspberrypi:~ $ sudo apt-get install git python3-setuptools python3-pip python3-smbus
pi@raspberrypi:~ $ pip3 install RPi.GPIO
pi@raspberrypi:~ $ git clone https://github.com/sixfab/Sixfab_RPi_CellularIoT_Library.git .
pi@raspberrypi:~ $ sudo python3 setup.py install
pi@raspberrypi:~ $ sudo raspi-config

Select 5 Interfacing Options
Enable P5 I2C
Select 5 Interfacing Options
For P6 Serial
Disable Login shell to be accessible over serial
Enable Serial port hardware
Finish
Reboot

pi@raspberrypi:~ $ cd sixfab/sample
pi@raspberrypi:~/sixfab/sample $ python3 sensor_test.py

Sixfab Raspberry Pi Cellular IoT Application Shield Class initialized!
BG96 module disabled!
BG96 module enabled!
Acceleration: {‘x’: -18.0, ‘y’: 31.0, ‘z’: 1038.0}
Humidity: 40.911865234375
Temperature: 38.87451171875
Lux: 6.772151898734177
ADC1: 274
ADC2: 270
ADC3: 272
ADC4: 106

Testing connect with operator: (I don’t know much about AT Commands, just run those python scripts)
Python 3.7.3 (default, Dec 20 2019, 18:57:59)
[GCC 8.3.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.

from cellulariot import cellulariot
import time
node = cellulariot.CellularIoTApp()
Sixfab Raspberry Pi Cellular IoT Application Shield Class initialized!
node.setupGPIO()
node.disable()
BG96 module disabled!
time.sleep(1)
node.enable()
BG96 module enabled!
time.sleep(1)
node.powerUp()
BG96 module powered up!
node.sendATComm(“ATE1”,“OK\r\n”)
ATE1
OK
‘ATE1\r\r\nOK\r\n’
node.setGSMBand(node.GSM_900)
AT+QCFG=“band”,1,0,0
OK
time.sleep(0.5)
node.setCATM1Band(node.LTE_B5)
AT+QCFG=“band”,0,10,0
OK
time.sleep(0.5)
node.setNBIoTBand(node.LTE_B20)
AT+QCFG=“band”,0,0,80000
OK
time.sleep(0.5)
node.getBandConfiguration()
AT+QCFG=“band”
+QCFG: “band”,0x1,0x10,0x80000
OK
‘AT+QCFG=“band”\r\r\n+QCFG: “band”,0x1,0x10,0x80000\r\n\r\nOK\r\n’
node.setMode(node.GSM_MODE)
AT+QCFG=“nwscanseq”,01,1
OK
AT+QCFG=“nwscanmode”,1,1
OK
AT+QCFG=“iotopmode”,2,1
OK
Modem configuration : GSM_MODE
node.connectToOperator()
Trying to connect base station of operator…


node.getQueryNetworkInfo()
AT+QNWINFO
+QNWINFO: No Service
OK
‘AT+QNWINFO\r\r\n+QNWINFO: No Service\r\n\r\nOK\r\n’

So, i have try all this process several times with different sim cards and LTE data plans… in all cases the result has been the same.

Again i just what to enable my rpi to connect to internet via LTE or Edge or any available band, to access a mini web app which use openvpn to communicate… that’s why i still did not try the PPP tutorial yet…

Do you guys can see anything i’m doing wrong, or missing? or any other suggestion to try?

Thanks in advance for any help!

Hi @dcpa,
First of all, thank you for sharing in detail. :heart:

Could you please us an image of your hardware setup?

Hi again, actually i was able to connect… at lest with a normal edge connection by doing: reinstalling everything and running the following instructions in python3 shell, before to run “sudo ./quectel-CM -s web.claro.com.pa webclaro webclaro 0” :

from cellulariot import cellulariot
import time
node = cellulariot.CellularIoTApp()
node.setupGPIO()
time.sleep(1)
node.disable()
time.sleep(1)
node.enable()
time.sleep(1)
node.powerUp()
time.sleep(1)
node.setMode(node.GSM_MODE)
node.setGSMBand(node.GSM_ANY)
exit()

So my guess is that possible i had set the wrong mode (node.setMode(“wrong mode”)), as far i understand in panama we don’t have LTE Cat-M1 or CAT NB1 networks or at less those was not available with my sim card plans…

And claro apn user and password… is working with both webclaro & claroweb.

So connected with EDGE/GSM at 1900…

Thanks anyway, best!

1 Like