State of FreeCalypso

Mychaela Falconia mychaela.falconia at
Fri Mar 22 02:28:38 UTC 2019

Hello FC community,

This is a periodic update to remind everyone what I am currently doing
in the FreeCalypso family of projects and what other people may be
able to take on.

For the next couple of years, my personal goal is to produce the
following two hardware gadgets in this order:

1) The first gadget I need to produce is the FreeCalypso UART+JTAG
Adapter, or FC-UJA for short - an FT2232D-based USB adapter board
presenting 2.8 V UART and JTAG interfaces meant to be connected to
Calypso devices.  This FC-UJA is quite uninteresting in itself, but I
need to build it first because it is a prerequisite for the next
gadget (HSMBP): when we do build the HSMBP, FC-UJA will be required on
day 1 for HSMBP bring-up, hence FC-UJA needs to be built first.

2) The next gadget to be built after FC-UJA is the really interesting
one: my long-desired Handset Motherboard Prototype (HSMBP).  This HSMBP
will serve initially as a UI development board (UIDB), making a proper
replacement for TI's own D-Sample platform and finally allowing me to
have the same development environment which TI's own software engineers
had in their offices or cubicles Back In The Day.  And because any
board of this complexity will necessarily be expensive no matter what
the specific design details happen to be, I am going to design this
board in such a way that it kills two birds with one stone: it will
serve not only as the UIDB, but also as a close-to-final prototype for
my personally desired FreeCalypso Libre Dumbphone, my dream phone.

The latter design aspect of the HSMBP (designing it in such a way that
it can serve not only as the UIDB, but also as a close-to-final
prototype for my desired practically usable phone) is the reason why
FC-UJA has to be built first, prior to HSMBP itself.  On my ultimate
dream phone I wish to have the same USB arrangement as on the Pirelli
DP-L10, with the mini-USB port on the bottom of the phone serving both
as the charging port and a computer connection interface.  The latter
function will be achieved by incorporating a built-in USB-serial chip
just like on the Pirelli DP-L10, connecting the "charging" USB port to
one of Calypso's UARTs - except that I am going to connect it to the
MODEM UART that carries the standard ASCII AT command interface in our
version, and not to the IrDA UART like Pirelli did.  But this built-in
USB-serial interface will only be for end users, and not for deep
development or initial bring-up - for the latter functions the IrDA
UART (the one carrying RVTMUX, corresponding to the headset jack on
Openmoko devices or ttyUSB1 in typical FCDEV3B setups) will be wired
to an FFC (flat flexible cable, often erroneously referred to as FPC)
connector for connecting an FC-UJA.  Hence we will need to have FC-UJA
available and working on day 1 of HSMBP bring-up, and thus the need to
design and build this FC-UJA first.

(For those familiar with Openmoko devices and their debug board which
connects to the main device motherboard via a custom FFC, what I am
designing for FreeCalypso is exactly the same arrangement: my FC-UJA
will correspond to OM's debug board, and it will be required for the
initial bring-up of the main motherboard just like OM's debug board
would be required for initial bring-up if you produced your own GTA02
motherboard clone with both NAND and NOR boot locations completely
blank on the freshly-produced board.)

The pro and con of the approach I am pursuing (designing and building
first FC-UJA, then HSMBP) are as follows:

Pro: once I have my desired HSMBP, I will be able to *properly* clean
up the phone UI code we got from TI and bring it into shape, and here
is the big one: once we have the development platform I need for this
UI work, the new FreeCalypso UI will run not only on the HSMBP, but
also on all of our supported Mot C1xx, Pirelli DP-L10 and SE J100
targets, producing a practically usable FreeCalypso end user phone at
least on the C139.

Con: the journey to get there is very long.  Given the need to design
and build not just one but two board projects, we are looking at
anywhere from 2 to 5 y from now, depending on whether or not I can get
other people to help me with the astronomical cost of my big surgery.
If someone helps me with the 26 kUSD surgery cost, I will be able to
direct all of my energy into FreeCalypso and the HSMBP will very
likely be done in 2 y, otherwise it will probably be more like 5 y
from now.

Now here is the current state of support in FreeCalypso for the Mot
C139 and similar pre-existing phone targets.  Right now only the UI is
missing, whereas all of the lower layers work flawlessly on all 5
"alien" (non-TI, non-Openmoko, non-FreeCalypso) hw targets:

* Mot C11x/12x
* Mot C139/140
* Mot C155/156
* Pirelli DP-L10
* Sony Ericsson J100

On _all_ of the above phones, we can now run FreeCalypso firmware (run
via fc-xram on the Pirelli, needs to be flashed on all others) in our
so-called "voice pseudo-modem" configuration (no UI on the LCD, control
from a connected computer required), and on all of these targets our
FC fw absolutely correctly registers to the GSM network, makes and
receives calls (voice via the phone's native earpiece and mic, dialing
via AT commands from the connected computer), sends and receives SMS -
and as verified with my CMU200 RF instrument, it puts out 100% correct,
100% spec-compliant radio transmissions as it does so.

Only the UI is missing, everything else is already there and fully
working.  Most of these phones including the C139 (the most interesting
one from the practical standpoint) have 96x64 pixel color LCDs, hence
if someone can produce practically usable UI code for this screen size,
we will immediately be able to run it on all of the listed phones.
Mot C11x/12x may be the lone exception that may never be able to run
FreeCalypso with untethered phone functionality (fitting our UI-enabled
fw config into the tiny RAM and flash on this model would require some
major contortions), but all others can easily be made to run the same
UI code as the C139.  The C139 will still be the most practically
usable one (on the others we don't know how to make the phone ring,
can only vibrate), but at least for demo purposes the UI code can run
just the same on all targets.

Thus there are two ways how practically usable FreeCalypso end user fw
for Mot C139 and its siblings can become a reality:

The sure but slow way: if someone makes a significant donation toward
the cost of my surgery and thereby speeds up my FreeCalypso work, when
I build my desired HSMBP, a practically usable UI for the C139 & co
will appear as a side product.

Alternate way: if anyone else in our community can be convinced to
overcome their fear of programming and delve into the code, they may
be able to produce a practically usable UI for the C139 more directly,
without waiting for my development hardware.  I am not willing myself
to jump directly to the 96x64 pixel UI for the C139 & co because doing
so would require forever giving up my dream of restoring TI's original
176x220 pixel color UI in its full glory (not willing to do that), but
someone else who is more practically minded, someone who does not have
the same attachment to TI's history and code as I do and who just
wants a practically usable UI on the C139 may be able to produce the
latter much more directly.

So there are your two options for how to get a practically usable
FreeCalypso phone in a foreseeable timeframe: either help me with my
surgery cost, or put on the hat of a firmware developer and implement
the missing UI yourself.

Hasta la Victoria, Siempre,
Mychaela aka The Mother

More information about the Community mailing list