Google Android Dev Phone 1

I’m stoked – I’ve got a G1!  This is actually a Google Android Dev Phone 1 that I purchased second hand from a friend.  Back in January 2009 I had a chance to play around with one of these while in California (borrowed from a Googler who got it from work), my impression then was “ok, neat – but its basically a computer in your hand” – a different reaction than what I had with the iPhone.  At the time both were at a premium price and I had only recently bought my Nokia 5310.  Between then and now I bought an iPod Touch that I have enjoyed a lot yet had nearly endless frustration with iTunes.

My G1 is running cyanogenmod v4.2.15.1.  The hardware is very similar to the iPhone/iPod Touch.  CPU is 528MHz ARM 11, 192MB RAM, 320 x 480 capacitive touch screen. One bonus feature is that this version of the phone supports AWS/1700megahertz/BandIV which is the frequency that WindMobile is using in Canada (T-Mobile uses this in the US).

Today my service provider is Fido.  I’m on the $15 plan ($16.95 after taxes), this is sufficient for my phone usage as I’m a light user. Unfortunately it doesn’t include call display or voicemail (+$10 option), nor is any data included.  The phone had been wiped and reset when I got it, and I needed to get past the “Welcome to T-Mobile G1” screen.  Unfortunately the built in menus only provide the option to configure an APN.  Not wanting to incur any data charges (last time I did this on my 5310 it was $12 for a few hundred kb!) – I wanted to figure out how to hack around this.

Not surprisingly I was able to find a solution online that allows you to activate your G1 without using any mobile data.  I’m using Ubuntu 9.10 (and the phone is running cyanogenmod) so the directions there were not exactly what I needed, so I’ll briefly repeat them here with the changes.

1) Grab the Android SDK. Install it following the directions, which really boils down to extracting the archive.

2) Now we’re going to modify /etc/udev/rules.d to give normal users (ie: you) permission on the USB port the phone will use.
Create the file /etc/udev/rules.d/50-android.rules with the contents (permissions 644).

SUBSYSTEM==”usb”, SYSFS{idVendor}==”0bb4″, MODE=”0666″

$sudo restart udev

You can skip this step if you want to run steps 4 and 5 as root.

3) Connect the phone and your PC using a USB cable.  The phone does need a SIM card installed.  Boot the phone.

4) Now we run <install path>/android-sdk-linux_86/tools/adb devices to check if we’re properly connected to the device

$ ./adb devices

List of devices attached
HTxxxxxxxxxx device


(where the x’s are your actual device number)

5) Now back to the phone, tap on the “Welcome to T-Mobile G1” screen to get to the setup page.  Then issue the following command on your PC from the tools directory:

$ ./adb shell

# am start -a android.intent.action.MAIN -n com.android.settings/.Settings

The “am” command is actually executing on the phone itself.  This should start up the configuration dialog that allows you to setup a wireless 802.11b/g network.  After this point it should be pretty self explanatory to get yourself setup with the phone.

The screenshot in this post was done using the Android SDK as well.  I’m sure I’ll have more to say about Android and this phone soon.

BitPim and the Samsung M300

Jenn has a pay-as-you-go cell phone, while its a relatively inexpensive phone (Samsung M300) it has reasonable battery life, and its small.  One of the unexpectedly useful features was a camera, sure its not able to take very nice photos but sometimes your phone is the only camera you have handy “in the moment” (like when the kids go on a mud-puddle adventure).

Unfortunately with the pay-as-you-go plan, there wasn’t any way to get the pictures off the camera.  No data service meant you couldn’t email them from the phone, and the phones bluetooth connectivity seems to be limited to headset profiles.  The data cable was cheap enough on eBay so I thought I’d take a risk and see what could be done with one.

Once I had the cable, it was time to find some software.  BitPim seemed to be the right choice for me (free, and available on Linux).  The Ubuntu repositories have a version that works [sudo apt-get install bitpim].

You’ll want to run it as root, or mess with the /dev entries for USB to grant your user enough rights to access the phone.  The BitPim software handles the capabilities of the M300 in two ways, treating the one phone as effectively two devices.  The first is the “media” version, this allowed me to copy down the pictures from the phone.  The PIM version needed a bit more fiddling as it wasn’t actually detected properly.  I did manage to get it to download the contents of the phonebook from the phone.

Now it turns out that the Bell Mobility firmware for this phone seems to be different enough from the US version that BitPim simply won’t work for writing to the phonebook.  Someone else ran into exactly the same problem as I did. Of course, this was after I managed to delete all 60 phonebook entries that were already stored in the phone. Oops.  I think Jenn has now forgiven me.

I’ll reference the excellent HowardForums for all your cellular information needs. And a pointer to a Samsung page which provides a data access utility (that sadly still fails with the firmware I have).

Beachcombing

A bit of an absence from updating the blog over the past month, due primarily to being busy with work/home.  I hope to get back to my regular cadence of something every week or so, and I’m going to start with something lighthearted.  There are several more technical articles I’ve got on the go, hopefully I’ll get those cleaned up and ready to post soon.

Late last summer we headed west to Vancouver Island, this is a regular trip as many of my relatives are out that way.  We took a break from visiting family and spent some time in Parksville, specifically down on Rathtrevor Beach.  The first morning we were there, I took a walk with my daughter as the tide was out.  Not five minutes from the cabin I came across a cell phone (pictured above) sitting on the wet sand.

Not seeing anyone around for literally miles, there was a very slim chance I was going to get this back to the owner.  I figured I’d see if it was in working shape or not.  Turns out it didn’t work, and was likely pretty water logged.  Popping it open let me determine the exact model number (Samsung SGH-J706), and based on the SIM card which revealed the carrier it appeared to be a pay as you go phone.

Things started to seem grim when I took a look at the charge port on the phone, not a great sign to see corrosion and salt build up.  It was pretty clear this was very likely junk, but I couldn’t just pitch it into the trash.  It ended up coming home with me where I got a chance to open it up [you could probably tell that was coming..]

The J706 is a slider phone, the screen slides up to reveal a keyboard underneath.  Pretty slick, and I can’t help but think back to The Matrix whenever I have one of these in my hand.  Disassembling the slider was educational, I was able to take it all apart – and put it back together.

Unfortunately, once I had it apart it was pretty clear this wasn’t ever going to work again.  I often wonder if its possible to repair phones that have gotten wet (you see these on eBay from time to time) but a good soak in saltwater looks like a one way ticket for electronics.  The LCD screen seems to have been fairly well sealed, and some of the parts may have been in a working state as well – but it should be evident from the photo that much of it was a complete write-off.

Reassembled and cleaned up, it looked cosmetically fine.  The slider mechanism worked smoothly too.  In the end, I took it into BestBuy’s cell phone trade-in program: I figured that at least they could recycle it properly.  I was up-front with them about the non-working condition of the phone, and they did check it for water damage (there is a little indicator under the battery usually).  The representative told me if it had been in working shape it was worth $60, I figured that was the end of the conversation and told him just to recycle it – but he stopped me and said, let’s see what I can give you for it.  Turns out it was worth $7.61 – I walked away with a gift card feeling pretty lucky.