Problem Arduino and SIM7600 communication

Hello all,

I've got a big problem with the communication between Sim7600e-4G-hat and Arduino (Uno/Mega).

If I connect the SIM-shield direct via USB with the PC and run the SScom or Hercules-software I can send SMS to a Handy.

When I connect the shield with the Arduino, after upload the relevant sketch, it doesn't work.
I connected the SIM exactly like in examples with the UNO/Mega !

I tried different Jumper position, changed TX/RX and tried different Power-supply at the Arduino (5-9V 2.2A). Also the 9600 bytes are correct.

Also interesting could be, if I connect the PC via FTDI with the SIM, the sending from SMS works, when the Jumper at the B-B position. In the C-C position it don't work.

I contacted the Waveshare-Support for many times, but the reply was't helpfull.

Curious is that without the Arduino it works, but not with! Therefore I tried different other Arduino boards.

So do have anybody an idea, what could be the reason of that?

I many, many hours of time to solve the problem and now I'm at the end.

It would be very very nice, if anyone could give me a hint what cause that problem.

Thank you very much in advance for your help.

kindly regards, Joerg

@marschal, your topic has been moved to a more suitable location on the forum. Installation and Troubleshooting is not for problems with your project :wink: See About the Installation & Troubleshooting category

Code, schematic or block diagram (including pin numbers).
I definitely can help with the right info - I use SIM7600 modems every day.

Hello,
thanks for your fast reply.
I tried to run the SMS.ino-example for these Sim 7600.

  1. Code:
    /**
  • filename : SMS.cpp
  • brief : SIM7600CE 4G HAT demo
  • author : Kaloha from Waveshare
  • Copyright (C) Waveshare April 27 2018
  • Permission is hereby granted, free of charge, to any person obtaining a copy
  • of this software and associated documnetation files (the "Software"), to deal
  • in the Software without restriction, including without limitation the rights
  • to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  • copies of the Software, and to permit persons to whom the Software is
  • furished to do so, subject to the following conditions:
  • The above copyright notice and this permission notice shall be included in
  • all copies or substantial portions of the Software.
  • THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  • IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  • FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  • AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  • LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  • OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  • THE SOFTWARE.
    */

#include "Waveshare_SIM7600.h"

// Pin definition
int POWERKEY = 2;

char phone_number = "******"; // change it to the phone number you want to call
char text_message = "www.waveshare.com"; //

void setup() {
Serial.begin(9600);
sim7600.PowerOn(POWERKEY);
printf("Sending Short Message Test:\n");
sim7600.SendingShortMessage(phone_number,text_message);
printf("Receiving Short Message Test:\n");
printf("Please send message to phone %s.\n", phone_number);
sim7600.ReceivingShortMessage();
}

void loop() {

}

  1. Wiring:
    7600-Mega|640x480

One question, please? You mean the connected Pins?

Thank you in advance, kindly regards,

Yes, the connected pins -are- important on your diagram…

I don’t know that library -Waveshare_SIM7600.h"
Can you provide a link? Board and manuals…

One important thing…
The 7600 takes quite a while to complete the. power-on cycle… do you reach the point where the blue (hetwork) LED is flashing ?

All the 7600 functions you use take some time to complete… You may need to check if the modem is ready at each step of the process, and not rush through them.

Are you using the correct serial speed for your modem ? Mine all default to 4800, I have to set them for other rates.

Hello,

for sure:

  1. Board: SIM7600X 4G HAT (SIM7600E-H)

  2. Library Waveshare_SIM7600.h:


#ifndef Waveshare_sim7x00_h
#define Waveshare_sim7x00_h

#include <stdlib.h>
#if ARDUINO >= 100
#include <Arduino.h>
#else
#include <wiring.h>
#endif

//#define unsigned int uint8_t

/* Sim7x00 Class */
class Sim7x00 {

public:
// Pin definition
const static int powerkey = 2;
int userkey;

Sim7x00();
~Sim7x00();

// SIM query
void PowerOn(int PowerKey = powerkey);

// Phone calls
void PhoneCall(const char* PhoneNumber);

// SMS sending and receiving message
bool SendingShortMessage(const char* PhoneNumber,const char* Message);
bool ReceivingShortMessage();

// FTP download file to Module EFS or uploading EFS file to FTP
void ConfigureFTP(const char* FTPServer,const char* FTPUserName,const char* FTPPassWord);
void UploadToFTP(const char* FileName);
void DownloadFromFTP(const char* FileName);

// GPS positoning
bool GPSPositioning();

//TCP and UDP communication
// bool PDPSetting(const char* APN);
// bool TCPClientCM(const char* ServerIP,const char* Port,const char* Message,const char* MessageSize); //TCP Client Command Mode
// bool UDPServerCM(const char* ServerIP,const char* Port,const char* Message,const char* MessageSize); //UDP Client Command Mode
// bool TCPServerCM(const char* ServerIP,const char* Port,const char* Message,const char* MessageSize); //TCP Client Command Mode

// Other functions.
uint8_t sendATcommand(const char* ATcommand, const char* expected_answer, unsigned int timeout);
char sendATcommand2(const char* ATcommand, const char* expected_answer1, const char* expected_answer2, unsigned int timeout);
};

extern Sim7x00 sim7600;

#endif


  1. Manuel :
    https://www.waveshare.com/w/upload/6/6d/SIM7600E-H-4G-HAT-Manual-EN.pdf

Yes, I reach the point, where the LED is flashing

If I connect the SIM via FTDI and Jumper B_B-position all commands ran relativ quick.
So it seems, that the shield is okay.

I use 9600. All Information, examples, xxx.ino's and also in the manuel is that value used.
I tried to switch to 4800, also the com-driver, etc. but only <???> appeared in the serial monitor.
Also in the manuel is at least 9600 recommended.

Thanks in advance, kindly regards,

Ok, so at 9600 you are seeing startup and response strings from the modem…?

The network LED is flashing…
Everything is ‘working’ properly…

So, next, i would suggest that you add some Serial.print() in your initial code - then we might see what the modem is saying, and when…

Remember some of those commands take seconds to respond… if they just run without being ready, the modem will ignore the early/incomplete commands.

Typing into the native USB port is ‘slow’, and you might not really be aware the modem takes a little time to respond - ready for the next input.

p.s. that looks like a nice module!

Hello,
yes, I see the startup and yes, the LED is flashing.

In the SerialMonitor visible is:
AT
Starting up..
AT
AT
AT
and so forth

sometime additionally
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
AT+CREG?
and so forth

I've no idea, were I should introduce the serial.print()-command exactly.

Thanks a lot, kindly regards,

It looks like you’re not getting any ressponse from the modem.
I say this because when power is all,ied, the modem usually ‘identifies’ itself before your code needs to sends
anything.

Carefully check the modem tx pin to the Arduino… it may be open or shorted.

  • Of course the program may also simply be showing you what’s being ‘sent’ but it’s not actually getting to the modem either.

Or possibly, a better place to start is to put the existing code to the side for now, and write a very simple serial passthrough sketch, so you can type into the serial,terminal, directly to the modem (using the Arduino in the middle), then you’ll have control, and can see everything that’s coming and going.

Hi all,
do have anyone a wiring plan and a sketch available for me, which is correctly working, please.
I've contacted already the support from Waveshare frequently in the last weeks, but they delivered definitely wrong wirings and wrong sketch, which I can show and share obviousely.
It's really and fully frustrated.
What I for sure don't need again is an endless discussion with the result that I do have a problem with the Arduion and SIM7600 communication like discripted in the head line.
Thanks a lot in advanced,