Palm Centro Bluetooth Enabler
Script Information
I recently owned a Palm Centro (although I no longer do and now I do yet again), which is a nice device except for the part where it lacks Wifi connectivity. To combat this problem, I put together a script that allows me to connect to the computer from the Centro using bluetooth, and have my computer act as a router for the unit, allowing it to get on the internet over the bluetooth connection.
It uses AppleScript and Perl, and has three parts. It can be easily modified to work on Linux.
BluetoothEnabler.scpt
set mypath to POSIX path of (path to me) set interfaces to do shell script "/bin/bash '" & mypath & "Contents/Resources/Scripts/getinterfaces.sh'" set ttys to do shell script "/bin/bash '" & mypath & "Contents/Resources/Scripts/getttys.sh'" set interfacedialog to display dialog "Which interface is connected to the internet? (Interfaces on this system: " & interfaces & ")" default answer "en1" set syncttydialog to display dialog "Which serial port is the Bluetooth PDA sync port? (Ports on this system: " & ttys & ")" default answer "Bluetooth-PDA-Sync" set sharettydialog to display dialog "Which serial port is the Bluetooth modem sharing port? This should have been added by you before running this script. If you haven't done this, click cancel, open Bluetooth preferences, go to advanced, and add a new, non-secure port of type Modem, then re-run this enabler and put it's name in this dialog. Ports on this system: " & ttys & ")" default answer "sharing-port" set theinterface to the text returned of interfacedialog set thesynctty to the text returned of syncttydialog set thesharetty to the text returned of sharettydialog display dialog "The enabler will now run, starting a PPP server on " & thesynctty & " and " & thesharetty & ", directing packets between them, using " & theinterface & " as a default gateway. It will enable kernel-level packet forwarding and NAT. This needs to be run each time the system is booted before the Palm will be able to connect, and not more than once. It will require your password to run, and it may take a short time to complete. Configuration instructions for your handheld will be displayed when it is complete." do shell script "sudo /usr/sbin/pppd /dev/tty." & thesynctty & " 115200 noauth local passive proxyarp asyncmap 0 silent persist :10.0.1.201 &" with administrator privileges do shell script "sudo /usr/sbin/sysctl -w net.inet.ip.forwarding=1" with administrator privileges do shell script "sudo /usr/sbin/natd -same_ports -use_sockets -log -deny_incoming -interface " & theinterface with administrator privileges do shell script "sudo /sbin/ipfw add divert natd ip from any to any via " & theinterface with administrator privileges do shell script "sudo /usr/sbin/pppd /dev/tty." & thesharetty & " 115200 noauth local passive proxyarp asyncmap 0 silent persist :10.0.1.202 &" with administrator privileges display dialog "The enabler has run. You can now try to connect from your Palm. Your Palm should be paired to this computer. The Palm should be configured with a connection profile set to 'Connect to PC via Bluetooth', and the device should be set to your computer. Under details, you will need to set the spped to 115,200 bps, and the Flow Ctl to automatic. You will also need to create a new network profile, set to use the connection you just created. No username or password is necessary. Under details, the idle timeout should be set to never, and under advanced, specify an IP address of 10.0.1.201. You may use whatever DNS servers you like, reccomended are 4.2.2.1 and 4.2.2.2. Once this is configured you should be able to connect."
getinterfaces.sh
#!/bin/bash
ifconfig | perl -e 'while($line=<STDIN>){($int)=$line=~/^(\w+\d):/;if($int ne "" && $int ne "lo0" && $int ne "gif0" && $int ne "stf0"){$allints .= $int." ";}} $allints =~ s/\ $/\n/; print $allints'
getttys.sh
#!/bin/bash
ls -1 /dev/tty.* | perl -e 'while($line=<STDIN>){($int)=$line=~/\/dev\/tty\.(.+)$/; $ints.=$int." "}$ints=~s/\ $/\n/;print $ints;'
Post Revisions:
- 27 July, 2011 @ 2:47 [Current Revision] by Kay Leacock
- 27 July, 2011 @ 2:47 by Kay Leacock
- 27 July, 2011 @ 2:45 by Kay Leacock
- 27 July, 2011 @ 2:45 by Kay Leacock
Also Check Out
Tags
android
apache
applescript
assembler
autoit
bash
beta
bugfix
c
camera
code
cpld
essay
flash
html
irc
lighttpd
mac
micro
mobile
networking
not very good
palm
patch
perl
phones
photography
php
poe
proof of concept
robotics
screen scraping
sms
spherebot
tinyurl
tools
uni
uni first year
uni second year
vhdl
weather
web
webdav
windows
writing
Lifestream
-
Listened to Can't Speak French - Girls Aloud.
-
Listened to For the Heart I Once Had - Nightwish.
-
Listened to Zelda's Ocarina - 近藤浩治.
-
Listened to In Pieces - Linkin Park.
-
Listened to Martyr [single version] - Depeche Mode.
-
Listened to Time - Codeine Velvet Club.
-
Listened to (Let's Go) Get Lost - Patrick Wolf.
-
Listened to Piper's Song Aeroplane Remix - Gypsy & The Cat.
-
Listened to The Black Roses - Codeine Velvet Club.






