New firmware for FCDEV3B and Openmoko modems

Mychaela Falconia mychaela.falconia at
Sun Jan 13 09:53:43 UTC 2019

Hello again everyone,

I just put out new firmware builds for both FCDEV3B and Openmoko modems:

The first version (fcdev3b-nosleep-fw-20190112) is for the few FCDEV3B
V1 boards out there (the ones which can't sleep), the next
fcdev3b-prod-fw-20190112 version will be the one flashed into our new
sleep-capable FCDEV3B V2 boards when I ship them, and the last
moko-new-fw-20190113 version is for Openmoko GTA01/02 modems.

The sleep mode improvements for legacy Openmoko modems with this new fw
are the same as on our new FCDEV3B V2 boards:

* During those time windows in which the modem is disallowed from going
into deep sleep by the UART activity timer (10 s after each transmission
from the AP host to the modem on the AT command UART), previous fw
versions needlessly suppressed big sleep in addition to deep sleep,
allowing only small sleep.  The present version goes into big sleep
during these time windows, saving more power.

* Some Openmoko devices suffer from a hardware defect that requires
disabling deep sleep.  Previous fw versions did not provide a sleep
mode configuration that allows big and small sleep, but not deep sleep,
forcing the user to choose between small sleep only or big sleep only
on no-deep-sleep hardware.  OM AP software distros have been using the
big sleep only AT%SLEEP=2 config in these circumstances.  Our new fw
offers a new AT%SLEEP=5 option that allows big and small sleep, but not
deep sleep, which should be ideal for deep-sleep-deprived OM hardware.
The default is still AT%SLEEP=4 allowing all 3 sleep modes (small, big
and deep sleep), just like before.

Please remember, though, that the firmware binaries are different and
NOT interchangeable between FCDEV3B and GTA01/02 targets.  The hardware
is very similar, but not identical, and the small diffs in the hw do
require separate fw build configurations.  What would happen if someone
flashes the wrong fw image by mistake?  Answer:

* If a GTA01/02 fw image (either legacy mokoN or one of my recent
FreeCalypso builds) is flashed into an FCDEV3B, it shouldn't fry
anything, but it won't work: it won't detect our Spansion flash chip,
and it won't find our FFS.

* If a firmware image built for the FCDEV3B is flashed into an Openmoko
modem, it won't physically fry anything either (there will be a bunch
of floating inputs, but then OM's own legacy mokoN firmwares did the
same), but it may corrupt your FFS badly enough to where you would need
to restore your FFS sectors from a backup with fc-loadtool.  Our recent
fw versions have re-enabled flash chip autodetection and thus OM's
K5A32xxCTM flash will be recognized, but the corresponding FFS config
entry is meant for future FreeCalypso modem products, not for OM, and
the two FFS configs are different: OM used an inefficient FFS config
for their flash chip, we have to keep their config when running on
their hw for compatibility, but I have replaced it with a more sensible
config for our potential future hw that may use the same chip.

And of course there are application functionality diffs between the
two fw builds:

* Calypso GPIO 1 is an output on both platforms, but serves very
different purposes: in OM's version it is an interrupt to the AP,
whereas on our FCDEV3B it controls the loudspeaker amplifier just like
on TI's original D-Sample and Leonardo boards.  Thus fw builds for the
fcdev3b target include our custom AT at SPKR command for controlling this
speaker, whereas gtamodem builds include the AP interrupt generation
code instead.

* MCSI is brought out on our FCDEV3B, but not on OM's hardware.  Our
fw builds for the fcdev3b target include our custom AT at VPATH command
for playing with MCSI, whereas our gtamodem fw build configures those
4 pins (unconnected on OM's hw) as dummy outputs to keep them from

So enjoy the new sleep-enhanced firmware, but be sure to flash the
correct version for your hw!

Hasta la Victoria, Siempre,
Mychaela aka The Mother

More information about the Community mailing list