Go Down

Topic: How to send a sms with a Sony Ericsson phone (Read 377779 times) previous topic - next topic

HULK

I have until now not found any good description on how to send a sms with a Sony Ericsson here on Arduino.cc .
Below i share my gathered knowledge and ask other to fill in if they have something to share.
First of i would say that connecting a newer modell of a SonyEricsson phone direct to the TX/RX pins will not work.
It seems as new Sony Ericsson phones need a TX/RX voltage of somewhere about 2,6V to get it working. If you use one of the listed older phones you should get it working with the 5V TX/RX from the Arduino.

T series :
T39, T68, T68i, T230, T250, T610, T630, T650i

K series:
K300, K310, K320i, K500, K510i , K530, K550i, K750i

W Series:
W200, W300, W550, W580, W600, W610, W660, W700, W710, W800, W810, W830, W850, W880, W900, W910

Z Series:
Z250, Z310, Z320, Z500, Z520, Z525, Z530, Z550, Z558, Z600, Z610, Z710, Z750, Z800, Z1010



To understand how to send a sms you need to check this link:
http://www.dreamfabric.com/sms/

For easy conversion of septets into octets use below link, it will save you a lot of time:
http://www.twit88.com/home/utility/sms-pdu-encode-decode
Use 00 for SMSC and then input your number in the receiver area.

Coding example is provided below, reason to why you need to wait 3 seconds between AT commands is that otherwise you will overflow the serial communication and the phone will ignore the commands.

Code: [Select]
     Serial.println("AT+CMGF=0"); // Set PDU mode
     delay(3000);
     Serial.println("AT+CMGS=19"); // Number of octets
     delay(3000);
     Serial.print("0011000B916407172132F30000AA05C8329BFD06"); // Sends "Hello" to "00 46707112233"
     delay(3000);
     Serial.write(26);
     delay(3000);



More AT commands can be found here: http://developer.sonyericsson.com/cws/download/1/707/466/1277362028/DW-65054-dg_at_2006--10_r17a.pdf

Have fun  :D

moustic

hello,

I have a T250i and I would like to connect it to my arduino to send sms.
The data cable I have is an usb one, coud you explain how I can connect them together ? I suppose I have to remove usb connector, but I don't know the pinout for the phone. Or is it possible to have a breakout connector somewhere ?

HULK

#2
Dec 30, 2010, 05:17 pm Last Edit: Dec 30, 2010, 05:18 pm by HULK Reason: 1
Sorry, do not know the pinout of the T250i.
I googled it and found below picture, if it is correct or not i can not say, you need to search for it on the internet.
Yes, you need to remove the usb connector and connect the cables to Arduino.


moustic

Hello,
I ordered a cable and received DCU-60 one.
pinout is like the picture. but I cannot make it to work with arduino

How can I test that the serial connection is well working ? i'm on a mac.


HULK

I suggest that you try try to connect your phone to the computer by the usb and then use a hyper terminal. Try to type just "AT" , you should get a "OK" back. Remember to set the baud rate to 9600.
If that works then you need to check your connections with the Arduino.
Maybe switch around TX and RX.
I assume that you have connected both the Arduino and the phone to the same grounding point otherwise it will not work.



moustic

The cables (2) I have are a Usb to sony connector. I cutted one to connect to the arduino. I still have the other ;-)

I don't know how to make this cable work, because I'm on a mac and I can't find any drivers. Maybe I'll try tomorrow at work on windows.

I also tried to connect to the phone with an empty arduino board .to use only the Serial converter through the serial monitor but I didn't receive any response to AT command.

moustic

I checked again here is the sketch I used to test :
Code: [Select]
#include <NewSoftSerial.h>

NewSoftSerial phone(2, 3);

void setup() {
 Serial.begin(9600);
 Serial.println("Arduino has booted.");
 phone.begin(9600);
 Serial.println("phone connected");
 
}

void loop() {
 if (phone.available()) {
     Serial.print((char)phone.read());    
 }
 if (Serial.available()) {
     phone.print((char)Serial.read());
 }
}


I tried swapping rx/tx .... nothing.

I will try on a windows PC tomorrow...

HULK

#7
Jan 11, 2011, 02:15 am Last Edit: Jan 11, 2011, 02:17 am by HULK Reason: 1
Let me suggest to connect direct to pins 0 and 1 instead.
Then try below code and see if you get a reply OK from the phone.
Code: [Select]



void setup() {

 Serial.begin(9600);
 delay(3000);

}

void loop() {

 Serial.println("AT"); //Asking the phone if the connection is working
 delay(3000);

 if (phone.available()) {
     Serial.print((char)phone.read());
 }
 if (Serial.available()) {
     phone.print((char)Serial.read());
 }
}


HULK

#8
Jan 11, 2011, 04:59 am Last Edit: Jan 11, 2011, 05:02 am by HULK Reason: 1
By the way you need to do some type of serial.read in the loop when not using the software serial library.
Remember to avoid using serial.print to display status text as it will confuse the phone, it can only understand a AT command.

moustic

I tried on windows and it is not even recognized by sony suite. So probably it is not possible to use this phone with arduino.

kristof

#10
Jan 12, 2011, 07:44 am Last Edit: Jan 12, 2011, 07:48 am by kristof Reason: 1
Hello, I have a K750i. I connected the phone on XP with hyperterminal. I had to choose the right COM port, but i can send AT commands and it response. I use your example and can send a sms  trough hyperterminal. In computer management I see that there are a few com ports when installing the phone. I had to choose the right one in hyperterminal, otherwise it doesn't work.
I then tried to connect the K750i with arduino. But no result. How does the arduino now witch com port to choose on the phone?
I connected the usb cable to the arduino, except the red (5V) because it than want to charge the phone. I don't now if there is a converter of some kind in the usb cable. Maybe it's better to connect straight to the phone?

Thanks!

klaus

Hello,

Thank you for the message :)

You said you think it would work all those models, however some don't have serial pins (RX/TX), only USB.

And isn't the DCU-60 cable for USB ? See http://pinouts.ru/CellularPhonesCables/sony_ericsson_dcu60_pinout.shtml.

Am I missing something ?

HULK

klaus,

Try using the USB data pins instead as RX/TX, should be the same.

HULK

kristof,

No need to set a com port for the Arduino, that is only needed for the computer.
Try to switch the TX/RX pins and remember to use pins 0 and 1 on the Arduino.
You could connect the red+ 5V as well to the Arduino, no problem if it charges the phone.


klaus

#14
Jan 18, 2011, 12:55 pm Last Edit: Jan 18, 2011, 01:03 pm by klaus Reason: 1
Thank you for the answer. It doubt it works if the phones uses USB and not RS-232 to communicate, but I'll try, we'll see.


May I ask you which model you did use ?

Go Up