User:ThomasT

From Openmoko

(Difference between revisions)
Jump to: navigation, search
m
(alternative window managers)
 
(30 intermediate revisions by one user not shown)
Line 1: Line 1:
Eventually I got my FreeRunner...
+
= My System =
  
I want to use it as bicycle computer.
+
* [[Debian]] without frameworkd
 +
* window manager: ratpoison
 +
* GUI: ratmen4wp
  
These are just ideas and wishes - not worth to make a separate wiki page.
+
= Hardware Issues =
 +
 
 +
* [[Neo_FreeRunner_Hardware_Issues]]
 +
* [[Disassembling Neo 1973]]
 +
 
 +
== 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 [[GSM/Flashing|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 =
 
= Bicycle Computer =
Line 11: Line 45:
 
== Existing Projects and Experiences ==
 
== Existing Projects and Experiences ==
  
* http://projects.openmoko.org/projects/mokosport/  Dead
 
 
* http://blogs.thehumanjourney.net/finds/entry/20080306 Joseph Reeves uses its NEO1973 on a bicycle
 
* http://blogs.thehumanjourney.net/finds/entry/20080306 Joseph Reeves uses its NEO1973 on a bicycle
 
* http://projects.openmoko.org/search/?type_of_search=soft&words=gps&Search=Search
 
* http://projects.openmoko.org/search/?type_of_search=soft&words=gps&Search=Search
Line 81: Line 114:
 
Are there Bluetooth Heart Rate Transmitters available?
 
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?
 +
 +
[[Touchscreen_Filters]]
  
 
== Pedalling Frequency ==
 
== Pedalling Frequency ==
Line 87: Line 125:
  
 
Otherwise USB with an FTDI chip.
 
Otherwise USB with an FTDI chip.
 +
 +
 +
== Panorama Viewer ==
 +
 +
Online panorama viewer similar to [http://www.ecademix.com/JohannesHofmann/gipfel.html 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.
  
 
== Programming ==
 
== Programming ==
Line 111: Line 155:
 
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?  
 
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.
+
It seems ratpoison is the best window manager for openmoko. I am currently using it with the scripts from
 +
[http://ratpoison4wp.projects.openmoko.org/ Ratpoison for Woodpeckers] which is based on [http://ratmen4wp.projects.openmoko.org/ Ratmen for Woodpeckers].
  
 +
A new candidate for OpenMoko window managment is [http://www.peereboom.us/scrotwm/html/scrotwm.html scrotwm]. I need to evaluate this one.
 +
 +
 +
Other possible WMs:
  
 
* http://incise.org/whimsy.html  
 
* http://incise.org/whimsy.html  
Line 137: Line 186:
 
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.
 
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.
  
= Other Accelerometer Ideas =
+
= Accelerometer =
 +
 
 +
== Ideas ==
  
 
* Indoor use of those GPS games
 
* Indoor use of those GPS games
 
* Programming a Marble game would be more fun than playing it (Martin Senkerik is now having that fun http://projects.openmoko.org/projects/accelgame/)
 
* Programming a Marble game would be more fun than playing it (Martin Senkerik is now having that fun http://projects.openmoko.org/projects/accelgame/)
 
* Moving within a larger virtual screen by tilting the display.
 
* Moving within a larger virtual screen by tilting the display.
 +
 +
== Hardware ==
 +
 +
* http://wiki.openmoko.org/wiki/ST_LIS302DL
 +
* [http://www.st.com/stonline/products/literature/ds/12726.pdf Datasheet]
 +
 +
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.
 +
 +
[[/Measurements/Accelerometer]]
  
 
= Games =
 
= Games =
Line 216: Line 277:
 
Similiar project: http://www.neo1973-germany.de/wiki/epiano Obviously not what I am having in mind.
 
Similiar project: http://www.neo1973-germany.de/wiki/epiano Obviously not what I am having in mind.
  
 +
== Other interesting Music Software ==
 +
 +
* http://performous.org
  
 
= Keyboard =
 
= Keyboard =
Line 266: Line 330:
 
* [[Gsmd/document]] This does not work with FSO. Go to the [http://git.freesmartphone.org/?p=specs.git;a=blob_plain;f=html/index.html;hb=HEAD interface spec of FSO]
 
* [[Gsmd/document]] This does not work with FSO. Go to the [http://git.freesmartphone.org/?p=specs.git;a=blob_plain;f=html/index.html;hb=HEAD interface spec of FSO]
  
 +
* [[GTA02_sysfs]]
 +
* [[Kernel]]
 +
* [[User:CesarB/cpufreq]]
 +
* [[Talk:Alarm daemon]]
 +
* [[NXP_PCF50633]] Power Managment and RTC
 +
* [[FAQ]]
 +
* [http://people.openmoko.org/joerg/calypso_moko_FW/]
 
----
 
----

Latest revision as of 10:01, 29 January 2009

Contents

[edit] My System

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

[edit] Hardware Issues

[edit] 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.

[edit] 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.

[edit] 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.

[edit] 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).

[edit] Bicycle Computer

Biking

[edit] Existing Projects and Experiences

[edit] Mounting


[edit] Water Protection

[edit] 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.

[edit] GPS

[edit] Existing Software

[edit] Getting GPS Data

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

[edit] Additional GPS Functions

[edit] Altitude Plots

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

[edit] 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.

[edit] 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: http://wiki.openstreetmap.org/index.php/Openlayers_POI_layer_example

[edit] 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?

[edit] Sideward Inclination of the Bicycle

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


[edit] Road Quality

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


[edit] Car Counter

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


[edit] Heart Rate Monitor

Are there Bluetooth Heart Rate Transmitters available?

[edit] 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?

Touchscreen_Filters

[edit] Pedalling Frequency

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

Otherwise USB with an FTDI chip.


[edit] 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.

[edit] Programming

[edit] Language

Python

[edit] UI

[edit] python-etk

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 http://python-xlib.sourceforge.net/ .

[edit] Tichy

Tichy

[edit] 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:

[edit] Plotting

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

[edit] Jogging

[edit] Accelerometer

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).

[edit] Openstreetmap

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.

[edit] Accelerometer

[edit] Ideas

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

[edit] Hardware

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.

/Measurements/Accelerometer

[edit] Games

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.

[edit] 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.

[edit] CW Trainer

[edit] Audio Modems

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

[edit] Spectrum Analyzer

Spectrum auf audio input signal

[edit] Line of Sight Calculation

[edit] Smith Chart

linsmith

[edit] Circuit Entry and Simulation

* Qucs

[edit] Radio Control

[edit] Control for Commercial TRXs

[edit] Homemade TRXs

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

[edit] Music

[edit] 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: http://www.neo1973-germany.de/wiki/epiano Obviously not what I am having in mind.

[edit] Other interesting Music Software

[edit] Keyboard

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.

[edit] 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.

[edit] Unsorted

  • 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?

[edit] OS Details

[edit] 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


[edit] Links


Personal tools

Eventually I got my FreeRunner...

I want to use it as bicycle computer.

These are just ideas and wishes - not worth to make a separate wiki page.

Bicycle Computer

Biking

Existing Projects and Experiences

Mounting


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.

GPS

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: http://wiki.openstreetmap.org/index.php/Openlayers_POI_layer_example

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?


Pedalling Frequency

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

Otherwise USB with an FTDI chip.

Programming

Language

Python

UI

python-etk

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 http://python-xlib.sourceforge.net/ .

Tichy

Tichy

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.


Plotting

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

Jogging

Accelerometer

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).

Openstreetmap

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.

Other Accelerometer Ideas

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

Games

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

linsmith

Circuit Entry and Simulation

* Qucs

Radio Control

Control for Commercial TRXs

Homemade TRXs

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

Music

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: http://www.neo1973-germany.de/wiki/epiano Obviously not what I am having in mind.


Keyboard

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.

Unsorted

  • 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


Links