FreeCalypso > hg > freecalypso-sw
comparison doc/Firmware_Status @ 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 | 0ee75fdf082f |
| children | 5ab737ac3ad7 |
comparison
equal
deleted
inserted
replaced
| 1017:759b3cbf46aa | 1018:e1d670ec6012 |
|---|---|
| 20 featured in our reference TCS211 fw could not be reused. Instead this project | 20 featured in our reference TCS211 fw could not be reused. Instead this project |
| 21 uses versions of L1 and G23M (and some other pieces) that have been lifted from | 21 uses versions of L1 and G23M (and some other pieces) that have been lifted from |
| 22 the firmware for TI's other chipset (LoCosto) and backported to Calypso. | 22 the firmware for TI's other chipset (LoCosto) and backported to Calypso. |
| 23 | 23 |
| 24 The current state of the project is that we have made remarkable progress, but | 24 The current state of the project is that we have made remarkable progress, but |
| 25 are unfortunately nowhere near the goal of actually being able to replace TCS211 | 25 what we have right now is still not a satisfactory replacement for TCS211. |
| 26 for practical use. Specifically: | 26 Specifically: |
| 27 | 27 |
| 28 * Only the bare minimal modem functionality for the voice+SMS subset has been | 28 * Only the bare minimal modem functionality for the voice+SMS subset has been |
| 29 integrated so far. "Modem" means our fw can only be controlled via AT | 29 integrated so far. "Modem" means our fw can only be controlled via AT |
| 30 commands; no UI code (as in LCD+keypad) has been integrated at all. But it | 30 commands; no UI code (as in LCD+keypad) has been integrated at all. But it |
| 31 is not a true modem either as none of the data functions have been integrated | 31 is not a true modem either as none of the data functions have been integrated |
| 51 tools on the host PC/laptop. One of the utilities in the rvinterf suite is | 51 tools on the host PC/laptop. One of the utilities in the rvinterf suite is |
| 52 fc-shell; this tool is used to send AT commands to the running firmware, | 52 fc-shell; this tool is used to send AT commands to the running firmware, |
| 53 which is the only way to control its operation. | 53 which is the only way to control its operation. |
| 54 | 54 |
| 55 * With a valid SIM card inserted and a valid IMEISV configured, a GSM device | 55 * With a valid SIM card inserted and a valid IMEISV configured, a GSM device |
| 56 running our firmware can successfully connect to live commercial GSM networks | 56 running our firmware can successfully connect to live commercial GSM networks, |
| 57 and send and receive SMS. | 57 make and receive voice calls, and send and receive SMS. |
| 58 | 58 |
| 59 * Voice calls are broken: using appropriate AT commands, one can dial outgoing | 59 * Voice calls work correctly only when the original FR codec is used; EFR and |
| 60 calls and answer incoming ones, and they connect as they should. However, | 60 AMR are broken. Our current workaround is that we advertise to the network |
| 61 the voice audio path is broken: nothing but noise is heard in the earpiece | 61 that we only support the original FR codec; if we tell the network that we |
| 62 speaker. We reason that the problem must be somewhere in L1, which has been | 62 support EFR and/or AMR and the network selects one of these codecs, the |
| 63 backported from LoCosto to Calypso in a rather Frankensteinian manner. | 63 result will be either a total DSP failure (the Calypso DSP blows up with |
| 64 errors, the call fails, and the phone is messed up until reboot) or a | |
| 65 seemingly successful call with broken audio: nothing but noise is heard in | |
| 66 the earpiece speaker. | |
| 67 | |
| 68 We reason that the problem must be somewhere in L1, which has been backported | |
| 69 from LoCosto to Calypso in a rather Frankensteinian manner. | |
| 70 | |
| 71 * When voice calls do work successfully (when the FR codec is used), the call | |
| 72 downlink audio is routed to the phone's earpiece speaker and the phone's | |
| 73 microphone serves as the source for the uplink audio, i.e., even though the | |
| 74 LCD and keypad are dead with our firmware, the earpiece and mic continue to | |
| 75 function as in a conventional phone. | |
| 76 | |
| 77 There is also a highly experimental and completely untested alternative mode | |
| 78 of operation in which the traffic channel carrying FR codec bits (260 bits | |
| 79 every 20 ms) is rerouted away from the internal vocoder to the external host, | |
| 80 such that you can receive the downlink voice bits digitally instead of | |
| 81 listening to them in the earpiece speaker, and you can substitute your own | |
| 82 uplink bits instead of the microphone-fed internal vocoder output. See the | |
| 83 TCH-special-feature write-up for more information. | |
| 64 | 84 |
| 65 * Deep sleep is broken and needs to be disabled with AT%SLEEP=2; the breakage | 85 * Deep sleep is broken and needs to be disabled with AT%SLEEP=2; the breakage |
| 66 is likewise assumed to be somewhere in L1. | 86 is likewise assumed to be somewhere in L1. |
| 67 | 87 |
| 68 The two current points of breakage in L1 (broken deep sleep and broken voice | 88 The plan for further development is as follows: |
| 69 calls) are deemed to be show-stoppers, i.e., we are not going to progress this | |
| 70 work in any other direction until these two are fixed. And we currently see | |
| 71 only two possible ways to fix these L1 issues: | |
| 72 | 89 |
| 73 Option 1: find and obtain another copy of TCS211 that has its L1 component in | 90 * Our current problems with deep sleep and with the more advanced voice codecs |
| 74 source form, or a separate L1-by-itself source that would be compatible with | 91 are indicative of breakage in L1. Furthermore, these are merely visible |
| 75 Calypso DSP ROM 3606 and with the TCS211 fw architecture. | 92 symptoms, and there may be other, more subtle breakage which we haven't |
| 93 noticed yet. Because one of the key goals of this project is to produce a | |
| 94 full-source, gcc-built firmware version that is no worse than TCS211, we need | |
| 95 an L1 that functions no worse than in TCS211. | |
| 76 | 96 |
| 77 Option 2: painstakingly reconstruct a TCS211-fitting version of L1 from the | 97 In order to obtain this TCS211-matching L1, we are taking a little detour |
| 78 disassembly of the available binary objects, by taking LoCosto L1 sources and | 98 from the present gcc-built gsm-fw line of development and temporarily going |
| 79 massaging them until they compile into object code that matches our TCS211 | 99 back into the Windows build environment of TCS211 in order to reconstruct a |
| 80 reference. | 100 recompilable TCS211 L1 source in its native environment. You can follow the |
| 101 progress of that project in the tcs211-l1-reconst Hg repository on Bitbucket. | |
| 102 When we get the TCS211 version of L1 fully reconstructed in its native | |
| 103 environment, we are going to make a wholesale replacement of L1 in our | |
| 104 gcc-built gsm-fw: completely remove the current version and replace it with | |
| 105 the reconstructed TCS211 one. This step should fix the deep sleep and | |
| 106 advanced voice codec breakage, and give us a more solid foundation that will | |
| 107 be no worse than our TCS211 golden reference. | |
| 81 | 108 |
| 82 Option 1 involves more prayer than actionable work, while Option 2 is currently | 109 * Once we have an L1 which we feel happy with, we will need to fix a few minor |
| 83 being worked on in another subproject of FreeCalypso - see tcs211-l1-reconst. | 110 issues and implement two major missing features for the AT-command-controlled |
| 111 voice+SMS pseudo-modem configuration: battery charging (the ability to charge | |
| 112 the battery while our pseudo-modem fw is running) and a keepalive mechanism | |
| 113 that detects when the external host (connected via the serial port) has been | |
| 114 disconnected and powers off the phone-turned-pseudo-modem in this case. Once | |
| 115 these two features are implemented, we will have a robust voice+SMS pseudo- | |
| 116 modem solution with external AT command control. | |
| 117 | |
| 118 * Once we reach the robust AT-command-controlled voice+SMS pseudo-modem | |
| 119 milestone, we will have several different directions in which we can develop | |
| 120 the project further. It is too early and premature right now to plan that | |
| 121 far ahead, though. | |
| 84 | 122 |
| 85 Target-specific usage instructions | 123 Target-specific usage instructions |
| 86 ================================== | 124 ================================== |
| 87 | 125 |
| 88 If you would like to play with our work-in-progress firmware and check it out | 126 If you would like to play with our work-in-progress firmware and check it out |
