View source for User:Blutsauger

From Openmoko

Jump to: navigation, search

You do not have permission to edit this page, for the following reasons:

  • The action you have requested is limited to users in the group: Administrators.
  • You must confirm your email address before editing pages. Please set and validate your email address through your user preferences.

You can view and copy the source of this page:

Return to User:Blutsauger.

Personal tools

FR as host on active hub

This is my latest artwork:

Mobile workplace.jpg

Mobile work-place ;) Freerunner beeing charged from a modified USB hub using 5 AA batteries.

Full keyboard, mouse and external HDD connected!

Internet access wia UMTS dongle.

A special holder places the FR into a reflection-free angle.

Note the TUX penguin, that I have manually glued on the 'Windows-Keys'!

I have bridged the output power supply of the USB slots in the USB hub back to the 'input' line (where the FR plugs in). With a manual switch I can turn on/off this power feed. This might be some good luck that the good piece didn't blow off - it's a 20EUR DLINK hub.

The USB gender changer (female/female) can be bought for example at the big 'C':

The power supply are 5 AA NiMH accus, which deliver around 6.5V when fully charged. This is about the same voltage the comes from the external AC/DC power plug.

SolderedHub1.jpg SolderedHub2.jpg

Note the single blue wire on the bottom right of the right image. This is all it needs. The rest is just fun like an additional switch with a LED to turn power-feed on and off and another Type-A USB slot, so that I don't need the genderchanger and the Type A/B converter any longer as one can see it in the topmost image.

For soldering hints, please look at or


After I have soldered the second USB connector (the black thick cable on the left image), the hub did not work any more on a regular PC, although it still worked on the FR. So my assumption is, that it is not broken, but maybe the USB signal reflects on the open-ended cable. I will invastigate further.

Try this at your own risk! Be prepared to inflame your USB hub, power supply or even your phone!

(You have been warned...)
More images:

USBPipelineLong.jpg USBPipelineShort.jpg USBHubWithDisplay.jpg

From left to right:
Usual way to use the FR as a USB hub (you need 3 different adaptors)
'Short' way with self-soldered USB connector into the hub, which makes it unusable for PC's, though!
Integrated voltage meter in the USB hub, displaying either the HUB's own power supply voltage, or the voltage delivered from the FR to the hub, depending on the small switch that I have built in. LED indicating current direction.

1000mA power supply

To set the FR into the 1000mA charge mode, a special USB cable is required which bridges the 'Id' pin of the mini-USB plug to ground with a resistor of 47KOhm (See USB_charger). Unfortunately, all usual USB cables that connect a PC with a device dont lead out that Id pin. I bought a mini USB plug, but that also had no connector for the Id pin, so I had to make some micro-mechanics:


I cut the Data+ pin (3rd pin from top) and shortened the Id Pin (2nd form above) with the Data+ line, which is the white wire on the image. Note the small soldering poing, which bridges the cut Pin Data+ (wire only) with the 'Id' contact (to phone).


Then I put the 47KOhm resistor between ground (black) and the 'stolen' Id pin (white).

So far this works pretty good. But the mini USB connector is not the best. It has only flat contacts and fits very loosely in the FR USB slot, so very often there is a bad contact. I got this part from Conrad but would suggest buying something of better quality. There are some mini usb extensions which provide a 5-pin wiring (can even be found at eBay).

Charging crank

After various attempts to charge the phone with a bicycle dynamo (there are also some hints on the Wiki, I will add links later), I thought about charging the phone by manual power. So I stole the small lamp of my daughter which charges a 3.6V NiCd battery by turning a crank.

I replaced the battery by a 1000uF elko because I didn't want to charge another useless battery. The elko should buffer and smooth the output voltage:


So far this works pretty well, at least in theory - It is surprising how much strength one must spend to get about 300mA current. This is about what the good piece can deliver. Of course, the charging time stays the same: about 2 hours for a complete exhausted battery. So please imagine to turn the crank at full speed for 2 hours! This was a nice try, and maybe usable for emergency situations but not for daily live!

Other not recommendable charging options

There are many emergency chargers around that use only one AA battery (1.5V) and produce 5V output. They claim to charge handy, digicams etc.:


Don't feel tempted to buy/use such a thing! I did it for you and first thing happened was, that it broke the USB slot on my Freerunner! Because they delivered such a cheap mini USB plug that one pin bent off and cracked my FR USB slot:

BrokenkUSBPlug.jpg BrokenUSBSlot.jpg

(high-res images, click to enlarge)

Second, it does not deliver enough power to recover from an empty battery. It brings around 100mA which can only help to lengthen the runtime of your phone.

Using alternate browsers

Midori is nice...but not a fully usable browser. And loading pages over cellphone network is pretty slow. Therefore I use a ssh tunnel to a X-server at home and look at it via vnc. (I don't explain how to set-up an ssh account through dyndns here...)

at home type:

vncserver :30 -depth 24 -geometry 1280x1024
DISPLAY=:30 firefox &

on the FR in a first shell:

 ssh -L5930:localhost:5930

and in a second shell:

vncviewer localhost:30

Tweaking midori to mobile browser

Some web sites support mobile browsers by reading the HTTP Flags sent by the browser. My experience is, that iPhone and Android are somehow supported by major sites (e.g. GMX, ebay etc). Also, some users reported that modifying the Identity flag might help sometimes.

First problem although is, that midori itself requires too much screen space, so that the necessary options cannot be reached inside the UI. This can be solved by rotating the screen, using for example 'omnewrotate':

 opkg install omnewrotate

Then inside midori, go to: Edit> Preferences> Network> Identify as > iPhone

This solves many problems on pages that recognize iPhone as browser (still not perfect, but usable).

Others mentioned to set a custom browser Id, by setting 'Identify as' to 'Custom', using

Mozilla/5.0 (Linux; U; Android 1.0; en-us; generic) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2


Mozilla/5.0 (Linux; U; Android 1.5; en-us; generic) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1

Other places, like heise (german computer online magazine) offer an external link for mobile devices:

Which works without browser identification.

Adding swap space on mmc card

In SwapSpace is descriped how you add a swap file on filesystem. This seems somehow complicated to me. I wanted to use my microSD card for swapping (it doesn't matter if it gets broken after 2 million read/write accesses). Also, I don't want the mmc card formatted with VFAT anyway, so I made a new partitioning:

/dev/mmcblk0p1               1        5129      500075   82  Linux swap / Solaris
/dev/mmcblk0p2            5130       81820     7477372+  83  Linux

and added in /etc/fstab:

/dev/mmcblk0p1          swap                    swap    defaults        0 0

doing a

 mkswap /dev/mmcblk0p1

once and a reboot and we're done.

See what 'top' says: the internal 128MB memory is almost always completely exhausted, with just one or two applications running. With 512MB swap space I can use Midori, tangoGPS, several terminals, the settings pages and so on all at the same time.

Mem:    120856k total,   116364k used,     4492k free,      172k buffers
Swap:   500064k total,    67696k used,   432368k free,    71764k cached

Import Contacts (SHR version)

I've written a small python script which takes a simple text file (e.g. output of mysql) and imports it into the phone's contacts database. It uses the dbus API of, which is used for example by SHR distributions. See for details.

You can download the script here:

Matthias Huber has provided some similair scripts:

Contact me