My SIM800C, feeded directly from a 4.0V Li-ion battery (or once, from a Delta bench PSU) through a 1500 µF capacitor, instantly turns off when it wants to join to my 2G+ European network (e.g. in
EGSM_MODE) and that's why I want to upgrade its firmware.
CP2102 works both under Linux and Windows, I tried it with a GPS module.
CP2102 SIM800C Battery RX TX TX RX VCC + (through a 1500 µF capacitor, parallel) GND - PWRKEY - (for 2 seconds)
After I started the upgrade process, powered on the device, and grounded
STATUS pin went dark but nothing happens. The updater is still in its "Waiting" phase. The situation is the same with the Linux command line firmware updater.
How can I upgrade its firmware or make it to connect to my network some other way?
Further resources I read through:
VBATT is 4.0V, and
R3 are necessary to keep the
RX channel below 2.8V. I use the USB connection to communicate with the module. Without the USB attached to PC, the problem doesn't disappear.
I tried to connect to network with two SIM800C and two SIM800L modules (they have the same breakout pins). SIM800C tends to turn off immediately after 7 blinks while SIM800L restarts in this case. In case of SIM800L I can retrieve the operators successfully with
AT+COPS=? before it would restart itself. When either one is set to a wrong frequency on which my operator doesn't transmit or has its phone functionality disabled (
AT+CFUN=4) they don't turn off/restart themselves.
The Arduino Serial library I communicate with the SIM module is AltSoftSerial because of its reliability (besides the Chinese CH341-UART Converter found on the Arduino board itself).
I tried the small spring antenna (pictured above, soldered) and a really heavy one, too.
Way to the solution
As SamGibson correctly pointed out, the problem is with power supply. The first measurement with an oscilloscope shows that the power from 4.1V battery (marked with yellow) drastically drops to 3.13V (at ③) right before the module turns off.
The problem is the same with a power supply unit (
VCC is noisier due to the fact that power comes from the network). In the next picture colours denote the following lines:
- Yellow: VCC, 4.1V
- Green: Tx of the SIM module
- Blue: PWRKEY
- Red: Rx of the SIM module
This full picture shows that at 0s, after an Arduino reset, the
Serial library is initialised then
PWRKEY goes down for 1.2s turning the module on. From that point a slight power drop occurs and at about 15.5s (after 7 blinks) the module turns off after a power drop to 3.04V (marked with ⑤).