Leonardo - SIM7600E - Recieving garbage on serial monitor

Hi,

I'm trying to send an sms with a SIM7600E Module https://www.aliexpress.com/item/1005005413122713.html?spm=a2g0o.detail.pcDetailTopMoreOtherSeller.2.6170zkVvzkVvUv&gps-id=pcDetailTopMoreOtherSeller&scm=1007.40050.354490.0&scm_id=1007.40050.354490.0&scm-url=1007.40050.354490.0&pvid=6bd646cd-1901-4a83-b73d-f5213b8f66e5&_t=gps-id:pcDetailTopMoreOtherSeller,scm-url:1007.40050.354490.0,pvid:6bd646cd-1901-4a83-b73d-f5213b8f66e5,tpp_buckets:668%232846%238116%232002&pdp_npi=4%40dis!AUD!9.86!9.86!!!46.08!46.08!%402103200517130927758864855eb54c!12000032954678362!rec!AU!788006878!&utparam-url=scene%3ApcDetailTopMoreOtherSeller|query_from%3A

I have connected it directly to my laptop and used SSCOM to send AT commands and have successfuly sent myself a text message.

These are the commands I used in SSCOM

AT
AT+CMGF=1
AT+CMGS="+61412345678" (Not my real number, just a dummy for this post)
Test
HEX (1A)

That successfully sends a msg of "Test" to myself via sms. This was all done at a baud of 9600.

Now I want to do the same but use the arduino to send the informaton to the SIMCOM7600 module and this is where I need help.
The product states that the uart is ttl 3.3v.

I understand the leonardo is 5v, and therefore I need to convert the Tx pin on the arduino, down to 3.3v levels.

I have whipped up a voltage divider containing:

  • two, 1k resistors in parralel to make a 0.5k resistor
  • Connected it in series to a single 1k resistor
  • Powered the SIM7600 with a lab power supply (set to 5v)

The wiring looks like this:

The green blinking LED that indicates a positve network connection, starts blinking after about 15 seconds of providing power from the lab power supply.

Very simple program, just sending "AT" to see if I get the "OK" response.. I do not. Program below.

int x;

void setup() {
x=0;
Serial1.begin(9600);
Serial.begin(9600);
delay(3000);
}

void loop() {
Serial1.println("AT");
delay(100);

  while (Serial1.available()>0){
  Serial.print(Serial1.read());
  }

delay(10000);
x=x+1;
Serial.println(x);
}

Most of the time there is silence, sometimes I get gibberish like a square or an O with '' at the top or y with '' at the top etc.

My first thought was baud rate, so I tried all the 'standard' baud rates up to 115200. Same response or no response. So I disconnected the SIM7600 from the arduino and plugged it directly back into the computer. Then by using SSCOM, I sent the command to set the baud rate, set it to 9600 and the removed it from the computer again. Re-connected the cables again but no change in outcome.

Something weird is obviously going on in the serial communication. It could be due to my voltage divider, but I have a different 3.3v uart device that works with my voltage divider so its not total crap. And I tested the voltage coming out of the voltage divider with a multimeter, it is indeed 3.3v.

I could try software serial but that sounds like a dumb move.
on the SIM7600 board it says "URX" and "UTX". I'm assuming they're equivalent to Rx and Tx and there's nothing particularly special about the "U"? /I've no idea what the U means in this case.

Do you guys have any ideas I could try?

Thanks in advance

Ok solved it.

IT WAS THE BLOODY VOLTAGE DIVIDER UGHHHHHHHHHHH

After so many weekends trying all sorts of what ifs, trying different micro controllers, I ended up buying a $5 logic level shifter / converter from jaycar (local electronics store in Australia). And it worked correctly, first try. Bloody voltage divider boo!

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