FreeCalypso update: progress with DSP patches and voice calls

Mychaela Falconia falcon at ivan.Harhan.ORG
Sat Apr 9 16:32:38 CET 2016

Hi DS,

> After more testing, it seems (apart from the AMR bug and the deep sleep
> bug) that leo2moko sets up a kind of filtering for the audio itself -
> when using it, the audio is quite clear, however when using gsm-fw I get
> this background noise that seems to come from nearby interference, such
> as GSM bursts or the serial output. It's entirely possible that once the
> AMR bug is fixed, this audio filtering issue will go away as well.

As I understand it, the Calypso DSP does have some audio filtering
features (FIR and AEC come to mind), but they are controlled (enabled
or disabled, and possibly configured in more complex ways) by a piece
of ARM code in L1 called AUDIO_TASK.  TI's firmwares have this "audio
task" enabled in all production configurations (the config with this
feature disabled appears to be bitrotten and doesn't compile), but the
code in question has not been integrated yet in our gcc-built gsm-fw.

As for fixing the higher voice codec bug (appears to affect both AMR
and EFR) and the deep sleep bug, my plan is as follows:

1. Finish deblobbing L1 in the TCS211 environment.  If you look in the
   tcs211-l1-reconst Hg repository on Bitbucket, you'll see that I've
   been making steady progress: l1_ext.lib and l1_int.lib (originally
   shipped as blobs) are now rebuilt from the constituent object
   modules, and while for some of these modules we still have to use
   the original sans-source blobs, many of the L1 objects going into
   the build are now recompiled from the sources I've reconstructed -
   and in each case the new compilation of the reconstructed C module
   produces an object that perfectly matches the corresponding
   original blob, often bit for bit!

   My goal is to carry this TCS211 L1 reconstruction to the point
   where *every* L1 object with the exception of l1p_* (GPRS) and
   l1tm_* (calibration and test modes) will be compiled from
   reconstructed source, before proceeding to the next step.
   (L1TM and GPRS are to be revisited and finished off later in this

2. Once we have (a sans-GPRS, sans-TM subset of) TCS211 L1 in
   recompilable source form in the tcs211-l1-reconst tree, make a
   wholesale replacement of L1 in our gcc-built gsm-fw: replace the
   current L1 we are using (LoCosto L1 headers and minimally-ported
   LoCosto L1 C modules) with the fully reconstructed TCS211 one.
   We may likely be able to enable AUDIO_TASK in the same step.

> About developing environments, I've finally settled on Visual Studio.
> Although I don't generally like using proprietary tools, in this case
> I could not find a suitable open-source alternative. Of course this is
> just for browsing the source, building and flashing is still done on
> Linux.

I personally never needed anything more than vi and grep to go from
zero to my current understanding of various TI-based firmwares, and
for all of the development, editing and version reconciliation I've
been doing, but to each their own.

Hasta la Victoria, Siempre,

More information about the Community mailing list