# HG changeset patch # User Mychaela Falconia # Date 1461386398 0 # Node ID e1d670ec6012358ad4190611d6b37e8eb1005b12 # Parent 759b3cbf46aaf3bed885347757fbd8ade307b91f doc/Firmware_Status: update for the current state of voice call support and TCS211 L1 reconstruction progress diff -r 759b3cbf46aa -r e1d670ec6012 doc/Firmware_Status --- 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 ==================================