The Home-brew Phone and Desktop PC

The goal: to create an open affordable smartphone device that is also powerful enough to run as a Desktop PC

Status:


Introduction

Beginning in 2003 I started purchasing HTC smartphones, and
reverse-engineering them.  Progress was painfully slow, but the
OpenMoko and the Trolltech Greenphone did not exist.  Six years on, with
the false starts that these two commercially-backed projects represent, the
Free Software Community still does not have a working commodity open
smartphone platform, let alone an affordable one.  Continuous searches for
"Linux phone" and other keywords results in finding plenty of reference
platforms, plenty of closed platforms running linux kernels (with accompanying
GPL violations and cease-and-desist letters), and systems from the Far
East (such as the E2800) where free software developers forgot to ask for
the source code.

The strategic importance of having an open phone platform, especially one that
is powerful enough to also run as a Desktop PC, cannot be underestimated.
As the Ndiyo 2006 Attridgeville and Fultola reports show, cost-effective
or even affordable Internet connectivity is pretty much non-existent in
third world countries and emerging markets.  Ndiyo set about to change that,
with a mobile phone, one computer, four Nivos and four sets of screens,
keyboards and mice.

Three years on, we now have ARM CPUs in smartphones that are running at
the same speeds and with the same amount of memory as PCs from six to eight
years ago.  Developer boards such as the Beagleboard, the IGEP-v2 and the
QuickEmbed OMAP3530 kit are fast enough to run the full Ubuntu Linux Desktop
system, and are cheap enough even as developer kits to have comparable prices
to desktop computers!

So, with the lack of momentum from the Open Source Community, and with
commercial vendors still keeping their cards close to their chest, I felt
that it's time to take a leaf from Open Pandora's book, rework the
Open Cellphone project, and put together an open mobile extensible platform.

Initially taking as much from commercial off-the-shelf components as
possible, the goal is to explore the technical viability with COTS
components, and then explore the means by which the price can be
reduced whilst still maintaining a reasonable degree of modularity
and extensibility.  In this, there is a trade-off between keeping
the connectors required between multiple boards (often the major
contributory factor to cost) and ending up with a single board that
is unaffordable.

Once a working platform is available, with a similar level of
exposure as the OpenMoko, software is not a problem: there are
a wide range of platforms now available.  The LiMo foundation;
OpenMoko; Maemo; Moblin, Open Series 60 and more.  The priority
is, however, to get working affordable extensible hardware, and
to learn from the hardware (microphone-GSM feedback) and software
(reliance on d-bus) mistakes made by other commercial Open platforms.

Extensibility

We have the technology on which the Ndiyo Nivo is based: DisplayLink
technology.  The DisplayLink USB video chipset allows for the creation of
Universal Docking Stations by Plugable, and USB-powered screens such as
the DS-90U by Doublesight.

The UD-160-A is particularly interesting because it adds 4x USB-2 ports,
DVI/VGA out, AC97 Audio I/O and 10/100 Ethernet.  This device, which can
plug into a standard USB-2 Host port, "makes up" for ports and features
that would otherwise be missing on a compact form-factor device such as
a smartphone or a PDA.

The DS-90U is particularly interesting because it turns a smartphone
or a PDA into something approaching a netbook (or an eBook, if you have
seen the Nook).  The only technical issue with the DS-90U is to ensure
that enough power is provided: the device needs 3 to 4 watts, and USB-2 is
only rated to provide 2.5 watts as standard.

Reports on the UD-160-A (arrived 2 nov 2009 in the post) here
Reports on the DS-90U TBA (when it arrives).

Outside World Cellular Connection

Then, we need connectivity.  There are a number of options to explore:


The cost difference between GSM modules and 3G voice-capable modules is
shockingly stark.  One of the only reasons why Huawei 3G modems are so
cheap is because they are now a common commodity item.  It's also not known
how they do voice.  By contrast, however, Telit not only seem to have gone
mad on the features (including the ability to run python scripts on the
GM-862 quad-band GSM modem) but also appear to have gone bananas on the
Documentation-front as well.

Note: no, the means to run python on Telit products is not a joke!.

Selecting Components

The initial list of components was:


However, after some consideration, it turns out that the WIFI in the
IGEP-v2 is a proprietary firmware-based one, and also the OpenPandora
haven't released schematics (so that they don't get ripped off by
Far-East knock-offs and lose money from the very first production run).


The UC-864-GUC-864-G can be connected to the USB-2 host port of the IGEP-v2,
leaving the USB OTG port available for the user.

The TD043MTEA2 is a 4.3in 800x480 TFT LCD which also has a touchscreen.
It is a popular choice of item, being used in Archos and other devices,
to the extent that there are ebayers selling them online!  At a rip-off
price of $USD 85, of course.

For operation as a Desktop PC, the lack of Ethernet on-board the Beagleboard
compared to the IGEP-v2 can be compensated by the fact that the UD-160-A has
USB-2 Ethernet (and additional AC97 audio).  Adding 802.11 WIFI and Bluetooth
to the device is under consideration, and leaves the jury still out on that
one, even with the proprietary firmware issue to be considered.

A smaller screen could be selected, to keep the price down.  Given that
the device is intended to be used as a 'phone phone' that happens to be
capable of being a 'desktop PC' (with the UD-160-A or the DS-90U), it may
make sense to simply get the cheapest smallest LCD touchscreen that will
not annoy people too much.  RadioSpares in the UK have Hitachi 2.7in
320x240 LCD + touchscreens for $USD 52 in quantities of 5+.  It does have to
be said though that it is very tempting to take the opportunity to get a
larger screen, for those people who would actually use the device for
online browsing.  Alternatives are the same Sharp screen used in the PSP
1000: a 4in 480x240 screen which, thanks to the popularity of the PSP,
goes for $USD 22!.
(It also turns out that this is the same screen that Hy Research chose)

Wifi / Bluetooth

To evaluate:

http://store.embeddedworks.net/wlan106.html
http://store.embeddedworks.net/wlan204.html

802.11 Wireless
Simplest: Spectec SDW-821 SDIO card.  to be inserted internally inside the case.
no external slot.  Dimensions: 38.3 mm x 24mm x 2.1mm
http://www.spectec.com.tw/sdw821.htm

Free Software Drivers:
http://www.spectec.com.tw/Download.htm

Order from clove.co.uk, cost £40.

Bluetooth
Simplest option: RN-41, 3.3v, RS232 UART
(available from sparkfun.com, digikey etc.)
http://www.rovingnetworks.com/documents/RN-41.pdf

RS232 Level Converter required: MAX3391E (TX, RX, CTS, RTS)
3.3v on RN41 side, 1.8v on OMAP side.
Connect THREE-STATE to 1.8v (Pull High) to enable 10k resistors (i think!)
http://www.maxim-ic.com/getds.cfm/pk/2389

Order Sparkfun Break-out board + RN41: $70.
Digikey part 740-1007-ND: $25.

To Evaluate

These are some links to products and projects with components that
are either low-cost or need consideration:

http://www.dealextreme.com/details.dx/sku.16124 
http://elinux.org/BeagleBoardRawLCD
https://specialcomp.com/beagleboard/beagle_lcd.htm
http://www.sparkfun.com/commerce/product_info.php?products_id=8335
http://www.sparkfun.com/commerce/product_info.php?products_id=8448
http://www.standardics.nxp.com/support/design/microcontrollers/lcd.controller/
http://www.circuitidea.com/dev-board/BL-TFT240320PLUS.html
http://www.thaieasyelec.com/Development-Tools/Wireless-GPS-GSM/GSM-CDMA
http://www.thaieasyelec.net/index.php/display-module/tft-with-tp/2-8-inch-qvga-tft-lcd-with-touch-screen/p_8.html
http://www.circuitidea.com/Article/DIY-photo-frame-with-BL-TFT240320PLUS.html
http://www.sharpsma.com/Page.aspx/americas/en/part/LS037V7DW01/

BeagleBoard/IGEP-v2 Expansion board (may interfere with IGEPv2 WIFI):
http://www.tincantools.com/product.php?productid=16147

SDIO WIFI WG7310 Drivers - uses TI WL1271: provides 802.11b/g/n + Bluetooth:
http://www.jorjin.com.tw/Support_Download.htm

WIMAX!
http://www.spectec.com.tw/wimax.htm

SDIO WIFI Card: (drivers ... available! 2.6 kernel source)
http://www.spectec.com.tw/821.htm
http://www.spectec.com.tw/823.htm

SIM Card Reader Project
http://www.ladyada.net/make/simreader/index.html

Software References

http://code.entropywave.com/leonora-beagle-board-demo/
http://wiki.myigep.com/trac/wiki/HowToGetTheAngstromDistribution
http://wiki.myigep.com/trac/wiki/HowToCrossCompileTheLinuxKernel
http://wiki.debian.org/EmdebianToolchain

Software GSM 07.10 References

http://qt.nokia.com/doc/qtopia4.1/tut-multiplexing.html
http://www.freesmartphone.org/
http://developer.berlios.de/projects/gsmmux/
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=534163
http://pyneo.org

References and other Open Mobile sites