FreeCalypso sw/fw update

Mychaela Falconia mychaela.falconia at gmail.com
Mon Mar 20 06:14:24 UTC 2017


Hello FC community,

While we wait for our FCDEV3B baby (should be no more than two weeks
of waiting left according to what the assembly shop people told me), I
have done some work on the software side of FreeCalypso.  Here are the
new developments so far:

* The deblobbing of the full TCS211 L1 (as opposed to the subset of L1
  used in Citrine) is now complete except for the L1_GPRS-specific
  modules - all other L1 modules including l1audio and l1tm are now
  recompiled from C source.  This deblobbed L1 can be found in the
  tcs211-l1-reconst and fc-magnetite Hg repositories.

* All FC Magnetite build configurations that include FreeCalypso L1
  have been updated to rebuild everything except L1_GPRS modules from
  the reconstructed source.

* I've been doing a lot of work on the development host tools in the
  freecalypso-tools repository.  Our Test Mode Shell fc-tmsh now
  supports almost all of the Test Mode commands (both TM3 and ETM)
  provided by TCS211 fw, using the same command names and syntax as
  TI's own TMSH (of which I don't have a copy!) when sensible, and we
  now have fc-cal2text and tiaud-decomp utilities for "in vitro"
  decoding of the firmware's RF calibration and audio mode config
  files, respectively.

The one area which is currently lacking is documentation: all of these
mighty tools need to be documented, and this documentation is currently
lacking.  Writing at least some documentation is on my TODO list.  But
if you don't mind reading the source to figure things out, there is a
treasure trove of development and investigation capabilities waiting
for you to tap into it.

Once we get the FCDEV3B built and working, here are the things I would
like to do, in no particular order:

* Using the convenient access to both UARTs on the FCDEV3B, properly
  exercise the CSD and GPRS capabilities of our reference TCS211 fw,
  get a feel for them, and establish our baseline in this area.

* Using the same convenient access to both UARTs, develop a mechanism
  for dynamically switching the main MODEM UART between its regular AT
  command operation and RVTMUX.  The motivation is as follows: while
  serious development and debugging will always require both UARTs and
  all FC hardware should be designed to allow access to the second
  UART at least for developers, on many platforms it may be reasonable
  to have only one UART accessible in ordinary usage, with access to
  the second UART requiring a special cable or adapter.  Ordinary users
  aren't expected to do a whole lot with RVTMUX, but there are a few
  tasks (FFS edits like changing your IMEISV or fixing a misprogrammed
  rfcap file) which ordinary users should be able to do and which are
  best done through RVTMUX, hence my idea of allowing a dynamic switch
  to bring RVTMUX to the MODEM UART on a non-persistent basis.

* Put out a moko13 firmware release, based on Magnetite.  Relative to
  the current state of FC Magnetite, I would like to make just two
  changes prior to releasing moko13: add the RVTMUX dynamic switch
  described above, and implement a firmware version ID scheme.

* Once we have a platform (FCDEV3B) that both runs TCS211/Magnetite
  and has MCSI brought out (the pre-existing hw options satisfy one or
  the other, but not both), try out the "Bluetooth headset" voice path
  configuration (GSM voice routing to MCSI) and see if and how it
  works.  Turning this mode on should now be as simple as sending an
  auw 0 2 command through fc-tmsh; I tried it on the GTA02 and the
  command executes without crashing the fw, but further testing
  requires the FCDEV3B and an oscilloscope probe on the MCSI pins.

* The firmware we've got from TI includes a rich repertoire of
  L1/DSP-based audio services: supposedly it can play polyphonic
  melodies through the DSP, record and play back voice memos in both
  06.10 and AMR formats, and even do speech recognition against
  pre-recorded samples in the user's own voice.  I say supposedly
  because these functions have never been tested: we know the code is
  there because I just went through the trouble of deblobbing it, but
  whether it works or not is another question.  I don't know what is
  more peculiar: the fact that this code is included in the sans-UI
  modem builds (like all of mokoN, for example) despite there being no
  way to invoke it, or the fact that none of the historical commercial
  Calypso-based dumbphones I've seen seem to make use of any of these
  features.  In any case, I would like to exercise these functions by
  adding some debug AT commands that invoke them, but I want to do it
  on a platform where I don't have to hold the device up to my ear
  with cables connected from both sides, like one has to do when using
  a FreeRunner as a poor man's substitute for a proper GSM development
  board.

* We are still using the all-blobs TCS211 version of the G23M protocol
  stack; in order to progress toward our desired blob-free state, we
  need to switch to the TCS2/TCS3 hybrid configuration (the one with
  G23M taken from LoCosto source) at some point.  Once we have the
  FCDEV3B and have done all or most of the above, it will be a good
  time to tackle the hybrid modem firmware config.

* Deblobbing L1_GPRS is the lowest priority: we need to switch to
  blob-free G23M (which includes GPRS) by polishing the TCS2/TCS3
  hybrid config before it will make any sense to tackle L1_GPRS.

This is all from me for now; back to waiting for the FCDEV3B assembly.

Hasta la Victoria, Siempre,
Mychaela aka The Mother


More information about the Community mailing list