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,

@lastchancename
Hi, this sounds like you are the person that might help me with the integration of a SIM7600E-H and a Nano with CH340G USB Chip for an LTE connection of a beehive scale with the beelogger.de webserver. Hardware is all ready and functioning and test sketches are pre-programmed by the beelogger people. Unfortunately the test sketch for the connectivity test fails with the information, that there is insufficient network strength (which cannot be true).
Im am an absolute Arduino beginner and also new to the forum. So if you could give me a hint in which section I have to place this topic and which information I have to provide to enable you to help me identify the problem I would be very grateful!

Thanks a lot - Phil

Did you try a simple loopback/pass-through sketch that echoes everything received on one port to the other?

This will allow your talk directly with the modem (AT commands), and see it’s responses.

Also, be careful, SoftwareSerial is a second rate solution, especially when used above 9600bps.
For a long term solution, I’d always go for hardware UARTS (2560 / 1284 etc)

Thanks for the fast response!

The system is using 9600 Baud anyway, so perhaps the problem is not so prominent? Anyway, I do not have enough experties to re-engineer such a system - already happy if I can make it run and implement the necessary modifications. Besides the system is solar powered and only sends a small dataset every 15 minutes before sending the whole system back to sleep for energy saving.

Do you have a link for a suitable loopback/pass-through sketch? Then I will try that.

I attach the Test-Sketch I use and the Serial Monitor Output - unfortunately it is in German, hope that is not a problem. Have to do it in three messages though as I am a new user...
Sketch: beelogger_SIM7600_Test
And this is the SIM7600E-H I am using:

Serial Monitor Output:

Sorry for the delay... you look like you're already there...

 const char VERSION[] = {" v190310"};  
//========================================================
void setup() {
  Serial.begin(115200); // CONSOLE port
	Serial1.begin(4800); // use your COM port & speed here for the modem 
	
	Serial.print(F("\n\nMODEM loopback test\nTry typing AT{return}"));
}

// ========================================================================
void loop() {
  char c;

	// echo characters received from the modem --> the serial console
  if (Serial1.available()) {
    c = Serial1.read();
		Serial.write(c);
  }

	// echo characters received from the serial console --> the modem
  if (Serial.available()) {
    c = Serial.read();
		Serial1.write(c);
  }
}
// ========================================================================

Hello Marschal,

Pretty sure you have those yellow header connectors in the wrong place. In your picture they are connecting the "USB to UART" port to the SIM7600 (so your direct link from a PC will work). When you use the Rx/Tx pins (from an Arduino ) you need to move the yellow headers to the centre. See page 4 of this

atb

Dear marschal and Philargyll- What country are you in? I am trying to find a 4g lte solution. I had purchased some 7600CE-t in error and found they do not operate on USA bands and i am in teh US and need a LTE solution, preferably to work on AT&T.
Does your 7600E-H work on US bands?
Please advise. thanks in advance for any help in my replacing my 3g - Arduino project.
Paul

Hello Paul,

Likely bad news I'm afraid. I'm using the "SIM7600X 4G HAT" from Waveshare which is a breakout for the SIM7600E. I'm in Europe, and it works just fine sending POST via simple AT commands. The bad news is that I cannot see a US version...

Best of luck

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