changeset 1018:e1d670ec6012

doc/Firmware_Status: update for the current state of voice call support and TCS211 L1 reconstruction progress
author Mychaela Falconia <falcon@ivan.Harhan.ORG>
date Sat, 23 Apr 2016 04:39:58 +0000
parents 759b3cbf46aa
children 69d6da9ee188
files doc/Firmware_Status
diffstat 1 files changed, 60 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/doc/Firmware_Status	Mon Mar 21 06:05:57 2016 +0000
+++ b/doc/Firmware_Status	Sat Apr 23 04:39:58 2016 +0000
@@ -22,8 +22,8 @@
 the firmware for TI's other chipset (LoCosto) and backported to Calypso.
 
 The current state of the project is that we have made remarkable progress, but
-are unfortunately nowhere near the goal of actually being able to replace TCS211
-for practical use.  Specifically:
+what we have right now is still not a satisfactory replacement for TCS211.
+Specifically:
 
 * Only the bare minimal modem functionality for the voice+SMS subset has been
   integrated so far.  "Modem" means our fw can only be controlled via AT
@@ -53,34 +53,72 @@
   which is the only way to control its operation.
 
 * With a valid SIM card inserted and a valid IMEISV configured, a GSM device
-  running our firmware can successfully connect to live commercial GSM networks
-  and send and receive SMS.
+  running our firmware can successfully connect to live commercial GSM networks,
+  make and receive voice calls, and send and receive SMS.
+
+* Voice calls work correctly only when the original FR codec is used; EFR and
+  AMR are broken.  Our current workaround is that we advertise to the network
+  that we only support the original FR codec; if we tell the network that we
+  support EFR and/or AMR and the network selects one of these codecs, the
+  result will be either a total DSP failure (the Calypso DSP blows up with
+  errors, the call fails, and the phone is messed up until reboot) or a
+  seemingly successful call with broken audio: nothing but noise is heard in
+  the earpiece speaker.
 
-* Voice calls are broken: using appropriate AT commands, one can dial outgoing
-  calls and answer incoming ones, and they connect as they should.  However,
-  the voice audio path is broken: nothing but noise is heard in the earpiece
-  speaker.  We reason that the problem must be somewhere in L1, which has been
-  backported from LoCosto to Calypso in a rather Frankensteinian manner.
+  We reason that the problem must be somewhere in L1, which has been backported
+  from LoCosto to Calypso in a rather Frankensteinian manner.
+
+* When voice calls do work successfully (when the FR codec is used), the call
+  downlink audio is routed to the phone's earpiece speaker and the phone's
+  microphone serves as the source for the uplink audio, i.e., even though the
+  LCD and keypad are dead with our firmware, the earpiece and mic continue to
+  function as in a conventional phone.
+
+  There is also a highly experimental and completely untested alternative mode
+  of operation in which the traffic channel carrying FR codec bits (260 bits
+  every 20 ms) is rerouted away from the internal vocoder to the external host,
+  such that you can receive the downlink voice bits digitally instead of
+  listening to them in the earpiece speaker, and you can substitute your own
+  uplink bits instead of the microphone-fed internal vocoder output.  See the
+  TCH-special-feature write-up for more information.
 
 * Deep sleep is broken and needs to be disabled with AT%SLEEP=2; the breakage
   is likewise assumed to be somewhere in L1.
 
-The two current points of breakage in L1 (broken deep sleep and broken voice
-calls) are deemed to be show-stoppers, i.e., we are not going to progress this
-work in any other direction until these two are fixed.  And we currently see
-only two possible ways to fix these L1 issues:
+The plan for further development is as follows:
+
+* Our current problems with deep sleep and with the more advanced voice codecs
+  are indicative of breakage in L1.  Furthermore, these are merely visible
+  symptoms, and there may be other, more subtle breakage which we haven't
+  noticed yet.  Because one of the key goals of this project is to produce a
+  full-source, gcc-built firmware version that is no worse than TCS211, we need
+  an L1 that functions no worse than in TCS211.
 
-Option 1: find and obtain another copy of TCS211 that has its L1 component in
-source form, or a separate L1-by-itself source that would be compatible with
-Calypso DSP ROM 3606 and with the TCS211 fw architecture.
+  In order to obtain this TCS211-matching L1, we are taking a little detour
+  from the present gcc-built gsm-fw line of development and temporarily going
+  back into the Windows build environment of TCS211 in order to reconstruct a
+  recompilable TCS211 L1 source in its native environment.  You can follow the
+  progress of that project in the tcs211-l1-reconst Hg repository on Bitbucket.
+  When we get the TCS211 version of L1 fully reconstructed in its native
+  environment, we are going to make a wholesale replacement of L1 in our
+  gcc-built gsm-fw: completely remove the current version and replace it with
+  the reconstructed TCS211 one.  This step should fix the deep sleep and
+  advanced voice codec breakage, and give us a more solid foundation that will
+  be no worse than our TCS211 golden reference.
 
-Option 2: painstakingly reconstruct a TCS211-fitting version of L1 from the
-disassembly of the available binary objects, by taking LoCosto L1 sources and
-massaging them until they compile into object code that matches our TCS211
-reference.
+* Once we have an L1 which we feel happy with, we will need to fix a few minor
+  issues and implement two major missing features for the AT-command-controlled
+  voice+SMS pseudo-modem configuration: battery charging (the ability to charge
+  the battery while our pseudo-modem fw is running) and a keepalive mechanism
+  that detects when the external host (connected via the serial port) has been
+  disconnected and powers off the phone-turned-pseudo-modem in this case.  Once
+  these two features are implemented, we will have a robust voice+SMS pseudo-
+  modem solution with external AT command control.
 
-Option 1 involves more prayer than actionable work, while Option 2 is currently
-being worked on in another subproject of FreeCalypso - see tcs211-l1-reconst.
+* Once we reach the robust AT-command-controlled voice+SMS pseudo-modem
+  milestone, we will have several different directions in which we can develop
+  the project further.  It is too early and premature right now to plan that
+  far ahead, though.
 
 Target-specific usage instructions
 ==================================