I'm working on a project that uses an ERF3002 shield stacked on an Arduino Uno Rev3. The shield uses a Quectel BG77 module, which has cell network connectivity. When testing the shield on its own using Putty and establishing network connection, I received the expected responses to my commands. However, when I stack the shield with the Arduino and send commands through the Serial Monitor in Arduino IDE, I don't get the responses I'm looking for. Specifically, I want to deactivate and reactivate the PDP context, but I get this response:
AT+QIDEACT=1
OK
AT+CGPADDR=1
my IP address
I've sent AT+CFUN=1,1, which runs the reset, but I still get an active PDP context upon restart.
Another thing is that when I send AT+CGPADDR=1, I get the IP address (even though I shouldn't, since I run AT+QIDEACT=1 and get OK), but when I send AT+CGDCONT?, I get the response +CGDCONT: 1,"IP","soracom.io","0.0.0.0",0,0,0, which shows no IP address.
Has this happened to anyone before, or does anyone have any ideas for troubleshooting?
For context, I am using an activated Soracom SIM card, and this is the Arduino sketch I've been using for serial communication:
#include <SoftwareSerial.h>
SoftwareSerial gpsSerial(7, 8); // RX = D8, TX = D7
void setup() {
Serial.begin(9600); // Communication with Serial Monitor
gpsSerial.begin(9600); // Communication with ERF3002
delay(2000);
}
void loop() {
// Forward commands from Serial Monitor to ERF3002
if (Serial.available()) {
char c = Serial.read();
gpsSerial.write(c);
}
// Forward responses from ERF3002 to Serial Monitor
if (gpsSerial.available()) {
char c = gpsSerial.read();
Serial.write(c);
}
}
Also, my shield uses 115200 baud rate (which is what I set when using Putty and receive expected responses), but when I change gpsSerial.begin(9600) to 115200, my commands and responses are not displayed in the Serial Monitor.