Before giving the specifications of my project, I'd like to say that I'm a total beginner in electronics but I do have a background in IT development.

I also want to apologize if this question has been answered already but I can't find any thread that answers this specific question.

I am trying to power a SIM800C GSM module via Li-Ion battery but it doesn't seem to work. The module is powering-up fine and SEEMS to work since it blinks every 3 seconds after a short period (seems it's connected to the network) but when I send the AT command via my PC (going through a NodeMCU), I got no response.

In the meantime, if I power up the module via my PC, it works just fine, the module is able to answer the AT command.

The SIM800C works in an 3.3-4.4 Volts DC input range and on 400mA up to 2A. My battery outputs 10.8 up to 12.6 Volts DC and 4800mAh.

The amps seemed high to me so I unbuilt the battery and discovered 3 little batteries in series, each outputing 3.7 to 4.2 Volts and 1500mAh.

I then proceeded to power the module with a single little battery and by the led blinking 1 time every 3 seconds I could tell the module was powered-up and theorically working, but still no response on the console.

I also tried to power-it up via the charger of my phone and the same effect goes : The module is powered-up but doesn't take AT commands.

To sum up what works and what doesn't, I'll link two schemas, one is a "working" one and the other isn't.

Below is the working one :

Working schema

And then, the non-working one :

enter image description here

I read here and there that I should use capacitors or resistors, but I am totally lost under all the information.

Do you know how should I proceed to get the answer from AT commands ?

Thanks in advance and once again, sorry for my noobyness

Edit: Here is a photo of the montage. We can see the NodeMCU being powered by USB in the center, the battery in the bottom left as well as the GSM Module (SIM800C) in the bottom right of the picture.


  • \$\begingroup\$ What is "boot pin" and where is your ground? \$\endgroup\$
    – Maple
    Jul 25, 2018 at 12:45
  • \$\begingroup\$ The BOOT pin is used to boot up the module. Thanks for trying to help me ! \$\endgroup\$ Jul 25, 2018 at 12:57

2 Answers 2


Have you ensured that there is a shared ground between the SIM800 module and the NodeMCU module? In your first example this common ground would be provided by being connected to the PC over the USB connections but in your second schematic there doesn't appear to be a connection.

Even though you have the NodeMCU GND pin connected to the BOOT pin on the SIM800 you should provide a dedicated ground to make sure that everything shares the same point of reference.

See this post for further information: Why do networks need a common ground cable?

  • \$\begingroup\$ Thanks for you answer ! I read the thread you gave me, and I think I understand the general idea, but I can't figure out what to solder to what as I'm a total noob. Should I leave it as it is and ADD a ground cable ? (But where to where ?) \$\endgroup\$ Jul 25, 2018 at 12:54
  • \$\begingroup\$ If you add a link or photograph of your current setup that might help. \$\endgroup\$
    – anonymous
    Jul 25, 2018 at 15:12

I suspect there is a case of mistaken pinout here. To be absolutely sure it would be helpful if you post high resolution photos of both sides of your SIM800C board.

When I search for these modules on web most of them look just like yours:

enter image description here

Note that pin next to VCC is called "RST", which is "reset". There are also boards that look like this:

enter image description here

The pinout is identical, only the pin is called "BOOT". However the text in the picture says "link GND".

I suspect this is what caused the confusion. In both cases this pin is connected to PWRKEY input on SIM800C. Here is what the description says:

PWRKEY should be pulled low at least 1 second and then released to power on/down module.

I guess this is what whoever made that picture meant under "link GND": "connect this pin to GND to establish the link". It did not mean "this is ground for link connection".

So, there are two things you have to do:

  • You need to add ground wire from NodeMCU ground to SIM800C GND pin.
  • You need to disconnect RST/BOOT pin from NodeMCU ground and connect it either to free NodeMCU GPIO pin or to this new common ground from step 1 via a button.

If you use a button you press it for 1 second to power on SIM800C. If you use GPIO pin then in your code you have to output "0" for 1 second, then make pin tri-state.

  • \$\begingroup\$ Thank you for your research and patience ! I managed to power the NodeMCU AND the SIM module just with one 12V battery and it works ! I will try the solution you gave above as soon as I receive more components, as my project (if it works) is meant to be industrialize. Thanks again for your effort and research ! \$\endgroup\$ Jul 26, 2018 at 10:18
  • \$\begingroup\$ I am glad I could help... but if what I see on your pictures is part of industrial solution then I am a freaking astronaut! You cannot design industrial solutions without such a rudimentary knowledge as common ground. \$\endgroup\$
    – Maple
    Jul 26, 2018 at 11:25
  • \$\begingroup\$ Haha I know what you're saying. This is just a prototype (I may have skipped crucial info, my bad) for now, I'm planning to go see a friend of my parents who owns an enterprise doing electronic things with satellites and all for a complete review and how I can greatly improve my proto AND my knowledge :p I am well aware that if I industrialise this myself, I won't do much ;) When I can, I'll test your solution and mark your comment as the solving one if I manage to make it work, but I can't guarantee when ... \$\endgroup\$ Jul 26, 2018 at 11:32

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.