From Openmoko

Jump to: navigation, search

Tony Garnock-Jones,

I own a phase-1 Neo1973.

Erlang Userland

I'm running Erlang with GTK and serial-port extensions on my phone, using it as an openmoko userland replacement (for gsmd/dialer/addressbook etc.).

A screenshot, not that the GUI is worth anything - the value of the approach is in the lower-level "model"/business-logic part (the gsmd/neod equivalent):


See the README for the current status, TODO and bugs. Currently 2090 non-blank, non-comment lines of code.

Core (non-UI):

  • Clean(ish) API for scripting phone functionality (in Erlang)
  • Takes calls, makes calls, reliably enough for me to use as an everyday phone
  • Sends, receives, archives SMSes
  • DTMF send support during a call
  • Battery and charge-state monitoring
  • Detects when you might be connected to a dumb charger (no UI for forcing fast charge yet)
  • Powers GSM modem off when the phone is shut down
  • About 4-5 hours of battery life when idle - this will improve as general GTA01 power management improves

Non-GUI user interface:

  • Plays an mp3/ogg file and vibrates when ringing
  • Vibrates on SMS receive
  • Switches ALSA profiles between in-call state (gsmhandset)/idle state (stereoout)
  • Press "power" to activate screen lock; press "aux" to release screen lock

GUI user interface:

  • Really, really, really ugly.
  • Dims screen on user inactivity
  • Blanks screen and locks touchscreen on further inactivity
  • Very basic addressbook
  • Very basic SMS compose/display facility (no T9 yet)
  • Very basic dialer

gsmhandset.state echoes your own voice

I've a tentative fix for this - here's the patch against gsmhandset.state. The alsamixer setting is labelled "Bypass" in the UI, and it's way over to the right, just after the "Amp ..." settings and just before "DAI Mode".

--- old/gsmhandset.state	2008-01-28 12:29:47.000000000 +0000
+++ new/gsmhandset.state	2008-01-28 12:29:23.000000000 +0000
@@ -55,8 +55,8 @@
 		comment.range '0 - 7'
 		iface MIXER
 		name 'Bypass Playback Volume'
-		value.0 5
-		value.1 5
+		value.0 0
+		value.1 0
 	control.7 {
 		comment.access 'read write'
Personal tools