Nokia 6820 + Internet

Recipe for getting Nokia 6820 working with Linux laptop (Fedora Core 4) and CA-42 USB cable:

/etc/ppp/peers/rogers

/dev/input/ttyACM0 115200 crtscts debug usepeerdns nobsdcomp noipdefault
connect '/usr/sbin/chat -v -f /etc/ppp/peers/rogers.chat'
/etc/ppp/peers/rogers.chat
ABORT "NO CARRIER"
ABORT "ERROR"
ABORT "NO ANSWER"
ABORT "BUSY"
"" "ATZ"
OK "ATS0=0"
OK "AT&FV1&D2&S0&C1S0=0"
OK "ATS7=60+DS=3,0;&K3"
OK "AT+CBST=14,0,1;+CHSN=2,0,0,0"
OK 'AT+CGDCONT=1,"IP","internet.com",,0,0'
OK "ATD*99#"
CONNECT
CLI:
$ pppd call rogers
..
$ killall pppd

I don't seem to have the BSD compression module (bsd_comp) in my kernel, so I need nobsdcomp. usepeerdns and noipdefault seem to be necessary to get the LCP authentication to work. debug puts some information in /var/log/messages (not sure what syslog level; info maybe) and PPP logs in level daemon.debug - I had to add that to syslogd.conf. I didn't get this working till I read Greg's page - I had tried noipdefault after trying to see what was different in Windows but hadn't tried usepeerdns, and the PPP session would fail with Protocol-Reject and a message on the phone "subscribe to GPRS first" (same as if the APN setting is incorrect)

CGDCONT command overrides the APN code from the phone. This line is only necessary if you use more than one APN. AT codes are documented on forum.nokia.com.

The phone shows up as USB Vendor=0421 ProdID=0802. On one system I added "alias char-major-166 acm" to /etc/modules.conf, and I think I had to run some makedev command to create /dev/input/ttyACM0. I also copied it into /dev with a link to /dev/modem for the benefit of minicom, which didn't seem happy to have a device not in /dev/.
You can talk to the modem with minicom and enter AT codes - there are lots. Things like asking for the signal strength and cell ID. Not everything documented in the "Nokia GSM connectivity terminal AT command guide" works, though - addressbook commands didn't work for me.

(the CBST modem codes set the speed to 14.4k. But GPRS uses up to 8 timeslots so you should get up to 8*14.4 = 115k, more with EDGE ...)

Kernel Tuning

It may be advantageous to set /proc/sys/net/ipv4/tcp_keepalive_time to 1200 (20 minutes). Also possibly reduce txqueuelen in ppp0 ifconfig (must check..)

Gammu

gammu lets you transfer files to/from the phone over the USB cable. The config I have that seems to work is:
[gammu]
                                                                                        
port = /dev/input/ttyACM0
model = 6820
connection = dku5
logformat = nothing
startinfo = yes
Commans that seem to work:
gammu --setdatetime
gammu --getfilesystemstatus
gammu --getfilesystem 
gammu --getfilefolder 5
gammu --getallsms
gammu --addfile 3 some.jpg
Some folder IDs:
2 Gallery
5 Graphics
3 Images
167 Misc
7 Recordings

Downloading apps

You can download Java applets off the Web; you need the following MIME types set on the webserver:
application/java-archive jar
text/vnd.sun.j2me.app-descriptor jad
Click the JAD link; the phone should parse that and automatically download the corresponding JAR file.

It may be easier/cheaper to transfer apps over USB.

Resources:

Return to Vancouver Mobile Internet Blog
Andrew Daviel