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.


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: SIM800C wiring

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.

Arduino wiring 1 Arduino wiring 2

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.

Power drop, zoomed

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

Power drop, PSU, full picture

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 ⑤).

  • \$\begingroup\$ I'll assume this SIM800C is on a pre-made PCB module, which you bought. (a) Has your SIM800C successfully connected to a GSM network in the past? (b) "instantly turns off when it wants to join to my [...] network" How did you confirm (e.g. using an oscilloscope) that the power supply voltage reaching the SIM800C (I don't care about the claimed battery voltage :-) ) remained high enough when it tried to join the network? (c) Did you try using a bench PSU instead of the battery? (d) Please edit your question and add a clear, close-up photo of your hardware, showing all wiring & components. \$\endgroup\$
    – SamGibson
    Mar 2, 2018 at 12:05
  • 1
    \$\begingroup\$ Yes, correct assumption :). (a) No, it never could connect to network, not even once. (b) I confirmed it with an oscilloscope some weeks ago, but I'll re-measure it on Monday to be sure. (c) Yes, with a Delta bench PSU (4.0V, 5A) (d) Of course, I'll create the photo and the circuit diagram tomorrow. \$\endgroup\$
    – szotsaki
    Mar 2, 2018 at 14:03
  • \$\begingroup\$ Thanks for those answers. I think it'll be worth editing those into the question too, as they have revealed some new information (which is why I asked them :-) ). So based on what you have said: (e) Why do you believe that a firmware update is the solution? Or is that your plan just because it's something you can do without additional cost? (f) How have you eliminated the possibility of this just being a faulty module, given that it has never successfully connected to the GSM network? || Please can you edit your question to add more context and list your troubleshooting (& the results) so far. \$\endgroup\$
    – SamGibson
    Mar 2, 2018 at 17:39
  • 1
    \$\begingroup\$ I created a schematic to be able to comprehend the two photos more easily. (e) Well, I simply cannot think anything else just a faulty firmware. If it could be brought to life without it, I'd be really happy. I tried with three other modules (two from a slightly different product line) but none of them could connect to network. Of course it's rather likely that I messed up the wiring but I simply cannot see my mistake. \$\endgroup\$
    – szotsaki
    Mar 3, 2018 at 22:16
  • 1
    \$\begingroup\$ Monday evening I'll catch the exact signals with an oscilloscope. With a multimeter I see 3.9V while trying to register and 4.0V when being turned off, but it's nowhere near as accurate as the former. \$\endgroup\$
    – szotsaki
    Mar 3, 2018 at 22:23

2 Answers 2



Everything you are reporting is consistent with a voltage drop at the module, when they require extra current to connect to the network (up to 2A pulses during RF transmit).


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.

So the problem is not just with one module, but affects several - which suggests problems with your setup rather than the modules.

That behaviour of the modules is consistent with voltage drops causing erratic functioning or reset. Therefore I would not continue with your plans for doing a firmware upgrade, as I believe that would be wasting your time, and might damage what are probably functioning modules (power interruptions when writing to flash, could leave the modules without a working, bootable, firmware).

Read these questions describing similar power-related problems:

How to properly power sim800l module?

GSM Module gets into reboot loop

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.

Again, that fits completely with a power-related problem. AT+CFUN=4 disables the RF transmitter (and receiver) which causes the brief spikes of higher power-drain, which causes the problem. The same is true when the module can't "hear" a cell tower to talk to.

Thanks for the photos you added. They have been useful in confirming some problems:

  • The battery is simply too far away from the module. The photos don't show the full length of the battery-to-breadboard wires. However the resistance & inductance of those long wires + breadboard "tracks" will seriously affect current flow to the module during high-current drain e.g. RF transmit.

  • The wires going to the battery holder also appear quite thin - thinner than the normal "Dupont" jumper wires. This is a concern, as thin wires will cause greater voltage drop under load, than thicker wires.

  • The 1500 uF capacitor is also too far away from the module, so the resistance & inductance between it and the module reduces its ability to supply the additional energy required under the extra load during RF transmit.

    The capacitor must be close to the module - "close" meaning within a few mm, not 15+ cm away (look at the length of the wires carrying power between the module and the power tracks on the breadboard, and then the length of the breadboard tracks to the capacitor and battery). And those cable lengths are effectively doubled, as the return current has to travel the same distance.

  • I've never tried using 18650 batteries for powering such modules, but beware that not all 18650 batteries meet their specification; there are many fakes which will measure 4.2V after charging (so they might seem OK) but have small capacity and higher internal resistance.

  • When you tried using a bench power supply, this likely added extra cable length to the power network, so if your problem is related to extra resistance & inductance in the power cabling, then even a stable power source may not have been good enough.

Using an oscilloscope to measure the power supply voltage on the module itself during RF transmit should confirm the problem. The fact that you see a voltage dip during RF transmit even on a multimeter, is a good indication to do further investigation.

Changes which may be part of a resolution could include:

  • Move the battery holder closer to the GSM module and shorten all wires carrying power to the module to an absolute minimum (i.e. not using the standard length "Dupont male-to-male" jumper cables you are currently using);

  • Use thicker wires connecting to the battery holder;

  • Mount the additional capacitor (or preferably an SMD alternative) onto the module itself with minimal length leads - e.g. as a piggy-back to the existing tantalum capacitor visible on the lower-left corner of the module (I expect that tantalum capacitor is across VBAT, but you should double-check).

  • 1
    \$\begingroup\$ Thank you very much for such detailed suggestions. You are right, the issue is with the power supply. I updated my original post to show the oscilloscope measurements (just to confirm you). I've already ordered sturdier battery holder and thicker wires. I tried to put capacitors really close and cut down the length of the Dupont power cables, but those didn't help; so next I'll solder a 470µF electrolytic capacitor onto the tantalum one. \$\endgroup\$
    – szotsaki
    Mar 6, 2018 at 6:54

The problem you faced mostly happen with the tiny GSM module. I faced the same issue with sim800C it wasn't registering to the network but it shuts down within 6-7 seconds. Firstly, i saw a power pin on it which was named PWK. I connected it to the GND for 2 seconds it started to boot up but after few seconds it goes back off. After alot of research i found nothing on google at all even this site didn't help me. I found out solution my self. When i connected PWK with GND for two seconds it boot up then i disconnected it and connected it to battery +ve terminal. This made it work. Your module dont have naked PWK pin. Go and search for it. Take a look on the pinout of the main chip you may find it from google easily. enter image description here

Take a look of pin number 39 it is PWR key. Check its traces and also do check is it powering it up or not in the correct way. Checking with oscilloscope would be a nice and easy solution. One more thing i'd like to add is that it works best at 4.2v max if you go above this voltage or below 3.2v it may power up but then goes shut down immediately. These shutdowns are called low voltage or overvoltage shutdown. I read it all on simcom website who made these modules. Good Luck..!

  • 1
    \$\begingroup\$ The problem described in the post is certainly a power problem. Also, you can ground the PWRKEY pin permanently to make the module ignore it and just boot automatically. \$\endgroup\$ Jun 8, 2019 at 23:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.