Sim800l module restarts just before sending a message

I have developed a prototype of an asset tracking system using a GPS receiver and sim800l module to send the location through SMS. Arduino UNO was used in this project and an external battery was used to supply 4V 2A current to sim800l. The system worked very well for the initial 2-3 months then it wasn’t used for like 40 months or so.
Now with the aim to upgrade the prototype, I powered this using the same battery (recharged to 4V) and same circuit configurations (shown below) but sim800l is resetting just before sending the messages. I’ve tested the sim800l module using AT command and it is working fine but just before an SMS is to be sent, it resets, and LED blinks once per second.
I’ve tried some of the solutions provided on this platform such as using 1000uF or 4700uF capacitor in parallel with the power supply but it didn’t work for me.

kindly help me out…

I dont know nothing and by randomlly i managed to work by removing the capacitor of red module.
This worked in case of 107A capacitor and not 107C
But i have a relay and when i switched opn the relay for sim800l
i was resseting.

You ,as i see ,yopu dont have relay so you may must totally ignore my proposition.for trying remove capacitor and put back…if not the case.

CRITICAL…DONT touch capacitor…
I must delete my above post but lets leave this decision for admins.

Because i had problem with SIgnal…
(wasnt send http data at signal lower than 10…)
and now that i ve put 3300 mF capacitor…
can work/send WITHOUT antenna and signal 4 !!!

Of cource with antenna now i have signal 21 where before
(without capacitor) i had signal 4,5,6,7,8…!!!

Finally …DO NOT REMOVE CAPACITOR!!!

I tried your solution but the processor heated up, thankfully i removed the supply quickly and checked the module with capacitor solder on it… LED is blinking but the situation is no different than before

Led of sim …is it blinks every 3 seconds ?..or faster?

As i said earlier, its blinking once after every 3 seconds but resets (blinks once per second) as soon as message is to be send

well…i dont know…
My last efford to may help you is this.

Are you sure your code is something like the below?

(and sim has money to send sms?..by the way!)

//opening sms dialog

sim->println(F("AT+CMGF=1"));//Max ResponseTime-

delay(100);

readSimToSerial(2000);



//AT+CMGS Max Response Time 60s

sim->print(F("AT+CMGS=\"")); sim->print(phone); sim->println('\"');

delay(100);



//sim.println("sms data here");

smsStoredWeights();



//closing sms dialog

sim->write(26);

sim->println();



delay(1000);

readSimToSerial(60000);

yes…structure is same but delays and rates are different

even if your problem seems not to have to do with delaying time
…i am just add my code BEFORE the previus(main job)…

bool openSimAndHasNetwork() {

unsigned long maxEndTime = romReadSimSecWaitAfterPowerOn();

//ser.println(maxEndTime);

if (maxEndTime < 11) {//minimum seconds time for network registration including below delay

maxEndTime = 11;

}

maxEndTime *= 1000;

maxEndTime += millis();

delay(6000);//minimum time for BASIC power up.Dont make questions to sim with no reason

/*foundOK = false;

while (!foundOK) {

sim.println("AT");

readSimToSerial(500);//WAITING for synchronisation and RDY

if (millis() > maxEndTime) {

  break;

}

}

if (foundOK) {*/

foundOK = false;

while (!foundOK) {

if (execAndReadATNetworkRegistration()) {

#ifdef DEBUGFULL

  ser.println(F("sim ready"));

#endif

  return true;

}

foundOK = false;

if (millis() > maxEndTime) {

  break;

}

delay(3000);//so  1st question 6 sec,2nd 9 sec,3rd 12 sec...etc

//ser.println("One more try to find network");

}

//}

return false;

}

Your modem is resetting every time it tries to send a message, that is because the module is not receiving proper power, for sending an SMS the module draws high current for short period of time, when this happens there is a voltage drop at the supply, if the voltage is dropped to below 3.6V (some modules have 3.4V threshold) the modem shuts down automatically, to prevent this we use a large capacitor at the supply side. Since you said that you didn’t use the setup for 40 months and used the same battery by charging it back, my guess is that the battery is dead and it shows 4V when measured through multimeter but fails to provide current when there is sudden peak in current drawn. Change the battery to new one and try once again

I have already tried this by replacing old batteries but it didn’t work either…one more thing, after going to reset state, the module can not re-establish the connection, and the LED continue to blink once per second.