Random learnings and other thoughts from an unashamed geek

N900: The Tale of the Indestructible Box

| Comments

This post is part 1 of a 3 part series. You may also be interested in: Part 2: N900: first impressions Part 3: N900: a phone for hackers? (coming soon…)

A week ago I was contacted by Lydia of WOMWorld.com/nokia who asked me if I would be interested in receiving an indestructible box. I was told that she found me via my twitter profile and felt it would appeal to my passions. After confirming the email was not spam I replied, intrigued, “yes please” and sent her my address.

Package Arrives

Yesterday it arrived. I opened the door to a delivery man who offered me a large cardboard box. Jof had suggested to me that it would likely be an N900 (which I had heard a little about but had not had time to look into) so I was expecting a small package. Surprised I was when the box the man handed me was so large and heavy - 35x35x35cm and 7.5kg!

Nokia Box

I took it indoors and opened it, to find a large package, cold to the touch, wrapped up in brown parcel paper and surrounded by polystyrene balls. Unwrapping this (and making a hell of a mess with the styrofoam balls which attempted to mirror the snow outside onto my living room floor) unveiled a 25x25x25cm black shiny box with a Nokia logo on top, a hinge and a small USB mini-B socket barely visible on one side. It was obvious that the top would open… but how? I wanted to attempt to hack it right away, but two things stopped me: firstly, I should be working; and secondly the box was wet with condensation from the sudden contrast with the cold outside. I went back to work. A hour and a half later I got temporarily stumped with a programming problem and decided to attempt to hack the box. My first step was to see what happened when I plugged it in to the USB. I booted into Ubuntu 9.10, ran dmesg -c to clear all the kernel messages, plugged it in, waited a few seconds, and ran dmesg again to see just the new logs:

[  314.544034] usb 6-2: new full speed USB device using uhci_hcd and address 2
[  314.747104] usb 6-2: configuration #1 chosen from 1 choice
[  314.811722] usbcore: registered new interface driver usbserial
[  314.811734] USB Serial support registered for generic
[  314.811764] usbcore: registered new interface driver usbserial_generic
[  314.811766] usbserial: USB Serial Driver core
[  314.823161] USB Serial support registered for FTDI USB Serial Device
[  314.823263] ftdi_sio 6-2:1.0: FTDI USB Serial Device converter detected
[  314.823283] usb 6-2: Detected FT232RL
[  314.823285] usb 6-2: Number of endpoints 2
[  314.823287] usb 6-2: Endpoint 1 MaxPacketSize 64
[  314.823289] usb 6-2: Endpoint 2 MaxPacketSize 64
[  314.823291] usb 6-2: Setting MaxPacketSize 64
[  314.825064] usb 6-2: FTDI USB Serial Device converter now attached to ttyUSB0
[  314.825077] usbcore: registered new interface driver ftdi_sio
[  314.825079] ftdi_sio: v1.5.0:USB FTDI Serial Converters Driver

I spotted the /dev/ttyUSB0 and instantly thought “minicom.” It took me a while to refamiliarise myself with the program and get it to connect, but soon I had fiddled with the speed settings (reduced it to just 9600baud from 115200) and was greeted the following output on my screen:

  _   _  ___  _  _____    _                                                    
 | \ | |/ _ \| |/ /_ _|  / \                                                   
 |  \| | | | | ' / | |  / _ \                                                  
 | |\  | |_| | . \ | | / ___ \                                                 
 |_| \_|\___/|_|\_\___/_/   \_\                                                
    W3lc0m3 t0 n0k14 h4x0rb0x!                                                 

 ? - displays help dialog                                                      

$-nokia h4x0rb0x->

Unfortunately I could not type into minicom. I experimented with the speed and parity settings some more (as they had helped before) but no use. Finally I disabled hardware flow control and voilà I could type. Then it was simply a case of typing “?” to find out what commands were available:

$-nokia h4x0rb0x-> ?                                                           
Available commands:                                                            

 ? - prints this help dialog                                                    

 connecting <argument> - opens box                                              

$-nokia h4x0rb0x-> 

And guessing what the argument to the nokia connecting command was…

$-nokia h4x0rb0x-> connecting people                                            

Initiation complete.                                                            

Start Connecting.                                                               

$-nokia h4x0rb0x-> 

The Box Opens

Hardly a challenge! A nice clichéd progress bar appeared for a few seconds and then *click* the lid popped open a little. I opened it fully and was pleased to see that they had even included dry ice to maximise theatrics, with the N900 packed safely waiting to be admired.

Nokia Winnings

They really put a lot of thought into this! I delved deeper and here are all of my winnings: That’s: an N900 with accessories plus a butane soldering iron, sports band, cake, and a little fox figurine. The box itself was powered by a Roboduino Nano (which I intend to repurpose later… not sure what as yet) hooked up to a solenoid:

Internals of the indestructible box

UPDATE: Techcrunch have a video of the opening - check it out!

Continue reading: Part 2: N900: first impressions Part 3: N900: a phone for hackers? (coming soon…)