SIM800L & SIM800L EVB v2.0 - Variations and wiring

Hi guys,

I've been posting in here over the past few months regarding the SIM800L module and there seems to be some confusion as to how it hooks up to your chosen Adruino board. From what I have read and understand the confusion comes with the different variations of the SIM800L module.

This one, which I believe is know simply as the SIM800L

And this version, known as the SIM800L v2.o, but I always add EVB to the end when I'm talking about it as it's mentioned on the board. Even with this board I have noticed that some boards have the voltage pin labaled 5v or 5v/4v which makes me think there are even different version of this board again. The main advantage to this board, correct me if i'm wrong, is that it has built in level shifting, unlike the bog standard SIM800L above? meaning it can talk to micro controllers like Arduinos more easily. I also can't find any official document on this variation of the module.

I am currently trying to connect my SIM800L EVB v2.0 to my Arduino nano, and wondering exactly how I go about it, I also want to understand exactly where each pin connects to and why.

Here is my best guess so far:

5V PIN > 5V 2AMP POWER SOURCE (+)

GND PIN (directly next the the 5V PIN) > 5V2AMP POWER SOURCE (-)

VDD PIN > Not sure what this is for but seen people talking about connecting these pins to Arduino 5V? related to level shifting?

SIM_TXD > Arduino D PIN 2 (software serial RX)

SIM_RXD > Arduino D PIN 3 (software serial TX)

GND (between SIM_RXD & RST) > Not sure but I think this would go to the GND of the Arduino (related to VDD above in some way?)

RST > Not go this going anywhere but I think it is just a reset switch?

Hope that makes sense and you guys can give me some feedback on it. As you can tell i'm still trying to find my feet with regards to circuits and electricity.

Thanks,
-Anton

Anton2k:
Hi guys,

I've been posting in here over the past few months regarding the SIM800L module and there seems to be some confusion as to how it hooks up to your chosen Adruino board. From what I have read and understand the confusion comes with the different variations of the SIM800L module.

This one, which I believe is know simply as the SIM800L

And this version, known as the SIM800L v2.o, but I always add EVB to the end when I'm talking about it as it's mentioned on the board. Even with this board I have noticed that some boards have the voltage pin labaled 5v or 5v/4v which makes me think there are even different version of this board again. The main advantage to this board, correct me if i'm wrong, is that it has built in level shifting, unlike the bog standard SIM800L above? meaning it can talk to micro controllers like Arduinos more easily. I also can't find any official document on this variation of the module.

I am currently trying to connect my SIM800L EVB v2.0 to my Arduino nano, and wondering exactly how I go about it, I also want to understand exactly where each pin connects to and why.

Here is my best guess so far:

5V PIN > 5V 2AMP POWER SOURCE (+)

GND PIN (directly next the the 5V PIN) > 5V2AMP POWER SOURCE (-)

VDD PIN > Not sure what this is for but seen people talking about connecting these pins to Arduino 5V? related to level shifting?

SIM_TXD > Arduino D PIN 2 (software serial RX)

SIM_RXD > Arduino D PIN 3 (software serial TX)

GND (between SIM_RXD & RST) > Not sure but I think this would go to the GND of the Arduino (related to VDD above in some way?)

RST > Not go this going anywhere but I think it is just a reset switch?

Hope that makes sense and you guys can give me some feedback on it. As you can tell i'm still trying to find my feet with regards to circuits and electricity.

Thanks,
-Anton

I have found this which may help
Quickstart SIM800 (SIM800L) with Arduino

Thanks artisticforge, I have read this exact article, I just read it again and went through the comments and the author has written.

"IMU VDD is connected to SIM800L VEXT [1]. It says VDD_EXT output 2.8V when module is in normal operation mode. This can be generally used for two purposes. Identify if SIM800L is in normal operation mode (as a test pin), and also to power some external device that runs with 2.8V when SIM800L reaches normal operation mode (maybe an external MCU). I have left VDD unconnected and have never used it so far.

[1] http://wiki.seeedstudio.com/images/4/46/SIM800L_Hardware_Design_V1.00.pdf

Best Regards."

2.8v hmmmm, i'm sure internally that is the voltage the sim800L runs at, even though this particular module I have (SIM800L evb v2.0) its self is powered by 5v and can communicate with the Arduino rx tx pins at 5v (thanks the the voltage level shifting that's built into the module). I just find it weird that there is one pin there with 2.8v, it must be used for something other than what the author has mentioned, or maybe i'm just paranoid.

Thanks,

Interesting reading, I've been thinking for quite some time to use one of those PCB's.
Thanks to both of you for explaining this. I'm gonna look for the correct PCB.

Sincerely yours,

Mike

Mikeb1970:
Interesting reading, I've been thinking for quite some time to use one of those PCB's.
Thanks to both of you for explaining this. I'm gonna look for the correct PCB.

Sincerely yours,

Mike

if you can afford it go with the Arduino MKR GSM 1400 board
https://store.arduino.cc/usa/mkr-gsm-1400

Wow! that looks like a really nice module! the price though! :open_mouth: love the small form factor! I have another GSM shield I bought from maplin here in the UK by a company called Linksprite, SIM900 GPRS/GSM Shield - LinkSprite Playgound this is a SIM900 board though. Between the SIM800L, SIM800L EVB v2.0 and this version of the SIM900, I found the SIM900 the easiest to get up and running and working reliably. I haven't figured out for sure the SIM800L and SIM800L EVB v2.0 yet but I'm sure once I do they will work just as good.

I'll report back here with wiring's and such for everything once I get it up and running.

if you can afford it go with the Arduino MKR GSM 1400 board
https://store.arduino.cc/usa/mkr-gsm-1400/quote]

Thanks for the info on this artisticforge, I have looked at the link, read it and I agree with you. If I want to try this I'd better get one with good documentation.

Yours,

Mike

Anton2k:
Wow! that looks like a really nice module! the price though! :open_mouth: love the small form factor! I have another GSM shield I bought from maplin here in the UK by a company called Linksprite, SIM900 GPRS/GSM Shield - LinkSprite Playgound this is a SIM900 board though. Between the SIM800L, SIM800L EVB v2.0 and this version of the SIM900, I found the SIM900 the easiest to get up and running and working reliably. I haven't figured out for sure the SIM800L and SIM800L EVB v2.0 yet but I'm sure once I do they will work just as good.

I'll report back here with wiring's and such for everything once I get it up and running.

part of that price is supporting future research and development of Arduino boards.

I normally purchase Arduino official boards because it supports future work.

So I have wired the SIM800L EVB v2.0 to my Arduino Nano like so,

5V PIN > 5V 2AMP POWER SOURCE (+)

GND PIN (directly next to the 5V PIN - although I think any of the 2 GND pins can be used) > 5V2AMP POWER SOURCE (-)

SIM_TXD > Arduino D PIN 2 (software serial RX)

SIM_RXD > Arduino D PIN 3 (software serial TX)

I did not use pins VDD, the other GND or the RST pins, all works fine - I'm using the TinyGSM library.

With regards to the power source, I had a 2S lipo, down stepped the voltage from 8.4v to 5v using a DC to DC buck converter, and that powers it fine.

I was hoping to power it with a 1s 1000mah battery, with a fully charged voltage of 4.2v, but i'm having some issues, I think my module needs 5v exactly, but at the same time everything I am reading is tell me I can operate at voltages from 3.6v to 5.2v (read here http://www.faranux.com/product/sim800l-v2-0-5v-wireless-gsm-gprs-module-quad-band/ pretty useful read) but I'm still trying to figure this out, I could use a voltage booster to get it to work. The article also contradicts it's self allot, saying that the module wont power up if the voltage is below 4.6v which would explain why my 1s 1000mah lipo aint working... It also mentions the operating current that is interesting. The DC to DC buck converter I'm using I'm sure has a max current outout of 3amps, its the LM2596. I don't suppose any of you guys know what a 1s 1000mah lipo can output with regards to amps? The article also states "we should not supply a current above 2.5 Amp (e.g 3-5 Amp) to the module, it will destroy the module even if your voltage is in 4.6 – 5 volts range." I thought that a power source could only consume the amps it needs, i.e. you can't force feed the module amps, you can give it 3amps to use, but it will only every consume 2.5amps, can someone confirm my logic is right here?

I also came across this: https://www.amazon.co.uk/Battery-lithium-Rechargeable-Batteries-CableFor/dp/B078JHGYWG/ref=sr_1_1?ie=UTF8&qid=1517493384&sr=8-1&keywords=amazon+9v+lipo looks really interesting, my guess is its just a Lipo with a built in voltage booster as well.

Hello,
This module can not be operated in spite of the 5V 2A power supply and the PIN-free SIM card which works on another model. The attempt to connect to the GSM network does not succeed and the NET LED flashes every 1 second then the RING LED goes off and on again every 10 seconds. The dialogue with the AT commands works

Some of my notes in case useful:

I am running some preliminary tests on the V2 EVB for use in a datalogger which will FTP the data to a server.

I am using a 2.5A 9V PSU with the Arduino connected directly and the GSM board connected via an LM2596 based DC-DC converter set with its output at 4.8V. The negative side of the supply seems to run straight through this so the GSM ground is common to the Arduino Nano ground.

The GSM TX and RX are connected to two digital pins on the arduino, I am keping D0 and D1 free so using the SoftwareSerial library to communicate on two other pins.

I'm using a GiffGaff sim card (UK).

Initial testing is with a simple sketch that echoes anything received from the serial monitor in the IDE to the GSM card and vice versa:

#include <SoftwareSerial.h>
SoftwareSerial gsm(2,3); //receive pin from GSM, Transmit pin to GSM

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
gsm.begin(4800);
}

void loop() {

if(gsm.available())
{
Serial.println(gsm.readString());
}
if(Serial.available())
{
gsm.println(Serial.readString());
}
}

SMS successfully sent using by sending

AT+CMFG=1

then

AT+CMGS=...

command (complete this command with the phone number to receive the message in double quotes, a carriage return, the message text, then terminate with ASCII character 26 (note: I downloaded Serial Monitor Deluxe to send non-printing ascii(26) to terminate the message).

File list and file transmit over FTP successful using the following commands:

Prepare for FTP:

Set full functionality (this parameter can be read using AT+CFUN?)
AT+CFUN=1

Start GPRS service
AT+CGATT=1

Set GPRS as service type
AT+SAPBR=3,1,"CONTYPE","GPRS"

Set APN for GiffGaff
AT+SAPBR=3,1,"APN","giffgaff.com"

Set username for GiffGaff
AT+SAPBR=3,1,"USER","giffgaff"

(note: Password parameter "PWD" is blank for GiffGaff so not set)

Start session (first argument) using profile number 1 (second argument)
AT+SAPBR=1,1

(To end session send AT+SAPBR=0,1)

Sets profile for FTP session to that set up above.
AT+FTPCID=1

FTP server IP address or domain name
AT+FTPSERV="web-ftp.ex.ac.uk"

Server username
AT+FTPUN="xxxxx"

Server password
AT+FTPPW="xxxxxx"

(Can also set ftpport (defaults to to 21), ftpmode (defaults to passive), ftptype (defaults to to binary ), ftpputopt (defaults to STOR , can be set to APPE for append) etc)

Read server file list:

Set server path
AT+FTPGETPATH="/services.exeter.ac.uk/utilities/test/"

Start FTP list session. Should get response +FTPLIST: 1,1. Other values of last parameter denote an error, e.g. 64 for timeout. Error codes as documented for PUT and GEP operations
AT+FTPLIST=1

Request the listing, last value is number of bytes to read. Modem responds AT+FTPLIST=2,n where n is the length of the data that will actually be returned (data may be shorter than requested length). If data followed by +FTPLIST: 1,1this indicates more data remains to transfer: send AT+FTPLIST=2,1460 again to request more data or AT+FTPLIST=1,0 to quit retrieving further data.
AT+FTPLIST=2,1460

Transmit file

Set destimation path, note trailing / or everything after last / is added to start of filename
AT+FTPPUTPATH="/services.exeter.ac.uk/utilities/test/"

Destination file, if ftpputopt set to STOR file must not exist
AT+FTPPUTNAME="MODLOG.CFG"

Extended put mode off, Only set if changing from 1, 0 should be default setting , can be checked with AT+FTPEXTPUT?
AT+FTPEXTPUT=0

Start file writing operation. Will return +FTPPUT:1,1,1360 if writing is possible Last parameter is maximum length of data that can be written at one time (in bytes). Response +FTPPUT:1,n is an error response (n=61 to 86, e.g. 64 Timeout, 66 not allowed (e.g. if FTPEXTPUT=1), 77 Operate error (e.g. destination file already exists).
AT+FTPPUT=1

Write data, second parameter is length of data to write. Then send that many bytes of data. To send more data, repeat. To exit dat awrite mode, send AT+FTPPUT=2,0. Response +FTPPUT:1,0 indicates data transfer complete.
AT+FTPPUT=2,1360

Other Commands:

AT+FTPSTATE
Returns whether a PUT, GET, DELE, SIZE etc session is ongoing, returns +FTPSTATE:1 if a session ongoing or +FTPSTATE:0 if idle.

To read a file from the server, Use FTPSIZE to find out size of a file, then FTPGET to read it in a similar manner to FTPPUT.

Resetting the GSM:

Could be useful if you get stuck in a read or write operation, or to reset to a known state. Connect the GSM RST pin to an output on the Arduino. Set this pin High. Set the pin low for 100ms to reset the GSM.

Indicator lights:

Ring LED normally lit when power applied to board, off when incoming call detected, flashes if input voltage too low and board will reset.

Net LED flashes fast when searching for a network, flashes slow when registered to network.

VDD Pin: Sets the logic level for the Tx and Rx pins. If 5V logic (e.g. Arduino Nano) this can be left disconnected.

I found this on a website:

Sim800L is a GSM/GPRS module. You can send a message, make a call, transfer data though the GPRS or something else.

Overview
This SIM800l module has a set of TTL level serial interface, a set of power supply interface. Besides, there are a set of antenna interface on this module.
The chip of SIM800L basic features
SIM800H is a complete Quad-band GSM/GPRS solution in a LGA type which can be embedded in the customer
Applications:
SIM800H support Quad-band 850/900/1800/1900MHz, it can transmit Voice, SMS and data information with low power
Consumption:
With tiny size of 15.817.82.4 mm, it can fit into slim and compact demands of customer design. Featuring
Bluetooth, FM and Embedded AT, it allows total cost savings and fast time-to-market for customer applications.
General features
•Quad-band 850/900/1800/1900MHz
•GPRS multi-slot class 12/10
•GPRS mobile station class B
•Compliant to GSM phase 2/2+
– Class 4 (2 W @ 850/900MHz)
– Class 1 (1 W @ 1800/1900MHz)
•Bluetooth: Compliant with 3.0+EDR
•FM: 76~109MHz worldwide bands with 50 KHz tuning step
•Dimensions: 15.817.82.4mm
•Weight: 1.35g
•Control via AT commands (3GPP TS 27.007, 27.005 And SIMCOM enhanced AT Commands)
•Supply voltage range 3.4 ~ 4.4V
•Low power consumption
•Operation temperature:-40℃ ~85℃
Specifications for GPRS Data
•GPRS class 12: Max. 85.6 kbps (downlink/uplink)
•PBCCH support
•Coding schemes CS 1, 2, 3, 4
•PPP-stack
•CSD up to 14.4 kbps
•USSD
•Non transparent mode
Specifications for SMS via GSM/GPRS
•Point to point MO and MT
•SMS cell broadcast
•Text and PDU mode
Software features
•0710 MUX protocol
•Embedded TCP/UDP protocol
•FTP/HTTP
•MMS
•E-MAIL
•DTMF
•Jamming Detection
•Audio Record
•TTS
•Embedded AT (optional)
Specifications for voice
•Triode
– Half rate (HR)
– Full rate (FR)
– Enhanced Full rate (EFR)
•AMR
– Half rate (HR)
– Full rate (FR)
•Hands-free operation
(Echo suppression)
Interfaces
88 LGA pads including:
•Analog audio interface
•RTC backup
•Serial interface
•Interface to external SIM 3V/1.8V
•GSM Antenna pad
•FM Antenna pad
•Bluetooth Antenna pad
Compatibility
•AT cellular command interface Certifications (Plan):
•CE
•GCF
•FCC
•ROHS
•REACH
The module Basic features
 Arduino 51 STM32 AVR MCU compatible
 Prototype expand
 The frequency is 850/900/ 1800/1900 MHz
 Power supply range: voltage is 4.6-5.2v; current is 1A or more (the current is very important).
 Operating temperature range: -40 degrees C to +85 C
 Communication interface: The TTL level serial interface compatible 2.85/3.3/5v MCU
 LED: Two led, the Net led and the RING led.
 Size:27*39mm
 SIMCARD: micro SIMCARD holder

The description of pins:
The name of pins Description
5v Power interface Power the module
CONNECT TO DC5v
GND
VDD TTL UART interface The TTL UART serial interface, you can connect the MCU like 51MCU or ARM or MSP430 directly. The pin of VDD is used to match voltage of the TTL.
SIM_TXD
SIM_RXD
GND if this pin is unused, keep open
RST RST the module, if this pin is unused, keep open
The name of pins Description
5v Power interface Power the module
CONNECT TO DC5v
GND
VDD TTL UART interface The TTL UART serial interface, you can connect the MCU like 51MCU or ARM or MSP430 directly. The pin of VDD is used to match voltage of the TTL.
SIM_TXD
SIM_RXD
GND if this pin is unused, keep open
RST RST the module, if this pin is unused, keep open

progfury:
Hello,
This module can not be operated in spite of the 5V 2A power supply and the PIN-free SIM card which works on another model. The attempt to connect to the GSM network does not succeed and the NET LED flashes every 1 second then the RING LED goes off and on again every 10 seconds. The dialogue with the AT commands works

I have exactly the same problem I would say - it blinks exactly in same way you are describing.
AT commands works, I am able to find networks around, but I can't register in any of it. It throws error.
What do you mean PIN-free sim? Do I need to set up PIN? How did you solve your problem?

Maybe someone else can suggest what to do? I can't register in network. Powering it up directly from Arduino Uno (Funduino)

CONNECT TO DC5v
GND
VDD TTL UART interface The TTL UART serial interface, you can connect the MCU like 51MCU or ARM or MSP430 directly. The pin of VDD is used to match voltage of the TTL.
SIM_TXD
SIM_RXD
GND if this pin is unused, keep open
RST RST the module, if this pin is unused, keep open

2 pins actually are unused on this board from my seller description. (SIM800L V2.0)

@jabalv , @progfury , did someone solve the module auto-restart problem every 10 sec?

enomis10:
@jabalv , @progfury , did someone solve the module auto-restart problem every 10 sec?

No, I put this project a side. I did ordered capacitor and will soon try solution that is mentioned in this thread:
https://forum.arduino.cc/index.php?topic=446966.0

What is the best microphone that can be used with this board due to the goldilocks issue of power