TC35 GSM Module - Serial communication (2.65v level?)

Hello!

I am trying to use a Siemens TC35 GSM module with my Arduino Duemilanove.

The manual says:

The data interface is implemented as a serial asynchronous transmitter and receiver
conforming to ITU-T RS-232 Interchange Circuits DCE. It operates at CMOS level (2.65V).
All RS-232 signals on the ZIF connector are low active.
The GSM engine is designed for use as a DCE. Based on the conventions for DCE-DTE
connections it communicates with the customer application (DTE) using the following
signals:
• Port TxD @ application sends data to /TxD0 of the GSM engine
• Port RxD @ application receives data from /RXD0 of the GSM

The data interface is configured for 8 data bits, no parity and 1 stop bit, and can be operated
at bitrates from 300bps to 115kbps. Autobauding supports bit rates from 4.8kbps to 115kbps
(except for 14.4kbps and 28.8kbps). Hardware handshake using the RTS0 / CTS0 signals
and XON/XOFF software flow control are supported.
In addition, the modem control signals DTR0*)
, DSR0, DCD0 and RING0 are available. The
modem control signal RING0 (Ring Indication) can be used to indicate, to the cellular device
application, that a call or Unsolicited Result Code (URC) is received. There are different
modes of operation, which can be set with AT commands.
*)
The DTR0 signal will only be polled once per second from the internal firmware of
TC35/TC37.

How can I use this device with Arduino? I am not sure what kind of interface chips/curcuits I need...

Best regards,
Cherry

Which Arduino?

On a Mega2560 (like mine) I would just attach it to the Second Serial Port, -- the RX1, TX1 pair. The voltages are in range.

Look on this site for a library that you can use directly or modify for GSM hookup.

Many of them might not use the hardware handshaking indicated -- but that should be no big deal to hook up.

As I wrote at the top of my post, I am using a Duemilanove.

I don't want to use a Mega since firstly I don't have one here and secondly there is not enough space for it, all the other hardware has already been mounted.

I don't need a library either, because I am perfectly fine talking to the modem using AT commands. I tested everything using a RS-232 connection to my computer (I bought a development board where the TC35 is connected to a MAX232).

However I am not sure how to connect the TX0/RX0 pins of the TC35 to the TX/RX pins on my Arduino. I am confused because the documentation says something about "RS-232 signals", so I don't know if I need to invert the signal somehow, plus it says the voltage level is 2.65v, and as far as I know, Arduino's serial interface uses 5v. Maybe 2.65v signals work on Arduino's RX pin too, but I am afraid that pushing 5v signals into the TC35's RX0 pin might damage it. I already tried using a voltage divider like this: Arduino TX ---- 10k resistor ---- TC35 RX0 ---- 10k resistor ---- GND, so the TC35 should get ~2.5v, but it didn't work. It looks like the Arduino can't even receive data (maybe 2.65v are really too low)...

Use MAX232 IC. RS232 Converter DIP - MAX232 MAX3232 - COM-00316 - SparkFun Electronics
Here is a short tutorial about the difference RS232 vs TTL signals: RS-232 vs. TTL Serial Communication - SparkFun Electronics

Now I am confused.

I thought, the MAX232 converts 5V/0V to RS232 (-12V/+12V)? I need to convert 5V/0V to 2.65V/0V (and vice-versa)!

Alright, solved.

It's working well now!

Hey Cherry.

I'm looking at buying the same GSM module to use in a little project of mine.

Did you manage to get it to work, -and how.?

Cheers /David