Receiving SMS Messages

Product: Raspberry Pi Cellular IoT HAT

I was able to successfully set up my rPi Cellular IoT hat and send SMS messages. I’ve reviewed the documentation for the CellularIoT library as well as the source on github:

I could not find a method for receiving and processing SMS messages. Is this unit capable of receiving messages or just sending?


For reading the incoming message, you can use AT+CMGR command.
Please check section 8 for SMS related AT commands from the manual.

You can use sendATCommOnce or sendATComm to send the AT commands that are not available in the Library.

Thank you for the reply. I have used the send methods to send various AT commands. Still not able to read any of the SMS messages. I have tried the following commands to list, read, and send CMGL, CMGR, CMGS. Responses have been inconsistent. I have tried clearing the messages from the sim and device using CMGD.

Now I’m not able to send using the send sms example. Here is the output using the example code (last 4 of phone number redacted here but not in output)…

Sixfab Raspberry Pi Cellular IoT Shield Class initialized!
BG96 module disabled!
BG96 module enabled!
BG96 module powered up!




hello world!

---- End of output

It seems the final send command fails and just re-attempts. This send method was working a few days ago and now all I get is the above response. Is there a way to reset the modem back to original settings?

Did you use the fields of the AT commands correctly?
This link can help you understand the commands and their field better.

Saeed, Yes I’m using the correct syntax for the AT commands (I’ve worked with them before). I’ve included some troubleshooting responses below. The modem was initially functional with my sim and carrier (US Mobile). The modem is now (3 days later) not able to connect with the carrier. I’ve ruled out the other hardware and software by swapping the modem to previously functioning RPI. It appears the problem is with the modem config or my carrier. I’ve ordered a new sim card which I will test before giving up on this module.

Here are some of my commands and responses from troubleshooting…


+CREG: 0,4 Disabled, Unknown, then +CREG: 2,3 Enabled, Denied


+CSQ: 99,99 Not known or not detectable



I’ve also attempted to re-register the device with my carrier using:





I did also attempt to enable PPP and UDP connections by following the SixFab example instructions. Is it possible that those settings are conflicting with the connection to the carrier and SMS functionality?

I’ve tested a new SIM with the same result (it just hangs on sending, no connection to carrier). How can I reset the modem to the factory settings it was shipped with?

You can use AT&F command to reset to factory default values.

I don’t really need to touch the low-level AT commands necessarily right? If i want to interact with my messages and send something back perhaps. I was looking at some open source options like :