Hardware subproject status
Mychaela Falconia
falcon at ivan.Harhan.ORG
Sat Dec 19 21:57:30 CET 2015
Hello FreeCalypso community,
I have an update on the status of our hardware subproject. As most
people here know, for a long time I have had a burning desire to build
our own FreeCalypso GSM development board whose primary purpose would
be to make FreeCalypso firmware work a little more pleasant and thereby
motivate me to work on some parts that need to be done, but where the
needed motivation has been lacking.
TI had a family of development/reference boards (a myriad different
variants, it seems) called Leonardo, but I was never able to find one
of these boards (any variant) in real life, nor was I able to find any
PCB layout files for any Leonardo variant - only schematics in 3
different versions. (We've got a D-Sample board, but our semi-src
copy of TCS211 fw can't run on it - it's built for Leonardo - that is
where the "leo" in leo2moko comes from.) The board which I seek to
build is a Leonardo-like, can be thought as our own re-creation of the
lost Leonardo design, based on a reuse of Openmoko's Calypso GSM modem
design which is itself a derivative of - guess what - Leonardo!
I've got the design of my proposed FCDEV3B (FreeCalypso development
board, triband) finished at the netlist level a few months ago in
September, but there was a problem with getting PCB layout done. The
available options were to either pay an outrageous dollar amount to a
professional PCB layout shop to have the layout job finished in PADS
(proprietary PCB layout sw used by Openmoko for their PCB design which
we seek to reuse), or to take yet another detour from other FreeCalypso
work for a few months to work on endowing GNU PCB with PADS-like
capabilities so that a lossless format translation would become
possible. (I was leaning toward the latter option, but other members
of our community weren't too happy about it, and I need the support of
the community.)
Fast-forwarding to the present, we've got some good news: there is an
off-list person who has been in contact with me, and he's got a two-
person team (himself plus an associate of his) working on this FCDEV3B
PCB layout project. Of course we cannot count on anything for certain
until we get the finished design files in our hands, but from my
communications with him I get the impression that he is approaching
this PCB design job in the proper professional manner and that his
approach is promising. One point of concern is that they are doing it
in Altium (yet another proprietary EDA package with which I'm not
familiar at all) instead of PADS or any FLOSS EDA, and I've noticed
that a few things got mistranslated in the PADS->Altium conversion,
but my contact is assuring me that the conversion went better this
time than it did back in July/August when the copper pours got lost,
and that they plan on comparing their final gerbers against Openmoko's
to ensure that nothing got changed in those areas where no change is
intended. I guess that we'll just have to manually fix those spots
where things got mistranslated (so far I've only observed such
mistranslation in the case of R0402-H footprints), and hope that there
aren't any other mistranslations which we missed. After all, my
contact (he hasn't joined the list, so I presume he prefers anonymity,
at least for the time being) is donating two engineers' time to this
project, so we shouldn't be looking a gift horse in the mouth...
The board I'm seeking to build (the one which is now being routed by
my contact and his associate, hopefully) will have the following
features:
* It will be a bare board meant to be used on a lab bench, not a phone
for pockets and purses.
* The board will need to be powered by an external power supply
emulating a battery. One can use a fancy lab bench power supply
with precise voltage control and a current draw display, or there is
a more compact option similar in size to a typical laptop power
adapter. Either way, the ultimate source of power is wall AC - no
battery.
* The Calypso chip version will be the full one with 512 KiB of IRAM,
not the reduced IRAM version (Calypso Lite) used in Mot C1xx phones,
the external flash+RAM chip will be the same as found in the Pirelli
DP-L10 (huge XRAM and flash space available), and by virtue of the
core modem design being based on Openmoko's and not Mot C1xx, it
will run TCS211 firmware with absolutely minimal hacks, much less
invasive than those made in the tcs211-c139 port.
* Both Calypso UARTs will be brought out on a header, allowing TI's
firmware to be used in the two-UART configuration it was designed
for, not the crippled one-UART configuration we've been limping with
so far. I also have plans for a companion USB adapter board which
will present both UARTs as a single USB device (probably using an
FT2232 or similar chip), connecting to the FCDEV3B with a single
10-wire ribbon cable. Of course one can always use two separate
single-port USB-serial adapters, which is what we'll have to do
until we get our USB companion board made, but one can go nuts
trying to keep track of which /dev/ttyUSBx is which when you have
two identical USB-serial cables coming out of your laptop, going to
two identical connectors right next to each other on the target
board. The purpose of a special board to connect both UARTs with a
single USB device will be to eliminate this madness.
* There will be a SIM socket on the board, an SMA connector for
attaching a GSM antenna, and an on-board microphone and loudspeaker
for exercising voice calls and Calypso DSP audio features. No other
UI hardware though, i.e., no LCD and no keypad.
* JTAG and MCSI debug interfaces will be brought out on headers.
If we get this board built, we'll be able to use it to our advantage
in the following ways:
* It may make former and/or present TI employees more willing to help
us if we can impress them with our seriousness and commitment.
Building a very intricate and expensive board of this sort takes a
lot more devotion than just tinkering with some old phones from
ebay.
* We may win over some more hearts in the libre phone scene outside of
our existing FreeCalypso community if we start offering our own
hardware. I reason that a piece of hw designed and built by us
ought to impress people more than a bunch of old phones from ebay.
* This FCDEV3B board will be a much better platform for presenting
TI's TCS211 firmware in a positive light than the C139. Running
TCS211 on a handset like the C139 as opposed to a modem emphasizes
the area of TI's fw which is the weakest: their buggy, rough and
unpolished demo/prototype UI code, whereas the strongest part of
TI's fw (their solid and stable GSM/GPRS modem core) cannot be fully
exercised or demonstrated on the C139 because of the lack of two
UARTs that are fully accessible to the user. (One single-UART hack
for AT commands over RVTMUX works OK for voice and SMS, but not for
CSD and GPRS.) OTOH, the FCDEV3B will have no UI hardware, but it
will have both UARTs very conveniently accessible, thus it will be
perfectly suited for showing off those areas where TCS211 firmware
shines.
* There is one already-existing piece of hw on which TCS211 fw shines:
it's the modem in the Neo Freerunner. But using that hardware as
our flagship is unacceptable for political reasons: the hardware has
become too scarce, the so-called "community" of Openmoko is
continually encouraged to destroy and vandalize this hardware
instead of putting it to loving use, and that same "community" is
too hostile to our project. The critically important quality of my
proposed FCDEV3B is that it is essentially the same hw as Openmoko's
modem, but politically and supply-wise completely independent of
Openmoko. Therefore, we'll be able to present this hw and our
project running on it to fresh libre phone enthusiasts who are not
part of the troubled Openmoko history.
* As far as technical (non-political) benefits to actual FreeCalypso
development go, if we don't succeed in finding and obtaining a more
source-complete copy of TCS211 than the one we already have, and we
thus have to embark on the very painful effort of reconstructing a
recompilable, Calypso-fitting and TCS211-fitting L1 source from the
disassembly of TCS211 binary objects and the available wrong-version
L1 sources, the only way I will be willing to embark on that hellish
task would be if I have an ultra-pleasant development board on my
lab bench, such as my proposed FCDEV3B.
* At some future point we are going to need to build our own hardware
for practical purposes: to get a handset with nicer hardware specs
than the C139, or to produce a FreeCalypso modem module that can be
installed in the Neo900 in the place of the standard proprietary one.
The FCDEV3B will serve as a useful stepping stone toward any future
efforts along those lines.
Stay tuned for further updates on the status of this hardware subproject
as the development proceeds.
M~
More information about the Community
mailing list