FR as host on active hub
This is my latest artwork:
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.
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.
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...)
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).
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:
(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 myaddress.dyndns.org
and in a second shell:
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
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)
(dated 2010-10-01, things change so fast....)
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.
I'm now using Pisi to convert .vcf files into the PIM database. This seems to me the best aproach and is independent of the target database. So you can store the contacts on the SIM card or on the PIM database easily. My extraction of my SQL database creates a temporary textfile (tab-separated), which then will be converted into a .vcf file that finally is readable by pisi. Pisi does not read all vcf formats, I've made some comments on places where pisi was too picky to read the data.
You can download the scripts here:
http://pub.edvbl.dyndns.org/sql2vcf-pisi.sh (exctract sql database, call the below script, 'ssh' it to the FR and 'pisi' it there)
http://pub.edvbl.dyndns.org/readsql-pisi.py (convert the tab-separated textfile into a vcf file, called from above script)
I was curious about the BeagleBoard and ordered one, together with the Freerunner-BeagleBoard-Hybrid unit. Here are my first attempts and impressions.
I ordered both at . I've got a 'xM' board, which has more memory, and also the layout and connectors seems slightly different to some images shown in tutorials. On the topside of the board is a white label with a black 'B', I assume this is the board revision to which some articles refer on.
Inside the board was a micro SD card attached; after inspecting it under my linux machine it seemed to have the required partitioning, so I simply tried to power it on. This can by done by plugging in a mini USB connector to the BeagleBoard's slot.
Some LED's turned on and after a second also the Display unit turned its backlight on, but nothing more happened. But if I removed the micro SD card and booted the device, the LCD backlight remained black, so I assumed that this has to do something which is on the card and already worked.
Connecting the serial port
For further diagnostics I had to digger out some old serial RS232 cables, trying with different '0-modem' (crossover) and 'usual' cables. The BeagleBoard has a 9-pin female SUB-D connector. What finally turned out to work is a usual (non-crossover) serial cable. Using 'minicom' with 152000/N/8/1 worked after a while.
Flashing the microSD card
As I wrote previously, the uSD card seemed to have already some image stored, but I was wrong with that. It had only the uImage, MLO etc. on the first FAT partition, but the second (ext3) partition was complete crapped. I used fdisk and mkfs to create a proper partition and extracted the (230MB!) tarbarll  there.
As I found out later, I also had to update the uImage (kernel) to match the root filesystem on the ext3 partition.
After doing that, the device booted as I could then see it in the minicom terminal, and I also was able to login as root. I was using the Angstrom-Beagleboard-demo-image-glibc-ipk-2010.3-beagleboard.rootfs.tar.bz2 image. I did not get any ethernet connection, even tough I had the ethernet connector plugged in (dhcp etc available).
Also, the OpenMoko display remained silent, only white.
Stupid enough, there were some things I did wrong myself:
The first computer, where I attached the serial cable, seemed to have a real bad serial hardware, sometimes I only saw fragments of the output/input, which was very annoying. Switching over to another machine (both running some more-or-less updated Linux) made it work perfect.
I put the microSD card into a allround 50-Cent card reader and plugged that one into the USB slot of my keyboard. It was recognized correctly, but when it came to formatting the ext3 partition, I only got some few 100MB out of the actual 4GB card. Plugging the stick directly into my PC (under the desk - oh what an effort!) finally worked perfectly.