OpenMoko - My first impressions
On January 2nd, I purchased a Neo1973 Base from direct.openmoko.com.
My first interaction with FIC, the company that manufactures the Neo, was that of excitement. They have a decently beautiful site that highlights exactly why one would want the Neo – freedom, hackability, being on the cutting edge and having a sexy looking device. I felt no qualms at all with inputting my credit card number and shipping info. Immediately I got a confirmation via e-mail and everything was good.
As I waited excitedly the next day, checking my e-mail every few minutes to see if the confirmation had arrived (did I mention I was excited?) I began to get a bit annoyed by the end of the day. I then checked out the OpenMoko Wiki and found some information regarding the shipping procedure. I found there two things of interest:
Firstly, the price listed on direct.openmoko.com is an estimate. FIC is based in Taiwan, not the USA, so the USD amount I saw was the “target” - they would actually charge my debit card in New Taiwan Dollars in an amount equal to the current exchange rate.
The second thing I learned was that order processing took 3 to 5 days. Okay, “fine” I told myself. I could restrain my excitement.
It wasn't until January 8th my debit card was actually charged and I received confirmation that my order was processing. Perhaps I'm spoiled by NewEgg's wonderful shipping procedure but I consider a 6 day turn-around to be horrific. In addition to being a software libre geek, I am also a home brewer. In home brewing I deal with specialty supply shops to purchase my hops, grains and yeast. Some of these shops are run by retired military vets with little internet experience and some are decently skilled in the internet but in any case they can still manage to have my order packaged, shipped and at my door in a week – I fully expect a company called FIC (First International Computer) to have their order system automated enough to process orders efficiently. I console myself with the notion that they've got a room full of hackers plugging away to get the GTA02 “mass market ready” who simply can't be bothered to check e-mail and fill out UPS invoices.
Later that night I got confirmation that my package had shipped via UPS and included was a tracking number. I excitedly (again, did I mention how excited I was?) plugged the tracking number in to UPS's site and found that my package would be delivered on... the 14th! Have I really been THAT spoiled by NewEgg? I had debated over getting “expedited” shipping on one of many forms, but I decided against it - “standard” UPS shipping was decently fast, I reasoned. I guess not – this package was going to take almost a week more to get to me from California (for the record, NewEgg ships from Whittier, CA most of the time too). It seems NewEgg's “standard” shipping is NOT UPS's “standard” - lesson learned.
The weekend wait for the Neo was pretty easy, I managed to brew a beer on Sunday using my new Barley Crusher, so time went by rather quickly. Sunday night I decided that I was going to drive my wife to work, and rather than go to work myself immediately, I would drive BACK home and await the Neo's arrival. Luckily, my job offers enough flexibility that I'm able to do that without much issue.
At 11:09 am, my Neo arrived. My decision to return home was a good one – FIC ordered a signature before delivery. I normally HATE when companies do that (With 6 hour long delivery windows I can't afford to take a day off work to sign for a package. I work 55 miles from home so picking up my package from a UPS facility ALSO requires I miss work. Sign for packages = bad). In this case, however, I was a bit happy, since it was a rather expensive shipment – and I was pretty sure insurance wasn't part of UPS's “standard” shipping either.

Above is the box that arrived at my door. It was a pretty plain box, no fancy buzzers or bells (I truly didn't expect them but I have to make this dramatic – did I mentioned I was EXCITED?) and attached to the top was a packaging slip. I opened the box with my keys to find that there were blocks of very thick black foam covering packing peanuts. Buried beneath the peanuts was a bubble-wrap packed white box. This foam was very thick and in general the whole thing was well packed.

Inside the bubble wrap was a clamshell box that I thought was inventive. My wife has been in the printing industry since high-school so printing and packaging are her passions, I suppose it's rubbed off on me.

Once opened the clamshell splits again (once each way) to reveal the “goodies” that I've been so long awaiting.

I won't go over every piece in the box but every piece has been photographed by me, if you're interested in seeing those images please check out the OpenMoko album of my image gallery. The Neo handset itself was enshrined in the familiar anti-static anti-UV bags but it was the first time I'd personally seen self-adhesive anti-static bag – it was kind of neat.

All of the contents of the clamshell unpacked. There's the carrying case, lanyard, headset, spare ear buds, USB cable, stylus, battery, memory card and Neo handset.
While photographing the handset, I noticed that the screen itself seemed very reflective and I often saw myself in my own shots. This worried me, since I figured if it reflected my image it would also have horrible issues with glare when in normal use.

Eager to “get on with it” I held down the POWER button for about 4 seconds and the phone gave the smallest of shudders as the vibrator pulsed for a moment and the screen flickered to life. For anyone who has read articles about OpenMoko on the Neo you've heard “the screen is nice” but it's impossible to take a picture that shows exactly how sharp this screen is. When the backlight came on I was greeted with a black and orange splash screen which quickly gave way to a “typical” Linux boot up – Tux at top and white text on a black background. As small as the text was it was still remarkably clear – just so small it's hard to read.

The Wiki explains this very clearly, so I wasn't alarmed by it, but the very first boot ends in a kernel panic. The “simple” answer is that there's no software other than the Linux kernel and the boot loader (u-boot) itself, so it fails to load anything. End users won't have this happen to them (OpenMoko will be DOA if it's required) but developers will have to flash their own kernel, root file system (rootfs) and (potentially) u-boot image.
At this point, I realized I was “pushing it” by not going to work, so I packed up my Neo and accessories, uploaded my pictures to my wife's Ubuntu system, crashed it and then went over to my Debian system to burn my newly taken Moko images to CD and then went to work.
At work I began my “flashing” after reading up on the Wiki. What was slightly confusing for me was the out-of-date nature of the Wiki. While it's pretty clear once you understand some terminology for someone “new” it can be quite scary – the term “bricking your device” is used enough to scare the hell out of me and I'm fairly comfortable tinkering with “internals”. A quick post to #openmoko on Freenode led me to a how to find daily build images page which kicked me over to buildhost. The recommendation I got was pretty much “Use the newest images” - this makes a TON of sense since the software is rapidly changing.
Flashing the Neo itself was a trivial task and I suppose it will get even easier once the OpenMoko build tools become packaged for popular distros like Debian and Ubuntu. In my case, it meant plugging in the USB cable to my computer and my Neo, downloading dfu-util and compiling it – the whole process took about 30 second so it's a FAST compile as well as simple. I then downloaded the uImage file and the rootfs image for the GTA01 (about 48 MB combined), launched u-boot (hold AUX, power the Neo on) and issued one command to flash the kernel to the Neo. The second command flashed the rootfs to the Neo – a slightly longer process that took about 13 minutes. The downside to this flash is that once the phone enters u-Boot mode it will power down after 60 seconds of inactivity and it doesn't consider USB transfer to be “activity”. This means every 45 seconds or so I pressed the AUX button to keep things “alive”. I'm sure I looked stupid to my office mate, but oh well. (For the record, there IS a solution for this but I was excited and just wanted the thing to work).
Once the flashing was complete I restarted the Neo and it booted without problems (no kernel panic!). This time, once the splash screen was done I was greeted with a whimsical sounding chime (audio works!) and the phone proceeded to load my home page.
At this point I hadn't charged the device or installed the SIM or microSD cards, so I powered down, installed them and powered back up. The Neo doesn't do a “quick charge” unless the device is powered on so unless it's totally dead, it needs to be on to charge.
I worked on “work stuff” for a few hours before turning my attention back to my Neo. This time I decided I'd play with GSM and attempt to make a phone call. This entire time the top toolbar was saying “Registering...” which alarmed me – was my SIM card incompatible? There is currently an open bug pertaining to 3G SIM cards (mainly AT&T ones, but possibly others) and I was afraid mine was affected. I pulled opened the GSM quick menu (at the top of the screen it looks like a Triforce-on-a-stick) and clicked “Auto-register with network” which I assumed it would have already done. The phone sat there, still displaying “Registering” while I went into the applications menu and fired up a terminal (ain't it sweet? CLI on my phone!). To see what was happening, I issues a “dmesg” and almost immediately I got a popup (it looks very “Gnome”-like) indicating I was connected to my T-Mobile network.
At this point, I opened up the dialer and punched in what I thought was my phone number (to check my voice mail ) and was a bit shocked... Someone answered! It happened to be my wife (my phone number ends in 7446, hers 7445) and we both chuckled. I noticed two things about the call. Firstly, I can very much hear “air” through the ear piece. It is my understanding that as of this moment there's no noise-canceling software of the phone so the microphone picks up (and sends) everything. The second was that even without noise canceling software, the call quality was comparable to a “regular” phone – at least in the mid-range phones I'm used to dealing with.
On the ride home from work, I excitedly showed my wife the Neo. She's super supportive of me and my obsessions with brewing, computers and freedom, so she was poking at it inquisitively rather than finding “broken” things to criticize like some people would (especially after what I paid for it). While I had focused on the phone, the interface and the hardware the first thing she did was find the games menu. I have to hand it to the interface designers on this one – either I've been clueless or they did their research. While I have to poke and prod to find a “rhythm” to menus my wife was able to find and launch some games so fast I was amazed – and even remarked on it.
She played several games like the Mastermind clone, a game called “Maps” which seems like fun where you fill in oddly-shaped tiles so that no two touching tiles are the same color. Her initial impressions were very good, actually. Her complaint was that some of the games are horribly optimized for the device. Sudoku, for example, is almost useless without the stylus (Input options are 0-9, a keypad would work MUCH better than a matchbox keyboard).
Once home I hit my computer with the Neo and began “playing” with it. I pulled up my address book from my old phone and began inputting my contacts and phone numbers. This is where I found the most “buggy” functionality. I then moved to trying to send an SMS message to a friend which didn't fail, but didn't work either.
Having those two things fail (after some prodding, too) I decided to see what this thing could do in terms of media. I transfered a song, via netcat, to the memory card and launched the Media Player app. Playing the song failed at first, so I rebooted the device (certainly not needed, like any GNU/Linux system I could have restarted the sound system or investigated WHY it wasn't playing but this was a learning exercise more than a troubleshooting one) and relaunched the media player, this time “Turn On, Switch Off” played from my Neo. I attached the headphones and the sound switched with a 1 second delay. The headphones crackle. I believe this is a manufacturing issue and NOT a software one, it sounds as if my cord is frayed and introducing signal-noise. I recall reading another complaint of this. I very much plan on replacing the headphones this week for that reason but since it doesn't “crackle” unless I move I can use them for learning over the next few days.
Applications began crashing at that point and my brain's “troubleshooting” mode kicked in. About a minute later I found that I was using 100% disk space – somehow my microSD card WASN'T detected or mounted and I'd copied a 13 MB file to a space-limited filesystem. Oops.
I deleted my music file and proceeded to set up USB networking (well documented in the Wiki). I immediately installed nano, my text editor of choice, and then SSHed into the Neo from my Debian system. This is much easier than typing on the on screen keyboard, but mainly because it's more familiar. Then, using the Neo handset I launched the web browser to see how well it worked.

The browser is WebKit based which is pretty cool. It renders my site pretty well and renders MOST sites pretty well. Some sites, however, look a little smooshed. In time people will be forced to design sites for "the mobile web" as well - and standards compliance makes this easier - but for the most part, the internet will still be usable on the Neo's browser. I haven't figured out how to do it yet but tilting the phone into landcape mode may help a lot. This should be done automatically on the Freerunner, kind of like the iPhone does, with a simple tilt of the device. The GTA01, however, doesn't have accelerometers so switching orientation is a manual process.
Over all, my first day with my Neo was fantastic. The phone works at least as good as my old Motorola RAZR did after a year and it's powered by Free Software – it's already a winner. Over time, this system will improve and I plan on watching it while it does, sticking my hand in where possible. The excitement hasn't left me yet, but my desire to “make it my own” is growing now and I've already found some “issues” I can investigate. :)
I'll have plenty of happy hacking ahead of me. During this time, I'll review OpenMoko software more completely, breaking down individual applications at a time. I'll hopefully be able to write some "official" documentation as well as fix simple things in the source as my skill with programming improves (my second reason for buying the Neo).
My first interaction with FIC, the company that manufactures the Neo, was that of excitement. They have a decently beautiful site that highlights exactly why one would want the Neo – freedom, hackability, being on the cutting edge and having a sexy looking device. I felt no qualms at all with inputting my credit card number and shipping info. Immediately I got a confirmation via e-mail and everything was good.
As I waited excitedly the next day, checking my e-mail every few minutes to see if the confirmation had arrived (did I mention I was excited?) I began to get a bit annoyed by the end of the day. I then checked out the OpenMoko Wiki and found some information regarding the shipping procedure. I found there two things of interest:
Firstly, the price listed on direct.openmoko.com is an estimate. FIC is based in Taiwan, not the USA, so the USD amount I saw was the “target” - they would actually charge my debit card in New Taiwan Dollars in an amount equal to the current exchange rate.
The second thing I learned was that order processing took 3 to 5 days. Okay, “fine” I told myself. I could restrain my excitement.
It wasn't until January 8th my debit card was actually charged and I received confirmation that my order was processing. Perhaps I'm spoiled by NewEgg's wonderful shipping procedure but I consider a 6 day turn-around to be horrific. In addition to being a software libre geek, I am also a home brewer. In home brewing I deal with specialty supply shops to purchase my hops, grains and yeast. Some of these shops are run by retired military vets with little internet experience and some are decently skilled in the internet but in any case they can still manage to have my order packaged, shipped and at my door in a week – I fully expect a company called FIC (First International Computer) to have their order system automated enough to process orders efficiently. I console myself with the notion that they've got a room full of hackers plugging away to get the GTA02 “mass market ready” who simply can't be bothered to check e-mail and fill out UPS invoices.
Later that night I got confirmation that my package had shipped via UPS and included was a tracking number. I excitedly (again, did I mention how excited I was?) plugged the tracking number in to UPS's site and found that my package would be delivered on... the 14th! Have I really been THAT spoiled by NewEgg? I had debated over getting “expedited” shipping on one of many forms, but I decided against it - “standard” UPS shipping was decently fast, I reasoned. I guess not – this package was going to take almost a week more to get to me from California (for the record, NewEgg ships from Whittier, CA most of the time too). It seems NewEgg's “standard” shipping is NOT UPS's “standard” - lesson learned.
The weekend wait for the Neo was pretty easy, I managed to brew a beer on Sunday using my new Barley Crusher, so time went by rather quickly. Sunday night I decided that I was going to drive my wife to work, and rather than go to work myself immediately, I would drive BACK home and await the Neo's arrival. Luckily, my job offers enough flexibility that I'm able to do that without much issue.
At 11:09 am, my Neo arrived. My decision to return home was a good one – FIC ordered a signature before delivery. I normally HATE when companies do that (With 6 hour long delivery windows I can't afford to take a day off work to sign for a package. I work 55 miles from home so picking up my package from a UPS facility ALSO requires I miss work. Sign for packages = bad). In this case, however, I was a bit happy, since it was a rather expensive shipment – and I was pretty sure insurance wasn't part of UPS's “standard” shipping either.

Above is the box that arrived at my door. It was a pretty plain box, no fancy buzzers or bells (I truly didn't expect them but I have to make this dramatic – did I mentioned I was EXCITED?) and attached to the top was a packaging slip. I opened the box with my keys to find that there were blocks of very thick black foam covering packing peanuts. Buried beneath the peanuts was a bubble-wrap packed white box. This foam was very thick and in general the whole thing was well packed.

Inside the bubble wrap was a clamshell box that I thought was inventive. My wife has been in the printing industry since high-school so printing and packaging are her passions, I suppose it's rubbed off on me.

Once opened the clamshell splits again (once each way) to reveal the “goodies” that I've been so long awaiting.

I won't go over every piece in the box but every piece has been photographed by me, if you're interested in seeing those images please check out the OpenMoko album of my image gallery. The Neo handset itself was enshrined in the familiar anti-static anti-UV bags but it was the first time I'd personally seen self-adhesive anti-static bag – it was kind of neat.

All of the contents of the clamshell unpacked. There's the carrying case, lanyard, headset, spare ear buds, USB cable, stylus, battery, memory card and Neo handset.
While photographing the handset, I noticed that the screen itself seemed very reflective and I often saw myself in my own shots. This worried me, since I figured if it reflected my image it would also have horrible issues with glare when in normal use.

Eager to “get on with it” I held down the POWER button for about 4 seconds and the phone gave the smallest of shudders as the vibrator pulsed for a moment and the screen flickered to life. For anyone who has read articles about OpenMoko on the Neo you've heard “the screen is nice” but it's impossible to take a picture that shows exactly how sharp this screen is. When the backlight came on I was greeted with a black and orange splash screen which quickly gave way to a “typical” Linux boot up – Tux at top and white text on a black background. As small as the text was it was still remarkably clear – just so small it's hard to read.

The Wiki explains this very clearly, so I wasn't alarmed by it, but the very first boot ends in a kernel panic. The “simple” answer is that there's no software other than the Linux kernel and the boot loader (u-boot) itself, so it fails to load anything. End users won't have this happen to them (OpenMoko will be DOA if it's required) but developers will have to flash their own kernel, root file system (rootfs) and (potentially) u-boot image.
At this point, I realized I was “pushing it” by not going to work, so I packed up my Neo and accessories, uploaded my pictures to my wife's Ubuntu system, crashed it and then went over to my Debian system to burn my newly taken Moko images to CD and then went to work.
At work I began my “flashing” after reading up on the Wiki. What was slightly confusing for me was the out-of-date nature of the Wiki. While it's pretty clear once you understand some terminology for someone “new” it can be quite scary – the term “bricking your device” is used enough to scare the hell out of me and I'm fairly comfortable tinkering with “internals”. A quick post to #openmoko on Freenode led me to a how to find daily build images page which kicked me over to buildhost. The recommendation I got was pretty much “Use the newest images” - this makes a TON of sense since the software is rapidly changing.
Flashing the Neo itself was a trivial task and I suppose it will get even easier once the OpenMoko build tools become packaged for popular distros like Debian and Ubuntu. In my case, it meant plugging in the USB cable to my computer and my Neo, downloading dfu-util and compiling it – the whole process took about 30 second so it's a FAST compile as well as simple. I then downloaded the uImage file and the rootfs image for the GTA01 (about 48 MB combined), launched u-boot (hold AUX, power the Neo on) and issued one command to flash the kernel to the Neo. The second command flashed the rootfs to the Neo – a slightly longer process that took about 13 minutes. The downside to this flash is that once the phone enters u-Boot mode it will power down after 60 seconds of inactivity and it doesn't consider USB transfer to be “activity”. This means every 45 seconds or so I pressed the AUX button to keep things “alive”. I'm sure I looked stupid to my office mate, but oh well. (For the record, there IS a solution for this but I was excited and just wanted the thing to work).
Once the flashing was complete I restarted the Neo and it booted without problems (no kernel panic!). This time, once the splash screen was done I was greeted with a whimsical sounding chime (audio works!) and the phone proceeded to load my home page.
At this point I hadn't charged the device or installed the SIM or microSD cards, so I powered down, installed them and powered back up. The Neo doesn't do a “quick charge” unless the device is powered on so unless it's totally dead, it needs to be on to charge.
I worked on “work stuff” for a few hours before turning my attention back to my Neo. This time I decided I'd play with GSM and attempt to make a phone call. This entire time the top toolbar was saying “Registering...” which alarmed me – was my SIM card incompatible? There is currently an open bug pertaining to 3G SIM cards (mainly AT&T ones, but possibly others) and I was afraid mine was affected. I pulled opened the GSM quick menu (at the top of the screen it looks like a Triforce-on-a-stick) and clicked “Auto-register with network” which I assumed it would have already done. The phone sat there, still displaying “Registering” while I went into the applications menu and fired up a terminal (ain't it sweet? CLI on my phone!). To see what was happening, I issues a “dmesg” and almost immediately I got a popup (it looks very “Gnome”-like) indicating I was connected to my T-Mobile network.
At this point, I opened up the dialer and punched in what I thought was my phone number (to check my voice mail ) and was a bit shocked... Someone answered! It happened to be my wife (my phone number ends in 7446, hers 7445) and we both chuckled. I noticed two things about the call. Firstly, I can very much hear “air” through the ear piece. It is my understanding that as of this moment there's no noise-canceling software of the phone so the microphone picks up (and sends) everything. The second was that even without noise canceling software, the call quality was comparable to a “regular” phone – at least in the mid-range phones I'm used to dealing with.
On the ride home from work, I excitedly showed my wife the Neo. She's super supportive of me and my obsessions with brewing, computers and freedom, so she was poking at it inquisitively rather than finding “broken” things to criticize like some people would (especially after what I paid for it). While I had focused on the phone, the interface and the hardware the first thing she did was find the games menu. I have to hand it to the interface designers on this one – either I've been clueless or they did their research. While I have to poke and prod to find a “rhythm” to menus my wife was able to find and launch some games so fast I was amazed – and even remarked on it.
She played several games like the Mastermind clone, a game called “Maps” which seems like fun where you fill in oddly-shaped tiles so that no two touching tiles are the same color. Her initial impressions were very good, actually. Her complaint was that some of the games are horribly optimized for the device. Sudoku, for example, is almost useless without the stylus (Input options are 0-9, a keypad would work MUCH better than a matchbox keyboard).
Once home I hit my computer with the Neo and began “playing” with it. I pulled up my address book from my old phone and began inputting my contacts and phone numbers. This is where I found the most “buggy” functionality. I then moved to trying to send an SMS message to a friend which didn't fail, but didn't work either.
Having those two things fail (after some prodding, too) I decided to see what this thing could do in terms of media. I transfered a song, via netcat, to the memory card and launched the Media Player app. Playing the song failed at first, so I rebooted the device (certainly not needed, like any GNU/Linux system I could have restarted the sound system or investigated WHY it wasn't playing but this was a learning exercise more than a troubleshooting one) and relaunched the media player, this time “Turn On, Switch Off” played from my Neo. I attached the headphones and the sound switched with a 1 second delay. The headphones crackle. I believe this is a manufacturing issue and NOT a software one, it sounds as if my cord is frayed and introducing signal-noise. I recall reading another complaint of this. I very much plan on replacing the headphones this week for that reason but since it doesn't “crackle” unless I move I can use them for learning over the next few days.
Applications began crashing at that point and my brain's “troubleshooting” mode kicked in. About a minute later I found that I was using 100% disk space – somehow my microSD card WASN'T detected or mounted and I'd copied a 13 MB file to a space-limited filesystem. Oops.
I deleted my music file and proceeded to set up USB networking (well documented in the Wiki). I immediately installed nano, my text editor of choice, and then SSHed into the Neo from my Debian system. This is much easier than typing on the on screen keyboard, but mainly because it's more familiar. Then, using the Neo handset I launched the web browser to see how well it worked.

The browser is WebKit based which is pretty cool. It renders my site pretty well and renders MOST sites pretty well. Some sites, however, look a little smooshed. In time people will be forced to design sites for "the mobile web" as well - and standards compliance makes this easier - but for the most part, the internet will still be usable on the Neo's browser. I haven't figured out how to do it yet but tilting the phone into landcape mode may help a lot. This should be done automatically on the Freerunner, kind of like the iPhone does, with a simple tilt of the device. The GTA01, however, doesn't have accelerometers so switching orientation is a manual process.
Over all, my first day with my Neo was fantastic. The phone works at least as good as my old Motorola RAZR did after a year and it's powered by Free Software – it's already a winner. Over time, this system will improve and I plan on watching it while it does, sticking my hand in where possible. The excitement hasn't left me yet, but my desire to “make it my own” is growing now and I've already found some “issues” I can investigate. :)
I'll have plenty of happy hacking ahead of me. During this time, I'll review OpenMoko software more completely, breaking down individual applications at a time. I'll hopefully be able to write some "official" documentation as well as fix simple things in the source as my skill with programming improves (my second reason for buying the Neo).
Comment XML feeds: RSS | Atom






Leave a Comment