Guide by Tim; 4G and GPS HAT For Raspberry Pi - Waveshare SIM7600X

Hi @Gordon291277

Welcome to the forum!

It would be possible to do so, you would need to enable Caller ID Display (CLIP) with the AT command:

AT+CLIP=1

Once that is activated, when you receive a call you should get a response with the following format

RING
+CLIP: "<phonenumber>",<type>,<subaddr>,<satype>

From there you will be able to hang up the call with the AT command

ATH

To separate the number out you would need to put together some code to remove the other stuff from the response that was given by the first AT command.

Thanks Dan. I’m very new to this - I’m not sure how I would write code to wait for and receive a call.
I assume where you have written “RING”, that is when an incoming call is being made?
What is the “+CLIP:” bit, is that an AT command?

Hi @Gordon291277

The second code block from my last post will be what is written to serial by the module to the Pi

Hi all,
Want to prefece this with the fact that I am a total NOOB with all kinds of coding and electronics.
I was able to follow the tutorial as best I could, besides some hiccups to do with permission. However, when trialing the hat using the Python codes I ran to greater issues. PhoneCall.py worked, however, GPS.py resulted:
AT+CGPSINFO
+CGPSINFO: , , , , , , , ,

Not sure if this is a problem to do with the Pi, GPS or location I am testing it in. Further, I was unable to send a text using SMS.py and waspromptedd with the following:

ERROR
Back:

+CMS ERROR: Unknown error

error
Received Short Message Test:

Please send message to phone *04XXXXXX
Setting SMS mode…
AT+CMGF=1
OK

AT+CMGF=1
+CMGR: “REC READ”,“791121161171151777115103”,“”,

and this is then followed by the activation date of my sim card. (Optus pre-paid)
I am just wondering if this a purely sim related issue as I was able to make that phone call using it. Any suggestions and comments would be greatly appreciated.

Warm regards,
Fin

1 Like

Hi @finlay297680

Welcome to the forum!

You’re definitely not alone with these early roadblocks. The fact that PhoneCall.py worked means your HAT, SIM, and AT-command interface are basically healthy, great start.

GPS Issue (+CGPSINFO: , , , , , , , ,)

This response just means the GPS hasn’t acquired a satellite fix yet. Common causes:

  • You’re indoors or under cover — GPS needs a clear view of the sky. Try placing the GPS receiver’s sticker side face down and outside
  • It’s a cold start — first-time or long-unpowered modules can take 5–15 minutes to download satellite data.

Suggestions:

  1. Move the Pi + HAT outdoors with a clear view of the sky.
  2. Before running GPS.py, try sending these manually:
AT+CGPS=1,1      // Enables GPS engine with NMEA output to UART
AT+CGPSINFO      // Poll for current GPS fix
  1. Wait 5–10 minutes, then run AT+CGPSINFO again. Once it gets a fix, it’ll return something like:
+CGPSINFO: 42.4336,N,84.0880,W,210101,123456.000,1.2,0.9,1

SMS Issue (+CMS ERROR: Unknown error)

Even if calling works, SMS can be tripped up by SIM or network quirks:

  • SIM activation – Some Optus prepaid SIMs allow calls but block SMS until activated via the Optus app or website.
  • Balance/profile – Ensure the SIM has credit and isn’t data-only.
  • Text mode – Confirm the modem is in text mode:
AT+CMGF=1
  • PIN status – Check that the SIM isn’t PIN-locked:
AT+CPIN?

Debug steps:

  1. Insert the SIM into a phone and confirm you can send/receive SMS.
  2. On the Pi, check:
AT+CSQ       // Signal strength
AT+CREG?     // Network registration status
AT+COPS?     // Current operator
  1. If Optus still doesn’t behave, try a Telstra or Vodafone SIM to compare.

Post back the results of those commands or any new errors, and we’ll help you dig in further. Once GPS has a lock and SMS is sorted, you’ll be all set!

2 Likes

Sorry this may be dumb, but where am i imputting these commands? Also thank you so much for the response Ryan, sorry for my delay lifes caught up to me recently.

Additionally, I have been able to replace the SIM card with my personal one. In doing so, I have changed the error code from the previous to
"`AT+CMGR=1 ERROR
AT+CMGR=1 back: AT+CMGR=1
OK

error0`"

Hey @finlay297680,

No worries, and thanks for your message!

You can input AT commands using a serial terminal program on your Raspberry Pi that connects to the modem’s serial port. Common tools for this are:

  • minicom
  • screen
  • picocom

Theres plenty of online tutorials that can help you learn how to use any one of these.


This error usually means the modem tried to read SMS message number 1, but there’s no message stored there. That’s totally normal if your SMS inbox is empty.

You can check which messages are stored (if any) by running:

AT+CPMS?

(to check message storage status) and

AT+CMGL="ALL"

(to list all messages).


Next steps to confirm SMS and SIM status

Please try these commands (after connecting to the modem via serial terminal):

AT
AT+CPIN?
AT+CSQ
AT+CREG?
AT+COPS?
AT+CMGF=1

They will tell us if:

  • The modem is responding
  • The SIM card is ready (not PIN locked)
  • Signal strength is good
  • Network registration is successful
  • SMS text mode is enabled

Once you share the responses from these commands, I can help you troubleshoot further.