Tim Hatch

Weblog | Photos | Projects | Panoramas | About

About The t509 EDGE Script

First off, many thanks to Ross Barkman for his great scripts. I guess this phone is just nonstandard enough that his generic 3G script didn't work -- however, it was the source for this version that does.

This is a modem script for OS-X (as of 10.4.6) that will allow use of a Samsung T509 cellphone to access the Internet with EDGE speeds on T-Mobile at least. It's based entirely on Ross's 3G script but with a bit of tweaking discovered after a lot of googling that allows you actually get this phone to connect!

Just editing the script so it would work got me to connect at 67kbps, but a lot more editing took the speed up to 218Kbps!

Other Phones?

I have one confirmed report that the T629 also works with this script, however it is unknown whether it supports EDGE. It also works with other carriers besides T-Mobile (US), however I am providing instructions and support specifically for this combination. You're welcome to email me with questions regarding other phones or providers — however my help may be limited since I can't try it myself.

Downloads

Latest stable verison is samsung-t509-modem-0.1.zip, or browse the distribution directory for older versions.

They are distributed in zip files to make sure OS-X doesn't add any extension to the script itself.

Installation

FIRST make sure you have an internet plan with T-Mobile. They have a $5.99 one called T-MobileWeb that you can use with the APN wap.voicestream.com and a $29.99 one that includes unlimited internet and hotspots both, that uses the internet2.voicestream.com APN. If you manage to get on a $19.99 Unlimited Internet plan please let me know how so I can tell others. The blackberry plan apparently uses the wap.voicestream.com APN as well.

Unzip, and drag Samsung t509 Tmo to /Library/Modem Scripts/. Then reboot… for some reason, the modem script list only refreshes on boot. Then set the following options:

  • PPP Options: "Send PPP echo packets" disabled, and "Use TCP header compression" enabled
  • Bluetooth Modem: "Enable error correction and compression in modem" disabled, "Wait for dial tone before dialing" disabled
  • Phone number: your APN (see Ross's list). For me, this is internet2.voicestream.com
  • Username and password: see list above, but for me is guest:guest

If you have any problems getting this to work, or otherwise want to make a suggestion, my email address is tim@timhatch.com

Long Story of How This Came About

I got this phone over lunch today to replace an Ericsson T610 with a cracked screen. My first priority was to get Internet connection working and test out EDGE speeds. It turns out that none of the scripts or helpful hints out there seem to work for this specific phone. They all result in a one-sided PPP handshake that looks like this in /var/log/ppp.log:

Tue Jun  6 17:40:32 2006 : Terminal connection established.
Tue Jun  6 17:40:32 2006 : using link 0
Tue Jun  6 17:40:32 2006 : Using interface ppp0
Tue Jun  6 17:40:32 2006 : Connect: ppp0 <--> /dev/cu.Bluetooth-Modem
Tue Jun  6 17:40:34 2006 : sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xedfdd86a> <pcomp> <accomp>]
Tue Jun  6 17:40:37 2006 : sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xedfdd86a> <pcomp> <accomp>]
Tue Jun  6 17:40:40 2006 : sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xedfdd86a> <pcomp> <accomp>]
Tue Jun  6 17:40:43 2006 : sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xedfdd86a> <pcomp> <accomp>]
Tue Jun  6 17:40:46 2006 : sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xedfdd86a> <pcomp> <accomp>]
Tue Jun  6 17:40:49 2006 : sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xedfdd86a> <pcomp> <accomp>]
Tue Jun  6 17:40:52 2006 : sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xedfdd86a> <pcomp> <accomp>]
Tue Jun  6 17:40:55 2006 : sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xedfdd86a> <pcomp> <accomp>]
Tue Jun  6 17:40:58 2006 : sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xedfdd86a> <pcomp> <accomp>]
Tue Jun  6 17:41:01 2006 : sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xedfdd86a> <pcomp> <accomp>]
Tue Jun  6 17:41:04 2006 : LCP: timeout sending Config-Requests
Tue Jun  6 17:41:04 2006 : Connection terminated.
Tue Jun  6 17:41:04 2006 : Serial link disconnected.

Which is followed by a dialog about how the other side isn't responding.

It turns out the dial line for the t509 is very picky, and requires you to specify tone dialing (when logically a cellphone would only do tone), and also specify the longer magical string *99***1#. None of this was documented for the tech people I was in contact with.

It was quite by accident that I mixed up two dial strings that were spoken and ended up with a working set of commands which works with the Null Modem scripts when entered manually:

AT+cgdcont=1,"IP","internet2.voicestream.com"
ATDT*99***1#

This still didn't help with making it dial automatically, and the next level tech support had me speed test at 2wire with a result of around 67Kbps, a respectable GPRS speed, but didn't seem like EDGE. I live close enough to DFW that I thought I was in an EDGE area.

After coming up with this command set, I started hacking around with Ross's 3G script and pared it down to remove most of the error checking, negotiation, and force the speed to the fastest. I doubt most of this was really necessary, but I can tell you that as it is right now, speed tests from 2wire and SpeakEasy report a download speed of 218Kbps and an upload speed of 72Kbps!

The contents of /var/log/ppp.log now look like this when using the script available here:

Tue Jun  6 21:20:19 2006 : Samsung t509 Tmo
Tue Jun  6 21:20:19 2006 : CCLWrite : AT\13
Tue Jun  6 21:20:22 2006 : CCLWrite : AT\13
Tue Jun  6 21:20:22 2006 : CCLMatched : OK\13\10
Tue Jun  6 21:20:22 2006 : CCLWrite : AT+cgdcont=1,"IP","internet2.voicestream.com"\13
Tue Jun  6 21:20:22 2006 : CCLMatched : OK\13\10
Tue Jun  6 21:20:22 2006 : Making 3G connection
Tue Jun  6 21:20:22 2006 : CCLWrite : ATDT*99***1#\13
Tue Jun  6 21:20:25 2006 : CCLMatched : CONNECT
Tue Jun  6 21:20:28 2006 : Serial connection established.
Tue Jun  6 21:20:29 2006 : using link 0
Tue Jun  6 21:20:29 2006 : Using interface ppp0
Tue Jun  6 21:20:29 2006 : Connect: ppp0 <--> /dev/cu.Bluetooth-Modem
Tue Jun  6 21:20:30 2006 : sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xa9a52d06> <pcomp> <accomp>]
Tue Jun  6 21:20:30 2006 : rcvd [LCP ConfReq id=0x1 <asyncmap 0xa0000> <auth pap>]
Tue Jun  6 21:20:30 2006 : lcp_reqci: returning CONFACK.
Tue Jun  6 21:20:30 2006 : sent [LCP ConfAck id=0x1 <asyncmap 0xa0000> <auth pap>]
Tue Jun  6 21:20:30 2006 : rcvd [LCP ConfRej id=0x1 <magic 0xa9a52d06> <pcomp> <accomp>]
Tue Jun  6 21:20:30 2006 : sent [LCP ConfReq id=0x2 <asyncmap 0x0>]
Tue Jun  6 21:20:30 2006 : rcvd [LCP ConfAck id=0x2 <asyncmap 0x0>]
Tue Jun  6 21:20:30 2006 : sent [PAP AuthReq id=0x1 user="guest" password=<hidden>]
Tue Jun  6 21:20:30 2006 : rcvd [PAP AuthAck id=0x1 "Login OK"]
Tue Jun  6 21:20:30 2006 : Remote message: Login OK
Tue Jun  6 21:20:30 2006 : PAP authentication succeeded
Tue Jun  6 21:20:30 2006 : sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
Tue Jun  6 21:20:30 2006 : sent [IPV6CP ConfReq id=0x1 <addr fe80::020a:95ff:feac:ef76>]
Tue Jun  6 21:20:30 2006 : rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01>]
Tue Jun  6 21:20:30 2006 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
Tue Jun  6 21:20:30 2006 : rcvd [LCP ProtRej id=0x2 80 57 01 01 00 0e 01 0a 02 0a 95 ff fe ac ef 76]
Tue Jun  6 21:20:33 2006 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
Tue Jun  6 21:20:34 2006 : rcvd [IPCP ConfReq id=0x1 <addr 192.200.1.21>]
Tue Jun  6 21:20:34 2006 : ipcp: returning Configure-ACK
Tue Jun  6 21:20:34 2006 : sent [IPCP ConfAck id=0x1 <addr 192.200.1.21>]
Tue Jun  6 21:20:34 2006 : rcvd [IPCP ConfNak id=0x2 <addr 10.172.107.117> <ms-dns1 66.94.9.120> <ms-dns3 66.94.25.120>]
Tue Jun  6 21:20:34 2006 : sent [IPCP ConfReq id=0x3 <addr 10.172.107.117> <ms-dns1 66.94.9.120> <ms-dns3 66.94.25.120>]
Tue Jun  6 21:20:34 2006 : rcvd [IPCP ConfAck id=0x3 <addr 10.172.107.117> <ms-dns1 66.94.9.120> <ms-dns3 66.94.25.120>]
Tue Jun  6 21:20:34 2006 : ipcp: up
Tue Jun  6 21:20:34 2006 : local  IP address 10.172.107.117
Tue Jun  6 21:20:34 2006 : remote IP address 192.200.1.21
Tue Jun  6 21:20:34 2006 : primary   DNS address 66.94.9.120
Tue Jun  6 21:20:34 2006 : secondary DNS address 66.94.25.120

Changelog

2006-06-06: 0.1
  • Initial version, EDGE speeds