Openmoko Bug #1024: gsm modem oscillating between registrated / not-registrated
Openmoko Public Trac
bugs at docs.openmoko.org
Sat Oct 4 20:23:24 CEST 2008
#1024: gsm modem oscillating between registrated / not-registrated
------------------------------------+---------------------------------------
Reporter: mickey at openmoko.org | 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 dls.net):
Disabling the GSM from entering "deep sleep" will stop this oscillation:
{{{
AT%SLEEP=2
}}}
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 http://moko.mwester.net/brc.html
--
Ticket URL: <https://docs.openmoko.org/trac/ticket/1024#comment:43>
docs.openmoko.org <http://docs.openmoko.org/trac/>
openmoko trac
More information about the buglog
mailing list