Can't communicate SIM868

Hi! I'm trying to send the most basic command ("AT") throught serial port to get a response from a SIM868 module. There aren't any tutorials to follow of this module so I don't know if I have to do something special to enter in AT mode :smiling_face_with_tear:

Module: SIM868

Code:

#include <SoftwareSerial.h>
SoftwareSerial SIM868(7, 8); // RX, TX

void setup()
{
 SIM868.begin(115200);
 Serial.begin(115200);
 delay(100);
}

void loop()
{
 if (Serial.available() > 0)
 SIM868.write(Serial.read());
 if (SIM868.available() > 0)
 Serial.write(SIM868.read());
}

Connections:

VCC β†’ 5V Power Supply
GND β†’ GND Power Supply
TX β†’ RX Uno
RX β†’ TX Uno

Hope you can help me!

have a look at the SIM868 manuals, application notes and user guides. Check such things as power up sequence, default baudrate, etc.
if you have an oscilloscope check the voltage Tx and RX levels (when idle should be 5volts) and see if you can see signals when you transmit from the Uno. If you don't have a scope use a multimeter to check voltages.
In particular check the voltage levels of the UNO 5V are suitable for the SIM868 - if it is a 3.3V device you will require level converters.
Edit: checking online, e.g. Raspberry Pi Pico SIM868 GSM/GPRS/GNSS User Guide, it appears that the logic level of the SIM868 is 3.3V. To use it with the Arduino Uno you will require level converters to convert between the Arduino UNO 5V levels and the SIM868 3.3V levels. It is probably simpler to use an Arduino which is a 3.3V device, e.g. the Arduino Due which also has the advantge of multiple hardware serial ports

Even if you’re doing the right thing, SoftwareSerial isn’t going to help you at 115200 bps.

in the the python code of Raspberry Pi Pico SIM868 GSM/GPRS/GNSS User Guide, the UART baud rate is set to 115200baud.
As mentioned by @lastchancename in post #3 SoftwareSerial would not be able to support this. You require Arduino with hardware serial ports running at 3.3V such as the Arduino Due.

Okay, I've been doing some tests:

1. Changed to Arduino MEGA board. It means that I don't need SoftwareSerial library because it has more Serial ports (using Serial and Serial1).

2. Measured Rx and Tx voltage from SIM Module (with analogRead) and it's true that the logic level used is 3.3 V:

3. Using this (HW-221) level converter so I can convert 5V signals into 3.3V and 3.3V into 5V. The communication problem between modules should be solved, I measured voltages with a multimeter in the 3.3V and 5V ways and everything seems to be ok.

4. Found This PDF (698.8 KB). It is some kind of guide and provides some information about the pinout. It explains:

"This shield has a set a TTL UART serial, which is capable with 5v system or 3V3 system. When the controller is 3.3v system, you need connect the VDD pin to 3.3V; when the controller is 5v system, you need connect the VDD pin to 5V"

I connected VDD pin to 3.3V. But, does it mean that shield can handle a 5V logic level if I connect VDD to 5V?

5. I've found this in "SIM800 Series AT Command Manual":

A HEX string such as "00 49 49 49 49 FF FF FF FF" will be sent out through serial port at the baud rate of 115200 immediately after SIM800 Series is powered on. The string shall be ignored since it is used for synchronization with PC tool. Only enter AT Command through serial port after SIM800 Series is powered on and Unsolicited Result Code "RDY" is received from serial port. If auto-bauding is enabled, the Unsolicited Result Codes "RDY" and so on are not indicated when you start up the ME, and the "AT" prefix, or "at" prefix must be set at the beginning of each command line.

I can see things throught serial port when I power on the module but not "00 49 49 49 49 FF FF FF FF" . What I see:

FF FF 9B FF 3F AF FE 3D BF FA FF FE FF FB FF E7 D7 FF F7 FF FF DF 67 FE FD FB FF FF A7 5F FF FF FD F7 F7 FF FF 7F FA E6 F7

FB FF 67 BF EF F5 FF FF DF FD FB FE 7D D3 F3 FF F6 FD F7 EA FE EF FF FC BF 74 FF F7 FF FE FE AF 7F 57 FF FF F6 FD E7

FF D7 7F 1F FF B6 FA F6 FF DC FF FF ED FF 77 7D B7 FF BF FF EB FD 8F FF ED 5F BB BF FB FE 1A EB DA D1 EA 53 AE F9 F6 7D FF 27 FF FF B7

6. Still no response when I send "AT" :frowning: .

7. The code used in the power on:

void setup() {
  Serial1.begin(115200);
  Serial.begin(115200);
  delay(5000);
}

void loop() {
  if (Serial1.available()) {
    Serial.print(Serial1.read(), HEX);
    Serial.print(" ");
  }
}

8. The connections:

Arduino MEGA:
VIN β†’ 5V Power Supply
GND β†’ Common GND
TX1 β†’ B1 Converter
RX1 β†’ B2 Converter

Level Converter:
VA β†’ 3.3V Power Supply
VB β†’ 5V Power Supply
GND β†’ Common GND
A1 β†’ RX SIM868
A2 β†’ TX SIM868
B1 β†’ TX1 Arduino
B2 β†’ RX1 Arduino

SIM868 Module:
VCC β†’ 12V Power Supply
GND β†’ Common GND
RX β†’ A1 Converter
TX β†’ A2 Converter
VDD β†’ 3.3V Power Supply

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.