Complexity of emergency-only baseband firmware development

Mychaela Falconia mychaela.falconia at gmail.com
Fri Mar 10 19:49:53 UTC 2017


Hi Denver,

> I'm building some FOSS tools that let people send/receive calls/SMS without
> a cell plan (mainly using VoIP carriers that also offer SMS/MMS).  Eventually
> I would like to be able to bundle these tools with a phone that runs only
> free software.

A phone that runs only free software?  What kind of phone would it be
hardware-wise: do you plan on building your own hw, or are you trying
to repurpose/reprogram some existing phone hw units?

Not just to Denver but to everyone: please remember that with *ANY*
libre or FOSS phone goal, the software is the easy part; the hard part
is the hardware.

> In order to still provide standard emergency calling features (112/999/911
> calling/SMS), the phone would require a free baseband (like FreeCalypso), but
> it would not need to offer any non-emergency phone features, since those
> would be handled by the aforementioned FOSS tools primarily on wifi.

In terms of the required hardware, there is no difference between
emergency-only and fully functional cellular capability.  Even if all
you seek to do on cellular networks is to have emergency call
capability, you still need a GSM (or other cellular) antenna, RF tract
(RF transceiver, power amplifier, antenna switch, SAW filters,
impedance matching networks etc), GSM (or other cellular) baseband
processing circuits like radio signal modulation and demodulation,
speech codec and so forth.  The FreeCalypso modem we are currently
building is one example of the required set of hardware circuits; the
various mainstream commercial implementations are alternative examples.

The *only* hardware feature which can be omitted if you wish to limit
cell functionality to emergency calls only is the SIM socket.  The SIM
socket I use on the FCDEV3B costs $2.12 in quantity 1 at Digi-Key (or
down to $1.38 per piece when buying 1000-piece reels), and my opinion
is that if you omit the SIM socket on your phone in order to
*artificially* restrict its cellular capabilities to emergency calls
only, you are being antisocial by artificially hobbling your product
to suit your particular prejudices.

Even if you do omit the SIM socket, you won't be able to remove all
circuits for talking to the SIM as those circuits reside in the same
silicon as other essential functionality - instead you will just
artifically render those circuits non-functional by leaving the
chipset's SIM interface pins unconnected.

> My understanding from being on the list for a while is that the current
> baseband firmware works for some basic use cases on existing phones,

Not just for "some basic use cases", but 100% of standard commercial
GSM+GPRS modem functionality: if you have a Neo Freerunner made by
Openmoko, the Calypso GSM+GPRS modem included in that product provided
full commercial quality implementation of all standard GSM and GPRS
functionality with the official firmware those units shipped with, and
this full functionality is retained without any degradation if you
replace their original proprietary firmware with FC Magnetite.

Our Magnetite firmware has not been fully deblobbed yet, but:

* We have a clear roadmap toward a fully deblobbed version;

* I am not currently doing this deblobbed work but am focusing on
  hardware building instead because I see no point in improving
  software when there is no practically useful hardware to run it on.

> but the end goal of FreeCalypso will require building a phone (or at least
> the main board of one).

As I said at the beginning of this reply, with ANY libre or FOSS phone
goal the real challenge is in the hardware, not software.  Right now
there are only two pre-existing phone hw units whose hardware is
documented well enough to allow running 100% free software including
the baseband while retaining the full functionality:

1: Neo Freerunner by Openmoko.  This hw is where the original
   FreeCalypso project started, and has the best support.  But the
   Freerunner is not a bare modem or a dumbphone, it also has a Linux
   application processor that requires very complex software to make
   it usable as a phone, and the community that once maintained this
   complex sw is now gone.  Without an active community of developers
   to maintain that Linux AP software, the Freerunner makes a very
   poor choice of phone: it is too complex and too power-hungry to
   serve as a dumbphone substitute, yet it does not really offer
   anything of practical value that a proper dumbphone can't do, thus
   it is neither here nor there - "neither fish not meat" as the
   Russian saying goes.

2: Lower-end members of Motorola C1xx family, including C139.  There
   are no technical obstacles to turning Mot C139 into a 100% FOSS
   phone by way of FreeCalypso firmware, but the hardware is so feeble
   that I am not able to justify the required effort.

I personally like dumbphones (phones in which the baseband is the sole
processor and there is no separate AP or UI processor), and I desire
to build a FreeCalypso dumbphone for my own personal satisfaction.
But my personal preferences are not the only ones, and if you are
building a phone which primarily targets WiFi/VoIP use cases, then
obviously you do have a non-baseband application processor.

If you need a cellular baseband block which will act as a peripheral
in a larger system, you are in the market for a packaged cellular
module like SIM900 - but of course all currently existing ones are
100% closed and proprietary.  However, if the people who have funded
the current FCDEV3B effort wish to continue further in this direction,
we can produce a FreeCalypso modem in a packaged form factor similar
to SIM900 etc, and the liberated firmware for this mode of operation
is already here and 100% functional.

> Do the existing basic use cases include sending emergency texts or calls?

As I already said, we already have 100% of the standard commercial GSM
modem functionality, and of course emergency calls are a part of the
standard functionality set.  The only caveat is that the emergency
call functionality with FreeCalypso firmware has not been tested -
making a prank call to a governmental emergency dispatch center is a
rather big no-no.

> If not, would developing the remaining pieces needed to do so be
> substantially easier for an emergency-only use case than for a complete
> all-purpose use case?

Again, you have a misconception in that there are no missing pieces
that remain to be developed, at least for a modem product that is
subservient to an external controlling processor - it's all there
already.  Now if you are talking about a dumbphone product in which
there is no external application processor and the Calypso becomes the
main and sole processor of the phone, then yes, there is a ton of
development to be done - but I have no interest in developing a
product that has absolutely no functionality whatsoever except to make
emergency calls.

> I'm guessing that there are certain parts of FreeCalypso that would not be
> required for emergency-only operation (perhaps some of the SIM card
> communication, for example),

Yes in principle, but the pieces in question are already there and
working, hence you would have to do extra work to rip them out in
order to satisfy your prejudice against having non-emergency call
capabilities.

> So I'd be curious to know if the emergency-only use case is substantially
> easier to develop for, or if it's roughly the same complexity as developing
> for the all-purpose use case, or somewhere in between.

In terms of hardware, the two are exactly the same unless you are
unwilling to allot the physical space for a SIM socket.

In terms of software, the emergency-only use case is more complex
because you would have to do extra work to remove perfectly good and
working code for non-emergency functionality.

I hope my answers clarify things for you a little.

Sincerely,
Mychaela Falconia,
The Mother of FreeCalypso


More information about the Community mailing list