Your troubles have encouraged me to pull out my SIM7000E Shield for my Arduino. I bought it ages ago when they were on clearance, but hadn’t even taken it out of the packet until now!
Here’s a really great thread from a while back:
Here’s what I’ve learned so far:
- The SIM7000E is certified by Telstra, so no issues there. It definitely works in Aus, and others have gotten them working.
Your path of least resistance will be to get an IoT SIM from Telstra or Hologram:
IoT Data SIM plans
Hologram Hyper - eUICC Global IoT SIM Card | Core Electronics Australia - DFRobot’s SIM7000E library will only work with NB-IoT - you’d need to modify that to get it to work with a normal SIM on CAT M1.
- I’m using my phone SIM to test, which is on the Optus network (via Dodo)- where I live there doesn’t seem to be any Optus band 3 or 28, so haven’t gotten it working yet. I can see Telstra and RailCorp though!
- This is a handy guide to using AT Commands (PS. AT Commands are specified by the 3GPP, but manufacturers have additional ones of their own on top). Ublox also has a handy guide.
So far as I can tell, this should be the process to connect to a network using AT Commands, once you’ve established a UART connection (Note that the chip itself is a 1.8V logic level device if you’re planning on trying to bypass the rest of the circuitry and tie directly into the pins).
Choose a baudrate from:
- 9600,
- 19200,
- 38400,
- 57600,
- 115200
The SIM7000 modules support Auto baudrate detection - I think 115200 is the default. It can do other baudrates other than those listed above, but you need to establish a connection first and then configure it manually - get a list of supported baudrates with AT+IPR=?
.
Make sure you’ve got carriage return and linefeeds ('\r\n'
) being appended to your serial inputs, then enter the following sequence of commands to get connected to a network.
AT //Response should be 'OK' - Test communication with the SIM7000E so it can automatically adjust its baudrate.
ATE1 //E for echo, 1 for on - Makes it Echo back the commands you send it, so the history makes a lot more sense on your serial monitor.
AT+CMEE=2 // Enable verbose error output
AT+CPIN? // Response should be READY - See if the the SIM7000 has recognised your SIM card. If you get a response other than READY or an error, your SIM is password protected.
AT+CNMP=38 //LTE mode only - Preferred Network Mode; Other settings: 2 Automatic, 13 GSM Only, 51 LTE and GSM Only
AT+CMNB=1 //CAT M1 Mode - Other settings: 2 NB-IoT Mode, 3, both CAT M1 and NB-IoT.
AT+CSQ //Check Signal Quality/Strength: [0-31/99],[0-7/99] - Signal Strength 0=-115dBm to 31 >=-52dBm, Error Rate: 0 = <0.2% - 7 = > 12.8%. 99 is not detected/unknown.
AT+CREG=1 //Enable reporting on network registration status.
AT+CREG? // A good response is: 1,1 or 1,5 - we're registered on a network already!
AT+COPS=? //Search for available providers. Warning this command may take a couple of minutes to respond - it hasn't frozen just let it go.
At this point you’ll want to look up your provider’s code. See here:
If your module returns +COPS: (1,.......
good news - that network where the first value is 1 is available for you to connect to! 3 means forbidden - eg. you have an Optus Sim, and that’s a Telstra network.
AT+CNBP? //Check which bands you have enabled (This command was removed in firmware version 1.05 so if you just get an error, you need to checkout the newer AT Command guide from SimCom)
AT+CNBP=0xFFFFFFFF7FFFFFFF,0x000007FF3FDF3FFF //Set it to use any bands available
AT+COPS=0 //Automatically select a network operator.
This is as far as I’ve gotten.
Update:
I was able to successfully update the firmware following the instructions here: