FreeCalypso > hg > freecalypso-docs
annotate Handset-UI-fw @ 23:14391ad53281
FCDEV3B-repackaging article removed for legal reasons
The idea expressed in that article, namely the idea that some party other than
Mother Mychaela could be permitted to create a derived work based on FCDEV3B
board design and have it be accepted into the FreeCalypso family, is no longer
allowed by our current stance on the matters of intellectual property,
particularly Falconia IP.
For technical content, the new FC-modem-family and Quadband-ideas articles
should fully supplant this old FCDEV3B-repackaging article.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 23 Oct 2019 00:43:21 +0000 |
parents | fcd1cf531017 |
children | 2e9719074e79 |
rev | line source |
---|---|
0
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 The present article is a companion to the TCS211 firmware architecture document |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 (TCS211-fw-arch). Those who are interested in the FreeCalypso phone handset |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 goal (which is currently a very distant goal) should read the TCS211-fw-arch |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 document first and then this article, whereas those who are more interested in |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 the rock solid FreeCalypso modem (as opposed to handset) solution which is |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 already available today and would like to understand our modem fw better only |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 need to read the TCS211-fw-arch document and can safely skip this handset UI |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 addendum. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 TI's offerings for handset UI |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 ============================= |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 Unlike their rock solid, full commercial product offering for AT-command- |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 controlled modems, TI never produced a reference phone handset firmware |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 implementation that could be used as-is with minimal or no changes: instead |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 they provided a very rough proof-of-concept implementation which is nowhere |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 close to usable, and left it up to their customers (handset manufacturers) to |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 whip it into even a minimally decent shape. Furthermore, they had several |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 different approaches over the years to what the GSM industry calls by the |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 sexist term "MMI": |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 * They once had something called SMI, for "simple MMI" or "slim MMI". We have |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 what appears to be the complete source for this SMI component as part of the |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 MV100-0.1.rar and 94140216gsm.rar finds, but both of those finds are just |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 broken fragments, not a complete firmware for any target. It might be |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 possible to integrate this unknown-origin SMI source into Magnetite and get |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 it to work with the TCS2 version of ACI, but no such feat has been attempted |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 yet - it would be a mere curiosity, not something for practical use. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 * SMI later gave way to a successor called BMI for "basic MMI", which is much |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 bigger in terms of code size and complexity and consists of two layers: there |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 is a layer called MFW (mobile framework) that sits on top of ACI, and then |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 BMI proper sits on top of MFW. This incarnation of TI's demo/prototype phone |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 UI is the one which they officially supported in the TCS211 program, and our |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 copy of TCS211 from OM miraculously has these BMI+MFW sources included, even |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 though OM obviously didn't use this code and could not even compile it without |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 doing some surgery on the build system. Our other TCS3.2/LoCosto source also |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 has BMI and MFW matching that newer version of G23M ACI and PS components, |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 and we use this new TCS3 version of BMI+MFW in our TCS2/TCS3 hybrid config. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 * It appears that TI once had or were trying to develop some kind of Riviera- |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 based "MMI" code as an alternative to the Condat-based SMI and BMI. SMI and |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 BMI+MFW execute in the same "MMI" GPF task as ACI and communicate with it |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 through direct function calls; in contrast, the alternative Riviera MMI would |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 run somewhere in Riviera land and communicate with ACI through ATP and some |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 kind of ACI adapter. We never got any of this code, and it is not clear if |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 it was ever a reality beyond just the idea. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 In any case, it is clear from the code that TI's SSA group in France who |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 developed the drivers for various Calypso chipset peripherals including LCDs, |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 keypads and ringing buzzers on their development boards and the Condat UK group |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 who did SMI and BMI had very different visions and ideas. Some examples: |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 * The Calypso DSP has a built-in mechanism for playing quite pleasant-sounding |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 ringtone melodies through a loudspeaker driven by the chipset's ABB, and the |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 SSA group developed their RiViera Audio Service front-end to these L1+DSP |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 audio services, but Condat's code makes absolutely minimal use of this RV |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 Audio Service, just enough to be compatible with it, and does not use any of |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 the melody functions, neither E1 nor E2. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 * In the original TCS211 architecture before LoCosto changes, the driver for |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 the physical LCD was/is R2D in the Riviera/SSA land. R2D provides a very rich |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 set of text and graphics drawing primitives, but Condat's display layer does |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 not use any of them: instead they obtain the raw framebuffer address from R2D |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 and do all drawing operations themselves. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 * The TCS211 code we got had a jaw-dropping bug in the code path for ringing |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 the piezoelectric buzzer: due to a miscommunication between the French folks |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 in charge of the actual buzzer driver in chipsetsw and the German or UK folks |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 in charge of Condat's audio layer, the buzzer always rang at some 99 Hz (its |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 lowest possible frequency, horrible on ears) no matter what tone frequency |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 was intended. Given that our copy of TCS211 dates from 2007 and considering |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 how old the buzzer function must be, it hurts to think for how many years |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 that bug sat there without anyone wondering why ringing sounds so horrible. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 In terms of the code architecture, none of Condat's UI code ever calls any of |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 the actual drivers in the SSA realm directly: instead everything goes through |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 the Condat drivers layer in condat/com/src/driver, and that layer provides a |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 very poor adaptation as highlighted above. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 LCD support |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 =========== |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 TI's demo/prototype UI code never supported a wide variety of different display |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 sizes or keypad layouts - instead they only supported whatever existed on their |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 in-house development boards at each given point in their history. TI's C-Sample |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 and earlier development boards had 84x48 pixel B&W displays, whereas from |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 D-Sample onward they made the big jump to a 176x220 pixel color LCD. Both |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 versions of the UI we got (TCS211 targeting D-Sample and TCS3.2 targeting |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 I-Sample, TI's LoCosto board) were developed on 176x220 pixel color LCD |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 platforms, and that is the only display size which they intended to support. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 There also exists a remnant of support for their earlier 84x48 pixel C-Sample |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 LCD, which we resurrected in FreeCalypso to see it run on Mot C139 hardware, |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 but that support was broken: it would not even compile without our fixes. In |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 our current FC Magnetite firmware we can build this C-Sample UI version for the |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 C139 target and it works in the demo / proof-of-concept sense, but it is likely |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 to be even more broken than the official 176x220 pixel version. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 Anyone interested in adding support for a different LCD will need to start with |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 the R2D driver under src/cs/drivers/drv_app/r2d. The principal LCD type |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 selection is done in r2d_config.h (C-Sample and D-Sample are the only options |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 supported by the version we got with TCS211), and this selection affects all of |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 R2D and all of its clients. Our change to this r2d_config.h LCD type selection |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 logic consists of selecting C-Sample instead of D-Sample when the build target |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 is C139. A secondary selection is made in r2d_inits.c and r2d_refresh.c where |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 the code snippets for the actual hardware initialization and output are |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 included: the way we currently support the C139 hw target is a very thorough |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 emulation of the C-Sample including its vertical B&W framebuffer format, all of |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 the code in R2D and in Condat's display driver sees a real C-Sample LCD, and |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 only the hardware-poking code is substituted. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 The direct implication of our C-Sample emulation approach for the C139 LCD is |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 that the full 96x64 pixel size of Motorola's LCD becomes completely |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 inaccessible, and all software sees a 84x48 pixel subset. The same happens |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 with color: because TI's C-Sample LCD was B&W, the color capabilities of the |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 real C139 LCD become inaccessible. Anyone who wishes to fix this shortcoming |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 would need to implement a new bona fide LCD type in R2D, and then adapt |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 Condat's display driver accordingly. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 Condat's display driver (condat/com/src/driver/display.c) is very messy and |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 very difficult to understand. The only change we have made to it in FreeCalypso |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 was fixing the support for the C-Sample LCD which was bitrotten: the bitrot and |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 our fix for it is not specific to the C139, it would affect a real C-Sample |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 board just as well. Understanding this code well enough to extend it to other |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 LCD geometries and framebuffer formats would be a much greater challenge. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 Above Condat's display driver lies the actual UI implementation in BMI and MFW. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 This UI code supports only 3 possible configurations: |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 * Both COLOURDISPLAY and LSCREEN defined: the display is 176x220 color; |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 * LSCREEN is defined but not COLOURDISPLAY: the display is 176x220 B&W - TI |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 used this config when building "GSM Lite" fw for the D-Sample; |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 * Neither LSCREEN nor COLOURDISPLAY defined: the old 84x48 pixel B&W UI from |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 the days of C-Sample and earlier. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 Note the lack of support for small color displays like the one on the C139. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 Text fonts |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 ---------- |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 The SSA group's R2D driver provides text display functions and contains its own |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 fonts, but Condat's stuff does not use those display functions or fonts - |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 instead BMI and MFW (and presumably SMI too) use a different font/text |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 implementation contained in the Condat drivers layer. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 Keypad support |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 ============== |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 The hardware keypad driver is KPD in Riviera/SSA land, residing in |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 chipsetsw/drivers/drv_app/kpd in TCS211 or in src/cs/drivers/drv_app/kpd in |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 Magnetite and Selenite. Unlike the display driver R2D, KPD is always included |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 even in modem firmware builds - but if there is no keypad connected to the |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 Calypso, it does nothing. TI's firmware architecture and UI code support only |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 traditional numeric keypads - there is no provision for supporting a full QWERTY |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 keyboard. However, if the keypad layout on a given phone handset is close |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 enough to what TI had on their development boards, modifying KPD for the |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 specific wiring is very easy: we have already added proper support for Mot C1xx |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 and Pirelli DP-L10 keypads. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 Battery monitoring and charging |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 =============================== |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 TI had two incarnations of their battery charging and monitoring driver: first |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 PWR, then LCC. Both were implemented in Riviera/SSA land. LCC was not a good |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 fit for our targets of interest (Mot C1xx, Pirelli DP-L10 and our desired |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 FreeCalypso Libre Dumbphone hardware) while PWR had other problems, so we |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 retired both of them and wrote our own replacement called FCHG. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 There is a quirk, however: there is no connection in the TCS211 code as |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 delivered by TI between their demo/prototype UI (or rather between Condat's |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 power driver stub) and either of their battery driver implementations. At the |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 time of TCS211-2007 the original PWR driver had already been retired and only |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 LCC was supported, but even that LCC driver had no connection to the UI: one |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 could remove it from the fw build configuration and the UI code would still |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 compile and link just fine, which would not be possible if there were any calls |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 to LCC's API functions. The practical effect of this quirk is that there is no |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 need to resurrect PWR or LCC in order to run TI's UI code in its pristine |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 original form - using our own FCHG or no battery management driver at all is |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 just as fine. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 The proper way to get proper support for Mot C139 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 ================================================= |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 I (Mother Mychaela) feel very strongly that the best way to produce practically |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 usable end user FreeCalypso firmware for the C139 target would be to do it |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 together with our own FreeCalypso Libre Dumbphone development, as opposed to |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 trying to support the C139 to the exclusion of our own FreeCalypso hardware. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 Specifically, I propose the following order of steps: |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 1) First build our own FreeCalypso UI development board, a derivative of the |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 FCDEV3B adding a 176x220 pixel color LCD and other miscellany to serve as a |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 replacement for TI's D-Sample. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 2) Retire the C-Sample UI configuration and our currently implemented C-Sample |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 emulation hack on the C139, and start running TI's UI code the way TI's own |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 developers ran it on the D-Sample. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 3) Change the "small screen" UI layout from 84x48 to 96x64 pixels (from 6 rows |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 of 14 characters to 8 rows of 16 characters with TI's existing font), and |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 fix the bugs related to displaying this "small screen" (!LSCREEN) UI on a |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 physically larger LCD - we would like to display it on our 176x220 pixel UI |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 development board. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 4) Extend the UI code to allow the possibility of COLOURDISPLAY && !LSCREEN, |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 i.e., a small (96x64 pixels) color display like on the C139. Have this |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 96x64 pixel color UI displayed on our 176x220 pixel UI development board. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 5) Work on getting the actual UI into shape, keeping the two configurations of |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 176x220 pixel color (future FreeCalypso Libre Dumbphone) and 96x64 pixel |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 color (Mot C139) as actively supported ones. Do all development on our |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 176x220 pixel UI development board. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 6) Once the UI-enabled firmware works decently on our development board in both |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 176x220 and 96x64 configurations, add native C139 LCD support (not C-Sample |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 emulation) to R2D, adapt Condat's display driver as necessary if we are still |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218 using it (if we don't find a way to get rid of it by this point), and run |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 our 96x64 pixel color UI config on real C139 hardware. At this point we |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 should have practically usable end user FreeCalypso fw on the C139. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 7) While the less demanding and more casual phone users will be happy with the |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 feeble C139 if it runs our FreeCalypso fw, those of us who desire the |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 Ultimate Awesome Libre Dumbphone will be able to take our 176x220 pixel UI |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 development board and start turning it into an actual FreeCalypso Libre |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 Dumbphone handset. This will be the point when we can move the ringtone |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 output from the piezo buzzer to the loudspeaker (Melody E1) and start making |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 other changes for better-than-C139 hardware. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 Of course the biggest difficulty with the above plan is that it requires |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 designing and building a new piece of hardware as its very first critical step. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 My personal plan is to kill two birds with one stone: design the board in such |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 a way that it can be used both as a development board for the above plan and as |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 a close-to-final prototype for my desired FC Libre Dumbphone handset - although |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 not completely final, as this board would absolutely need to be usable in its |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 bare form on a lab bench without plastics, which calls for a somewhat different |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 design than a final handset product. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 Anyone who disagrees with my approach, anyone who is against designing and |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240 building new custom hardware at high cost and who is instead interested first |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 and foremost in pre-existing hardware targets like Mot C139 is more than welcome |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 to delve into the code themselves and try their own hand at fixing the code to |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 make it practically usable on the C139. However, I have to warn you: if you |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 spend a significant amount of time working with TI's code and develop an |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 affection for it, it is quite possible that you will start to feel the way I do |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
246 in terms of desiring a D-Sample-like platform for development. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248 Why Mot C139? |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
249 ============= |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
250 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
251 Out of the known repertoire of pre-existing Calypso-based phones whose existence |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
252 has been discovered by OsmocomBB and for which we already have some foundations |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 of support in FreeCalypso, Mot C139 is the most suitable one for the purpose of |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
254 turning it into a Libre Dumbphone by way of aftermarket firmware. Here are the |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
255 problems with the other ones: |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257 * Pirelli DP-L10 is my absolute favourite with an end user hat on, but the |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
258 unwanted extra chips for the unwanted-for-us WLAN and camera functionality |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
259 are a killer. There are no schematics for the phone and no documentation for |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260 any of these chips, and we don't know how to power them down. In a fully |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
261 quiescent state with all Calypso sleep modes enabled and with both LCD and |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
262 keypad backlights off, the board still draws about 87 mA from the battery, |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
263 which will kill a fully charged battery in about 10 hours of complete idle. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
264 Furthermore, it is not possible to turn on the loudspeaker without going |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
265 through the W56940 ringtone chip, and the reset line for this chip comes from |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
266 a GPIO on the completely undocumented camera chip - thus without a way to |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
267 control this reset line we may not be able to program the W56940, and without |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
268 that programming we may not be able to turn on the loudspeaker, ruining all |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
269 usefulness of this phone. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
270 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
271 * Mot C11x/12x family is good in terms of not having any undocumented hardware, |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
272 but the tiny RAM capacity is a bummer. These lowest-end phones have only |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
273 256 KiB of IRAM (Calypso internal RAM) and 256 KiB of XRAM (board-level RAM), |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
274 whereas the next-step-up C139/140 has 512 KiB of XRAM. It is a significant |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
275 difference for us: while we fit into C139's 512 KiB with no sweat, it would |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
276 require some very unpleasant and unrewarding work to trim the fat and |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
277 reshuffle our memory usage to fit into the 256+256 arrangement on C11x. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
278 Furthermore, most C11x/12x phones have only 2 MiB of flash, which would again |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
279 require major contortions to fit into, whereas all C139/140 phones have 4 MiB. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
280 |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
281 * Mot C155/156 seem nice, but there is a problem: these phones ring with a |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
282 loudspeaker driven by a ringtone generator chip instead of a piezo buzzer |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
283 driven by the Calypso, and their ringtone generator chip is Sunplus SPMA100B. |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
284 No documentation could be found for that chip, and if we can't program it, we |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
285 won't be able to make the phone ring or operate its loudspeaker in any other |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
286 way. Furthermore, the LCD controller in these phones is much less obvious |
fcd1cf531017
TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
287 than the one in the C139/140. |