DFRobot SIM7000A unresponsive on the filed

Hi,
My SIM7000A attached to Arduino UNO WiFi Rev2 becomes unresponsive on the filed. The only way to reset the SIM7000A module is by pressing the BOOT button, but this unpractical given the the vehicle driver won't have access to this button. Create a Function in my code try different rests: Logical, hardware and power, but it is not working. Can someone shed light as to how to set up a reset Function that works.
This the code I have at the moment (not working):
bool resetSIM7000A() {
Serial.println(F("Attempting module reset based on DFRobot documentation..."));
// First try logical reset
Serial.println(F("Trying logical reset..."));
sendATCommand("AT+CFUN=1,1", 1000);
delay(12000); // Wait for module to restart
String response = sendATCommandWithResponse("AT", 3000);
if (response.indexOf("OK") != -1) {
Serial.println(F("Logical reset successful"));
sendATCommand("ATE0", 1000);
sendATCommand("AT+CGNSPWR=1", 2000);
return true;
}
// Try hardware reset according to DFRobot specs
Serial.println(F("Trying hardware reset per DFRobot specs..."));
pinMode(PIN_RESET, OUTPUT);
digitalWrite(PIN_RESET, HIGH); // Ensure it starts HIGH (normal state)
delay(100);
digitalWrite(PIN_RESET, LOW); // Pull LOW to trigger reset
delay(100); // Brief pulse
digitalWrite(PIN_RESET, HIGH); // Return to HIGH (normal state)
delay(15000); // Wait for module to restart
response = sendATCommandWithResponse("AT", 3000);
if (response.indexOf("OK") != -1) {
Serial.println(F("Hardware reset successful"));
sendATCommand("ATE0", 1000);
sendATCommand("AT+CGNSPWR=1", 2000);
return true;
}
// Try power key sequence according to DFRobot specs
Serial.println(F("Trying power key sequence per DFRobot specs..."));
pinMode(PIN_PWRKEY, OUTPUT);
digitalWrite(PIN_PWRKEY, HIGH); // Ensure it starts HIGH (normal state)
delay(100);
digitalWrite(PIN_PWRKEY, LOW); // Pull LOW to trigger power on/off
delay(1500); // Hold for 1.5 seconds
digitalWrite(PIN_PWRKEY, HIGH); // Return to HIGH (normal state)
delay(20000); // Wait for module to power cycle
response = sendATCommandWithResponse("AT", 3000);
if (response.indexOf("OK") != -1) {
Serial.println(F("Power key sequence successful"));
sendATCommand("ATE0", 1000);
sendATCommand("AT+CGNSPWR=1", 2000);
return true;
}
Serial.println(F("All reset methods failed"));
return false;
}
Thanks!