Rate this page:

Get Started with Super SIM, the Raspberry Pi 4 and the Sixfab Cellular IoT Hat

Sixfab recently EOL’d the Cellular IoT Hat and is only making it available on build-to-order basis. If you already have a Cellular IoT Hat, you can continue with this tutorial. If not, check out our guides to working with Super SIM, the Raspberry Pi, and these add-on boards:

The Sixfab 3G-4G/LTE Base Hat.

The Waveshare 4G Hat.

Twilio Super SIM can empower a huge range of IoT devices. This guide focuses on just one of them: Sixfab’s Cellular IoT Hat, a development board which equips a low-cost Raspberry Pi computer with a Quectel BG96 cellular modem. The BG96 is a particularly good modem with which to try out Super SIM: it supports the key IoT-oriented cellular standard enabled by Super SIM, Cat-M. The European version also provides 2G for back-up where that is still available.

This guide requires a configured Super SIM. If you haven’t set up your Super SIM in the Console, please do so now. The Super SIM First Steps guide has help if you need it.

The hardware

In addition to your configured Super SIM, you will need the following hardware to proceed with this guide:

  • A Sixfab Cellular IoT Hat. It’s available in Worldwide and Verizon USA-certified forms; select the one that’s right for your location.
  • A Raspberry Pi. This guide was written using the Pi 4 Model B, but there are other versions of the Pi available — it should work with any of them, but we’ve only tested the 4 and 3B. The Cellular IoT Hat works with all but the very first Pi. To run the Pi, you will also need:
    • A Micro SD card of 8GB or above.
    • A monitor and an HDMI-to-micro-HDMI cable.
    • A keyboard and a mouse
    • A 5V, 2A (10W) USB-C AC adaptor.

Hardware setup: the Raspberry Pi

The Raspberry Pi has its own setup procedure which involves downloading and installing its Linux operating system, called Raspberry Pi OS, onto the Micro SD card. The Raspberry Pi Foundation has a very good walkthrough of its own that covers this process — you should use this to get your Pi ready before proceeding to the next stage of this guide.

During setup you should connect your Pi 4 to your WiFi network as you will need to download extra software later. We’ll disable WiFi in due course to demonstrate data access over cellular.

Hardware setup: the Cellular IoT Hat

The Cellular IoT Hat ships with all you need to fit it onto the Pi. Just follow these steps to set everything up:

  1. If it’s powered up, turn off the Pi.
    • If you’re at the command line, enter sudo shutdown -h now.
    • If you’re at the desktop, select Shutdown... from the Raspberry menu and then click Shutdown.
    • Remove the power cable when the Pi’s activity LED has flashed yellow ten times.
  2. Fit either of the two headers supplied with the Hat to the Pi’s paired row of GPIO pins and then slot the Cellular IoT Hat onto the extended header pins:
  3. Fit your Super SIM into the Cellular IoT Hat’s SIM slot. The slot takes a 3FF Micro SIM, so take care removing your Super SIM from its mount, or use an adaptor if you have removed the Super SIM as a 4FF Nano SIM:
  4. Connect the bundled cellular antenna to the Cellular IoT Hat. Match up the LTE line on the antenna with the LTE connector on the board. This guide doesn’t use the GPS antenna but we recommend fitting both antennas to reduce the strain on a single connector:
  5. Connect the supplied USB cable to the micro USB port on the Cellular IoT Hat and a USB port on the Pi:
  6. Finally, power up the Pi by re-inserting the power cable.

Software setup

We now need to run through a few steps to get the Pi ready to talk to the Cellular IoT Hat. Some of these will require you to restart the Pi.

1. Set up serial port access

  1. At the command line run sudo raspi-config.
  2. Use the cursor keys to highlight Interfacing Options, then hit Enter:
  3. Now highlight Serial Port and hit Enter:
  4. When you are asked Would you like a login shell to be accessible over serial? select No and hit Enter:
  5. When you are asked Would you like the serial port hardware to be enabled? select Yes and hit Enter:
  6. Select Finish.
  7. The raspi-config utility will offer to restart the Pi — accept its suggestion.

2. Power up the Hat

When the Pi is back up, you should see that the Cellular IoT Hat’s POWER Led is lit green. Now press the PWRKEY button on the board — after a brief moment, the STATUS LED should light up too.

At the command line or in a desktop Terminal run:

ls /dev/ttyUSB*

You should see a list of items all beginning with ttyUSB and including ttyUSB3, which is the device you will use in subsequent steps. With a Pi 4 and the current version of Raspberry Pi OS as of November 16, 2020 you should be good to go, but if you don’t see a list of TTYs, first check that the Cellular IoT Hat’s PWR and STATUS LEDs are lit. If they are, you will need to adjust the Pi’s system software; please see this section before proceeding.

3. Attach to a cellular network

The Cellular IoT Hat can be controlled using a software library written in Python. Enter the following at the command line or in a desktop Terminal:

git clone sixfab

Jump into the sixfab directory and install the library:

sudo python3 install

You will need to enter your Pi password. If you are in a location with Cat-M1 coverage, run

python3 sample/

This script will give the Hat’s BG96 modem a minute to connect to the cellular network and then display some network information. At the Waiting Time: prompt, just hit Enter. You should see something like this when it’s done:

+COPS: 0,0,"vodafone UK Twilio”,0

Exactly what you will see will depend on where in the world you are connecting from. If you see something like:

+COPS: 0

then you are not in a region served with Cat-M1. To connect to a 2G network instead, run:

python3 sample/

If you have worked through this tutorial before, please note that the following section was updated February 2021 with a new, replacement Sixfab script so some parts of this step may be different than the last time you viewed it.

Now we know we have a cellular connection, we can connect to the Internet. We can set up the Pi’s required PPP (Point-to-Point Protocol) connection using software. Let’s install it now. Run the following at the command line or in a desktop Terminal:


The script will take a second or two to download. Now run:

chmod +x

and then:

sudo ./

The script will prompt you for setup information:

  • When it asks Please choose your Sixfab Shield/HAT, enter 4 for the Pi Cellular IoT Hat.
  • When it asks What is your carrier APN?, enter super.
  • When it asks if you need to enter a username and password, just hit n.
  • When it asks What is your device communication PORT?, enter ttyUSB3.

Last of all, the script will also ask Do you want to activate auto connect/reconnect service at R.Pi boot up? You can enter y (yes) or n (no) according to preference. If you select no, you will need to start the PPP connection manually — this is what the remainder of this section of the tutoral assumes you have chosen. However, if you select yes, you can reboot the Pi and jump straight to testing.

When the installation is done you’ll see the message Press ENTER key to reboot — do so.

After the Pi has rebooted, you’re all set to access the Internet over cellular. To be sure it’s working, turn off WiFi — this is easiest to do this from the icon in the Desktop menu bar.

To initiate an Internet connection, at the command line or in a desktop terminal run:

sudo pon

You’ll see a stack of lines displayed at the command line.

When the prompt is back, you’re ready to try out the Internet connection:

  • Open up a browser and navigate to
  • At the command line or in a desktop terminal, enter ifconfig and look for the ppp0 entry — it should have a valid IP address listed under inet:

Well done! You now have a Raspberry Pi computer that’s connected to the Internet via Twilio Super SIM. You can now start experimenting with cellular Internet connectivity, or begin developing your own IoT application proof-of-concept.

Next steps

Your Raspberry Pi and Sixfab Cellular IoT Hat are now able to access the cellular network. Over to you: what are you going to build? We can’t wait to find out.

In the meantime, here are some suggestions for things to try:

  • Write some code to get data from a cloud service API via cellular. Here’s a good selection of public APIs.
  • Use the Console or Super SIM API to monitor your Super SIM’s data usage.
  • Check out our guide Introduction to AT commands and try sending to your modem some of the more useful commands it lists.

Appendix: downgrading the Pi kernel

Versions of Raspberry Pi OS’ Linux kernel above 5.4.65 have known problems connecting to the Cellular IoT Hat’s BG96 modem. To remedy this, you need to downgrade the kernel to version 5.4.65. You may need to do this after updating the Pi’s on-board software using sudo apt update and then sudo apt upgrade.

Here’s what to do. Run the following three commands at the command line or in a desktop terminal:

  • sudo apt update
  • sudo rpi-update a995f0c9a9b3e5dbd2a41f69f5c4c82cdf33c7ec
  • sudo reboot

You’ll now be able to access the modem and its Internet connection. You can now continue with the setup process.

Rate this page:

Need some help?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd by visiting Twilio's Stack Overflow Collective or browsing the Twilio tag on Stack Overflow.

Thank you for your feedback!

Please select the reason(s) for your feedback. The additional information you provide helps us improve our documentation:

Sending your feedback...
🎉 Thank you for your feedback!
Something went wrong. Please try again.

Thanks for your feedback!

Refer us and get $10 in 3 simple steps!

Step 1

Get link

Get a free personal referral link here

Step 2

Give $10

Your user signs up and upgrade using link

Step 3

Get $10

1,250 free SMSes
OR 1,000 free voice mins
OR 12,000 chats
OR more