Serial Comm probs arduino to GM862 modem

Hi Guys,

First of all please be gentle with me. These are still early days for me!

I’ve got a Telit GM862 Quad, but with no GPS or GPRS. Initially I’m trying to send an SMS using the arduino. I’ve bought a serial version of the arduino so I don’t have to worry about logic level translation or FTDI driver, serial to usb conversion etc.

The telit has logic level translation using MAXIM 3232.

If I send the appropriate AT commands using hyperterminal SMS is sent.

If I view the output from the serial arduino I see the appropriate commands to send an SMS. (If I cut and paste the commands driven by the arduino into hyperterminal to Telit an SMS is sent.)

If I connect the arduino to the Telit device the LED on the arduino blinks and nothing else happens. (I’m assuming the arduino is “hanging” until some precondition is met.)

I have tried :-

  1. extending delays between AT commands being sent to 1 second.

  2. turning off echo (using ATE0)

  3. Alternating flow control settings (AT&Kn)

Code is here-

Code:
//Serial comms to Telit GM862

Void setup(void) {
  
  Serial.begin(9600);
  Serial.print("AT\r\n");
  delay(1000);
  Serial.print("AT+IPR=9600\r\n");
  delay(1000);
  Serial.print("AT+CMGF=1\r\n");
  delay(1000);
  Serial.print("AT+CMGS=");
  delay(1000);
  // Replace with a valid phone number
  Serial.print("+44***********\r\n");
  delay(1000);
  Serial.print("Hello from Arduino.");
  delay(1000);
  // End the SMS with a control-z
  Serial.print(0x1A,BYTE);
}

void loop() {
}

If anyone has any suggestions it would be greatly appreciated.

Thanks - Tim

You do know that the GM862 transmits on RxD and receives on TxD (it’s a DCE, not a DTE)?

Leon

Hi Leon,

I think I’ve acknowledged the swap over on RX / TX but if it was wrong would that mean that hyperterminal wouldn’t work anyway, when talking to the GM862?

If hyperterminal could function with those swapped then I’ll give it a go.

Incidentally I had to look up the difference between DCE and DTE on wikipedia. Here’s the link if anyone else is interested.

http://en.wikipedia.org/wiki/Data_terminal_equipment

Cheers - Tim

On another point is there something wrong with the code. It’s as simple as I could figure ( I like things that way), for development purposes.

Is my assumption that - if the hyperterminal receives the info (from the arduino) in the manner that it would be sent (to the GM862), then bypassing the hyperterminal and connecting directly (from the arduino serial port), to the RS232 interface on the GM862 would yield the expected response.

I think that makes sense…

Tim

I’ve managed to resolve the issue by making up a new cable (RX, TX and Grd only). I’m still puzzled because I can use the existing cable for hyperterminal connection and it is the same cable I use to upload code to the arduino. Ended up scoping the TXI line and monitoring the difference between different connections - simple in the end.

Mighty relief all the same - now I’m getting texts telling me the temp in my office - small steps, but necessary ones…

Hope this info helps someone in the future or inspires them to keep plugging away until things work.

Regards - Tim.