Openmoko Bug #1024: gsm modem oscillating between registrated / not-registrated

Openmoko Public Trac bugs at
Sat Oct 4 20:23:24 CEST 2008

#1024: gsm modem oscillating between registrated / not-registrated
    Reporter:  mickey at  |        Owner:  sean_chiang
        Type:  defect               |       Status:  assigned   
    Priority:  high                 |    Milestone:             
   Component:  gsmd                 |      Version:  unspecified
    Severity:  blocker              |   Resolution:             
    Keywords:                       |    Blockedby:             
Reproducible:                       |     Blocking:             

Comment(by mwester at

 Disabling the GSM from entering "deep sleep" will stop this oscillation:


 The problem is related to the GSM's deep sleep mode.  It seems that in
 certain circumstances (I'm guessing on that, for me it is *all*
 circumstances), the GSM experiences some sort of trouble when it is
 permitted to enter deep sleep (which is the default mode, at least for any
 recent GSM firmwares).  Whatever trouble it encounters results in it
 losing registration, regaining registration, entering this bad state after
 a time.  This is consistent with the data gathered by myself and several
 other volunteers (thanks for your logs to those who helped!) -- the
 frequency of the oscillation or bouncing is very consistent and usually at
 a frequency of between 2 and 3 oscillations per minute.

 The calypso is remarkably similar, at least from an AT command set point
 of view, to a device called the "Enabler II" by Enfora.  Documentation for
 the latter is available on the Internet, unlike the calypso.  The Enabler
 supports sleep modes, and while the calypso does not list the AT%SLEEP
 command, nor respond to query attempts using the AT%SLEEP? or AT%SLEEP=?
 commands, it turns out that it does honor the actual setting of sleep
 modes.  See the Enfora document for details, and remember that we (the
 community) do not know how closely this really maps to the calypso.

 Using the AT%SLEEP=n command, when n=3 or n=4 the calypso bounces.
 When n=0, n=1, or n=2, the bouncing ceases.  Changing the sleep value will
 result in immediate cessation or resumption of the bouncing behavior.

 For currently unknown reasons not reproducible by hand, the Qtopia 4.3.2
 firmware image (on a Neo with Moko 5 GSM firmware) displays this bouncing
 behavior until a call is either placed or received.  At that point, the
 device behaves exactly as expected, until the GSM is reset.  Exactly why
 this is the case is not known; either something "fixes" whatever is broken
 and allows the device to enter deep sleep, or something about this
 sequence disables deep sleep.  If we can figure out which of the two it
 is, perhaps that might help in tracking the firmware issue down further.

 As for what to do about this -- perhaps someone at Om can take a look at
 the firmware and see what affects the deep sleep modes.

 In the meantime, I'm working on a patch for Qt Extended (aka Qtopia 4.4.1)
 that will detect the bouncing behavior and automatically change the sleep
 mode when necessary.  This will permit those who can actually enter deep
 sleep to use that mode, while those who cannot will be no worse off in
 terms of power consumption (the bouncing calypso isn't in any kind of
 sleep mode) and will be better off in that they can at least use the GSM.
 Other solutions or workarounds are welcome!  Patches and other information
 are on

Ticket URL: <> <>
openmoko trac

More information about the buglog mailing list