A stub page for the SIMCom SIM800 GSM/GPRS module family:





Micropython code to implement a GSM mobile phone using a SIM800L module.
The functionality includes voice and SMS. The hardware consists of a pyboard (quickref), an LCD160CR colour touch screen and a SIM800L module.


The following two images show the front and rear views of the assembled phone.


Source code

– via: Micropython code to implement a GSM mobile phone | Hacker News

Data Sheets

SIM800 Hardware Design V1.08

Power Consumption

Power off mode: 150 uA
Sleep mode: 1.2 - 2.0 mA

(source: p. 56 data sheet)

Remark: The power consumption of 150 uA in “power off” is too much for our ultra low power needs and a battery driven setup that should run over month. So we have to use additional power switching parts like an MOS FET for powering and de-powering the SIM800 module.

another SIM800 -containing DIY feature phone (now with 2x 18650 LiIon, besides a PiZero, ATMega328p, ESP8266 and TP4056 Li-charger):

1 Like

ZeroPhone creator here. I see the phone itself not really suitable for your requirements (150uA power consumption being too high), and the software we’re using is likely not too suitable either (as it’s controlled by Linux). However, I have experience with using a SIM800 in a low-power setup - with power switched through a FET. The setup is: 1) ATMega328P on a breadboard, powered directly from a 18650 cell (implementing some kind of sleep mode) 2) a GSM modem with its VBAT connected to the battery through a FET (switched by ATMega) 3) an ultrasonic sensor (with VCC also switched using a FET driven by an ATMega). The setup takes measurements 4 times a day - reading the data from the sensor, turning the GSM modem on, sending measurements through GPRS and turning the modem off. The resulting code has been running for 87 days so far - no intermediate charges, battery changes or something like it (350 measurements received so far).


Thank you for sharing! What FET did you use (high side low side switch)? Could you use the FET only or did you use an additional
NPN transistor, see also Strom schalten, Transistor, Fet oder was anderes? 3,7V - 2A (peak!) - Lipo - Page 3

I used a IRLML6401 P-FET as a high-side switch - they’re relatively cheap, logic-level (don’t need a transistor either) and handle more than enough current. I didn’t have a GPIO-G resistor, but I did have a G-S resistor. (also, the diode isn’t needed in case of the modem, just to make sure everybody reading this understands it =) ).

in hope to illustrate this (schema detail of ZeroPhone)…


Good point! First I thought 4.2 V would be not a good idea on a 3.3 V device. Btw I’m using an IRLML6401 also.

13 posts were split to a new topic: SIM800-Modul mit ESP8266 und TinyGSM-Lib macht Probleme


The sister board of the TTGO T-Beam is a new tiny PCBA with a SIM800L and an ESP32; @CRImier might have seen this already! ;)

This might also be something interesting for @clemens as it brings two complete (W)WAN interfaces with it.


Super! Wenn das pinout-Diagramm stimmt sollte sich die Stromversorgung des Modul schalten lassen. Hoffe komplett ausschalten geht darüber!


Haven’t seen it, pretty cool, thanks for sharing! Will have to order this one sometime in the future =)

1 Like

soweit ich das verstehe meint diese tabelle meint die verbindungen zwischen esp und sim800l.
ich sehe eine serielle pwkey rst power.
industrie-standard. :)

vermutlich powered man das modem, in dem man die pwkey line (gpio4) triggered (wie knopf druecken, puls sollte also reichen).
zum ausschalten wird man dann allerdings via AT-foo arbeiten.
und falls das modem nicht reagiert reset-ed man das modul (gpio5) und macht es danach aus… wie sonst auch. ;)

Beim SIM800 muß der Puls an PWRKEY min. 1 Sekunde togglen, damit was passiert. Alternativ läßt sich AT+CPOWD=1 senden, aber das manual verweist darauf, daß das reset-Pin des Modems verwendet werden soll, wenn CPOWD=1 und PWRKEY nicht mehr helfen. PWRKEY ist auch nur ein GPIO, der funktionierende modem-firmware vorraussetzt…

Im power off state fließt beim SIM800 noch typ. 150 µA (IRTC), die kann man sparen, wenn nötig - aber halt nur per FET resp. POL.