From Openmoko

Jump to: navigation, search


My System

  • Debian without frameworkd
  • window manager: ratpoison
  • GUI: ratmen4wp

Hardware Issues

Poor Audio Frequency Response via Headphones

The amplifier output coupling capacitors C4111 and C4110 are much too small (1uF). It should be approx. 100uF according to the datasheet of LM4853.

I just tried to modify my FreeRunner (inserting 100uF capacitors). But I got a power failure after switching on the audio amplifier. After removing my modifications the system works again, but I couldn't read SD cards any more, because I accidentially removed one of the resistors in the data line to the SD slot. After reinserting the resistor the FreeRunner works again. The sound is much better now, but not really HIFI (maybe this is caused by the cheap HAMA headset I am using). BTW: I will replace these series resistors with ferrite beads in the hope to decrease the GPS interferences.

GSM Modem not working

I could not communicate with the modem not even with u-boot and after removing battery over night. In this case with FSO frameworkd slowed down the system very much, OM2008.9 was almost not usable. (This happend before I made the above HW modifications!)

I removed frameword (fso-gpsd does not work without frameworkd and therefore needed to be replaced by gpsd.

Using GPRS is possible, but a bit tricky. I am currently swichting GSM off and on waiting for the modem startup message. But sometimes I get a strange "alarm".

Maybe reflashing the modem would help.

Real Time Clock unreliable

The RTC is approx. 12 min off per day. I wonder whether the 10pF capacitors at the oscillator crystal are really needed. Maybe I can tune the RTC by lowering the values of those capacitors. There is no tuning register in the RTC unit.

I read a voltage of 475 mV at the terminals of the backup battery BAT1701. This voltage increases to 2-3 Volts, when FR is connected to a power supply.

GPS: Very long TTFF

My FreeRunner has this capacitor at the SD card connector. It anyway takes a long time to get the first fix. The antenna connector was slightly deformed. Could not yet test, whether this is the reason for the bad TTFF as SD cards currently do not work any more (due to a hardware bug I introduced while modifing the audio amplifier).

Bicycle Computer


Existing Projects and Experiences


Water Protection

Power Supply

Due to the relatively high current consumption of the Freerunner a power supply from a hub dynamo seems to be unavoidable.

I skip the switch mode regulator and will use simple Z-Diode parallel to the Freerunner. Later I want to add an LED light parallel to both.


Existing Software

Getting GPS Data

On Freerunner there is no need to read from gpsd or similar. I just can get the data from /dev/ttySAC1

Additional GPS Functions

Altitude Plots

Of the travelled track and also of the upcoming (hopefully OSM will soon provide elevation information of the roads)

Trip Information

Garmin Etrex Legends trip information display is to stupid. I want infos for the current day and for the time since last break.

Location Reporting

If I have internet access via the phone during my trip I can regularily update my on webpage with location markers as shown here:

Slope, Vertical Speed

The GPS does not give sufficiently accurate vertical speed. A barometric sensor (see Variometer) would be nice. Calculation of the vertical speed by integrating the accelerometer readings also not accurate. But maybe it is possible to use the accelerometers to measure the slope of the road. How to calibrate it? Is it possible to automatically calibrate it from GSP reading?

Sideward Inclination of the Bicycle

By measuring the increase of the total acceleration not by change of the acceleration angle.

Road Quality

Can the road (e.i. surface) quality be recorded by measuring the vibrations with the accelerometers?

Car Counter

... using the builtin microphone. Or would it be possible with the accelerometers using high sampling rate?

Heart Rate Monitor

Are there Bluetooth Heart Rate Transmitters available?

Heart Rate Monitor via Touchscreen?

The touchscreen also delivers pressure information. Can this be used to measure the heart beat by pressing the thumb onto the touchscreen?


Pedalling Frequency

Pedal sensors with Bluetooth and power supply by magnetic induction would be nice.

Otherwise USB with an FTDI chip.

Panorama Viewer

Online panorama viewer similar to gipfel. Instead of the photo image we show the mountain panorama calculated from SRTM data. Online calculation with the SRTM data is much to slow, we use only the precalculated water divide lines.






I could not find any documentation yet. Seems to be the same as python-gtk.

I don't want to have eye-candies. Maybe eye-candies are neccessary for selling phones. Eye-candies cause eye-caries or even brain-caries. ;-) They are for gamers.

Colors are o.k. if they carry information. Color gradients of menu bars are useless and annoying.

Maybe I should directly call xlib instead of using some *tk. From python I could try .



alternative window managers

The bicycle computer should show different values at the same time. This should be user configurable at runtime. What about having little python scripts just showing a window with one value and let the window mananger do the rest?

It seems ratpoison is the best window manager for openmoko. I am currently using it with the scripts from Ratpoison for Woodpeckers which is based on Ratmen for Woodpeckers.

A new candidate for OpenMoko window managment is scrotwm. I need to evaluate this one.

Other possible WMs:


matplotlib? might be an overkill. Anything usable lightweight available?



Mount the Freerunner to the shin and measure the damping and motion style with different shoes at various speeds. Especially interesting to watch the aging of the shoes (different damping).


I would like to have a simple application to add map information at my current location. Say, I am standing beneath an ATM, just use a menu item "Add ATM" and typing in its name - finished. There is no need for a map display. The program just displays the OSM nodes near the current location. And you can add a new node or modify an existing node.



  • Indoor use of those GPS games
  • Programming a Marble game would be more fun than playing it (Martin Senkerik is now having that fun
  • Moving within a larger virtual screen by tilting the display.


I was wondering about the steps of 18 units in the histogram of the accelerometer data. Now I know: the kernel driver already scales the raw data from the chip to mg units. The data from the chip come as 8 bit data. In +-2.3G mode we get a resolution step size of 18 mg.



Finger-usable application to play the game of Go: Somebody somewhere suggested a double click methode for keyboard input. The first click zooms the area of the keyboard the second click activates the key. I don't want this for keyboards but for Go and similar games this could be quite interesting.

Maybe a guesture interface is better. Circle right meens zoom in. Circle left means zoom out.

I thought I am no gamer, but just discovered Numptyphysics.

HAM Radio

As we can't use the WIFI or the GSM modem or the GPS receiver for HAM purposes there is not much difference to HAM applications on other PDAs.

CW Trainer

Audio Modems

Input and Output via audio interface (what is the maximum sampling rate?).

Spectrum Analyzer

Spectrum auf audio input signal

Line of Sight Calculation

Smith Chart


Circuit Entry and Simulation

* Qucs

Radio Control

Control for Commercial TRXs

Homemade TRXs

* I2C interface on test points
* SPI interface on debug connector


Midi Input via Touchscreen

There is not much space to use the touchscreen as an ordinary piano keyboard.

What about using the touchscreen like the left hand fingering on a guitar, mandolin, banjo ore similar? The touchscreen lays in front of you in landscape mode. There are four rows, one for each finger.

 | D# | G  | B  | d# |
 | D  | F# | A# | d  |
 | C# | F  | A  | c# |
 | C  | E  | G# | c  |
 This layout might be to simple. Should it be optimized for easy chord playing?
 To come more close to a piano and common string instruments it might be better 
 to flip the arrangment of the notes.
 | c  | c# | d  | d# |
 | G# | A  | A# | B  |
 | E  | F  | F# | G  |
 | C  | C# | D  | D# |  

Unfortunately the touchscreen handles only single touches (UI_Improvements#The_touchscreen). Therefore a polyphonic input is not possible.

Octave shifting via accelerometer reading?

Similiar project: Obviously not what I am having in mind.

Other interesting Music Software


Why not using the above Midi Keyboard for character input?

| S | U | R | T |
| A | E | I | O |
| D | H | N | M |
| F | P | G | J |
| M1| M2|SPC| BS|

Letter order is random here. Need to be optimized for minimum mode switching. Space, Backspace,... can be done by guestures.

Morse Code Input

Will I be faster? Is there usable code available?

Decode would be easier if I'd use an "electronic keyer" e.g. which sends dots and dashes in a predefined length and predefined spaces.


  • I wonder what igelle is and whether it is worth trying that for FreeRunner. The website isn't very informative.
  • External Keyboard: The FreeRunner can supply 5V to an external USB device USB_host#Selecting_USB_host_mode. So I also can connect my MIDI keyboard?

OS Details

Mounting internal Flash when booting from SD

Mount the internal root file system

mount -t jffs2 /dev/mtdblock6 /mnt

On Debian this is already mounted at /mnt/flash


Personal tools