I just received the SIM7000E shield from DFRobot and connected it to an Arduino Uno. The Uno was also powered with a 12V plugpack. Otherwise, the shield could not be switched on.
I uploaded the example code: DFRobot_SIM7000_ATtest. When “AT” was sent, it replied “OK”. But when other commands were sent like AT+CSQ or AT+CPIN?, it kept sending an error and the echoed command was also wrong. It replied correctly when “ATI” was sent and it was followed by “ERROR”. Screenshot below.
Does anyone have any solutions for this issue?
I think I worked out the issue. The example code in loop() is buggy because it might send a partial AT+ command and so the SIM7000 board returned an error.
I solved this by buffering the incoming serial bytes. When \r\n is detected, the whole string is sent to the SIM7000 board.
The AT commands that I have used so far (and the responses) are
+COPS: 0,0,“505 03 DATA ONLY”,9
- I use Vodafone NB-IoT SIM card.
- I replaced the wire antenna with a whip antenna. Not sure if this would make any difference.
The example code for the SIM7000 definitely needs to be looked over. You aren’t the first person to find errors in it. I’m not sure if Vodafone is on the Telstra Network, but that is the provider that has been confirmed to work with this device.
I’m glad you got it working!