This guide provides troubleshooting recommendations to help users explore Sixfab Cellular IoT HAT and explains how to interact with it to quickly move through the evaluation and development phases of product design.

Important items to review


It is recommended to use an official Raspberry Pi Power Adaptor. Power supply for Raspberry Pi 4. Power supply for other models of Raspberry Pi.


  • Check the compatibility of SIM with the module from the SIM provider. The compatibility includes the supported region and frequency band information. Also, check the supported bands of the module from the product specification. 
  • Check the SIM card slot for any damaged pin. With a damaged pin, your SIM will not be recognized.
  • Confirm the micro-SIM(3FF size) SIM card is inserted in the right direction.


  • Make sure that the APN(Access Point Name) is correct. If it’s wrong, your device won’t be able to get on the proper cellular network and transfer data. The APN is unique to each vendor and, sometimes, to each different type of SIM card you buy from that vendor such as AT&T SIMs have APNs of & nxtgenphone.
  • Check the authentication type and credentials(username and password) with the SIM provider if required. It could be PAP or CHAP.

Antenna Ports

  • Make sure the right antenna is connected to the right port/interface.
  • Make sure the female u.fl connector of the antenna is connected/snapped firmly to the male u.fl connector of the module.

Power Status of the HAT

Ensure that the HAT has the power to operate. In order to check it observe the POWER LED and the EN LED, both should be lit.

Power Status of the Module

Make sure your module is powered up. When the module is powered up the NETL LED will blink and STAT LED will be lit. It can be turned on by pushing the PWRKEY button or by driving the programmable PWRKEY pin to HIGH for at least 500 ms.

USB Connectivity

From the physical level without any linux driver, the Linux OS should recognize USB device included Vendor ID (VID), Product ID (PID).

Check all USB devices with lsusb , if the correct vendor ID and product ID are seen, then USB connection is OK. if not, change the USB cable and try again.

[email protected]:~ $ lsusb Bus 001 Device 003: ID 2c7c:0296 Quectel Wireless Solutions Co., Ltd. BG96 CAT-M1/NB-IoT modem Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Supported USB driver VID, PID list:




Quectel UC20



Quectel EC25



Quectel BG96



Telit LE910C1



Telit ME910C1-WW



USB Driver Interface in the Linux operating system.

ModuleUSB DriversInterfaces

USB Serial OptionttyUSB0 used for USBDM
ttyUSB1 used for GPS NMEA message output
ttyUSB2 used for AT command communication
ttyUSB3 used for PPP connection or AT command communication

Device Port Availability

If the operating system recognizes the modem, devices named /dev/ttyUSBx are created. You can check if the ttyUSB(s) are available under the /dev directory. Expected outputs are as follows:

[email protected]:~ $ ls /dev/ttyUSB* /dev/ttyUSB0  /dev/ttyUSB1  /dev/ttyUSB2  /dev/ttyUSB3

Alternatively, you can check dmesg:

[email protected]:~ $ dmesg | grep ttyUSB [  154.014341] usb 1-1.1.2: GSM modem (1-port) converter now attached to ttyUSB0 [  154.015183] usb 1-1.1.2: GSM modem (1-port) converter now attached to ttyUSB1 [  154.015632] usb 1-1.1.2: GSM modem (1-port) converter now attached to ttyUSB2 [  154.015994] usb 1-1.1.2: GSM modem (1-port) converter now attached to ttyUSB3

If any of the ttyUSB(s) is missing, then check the drivers according to the OEM’s Guides:

UART Connectivity

Both UART and USB can be used to communicate with the module. To check if everything is fine with UART:

AT Commands

📖 How to send AT commands?
Check out the "Sending AT Commands" tutorial.


AT+CGREG? and AT+CREG? AT commands returns the registration status of the device.

+CREG: <mode>,<stat>
Possible values are:

0,0 Not registered, ME is not currently searching a new operator to register to
0,1 Registered, home network
0,2 Not registered, but ME is currently searching a new operator to register to
0,3 Registration denied
0,4 Unknown
0,5 Registered, Roaming

SIM Card Status

Confirm that the device can recognize the SIM.

AT+CPIN? should return READY.

Signal Quality

AT+CSQ AT command returns the signal strength of the device.

+CSQ: <rssi>,<ber>
Possible values are:

<rssi> - received signal strength indication
0 - (-113) dBm or less
1 - (-111) dBm
2..30 - (-109)dBm..(-53)dBm / 2 dBm per step
31 - (-51)dBm or greater
99 - not known or not detectable

<ber> - bit error rate (in percent)
0 - less than 0.2%
1 - 0.2% to 0.4%
2 - 0.4% to 0.8%
3 - 0.8% to 1.6%
4 - 1.6% to 3.2%
5 - 3.2% to 6.4%
6 - 6.4% to 12.8%
7 - more than 12.8%
99 - not known or not detectable

PDP Context Set Up

Check the PDP context parameters such as PDP type (IP, IPV6, PPP), APN, data compression, header compression etc. your module is trying to use, with the command: AT+CGDCONT?
Possible responses are:

+CGDCONT: 1,"IPV4V6","vzwinternet","",0,0
+CGDCONT: 2,"IP","super","",0,0

Still Need Help?

Please attempt the solutions recommended in this guide before contacting support. If these don’t resolve the issues, contact support with the available logs(responses of all commands mentioned below).

  • uname -sr
  • lsusb
  • lsusb -t
  • ls /dev/ttyUSB*
  • dmesg | grep tty
  • sudo cat /sys/kernel/debug/usb/devices

AT Commands List




















AT commands manual for Quectel BG96 module:

Did this page help you?