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.
I downloded the proper upgrade tool along with the correctly sized firmware and with a CP2102 USB-to-UART converter I wanted to start the process.
CP2102 works both under Linux and Windows, I tried it with a GPS module.
Wiring:
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 PWRKEY
, the 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:
The original, non-firmware upgrading wiring to an Arduino Nano:
Here, VBATT
is 4.0V, and R2
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 ⑤).