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