annotate FC-handset-spec @ 67:ed686a290f2d

FC-handset-spec: LCD and backlight specification changes to ungate Venus board design
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 03 Jul 2021 07:01:39 +0000
parents a2857b6c3d87
children bdc5d8d9fa1f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
41
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 FreeCalypso Handset Specification
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 =================================
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 The purpose of this document is two-fold:
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 1) This document serves as the principal design specification for the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 FreeCalypso Libre Dumbphone handset hardware which I, Mother Mychaela,
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 seek to build.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 2) This document also defines the scope of functionality to be supported in
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 FreeCalypso handset firmware, including support for additional hardware
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 targets beyond the primary FC handset hw target.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 1. FC handset hardware specification
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 1.1. Basic features
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 The Mother's goal is to produce a replacement for the proprietary Pirelli DP-L10
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 phone, or more specifically, for the GSM-only subset of this Pirelli phone which
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 the Mother actually uses, *without* Pirelli's key differentiating feature of
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 non-GSM WiFi operation, and without Pirelli's camera. The following hardware
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 features are to be included:
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 * 176x220 pixel color display (no touch)
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 * 21-button main keypad
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 * 3 side buttons for volume control and an auxiliary function
59
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
27 * hands-free loudspeaker, also to be used for ringing
42
6b61d77f7700 FC-handset-spec: missed the loudspeaker and vibrator in 1.1
Mychaela Falconia <falcon@freecalypso.org>
parents: 41
diff changeset
28 * vibrator
41
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 * USB port that combines charging and computer interface
46
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
30 * wired analog headset jack
41
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 * single SIM slot
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 The following features which are commonly found in mainstream proprietary
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 phones, particularly more recent ones, will NOT be included:
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 * camera
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 * Bluetooth
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 * FM radio
58
e6a1d1699ebb FC-handset-spec: explicitly list stereo/music exclusion
Mychaela Falconia <falcon@freecalypso.org>
parents: 57
diff changeset
39 * MP3 or any other music player
e6a1d1699ebb FC-handset-spec: explicitly list stereo/music exclusion
Mychaela Falconia <falcon@freecalypso.org>
parents: 57
diff changeset
40 * stereo headphone output or any other beyond-voice audio
41
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 * TV receiver
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 * GPS receiver
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 * dual SIM slot
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 * torch light beyond LCD and keypad backlights
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 1.2. RF band capability
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 Our FC handset needs to be quadband GSM; this quadband capability will be
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 achieved by copying the RF section and the core PCB layout around it from the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 reverse-engineered iWOW TR-800 modem module, which is itself a very direct
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 (almost verbatim) derivative of TI's Leonardo+ quadband reference design.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 1.3. RAM and flash
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 The Mother's intent is to use Spansion S71PL064JA0 flash+RAM MCP on the final
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 handset motherboard, providing 8 MiB of flash and 2 MiB of XRAM in a 7x9 mm
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 footprint. This flash and RAM capacity is already known to be fully sufficient
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 for our FreeCalypso handset firmware in maximal feature configuration, hence
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 any larger capacity would be excessive. However, on our FC Venus development
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 board we may use the larger S71PL129NC0 MCP, same as used on FCDEV3B V2.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 1.4. Liquid crystal display
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 1.4.1. Display size
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 The size of the display for our FC Libre Dumbphone handset design is fixed at
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 176x220 pixels, 16-bit color, following TI's D-Sample platform and the starting
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 point UI code that was developed for it. Thoughts of changing to a different
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 display size have been considered and rejected:
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 * If we were to change to a smaller display size, we would have to do extra work
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 on the firmware to shrink the UI to the smaller size, and we would reduce the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 amount of information that can be displayed at once. We would incur extra
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 work and a functional loss, but gain absolutely nothing in return.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 * If we were to change to a larger display size (240x320 pixels seems to be the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 largest reasonable size for dumbphones, used in high-end Nokia models), we
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 would be venturing into uncertain territory - the greatest uncertainty would
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 be the extra CPU load on Calypso to draw the larger UI and to refresh the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 larger framebuffer, which is done with PIO on Calypso, without any DMA
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 assistance. The D-Sample LCD size of 176x220 pixels already appears to be a
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 strain in some drawing code paths, hence the Mother's decision is to play it
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 safe and stick with the known working display size. Expanding the UI to make
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 sensible use of larger screen real estate would also entail additional work.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 176x220 is the display size in pixels, and this resolution number by itself says
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87 nothing about the physical display size in inches or mm. However, most readily
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 available LCDs that are made for this pixel resolution are made in 2.0" diagonal
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89 physical size, with 31.68x39.60 mm active area and 0.180 mm dot pitch, hence
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 this physical size is the one we are going to use.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 1.4.2. Specific LCD module selection
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93
67
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
94 As of 2021-07, the frontrunner candidate LCD module for our FC handset is
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
95 Formike KWH020ST23-F01. Our selection criteria are as follows:
41
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 * TFT color LCD, 2.0" diagonal, 176x220 pixel resolution;
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 * 16-bit microprocessor bus interface;
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 * 6:00 viewing direction as appropriate for cellular handsets;
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 * backlight consisting of 3 white LEDs in parallel, joined at the anode,
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 with separately brought-out cathodes;
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106 * mechanical design that supports mounting with the FPC tail folded under the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107 module, either by way of direct solder termination (no connector) or by way
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108 of raised sides that create sufficient vertical space to accommodate the FPC
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 connector.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111 The requirement of 16-bit microprocessor bus interface stems from the desire to
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 interface this LCD to the Calypso in exactly the same way how TI did it on the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113 D-Sample, the 6:00 viewing direction and mechanical mounting requirements stem
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 naturally from the target application (cellular phone handset), and the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115 backlight LED wiring requirement stems from the constraints of our chosen
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116 MAX1916 backlight LED driver chip - see section 1.4.4.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117
67
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
118 Formike KWH020ST23-F01 is an LCD module that was discovered by Mother Mychaela
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
119 in May-June of 2021, and it appears to satisfy all of our requirements. We have
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
120 designed a test board for the purpose of evaluating this LCD (it will connect
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
121 the new LCD to our Luna interface from 2020), but because of Digi-Key part
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
122 backorder issues, the assembly of this board and thus the actual test are being
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
123 delayed until Sep-Oct of 2021.
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
124
41
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125 1.4.3. Backlight and readability considerations
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 Out of the various pre-existing mobile phones which I (Mychaela) have
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
128 experienced, there have been 3 different kinds of LCDs in terms of how display
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
129 operation and readability interacts with the backlight:
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
130
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
131 1) older phones with black&white LCDs: on all phones of this type which I've
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
132 ever used, the display is perfectly readable without the backlight given
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
133 ordinary ambient lighting, be it natural daylight or room lighting. Such
54
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
134 LCDs are called transflective: primarily reflective, but can also operate in
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
135 transmissive mode when the optional backlight is turned on. With these B&W
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
136 displays, you only need to turn on the backlight if you need to operate the
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
137 phone in darkness, such as outdoors at night or inside with all lights off.
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
138 The firmware in such phones is typically designed to leave the actual display
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
139 functional and updated at all times, with only the backlight subject to
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
140 on/off control.
41
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142 2) most newer phones with color displays, of which Pirelli DP-L10 is a
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143 representative case, have transmissive LCDs that are not designed to be
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144 readable without the backlight at all - backlight required for readability
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
145 (BLRR) is another way to describe such LCDs. Because the display is not
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
146 readable at all without the backlight, phone firmware is typically designed
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
147 to turn off the entire display (not just the backlight) when the screen goes
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
148 dark, and operation visible to the user is display on/off, rather than
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
149 backlight on/off. It is a good firmware design practice to "swallow" the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
150 initial keypress that turns on the display from dark state, i.e., to block
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151 the regular action of whatever button was pressed to "wake up" the display.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153 3) The color display on Motorola C139 phones is an odd intermediate case: this
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154 display is NOT practically readable with the backlight off, yet the firmware
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
155 is designed as if the display were readable in this condition: the actual
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156 display (unsure if it is CSTN or TFT) remains on and updated, and when you
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
157 press some button to "wake up" the display, that button still takes its
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158 regular action, which is really bad for usability. How do we know that the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159 actual CSTN or TFT display remains on and actively updated when it is not
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
160 readable with the backlight off? Answer: the non-backlit display can be made
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
161 readable by shining a flashlight directly at it - but this trick requires a
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162 directly pointed flashlight; no amount of ordinary ambient light is enough
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163 to make the display readable.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
165 Because our FC Libre Dumbphone handset will have a color display (contemporary
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
166 TFT) and because we are sane, not copying the monumental design mistake of Mot
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
167 C139, our display will fall into class 2 by the above classification: backlight
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
168 required for readability, full display on/off rather than just backlight on/off,
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
169 firmware operating like Pirelli's in terms of wake-up keypress swallowing.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
170
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
171 1.4.3.1. Backlight dimming mode
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
172
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
173 Because our LCD is of BLRR type and because we seek to fully replicate Pirelli's
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174 logic in terms of when keypresses are swallowed and when they are not, we need
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
175 to implement a dimming mode for our LCD backlight. In Pirelli's design which we
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
176 are copying, when you are playing with phone menus or composing SMS etc, but are
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
177 not in an active call, the display switches between full brightness and totally
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178 off - it goes fully off on timeout, and when you press a button to wake it up,
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
179 it switches on at full brightness, together with the keypad backlight. But when
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
180 you are in a call, when the timer expires (and it's a shorter timer, 10 s
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
181 instead of 30 s), the display goes dim instead of fully off, and in this dimmed
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
182 (but still readable) state keypresses are NOT swallowed.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
183
67
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
184 In terms of absolute requirements, we only need to implement two different
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
185 intensity levels for the LCD backlight: full brightness and in-call dimmed.
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
186 The backlight intensity level in the dimmed state will need to be chosen on
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
187 this principle: use the lowest backlight LED current (to conserve battery power
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
188 and allow longest talk time on one charge) at which the display is still
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
189 readable, similarly to Pirelli's in-call dimmed state. In the user-actively-
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
190 poking state, as opposed to the long-call dimmed state, there is no strict need
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
191 to provide different configurable backlight levels - but it so happens that our
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
192 implementation will allow a total of 4 different backlight intensity levels -
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
193 see section 1.4.4.1.
41
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
194
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
195 1.4.4. Backlight circuit implementation
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
196
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
197 In all candidate TFT LCD modules that are being considered (see section 1.4.2),
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
198 the backlight consists of 3 white LEDs wired in parallel, joined either at the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
199 anode or at the cathode - although as we shall see momentarily, we require an
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
200 LCD module where the 3 LEDs are joined at the anode, with the 3 cathodes brought
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
201 out separately. LCD module datasheets call for 15 mA current through each LED
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
202 at maximum intensity, for 45 mA total, and the LED forward drop voltage (Vf) at
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
203 this rated current seems to range between 2.9 V (what I actually measured on one
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
204 candidate LCD module) to 3.2 V (what the datasheets list as typical) to perhaps
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
205 as high as 3.4 V (what one datasheet lists as the maximum).
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
206
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
207 Given the parallel (as opposed to series) wiring of the 3 LEDs and the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
208 relatively low Vf, there is no need to use any kind of boost converter as part
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
209 of the LED driver circuit for this backlight - any boost converter will only add
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
210 inefficiency (more current will be drawn from the battery for the same LED
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
211 current), hence we need to avoid using such.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
212
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
213 Regardless of whether a given phone design uses a boost converter or not (it
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
214 seems that older designs do use boost converters, either because older white
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
215 LEDs have higher Vf or because 2 or 3 LEDs are wired in series), all traditional
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
216 phone designs seem to share the quality where the display backlight brightness
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
217 remains the same as the battery discharges and as Vbat goes down - this quality
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
218 was directly observed on the Pirelli DP-L10 (unknown circuit design) and
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
219 inferred from the available schematics for Mot C139 and C155, with both of the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
220 latter boost-converting to fixed 5.0 V. In our case, even though we choose to
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
221 not use a boost converter for efficiency reasons, we still need to achieve the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
222 quality of the display brightness remaining the same through the discharge range
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
223 of our Li-ion battery - having the display dim in half as the battery discharges
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
224 from 4.2 V peak to 3.6-3.7 V plateau is simply not acceptable.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
225
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
226 The simplest possible LED driving circuit would be one where a current limiting
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
227 resistor is inserted in series with each LED, and then the 3 parallel
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
228 LED+resistor sets are connected across battery terminals, with a transistor
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
229 inserted somewhere to act as the on/off switch. However, this trivial circuit
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
230 is not suitable in our application because it would produce unacceptably large
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
231 variation in display brightness as the battery discharges - hence we need a more
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
232 intelligent LED driving circuit. Our Luna LCD carrier board from the spring of
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
233 2020 features an LDO bringing Vbat down to fixed 3.5 V, followed by very low-
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
234 value resistors in series with each LED - but this approach is not good for
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
235 production either, as it makes the LED current extremely sensitive to any slight
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
236 variations in Vf.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
237
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
238 Fortunately, I was able to find a specialized white LED driver chip that is just
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
239 perfect for our application, or more precisely, a specialized chip that acts as
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
240 a constant current sink for such LEDs - Maxim MAX1916, design from 2001, just
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
241 the right time frame for the kind of phone we are seeking to build. This
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
242 special chip takes the place of "dumb" ballast resistors: connect Vbat (battery
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
243 positive terminal) directly to the common anode of the 3 LEDs, but instead of
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
244 series resistors, connect each cathode to the corresponding LEDn pin of MAX1916
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
245 - *without* any resistors or transistors! FETs inside the MAX1916 take the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
246 place of resistors as current-limiting elements, and the chip's global on/off
44
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
247 control (which will be driven with a Calypso GPIO) takes the place of a separate
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
248 switching transistor.
41
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
249
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
250 The special quality of MAX1916 is that it produces constant current through each
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
251 LED (based on a set reference current and 230x current multiplication circuit
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
252 inside the chip) regardless of variations in both Vbat and Vf! Of course the
67
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
253 requested current can only be sustained as long as Vbat >= Vf + Vds_min, where
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
254 Vds_min is the lowest drop voltage of the FETs inside MAX1916, and once Vbat
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
255 falls below this point, the LED current will begin to decline. However, the
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
256 beauty of this design is that no arbitrary artificial turnover points (like the
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
257 3.5 V point in our hacky design from the spring of 2020) need to be set: the
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
258 battery discharge point at which the LED current begins to decline will be
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
259 whatever it comes to be naturally, based on Vf (perhaps depending on
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
260 temperature) and MAX1916 Vds_min, and the decline is expected to be gradual.
41
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
261
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
262 1.4.4.1. Backlight current selection and dimming
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
263
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
264 In the simplest MAX1916-based design, a fixed LED current is set by connecting
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
265 a resistor of appropriately computed value between MAX1916 SET pin and whatever
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
266 regulated fixed voltage rail happens to be available in the system. However,
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
267 in our application (see section 1.4.3.1) we need at least two different display
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
268 brightness levels, and thus at least two switchable LED currents. At first the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
269 problem seems difficult, but an elegant solution has been found.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
270
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
271 LCD backlight LED current will be selected by way of two Calypso GPIO pins
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
272 configured as outputs, and a 74LVC2G125 dual tristate buffer. Each tristate
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
273 buffer's A input will be tied high, and the two Calypso GPIO outputs will be
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
274 connected to buffer output enable inputs. There will be two resistors with
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
275 different carefully computed values, each connected between one of the two
67
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
276 tristate buffer outputs and MAX1916 SET pin. There will also be a third
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
277 resistor connected between MAX1916 SET pin and the V-IO rail.
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
278
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
279 The values of the 3 just-described resistors will be selected so that the path
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
280 through each SET resistor will add a different contribution to the total LED
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
281 current. The always-on SET resistor will provide the smallest current
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
282 corresponding to the long-call dimmed mode, whereas the sum of all 3
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
283 contribution currents will equal the 15 mA limit - the current is reckoned per
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
284 LED. The difference between the 15 mA maximum and the small dimmed mode current
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
285 will be split unequally between the two switched SET resistors, allowing a total
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
286 of 4 different backlight intensity levels to be selected via the two Calypso
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
287 GPIO outputs going to the 74LVC2G125 buffer's output enable inputs. The actual
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
288 currents will be determined some time around Sep-Oct of 2021 when we get our
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
289 lunalcd2 test board built.
41
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
290
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
291 1.4.5. Slight regression relative to Pirelli DP-L10
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
292
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
293 The actual LCD backlight LED driving circuit inside the Pirelli phone is not
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
294 known, but reverse engineering of Pirelli's firmware followed by experimentation
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
295 reveals that backlight intensity variation is achieved via a form of PWM, using
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
296 Calypso PWL output - although PWL is used in an inverted sense, such that the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
297 backlight intensity increases with more 0s being put out on PWL, as opposed to
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
298 more 1s. Thus regardless of the unknown actual circuit implementation, the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
299 backlight intensity appears to be continuously variable from 1/255 to 255/255,
67
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
300 which is certainly a much richer control than our crude selection of just 4
41
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
301 possible LED currents.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
302
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
303 In terms of what Pirelli's fw offers to end users, the backlight intensity in
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
304 the dimmed in-call state is always set to 1/255, without any way to change it,
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
305 whereas the backlight intensity in the active interaction state is selectable
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
306 via a menu among 5 levels; the 5 offered levels turn into 1/255, 64/255,
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
307 128/255, 192/255 and 255/255 in the resulting PWL programming.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
308
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
309 So in terms of both hardware capabilities and end user offering via the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
310 firmware, Pirelli's LCD backlight level control is richer than what we are
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
311 proposing for our FC Libre Dumbphone. However, engineering is all about
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
312 trade-offs and compromises, and in the Mother's opinion, this slight reduction
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
313 in the richness of functionality is sufficiently offset by the efficiency of
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
314 our MAX1916-based approach: aside from the theoretical possibility of a
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
315 switching buck converter, which I've never seen used for LED driving
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
316 applications, our choice of MAX1916 is the most battery-efficient way to drive
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
317 our backlight LEDs. Furthermore, when dimming is effected by switching the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
318 actual regulated LED current, as in our case, as opposed to applying PWM, our
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
319 backlight becomes more resilient to even lower battery voltages.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
320
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
321 Consider what happens when Vbat falls below the point at which the design-
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
322 intended LED current can be maintained - what happens then? If no PWM is
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
323 applied, or if PWM is set to maximum, then display brightness will be whatever
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
324 maximum is possible at this low battery voltage. But if PWM is applied,
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
325 especially very low duty cycles as in the case of Pirelli's dimmed state, then
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
326 the display that has already been dimmed by low Vbat will be *further* dimmed
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
327 by this aggressive PWM, likely producing an unreadable display at this point.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
328 It may be possible to compensate via extra complexity in the firmware, by
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
329 turning PWM up when Vbat (as measured via Iota MADC) falls too low - but then
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
330 we would be getting really messy, whereas switching the regulated current is so
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
331 much more elegant. With our approach, low-battery-induced dimming in the "full
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
332 brightness" mode will happen at the same discharge point as it would if we had
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
333 used PWM (and set PWM to maximum in this "full brightness" mode), but in the
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
334 in-call dimmed state, further dimming due to low Vbat will probably happen at a
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
335 lower discharge point (if Vf decreases with decreasing current), and when it
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
336 does happen, there won't be a combination of both natural and artificially-
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
337 induced reductions, just the natural one.
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
338
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
339 Thus based on all of the above considerations, I feel justified in my design
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
340 choice of foregoing PWM control of backlight intensity in favor of fixed current
7d77aa76bcaa FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
341 switching with much more limited selection.
44
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
342
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
343 1.5. Main keypad
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
344
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
345 The main keypad on our FC Libre Dumbphone handset will have the following
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
346 21-button arrangement:
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
347
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
348 left soft key ^ right soft key
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
349 <O>
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
350 green call V red power/hang-up
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
351 button button
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
352
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
353 1 2 3
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
354 4 5 6
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
355 7 8 9
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
356 * 0 #
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
357
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
358 The top section above the traditional numeric dial buttons (12) consists of left
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
359 and right soft keys, green and red buttons (classically called SEND/END), and a
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
360 5-way navigation button group (left, right, up, down and center), for a total of
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
361 9 buttons in this section. The red hang-up button is also the hardware power-on
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
362 button; having the same button effect power-off when held down for some time is
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
363 a firmware function.
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
364
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
365 This 21-button main keypad arrangement is exactly the same as featured on
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
366 Motorola C1xx and Pirelli DP-L10 phones, on TI's D-Sample development platform,
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
367 and also on many other phones (non-Calypso) from the appropriate era, such as
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
368 Samsung E2232.
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
369
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
370 1.5.1. Keypad backlight
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
371
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
372 All traditional phones including Mot C1xx and Pirelli DP-L10 feature keypad
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
373 backlights, hence we need to include one as well. The exact structure of this
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
374 backlight won't be known until we enter the mechanical design phase for the
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
375 actual handset (as opposed to intermediate development boards), which will be
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
376 much later in the project, but the Mother's understanding is that keypad
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
377 backlights are made up of some number of LEDs (2 on Pirelli DP-L10, unknown
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
378 number on Mot C139) and some kind of light diffuser.
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
379
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
380 Given the discovery of MAX1916 constant-current-sink LED driver chip (see
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
381 section 1.4.4), the optimal electrical design of the keypad backlight becomes
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
382 clear: use 3 LEDs, and drive them using another MAX1916 chip, separate from the
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
383 one used for the LCD backlight.
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
384
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
385 Backlight intensity: neither Mot C139 nor Pirelli DP-L10 provides any way to
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
386 vary keypad backlight intensity, and no such variability is deemed necessary.
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
387 In the long-call state when the LCD backlight is dimmed, the keypad backlight
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
388 is fully off. We shall use a fixed LED current setting for our keypad
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
389 backlight, set with a single fixed resistor between the keypad MAX1916 chip's
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
390 SET pin and the V-IO rail, and the actual current value will be determined in a
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
391 much later phase of the project, when we have the actual keypad backlight LEDs
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
392 and a better idea of the mechanical design.
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
393
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
394 Backlight color: Mot C139 uses blue LEDs, Pirelli DP-L10 uses white LEDs.
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
395 Because blue and white LEDs have very similar electrical characteristics
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
396 (current needed for appropriate brightness, Vf at this current), the choice
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
397 between the two can be made in a much later project phase, based on input from
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
398 other team members who are better at aesthetics.
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
399
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
400 1.5.1.1. Comparison with Mot C139 and Pirelli DP-L10
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
401
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
402 Both of these two pre-existing reference phones feature keypad backlights that
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
403 are switched on/off via Iota LEDB; the actual circuit design is unknown.
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
404 However, in our design we forego Iota LEDB altogether (it won't be used for
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
405 anything), and use two MAX1916 chips for our LCD and keypad backlights, with
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
406 each chip's on/off control being a Calypso GPIO.
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
407
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
408 The actual workings of the LEDB driver or switch inside the Iota chip are a
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
409 mystery. On the one hand it appears to be nothing more than a "dumb" transistor
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
410 on/off switch, no different from an external "digital transistor" (BJT with bias
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
411 resistors) controlled by a Calypso GPIO: a resistor still seems to be required
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
412 for current control, and at least on the Pirelli DP-L10 the keypad backlight
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
413 intensity visibly varies with Vbat ranging over the Li-ion discharge range. But
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
414 on the other hand, LEDB requires the 13 MHz clock to be running, and the light
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
415 goes out when this clock is stopped. Why in the world would any kind of clock
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
416 be required if the circuit is only a transistor on/off switch controlled by a
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
417 static register bit? Other parts of TI's Iota datasheet describe its LEDA, LEDB
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
418 and LEDC as "current drivers" - but in the absence of any way to actually set
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
419 the desired current without depending on Vbat or Vf variations, whatever the
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
420 Iota chip actually provides can't be anything like MAX1916.
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
421
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
422 Poorly documented, non-understood mystery hardware is best avoided, hence we are
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
423 not going to use Iota LEDB, and shall only use MAX1916 instead. We also gain a
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
424 functional improvement over Pirelli DP-L10 by using MAX1916: our keypad
a415ae467c6d FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 43
diff changeset
425 backlight intensity will remain the same over the battery discharge range.
45
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
426
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
427 1.6. Side buttons
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
428
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
429 In addition to the 21-button main keypad, our FC Libre Dumbphone handset will
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
430 include 3 side buttons: two on the left side, intended for volume up/down
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
431 control, and one on the right side, serving auxiliary functions. This side
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
432 button arrangement is identical to TI's D-Sample and similar to Pirelli DP-L10:
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
433 the only difference between our arrangement (matching D-Sample) and Pirelli's
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
434 is that Pirelli moved the 3rd side button to the left and designated it as the
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
435 camera button. However, we (FreeCalypso) have no interest in ever implementing
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
436 any kind of camera on our phones, hence we are moving the 3rd side button back
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
437 to where it was in TI's original design (on the right), and we will use it for
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
438 purposes of our own invention.
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
439
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
440 The starting point UI code we got from TI does not do anything with the right
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
441 side button (even though this button exists and works on the D-Sample platform
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
442 on which this code was originally developed), hence we have full freedom to
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
443 invent our own uses for it. The following uses are envisioned:
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
444
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
445 * Long press of this button may be our way of turning the hands-free loudspeaker
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
446 on and off, a function that does not exist in the starting point UI code from
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
447 TI.
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
448
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
449 * When the phone is in its normal idle standby operation (not in a call and not
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
450 being poked at by the user, but registered to a GSM network and ready to
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
451 accept incoming calls or SMS), the display will be off. Users often desire
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
452 to check the time and other status (check coverage, see if they missed any
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
453 calls or SMS), which will require pressing any button to turn on the display.
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
454 At that point a 30 s timer kicks in, which will turn the display back off
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
455 after 30 s of inactivity. However, an argument can be made that keeping the
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
456 display on for 30 s if the user only wanted to quickly glance at the time is
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
457 a waste of battery. Here is one proposed solution: we can implement a
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
458 function where a short press of the right side button when the phone is on its
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
459 idle screen will cause the display to turn off immediately and activate the
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
460 keyguard. The user can then press the right side button once to turn on the
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
461 display and look at it, and then press the same button again to turn it back
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
462 off.
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
463
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
464 * When we are in a long call, the LCD backlight does not turn off completely,
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
465 instead it will go dim - but still readable. Any button presses in this state
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
466 are NOT swallowed - they take their regular actions. However, the keypad
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
467 backlight turns off fully in this state, and under certain conditions (like
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
468 out at night) the user may not be able to see the keypad. If a short press
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
469 of the right side button invokes no other action besides switching on full
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
470 display brightness and the keypad backlight, this right side button can be
9df8683daec4 FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 44
diff changeset
471 found by touch, and thus solve this particular problem case.
46
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
472
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
473 1.7. Audio routing
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
474
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
475 3 different audio routing modes will be supported on our FC Libre Dumbphone
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
476 handset:
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
477
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
478 * Default mode: there will be a 32 ohm earpiece speaker physically mounted in
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
479 the usual place, on the front bezel above the display, to match up with the
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
480 user's ear in handheld operation. There will also be a microphone toward the
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
481 front bottom of the phone, again in the usual place.
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
482
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
483 * Hands-free mode: there will be an 8 ohm loudspeaker physically separate from
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
484 the 32 ohm earpiece speaker, physical location in the handset TBD. In the
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
485 hands-free mode, the downlink audio will be switched from the earpiece speaker
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
486 to the loudspeaker, while the microphone input for the uplink will remain the
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
487 same.
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
488
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
489 * There will be a wired analog headset jack with plug insertion detection; when
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
490 a headset is inserted, both audio input and output will be redirected to this
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
491 headset interface.
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
492
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
493 1.7.1. Earpiece and loudspeaker separation
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
494
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
495 Most current mainstream phones (in fact, all that I am familiar with) have
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
496 physically separate speaker transducers for the earpiece function (hold up to
64
6b02de926277 FC-handset-spec section 1.7.1: mention Pirelli DP-L10
Mychaela Falconia <falcon@freecalypso.org>
parents: 63
diff changeset
497 ear to talk) and the loudspeaker+ringer function. The not-so-current and not-
6b02de926277 FC-handset-spec section 1.7.1: mention Pirelli DP-L10
Mychaela Falconia <falcon@freecalypso.org>
parents: 63
diff changeset
498 so-mainstream Pirelli DP-L10 also features the same arrangement. The earpiece
6b02de926277 FC-handset-spec section 1.7.1: mention Pirelli DP-L10
Mychaela Falconia <falcon@freecalypso.org>
parents: 63
diff changeset
499 speaker is a 32 ohm load, and the loudspeaker is an 8 ohm load. In a
6b02de926277 FC-handset-spec section 1.7.1: mention Pirelli DP-L10
Mychaela Falconia <falcon@freecalypso.org>
parents: 63
diff changeset
500 Calypso+Iota design, an external amplifier chip is needed to drive the 8 ohm
6b02de926277 FC-handset-spec section 1.7.1: mention Pirelli DP-L10
Mychaela Falconia <falcon@freecalypso.org>
parents: 63
diff changeset
501 loudspeaker, whereas the little 32 ohm earpiece speaker can be driven directly
6b02de926277 FC-handset-spec section 1.7.1: mention Pirelli DP-L10
Mychaela Falconia <falcon@freecalypso.org>
parents: 63
diff changeset
502 by Iota EAR output.
46
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
503
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
504 However, a very different design was implemented by TI on their D-Sample and
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
505 Leonardo boards. They have only one speaker, one of 8 ohm kind, that is
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
506 physically mounted in the position where the earpiece speaker would normally go.
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
507 In order to not overwhelm the user's ear in handheld operation, they have
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
508 peculiar circuit wiring where the analog signal from Iota to the loudspeaker
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
509 amplifier goes through different resistor values depending on whether EAR or AUX
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
510 output from Iota is used, and when the EAR output is selected, the high resistor
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
511 values produce attenuation, such that the sound pressure level produced by the
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
512 pressed-to-ear loudspeaker becomes comparable to that produced by a more
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
513 traditional 32 ohm earpiece speaker.
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
514
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
515 Furthermore, TI's single speaker design was not limited to their development
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
516 boards. Some years ago I found schematics for some very old LG phone (called
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
517 A316 or B1200, not sure of the correct designation), this phone is from early
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
518 TI era (pre-Calypso, using Ulysse/Nausica/Clara chipset), and it has the same
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
519 arrangement as D-Sample and Leonardo.
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
520
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
521 For our own FC Libre Dumbphone, I am going with the separate speakers
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
522 architecture, using physically separate earpiece and loudspeaker transducers.
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
523 This architecture feels more native to me, and it will allow for independent
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
524 tuning of the two audio paths. In my defense, all current mainstream phones
64
6b02de926277 FC-handset-spec section 1.7.1: mention Pirelli DP-L10
Mychaela Falconia <falcon@freecalypso.org>
parents: 63
diff changeset
525 seem to use the same architecture, and so does the Pirelli phone that serves as
6b02de926277 FC-handset-spec section 1.7.1: mention Pirelli DP-L10
Mychaela Falconia <falcon@freecalypso.org>
parents: 63
diff changeset
526 my personal reference - the other approach with a single loudspeaker in the
6b02de926277 FC-handset-spec section 1.7.1: mention Pirelli DP-L10
Mychaela Falconia <falcon@freecalypso.org>
parents: 63
diff changeset
527 earpiece physical position seems very uncommon.
46
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
528
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
529 1.7.2. Loudspeaker implementation
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
530
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
531 The external amplifier chip for driving the 8 ohm loudspeaker will be TI
65
153b517ccc7a FC-handset-spec section 1.7.2: make contrast with MIDI ringtone chips
Mychaela Falconia <falcon@freecalypso.org>
parents: 64
diff changeset
532 TPA6203A1, copied from Leonardo schematics and proven good on FCDEV3B. It is a
153b517ccc7a FC-handset-spec section 1.7.2: make contrast with MIDI ringtone chips
Mychaela Falconia <falcon@freecalypso.org>
parents: 64
diff changeset
533 "dumb" loudspeaker amplifier, as opposed to a much more complex chip that
153b517ccc7a FC-handset-spec section 1.7.2: make contrast with MIDI ringtone chips
Mychaela Falconia <falcon@freecalypso.org>
parents: 64
diff changeset
534 combines the loudspeaker amplifier function with a MIDI ringtone player - see
153b517ccc7a FC-handset-spec section 1.7.2: make contrast with MIDI ringtone chips
Mychaela Falconia <falcon@freecalypso.org>
parents: 64
diff changeset
535 section 1.8. On FCDEV3B this amplifier is fed with signal from Iota EAR output,
153b517ccc7a FC-handset-spec section 1.7.2: make contrast with MIDI ringtone chips
Mychaela Falconia <falcon@freecalypso.org>
parents: 64
diff changeset
536 but on the final handset and on the Venus development board this amplifier will
153b517ccc7a FC-handset-spec section 1.7.2: make contrast with MIDI ringtone chips
Mychaela Falconia <falcon@freecalypso.org>
parents: 64
diff changeset
537 be fed with signal from Iota AUX output instead.
46
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
538
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
539 The loudspeaker amplifier has an on/off control by way of a Calypso GPIO; in
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
540 order to save battery, this amplifier needs to be off normally, and only turn on
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
541 when a loudspeaker call is in progress or when a ringtone melody is played.
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
542
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
543 1.7.3. Wired analog headset jack
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
544
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
545 The analog headset jack on our FC Libre Dumbphone handset will be of 2.5 mm
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
546 TRRS type, using pinout copied from iWOW DSK. The headset needs to be wired as
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
547 follows:
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
548
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
549 * 32 ohm earpiece speaker connected between Tip and Ring2;
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
550 * electret condenser microphone, positive connected to Ring1;
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
551 * Sleeve is ground, should be needed only for the microphone.
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
552
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
553 The advantage of this TRRS headset specification, as opposed to the simpler kind
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
554 with a TRS plug and a common ground for the earpiece and the mic, is that our
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
555 TRRS headset can be driven with either single-ended or differential earpiece
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
556 driver outputs. On the final handset, the wired headset interface will be
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
557 connected to the Iota headset channel (HSMICBIAS, HSMICP, HSO) and thus the
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
558 headset earpiece driver will be single-ended (HSO and GND), but the same headset
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
559 can also be plugged into other FreeCalypso devices in which the jack is wired
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
560 to the main Iota audio channel, with Iota EARP & EARN driving Tip and Ring2 on
1fec0a3f09cc FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 45
diff changeset
561 the TRRS headset jack.
47
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
562
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
563 1.8. Ringtone generation
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
564
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
565 In terms of the physical sound-emitting element, there are two principal ways
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
566 in which cellphone ringing sounds can be produced:
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
567
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
568 1) The oldest and most classic way is to use a magnetic buzzer controlled by
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
569 Calypso BU/PWT digital output. The buzzer is driven with raw battery voltage
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
570 being switched with a "digital transistor" (BJT with bias resistors), and the
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
571 control input going to the base of the BJT is Calypso BU/PWT output. This
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
572 method is standard in older phones that don't have hands-free loudspeakers:
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
573 since there is no loudspeaker for that other purpose, some loud noise-making
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
574 element needs to be implemented just for ringing, and old-style buzzers are
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
575 the traditional choice. Motorola C1xx lower subfamilies (C11x/12x and
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
576 C139/140) use such buzzers for ringing.
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
577
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
578 2) In phones that feature a loudspeaker for hands-free operation, the same
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
579 loudspeaker is also used for ringtone sounding, and the buzzer is eliminated.
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
580 Apparently hands-free loudspeakers weren't popular in the Calypso era, thus
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
581 Pirelli DP-L10 is the only known Calypso phone that features one. There is
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
582 also a more bizarre possibility: some phones have replaced the ringing buzzer
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
583 with a loudspeaker, but that speaker is used *only* for playing ringtone
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
584 melodies - no hands-free call feature is offered. This situation exists on
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
585 Motorola C155/156 phones.
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
586
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
587 Furthermore, if the physical sound-emitting element is a loudspeaker and not an
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
588 old-fashioned buzzer, and if the chipset is Calypso, as opposed to various newer
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
589 chipsets, then a further distinction arises:
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
590
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
591 2a) Most historical commercial phones that are based on Calypso and use a
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
592 loudspeaker for ringtone sounding, also contain a special ringtone generator
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
593 chip that drives this speaker when a ringtone is played - in other words,
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
594 their loudspeaker ringtones do NOT go through the same voice audio path that
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
595 is used for hands-free calls, if the latter feature is offered at all. The
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
596 speciai ringtone generator chip is typically a combined MIDI player and
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
597 loudspeaker driver.
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
598
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
599 2b) The much less popular approach is to not implement any extra hardware at all
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
600 that is specifically for ringtone generation, use only the same loudspeaker
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
601 audio path hardware that is already needed for hands-free calls (a simple
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
602 loudspeaker amplifier), generate ringtone melodies in the Calypso DSP
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
603 (Melody E1 or E2), and play them through the regular voice audio path,
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
604 routed to the loudspeaker.
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
605
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
606 Approach 2b is the least popular one among historical commercial Calypso phones,
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
607 but it is the one which I (Mother Mychaela) have selected for our FC Libre
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
608 Dumbphone handset. But let us nonetheless examine the pros and cons of
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
609 different approaches, and see why I have settled on option 2b.
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
610
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
611 Buzzer melodies (option 1) are monophonic (the signal carrying the melody to
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
612 the buzzer is a digital square wave, and there is no way to create multiple
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
613 overlapping notes in such a signal), but a decent range of tone frequencies is
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
614 available: the magnetic buzzer hardware can easily produce frequencies all the
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
615 way up to the limit of human hearing, while Calypso PWT produces musical notes
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
616 from F4 through E8 in the scientific pitch notation, or 349 to 5274 Hz. In
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
617 contrast, any tones produced through the 8000 samples/s voice audio path have
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
618 to be below the Nyquist frequency of 4 kHz - according to TI's document, Melody
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
619 E1 notes go from E4 (330 Hz) up to G#7 or 3322 Hz.
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
620
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
621 In terms of the richness of possible ringtone melodies that can be played,
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
622 option 2a (external MIDI player chip that drives the loudspeaker directly,
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
623 without going through Calypso+Iota voice audio path) is the absolute best.
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
624 These specialized ringtone generator chips implement full MIDI (128 instruments,
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
625 47 drums, up to 64 simultaneous notes, according to one datasheet), and the
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
626 available ringtone melodies for these MIDI chips are very rich - just take a
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
627 Pirelli DP-L10 phone and listen through various ringtone melodies it offers.
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
628 All of Pirelli's melodies are stored as *.mid files in their FFS, thus we could
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
629 very easily copy them if we were to adopt a MIDI player chip similar to theirs.
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
630
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
631 However, the problem for us with adopting option 2a is that this option would
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
632 introduce significant extra complexity and adversely affect our already long-
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
633 overdue project schedule. There is only one MIDI ringtone player chip for which
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
634 we have enough documentation to attempt such a feat: this chip is Winbond
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
635 W56964, a slightly more capable sibling of the W56940 used in the Pirelli phone.
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
636 However, just because we have what at first glance appears to be reasonably
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
637 complete documentation does not mean that it would be a slam dunk! We would
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
638 have to build a separate test board for this chip, connect it to a Caramel2
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
639 motherboard (it needs to connect to Calypso MEMIF), and then spend significant
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
640 time climbing the learning curve and getting this chip to actually work: getting
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
641 it to play melodies, and just as important, getting it into and out of sleep
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
642 modes. In other words, a lot of extra work and time spent just for this part,
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
643 not advancing any other project needs - whereas option 2b eliminates all of this
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
644 extra work.
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
645
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
646 Finally, a philosophical argument can be made that FreeCalypso should be all
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
647 about simplicity, producing a phone that does its job: implement just what is
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
648 needed for a functional phone, and omit unnecessary baggage. An extra hardware
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
649 circuit (a chip connected to Calypso memory bus, no less) and associated
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
650 software complexity that serves absolutely no other purpose except to produce
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
651 ringtones that are "richer" than what the Calypso can produce on its own, and
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
652 does not assist in any way with hands-free loudspeaker operation for calls (it
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
653 is more of a hindrance in that mode), can be seen as an unwelcome burden similar
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
654 to other unwelcome burdens which we are already eliminating, like the camera.
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
655
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
656 In contrast, with our chosen option 2b, we have exactly zero extra hardware
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
657 that is just for ringing: our loudspeaker and its associated driver circuit
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
658 (simple amplifier) is primarily for hands-free calls, and the ability to use
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
659 the same audio path to play ringtone melodies comes literally "for free" with
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
660 the Melody E1 feature built into our Calypso DSP. We already have a selection
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
661 of nice-sounding ringtone melodies in E1 format, lifted from the legendary TSM30
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
662 source, and software complexity is minimal: the melody playing engine has
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
663 already been implemented by TI, we only need to call RiViera Audio Service API
f0419ac0a815 FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 46
diff changeset
664 functions.
48
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
665
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
666 1.9. Vibrator
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
667
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
668 All traditional cellphones include a vibrator, and ours needs to include one
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
669 too. Our firmware will need to offer the options of being silent, vibrating
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
670 only, ringing only, or ringing and vibrating on an incoming call or SMS - all
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
671 of these options are genuinely useful to a heavy-duty phone user in different
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
672 situations.
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
673
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
674 In terms of functionality, the vibrator is envisioned as a simple on/off control
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
675 in the hardware, with higher-level "pulse train" functionality implemented in
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
676 the firmware. As far as end user experience goes, the Mother's plan is to copy
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
677 the way the vibrator works on the Pirelli DP-L10. On this to-be-replaced or
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
678 to-be-recreated reference phone, the vibrator works as follows: when an incoming
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
679 call arrives in vibrating alert mode, the firmware turns the vibrator on for
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
680 500 ms, then turns it off for 500 ms, and the cycle endlessly repeats until the
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
681 call is either answered or dropped. This 500 ms on/off cycling is purely a
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
682 firmware function, the hardware control is an on/off switch.
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
683
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
684 Looking at the hardware implementation of the vibrator driving circuit in the
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
685 Motorola C1xx family and in the Pirelli DP-L10, both designs support a form of
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
686 "analog" control of the vibrator beyond simple on/off. In the Mot C1xx family
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
687 the vibrator is controlled by the output of Iota auxiliary DAC, whereas in the
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
688 Pirelli DP-L10 Calypso BU output has been repurposed to control the vibrator,
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
689 allowing either full-on or PWM driving. However, Pirelli's firmware appears to
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
690 never operate the vibrator in any way other than fully on, and there is no
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
691 evidence of Mot C1xx firmwares applying any analog control to their vibrator
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
692 either.
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
693
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
694 The Mother's tentative plan for our FC Libre Dumbphone handset is to copy
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
695 Pirelli's approach in both hardware and firmware: repurpose Calypso BU output
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
696 for vibrator control (we won't have a buzzer, see section 1.8), allowing the
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
697 possibility of PWM, but have our firmware only use fully-on and fully-off
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
698 states, at least initially. However, because we won't have a vibrator on our
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
699 Venus development board, only in the final handset, this decision does not have
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
700 to be made right now.
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
701
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
702 Because our firmware will be designed for a simple on/off vibrator control,
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
703 during fw development on the Venus board it will be trivial to use a LED to
cb8d43a5023c FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
704 simulate the vibrator on/off state.
49
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
705
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
706 1.10. Battery
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
707
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
708 The battery in our FC Libre Dumbphone handset will be single-cell Li-ion. It
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
709 goes without saying that this battery will be freely removable and replaceable
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
710 by end users. The specific size, form factor and mAh capacity of this battery
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
711 won't be addressed until later in the project, when we get closer to building
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
712 the actual handset.
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
713
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
714 Our Calypso+Iota chipset dates from the era when the cellular handset industry
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
715 was transitioning from NiMH to Li-ion batteries, and the Battery Charger
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
716 Interface (BCI) block in the Iota chip supports both battery types, or at least
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
717 TI's documentation claims so. Given that we are going against the mainstream
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
718 society's ideas in so many other ways, I have given thought to the possibility
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
719 of using a NiMH battery instead of Li-ion. However, the problem with using a
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
720 NiMH battery is that we would be going into completely uncharted territory
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
721 without any guidance. In the case of Li-ion batteries the charging process is
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
722 well-understood in both theory and practice, and our FCHG logic based on reverse
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
723 engineering of Pirelli's firmware works well both on the same Pirelli and on
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
724 Motorola C1xx family. In contrast, if we went with NiMH, we would have
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
725 absolutely no guidance in implementing the necessary charging control logic
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
726 (TI's LCC code is useless), causing a huge risk to the project. Furthermore,
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
727 determining the state of charge from Vbat for the purpose of the bars icon is
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
728 already somewhat challenging even with Li-ion, given the relatively flat middle
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
729 part of the discharge curve - and with NiMH we can only expect the problem to be
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
730 even worse, as their discharge curve is said to be even flatter. For these
38bcb9425df0 FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 48
diff changeset
731 reasons, we are going to play it safe and stick with Li-ion.
50
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
732
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
733 1.11. Charging circuit
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
734
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
735 Our FC Libre Dumbphone will feature a USB port (mini-B, device role only, no
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
736 OTG) that combines two logically separate functions: battery charging and
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
737 computer interface. The basic idea of this dual-function USB port comes from
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
738 Pirelli DP-L10, but we are applying significant refinements of our own to this
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
739 general idea, as the following description will make clear. This section
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
740 describes the charging function; the computer interface function is described
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
741 in section 1.12.
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
742
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
743 One highly non-standard innovation that will appear on our FC handset will be a
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
744 user-visible mechanical slide switch that will turn the charging circuit on or
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
745 off. The purpose of this charging on/off switch is to make it possible to
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
746 connect USB and have the two ttyUSB devices appear (see section 1.12) without
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
747 presenting a 'charger plug' boot condition to the Calypso+Iota core chipset.
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
748 From an end user perspective, if you only use the USB port for charging and
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
749 don't care about the computer interface function, then leave the charging switch
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
750 always on - USB plug/unplug will mean charger plug/unplug like on any
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
751 conventional phone. Similarly, if you do use the computer interface function to
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
752 connect your phone to a host computer in regular operation, with the firmware
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
753 up and running normally, but you don't mind having the phone also charge from
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
754 your computer every time you connect USB, then likewise leave the charging
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
755 switch always on. However, if you are going to reflash phone firmware or do
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
756 other advanced manipulations using the computer interface, then you will need
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
757 to turn the charging switch off. With the switch off, the USB port becomes a
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
758 computer interface only, without charging.
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
759
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
760 Past the switch, the battery charging circuit using USB +5V as the charging
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
761 power source will be the most classic one depicted in Figure 4-10 in the Iota
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
762 chip datasheet (TWL3025_SWRS021.pdf), same as in Pirelli DP-L10 and Motorola
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
763 C1xx phones. Presentation of USB +5V to Iota VCHG terminal past the charging
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
764 on/off switch is what will cause the chipset to boot in the 'charger plug' mode,
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
765 or to activate charging functions in the firmware if the phone is already on.
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
766
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
767 1.12. Computer interface
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
768
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
769 Our Calypso chip has no native USB, instead the host computer interface of all
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
770 Calypso-based systems consists of two UARTs. On our development boards starting
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
771 with FCDEV3B, we got used to interfacing to both of these UARTs by way of
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
772 FT2232x adapters, a USB to serial adapter that goes from one USB device to two
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
773 UARTs, presenting two ttyUSB devices to a Linux host. For low-level operations
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
774 like flash programming, having just one Calypso UART is sufficient (either of
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
775 the two), but once our regular firmware is up and running, then having both
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
776 Calypso UARTs gives maximum user empowerment: Modem UART carries a classic AT
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
777 command interface complete with CSD, GPRS and GSM 07.10 MUX capabilities, while
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
778 the other UART (IrDA) carries TI's RVTMUX debug and development interface.
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
779
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
780 Before arriving at our current radical approach with the charging on/off switch,
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
781 for many years previously I was considering a more conservative approach. My
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
782 original idea was to bring out the two Calypso UARTs in very different ways: my
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
783 thought was to bring only the Modem UART to the built-in USB port (by way of a
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
784 built-in single-channel USB-serial chip), and have plugged-in USB always present
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
785 VCHG to the chipset, but route the debug UART (the one most useful in low-level
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
786 development and bring-up) to a special FPC connector that would interface to a
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
787 special debug board, just like Openmoko did on their Neo. Serious development
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
788 work would then require having that debug board attached, while more casual
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
789 users would be able to talk AT commands to the phone via the built-in USB port,
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
790 charging the battery at the same time.
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
791
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
792 What made me change my mind about this design was the realization that I, as the
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
793 most principal user and developer, would end up wanting to have the debug board
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
794 attached all the time, and the need to have it hanging externally, or perhaps
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
795 glued or taped to the back of the phone, would be a huge blemish and
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
796 inconvenience. Back in the days of Openmoko, someone must have had a similar
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
797 experience, as I remember reading about a hack where someone built a debug board
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
798 functional equivalent that fits inside the Neo, in some otherwise unused space.
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
799
da1a2a32c260 FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents: 49
diff changeset
800 Hence the new design for our planned FC Libre Dumbphone handset: the USB port
51
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
801 will have a built-in FT2232D (or perhaps FT2232H) subsystem (USB to two UARTs)
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
802 connected to it, interfacing to both Calypso UARTs, while the charging on/off
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
803 switch will make it possible to use this interface for low-level development
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
804 and bring-up without presenting VCHG to the chipset. In this architecture this
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
805 FT2232x subsystem should be considered the primary "owner" of the handset's USB
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
806 port, while the charging function is secondary and optional, enabled or disabled
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
807 with a switch. To put it another way, if our USB port is connected to a regular
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
808 USB host (as opposed to a Dedicated Charging Port power-only source), that USB
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
809 host will always enumerate the FT2232x and see two ttyUSB devices, whereas
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
810 charging may or may not take place depending on the switch setting.
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
811
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
812 1.12.1. Set of UART signals
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
813
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
814 The set of signals to be connected between Calypso and FT2232x for the Modem
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
815 UART is almost complete:
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
816
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
817 USB UART
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
818 DTE signal Calypso signal
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
819 ------------------------------
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
820 TxD RX_MODEM
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
821 RxD TX_MODEM
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
822 RTS CTS_MODEM
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
823 CTS RTS_MODEM
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
824 DTR GPIO3
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
825 DCD GPIO2
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
826 RI GPIO8
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
827
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
828 Only DSR is omitted for the Modem UART channel, all others are included. The
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
829 second debug UART channel is only two wires:
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
830
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
831 USB UART
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
832 DTE signal Calypso signal
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
833 ------------------------------
52
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
834 TxD2 RX_IRDA
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
835 RxD2 TX_IRDA
51
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
836
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
837 However, as shown in the next section, these signals cannot be simply connected
52
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
838 between Calypso and FT2232x, instead a more complicated scheme needs to be
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
839 implemented.
51
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
840
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
841 1.12.2. USB and mobile power domains
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
842
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
843 Our FC Libre Dumbphone handset will have two principal power domains in it: the
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
844 main battery-powered mobile domain, and the USB domain. This power domain
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
845 situation presents some very significant challenges, a problem generally
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
846 referred to as "partial power-down". There are two PPD scenarios to be
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
847 concerned about:
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
848
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
849 1) In normal operation the phone is mobile and not connected to USB. In this
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
850 state the mobile power domain is on, whereas USB-powered circuits in the
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
851 FT2232x subsystem have no power. The two challenges in this state are:
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
852
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
853 1a) We need to ensure that no currents flow from the powered-on mobile domain
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
854 into powered-down USB domain circuits, as any such currents would be an
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
855 unacceptable drain on the battery.
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
856
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
857 1b) Calypso UART inputs that come from the USB domain when the latter is active
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
858 need to have defined logic levels on them when the USB domain has no power:
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
859 no floating, no mid-way levels that would cause higher currents in CMOS
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
860 input structures, and furthermore, some Calypso inputs need to be high in
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
861 this state, while others need to be low.
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
862
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
863 2) A reverse PPD scenario occurs when the USB domain has power, but the
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
864 Calypso+Iota chipset is in its switched-off state per Iota VRPC. This
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
865 scenario can occur when the charging switch is set to off, or when the
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
866 battery is critically low and undergoing precharge. The main concern in
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
867 this state is to avoid feeding power from the USB domain into the Calypso
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
868 chipset's V-IO rail - our experience on Caramel2 boards conclusively
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
869 demonstrates that Calypso does not like this condition and can behave oddly,
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
870 erratically feeding current into its outputs that are supposed to be low or
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
871 Hi-Z, and thereby erratically turning on various peripherals.
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
872
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
873 If we were to naively connect our UART signals between Calypso and FT2232x, the
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
874 result would be bad: all of the above concerns would be violated. Instead we
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
875 need to insert carefully designed isolating buffer circuits in both directions.
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
876
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
877 1.12.2.1. Calypso to FT2232x signal direction
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
878
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
879 If these signals were connected directly, significant current (in the mA range)
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
880 would flow from Calypso outputs into powered-down FT2232x inputs, which is not
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
881 acceptable. Our solution is to insert an LVC buffer (probably 74LVC541A, for
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
882 the 5 signals that are needed) between Calypso outputs and FT2232x inputs, with
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
883 the buffer powered from USB domain 3.3V supply. With mobile on and USB power
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
884 absent, the LVC buffer's Ioff spec will apply, which is listed in Nexperia's
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
885 74LVC541A datasheet as 0.1 uA typical, 10 uA maximum.
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
886
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
887 An unfortunate consequence of this design is that in the opposite PPD scenario
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
888 (USB connected to a host, charging switch off, mobile chipset in its off state)
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
889 the inputs to the LVC buffer will float, with FT2232x inputs receiving garbage
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
890 as a result. Adding pull-up resistors to a USB-domain supply would cause other
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
891 problems, hence the Mother's position is that we'll just live with a few
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
892 floating inputs in this particular condition - and it is a condition that
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
893 should not persist for extended lengths of time. There is also a software
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
894 consideration stemming from this floating input situation: when you are doing
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
895 low-level programming and development operations in this state, don't open the
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
896 Modem UART ttyUSB device, and only operate via the other debug UART. The latter
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
897 is a 2-wire UART without any flow control or modem control signals, hence there
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
898 will be less bogosity for the Linux host to see in this state.
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
899
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
900 1.12.2.2. FT2232x to Calypso signal direction
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
901
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
902 This direction is even more difficult, and we will need to insert two chained
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
903 LVC buffers: the signals will first pass through an LVC buffer powered from the
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
904 USB domain, and then through another LVC buffer powered from the Calypso+Iota
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
905 chipset's V-IO rail. There will be pull resistors inserted between the two
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
906 buffers: either pull-up to VBAT (raw battery positive rail) or pull-down to GND,
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
907 depending on the needed signal sense.
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
908
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
909 The LVC buffer powered from Calypso V-IO is needed in order to prevent current
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
910 feeding into Calypso when the mobile is switched off - the buffer's Ioff spec
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
911 will apply. Pull-up and pull-down resistors in front of this buffer are needed
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
912 so that Calypso inputs will receive the desired states when no USB host is
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
913 connected. Pull-ups are being made to VBAT instead of V-IO to eliminate the
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
914 possibility of current feeding into V-IO through these resistors. (Feeding
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
915 from 3.3V logic signals into the battery can't happen when the battery is above
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
916 3.3 V, and if the battery is below 3.3 V, then we are only adding a little to
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
917 the precharge current.)
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
918
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
919 The other LVC buffer (the one powered from USB-domain 3.3V) is needed because
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
920 in the absence of this buffer, current will flow through pull-up resistors and
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
921 into powered-down FT2232x output pins, the resulting pull-down resistance will
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
922 be lower than the pull-up, and the next buffer won't receive the desired logic
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
923 level, not to mention unwanted current flowing. With the other LVC buffer
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
924 added, that buffer's Ioff spec will apply.
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
925
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
926 The value of pull-up resistors to VBAT will be 22 kOhm. With maximum 15 uA
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
927 current flowing through each resistor (worst-case Ioff of one buffer plus
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
928 worst-case Ii of the other buffer), the maximum voltage drop on the 22 kOhm
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
929 resistor will be 330 mV. In order for the LVC buffer's input structure to not
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
930 draw extra current, the input voltage needs to be 2.8 V or higher - thus with
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
931 22 kOhm resistors we'll keep satisfying this condition until the battery falls
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
932 to about 3.1 V, which is below the operational range for switched-on mobile.
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
933
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
934 One downside of having pull-ups to VBAT (which can be as high as 4.2 V) on
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
935 signals that are output from a 3.3V-powered buffer is that when the buffer
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
936 output is high, there may be current flowing into that high output (not sourcing
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
937 out of it as normally expected), which is a bad condition for CMOS outputs.
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
938 However, this current will be limited to a maximum of about 40 uA
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
939 ((4.2-3.3 V) / 22 kOhm), and my feeling is that such small current won't hurt
7933c3a1b5e0 FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 50
diff changeset
940 Nexperia LVC buffers.
52
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
941
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
942 1.12.2.2.1. Signal pull-up/down directions
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
943
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
944 Of the 4 UART signals going from FT2232x to Calypso (see section 1.12.1), TxD
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
945 and TxD2 MUST be sensed high by Calypso when no USB host is connected, hence
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
946 they will need the two chained LVC buffers with pull-ups to VBAT in between, as
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
947 described above. RTS and DTR are less critical in that either high or low level
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
948 would be acceptable, as long as it is stable and not floating. However, it is
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
949 slightly preferable to have DTR pulled up like TxD (to be sensed as logically
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
950 negated), and to have RTS (flow control signal going to CTS_MODEM) pulled down,
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
951 to be sensed as logically asserted.
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
952
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
953 The approach chosen by the Mother is to have TxD, TxD2 and DTR pulled up to VBAT
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
954 as described above, and to have RTS pulled down to GND. The value of the pull-
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
955 down resistor to GND will be 47 kOhm, and the USB-side-powered LVC buffer can be
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
956 skipped for this signal - that buffer is only needed in order to work correctly
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
957 with the pull-up to VBAT.
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
958
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
959 With only 3 FT2232x-to-Calypso signals needing to go through a USB-side-powered
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
960 LVC buffer, and with 3 slots remaining available in the 74LVC541A buffer from
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
961 section 1.12.2.1, that one 74LVC541A IC can serve both signal directions (5
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
962 signals from Calypso to FT2232x and 3 signals going the other way), reducing the
cfe8623b915d FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 51
diff changeset
963 component count.
53
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
964
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
965 1.12.3. Boot control by USB host
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
966
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
967 Our DUART28C adapter (DUART28 hardware, EEPROM in the 'C' configuration) has a
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
968 nifty feature in the form of CTL1 and CTL2 open drain outputs, intended for
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
969 triggering Iota VRPC boot control signals on Calypso devices, i.e., boot control
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
970 signals from the {PWON, RPWON, nTESTRESET} set. So far none of our FreeCalypso
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
971 development boards bring out RPWON, but both FCDEV3B and Caramel2 feature PWON
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
972 and nTESTRESET controls, and we have an established convention for driving them
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
973 with CTL1 and CTL2 from a DUART28C. The end effect for the developer-operator
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
974 is that one can run operations based on Calypso boot ROM loading path (fc-iram,
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
975 fc-loadtool etc) purely from the host command line, without needing to press any
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
976 buttons on the development board: adding -Prts to the command line is equivalent
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
977 to pressing PWON, or adding -Pdtr is equivalent to pressing RESET. rvinterf can
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
978 also be run with the same options, allowing flashed firmware to be booted in a
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
979 similar no-buttons-needed manner.
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
980
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
981 It is the Mother's intent to replicate this boot control feature on our FC Libre
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
982 Dumbphone handset as well, i.e., make FT2232x Channel B RTS and DTR outputs
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
983 (otherwise unused) act as host-driven boot control triggers. In hardware terms,
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
984 this addition consists of just one tiny IC (74LVC2G07) and two pull-up resistors
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
985 on the BDBUS[24] lines from FT2232x to this OD buffer. FT2232x EEPROM will be
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
986 programmed with the same custom USB ID as DUART28C, and the Linux kernel
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
987 ftdi_sio driver will need to have our DUART28C support patch added to it.
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
988
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
989 There will be one change from our previous convention, however: the OD buffer
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
990 output controlled with Channel B RTS will be wired to RPWON rather than PWON;
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
991 the other OD buffer output controlled with Channel B DTR will still be wired to
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
992 nTESTRESET like before. The reason for this change is that our handset firmware
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
993 has more complex logic that treats different boot causes differently (as
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
994 required for standard expected handset functionality), and Iota PWON is now
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
995 reserved solely for the end user power-on button. Host-commanded boot needs to
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
996 be different from this end user power-on button (no long press is required, and
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
997 the firmware should enter its misc boot state that behaves like an ACI build),
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
998 hence we are changing the wiring so that -Prts will trigger RPWON rather than
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
999 PWON. The same boot effect can still be achieved with -Pdtr triggering
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
1000 nTESTRESET, but it is a bigger hammer (reset of RTC can be unwanted), hence
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
1001 -Prts will be recommended as the gentler option, leaving -Pdtr for times when
016f8cf2418c FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 52
diff changeset
1002 recovery from runaway code is needed.
54
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1003
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1004 2. FC handset firmware functional scope specification
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1005
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1006 FreeCalypso handset firmware will always run (perhaps with subset functionality)
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1007 on more hardware targets than just our main-goal FC Libre Dumbphone handset. It
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1008 already does: our firmware currently runs on our Luna development platform, and
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1009 prior to FC it ran on TI's original D-Sample platform. A very restricted
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1010 functional subset also runs on Motorola C139 hardware.
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1011
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1012 If we consider only the main goal of FC Libre Dumbphone handset, then our
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1013 firmware evolution can be seen as strictly linear: we start with what we got
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1014 from TI, and we morph it toward what will be needed to operate our handset,
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1015 adding functionality and peripheral support which we need for our FC handset,
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1016 but which is not present in the starting point code from TI. However, we also
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1017 have side-branch functionality: at times when the code from TI supports
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1018 something which we don't need for our own FC handset, but which may be useful
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1019 for alien hardware targets, a moral imperative can be made for keeping and at
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1020 least minimally maintaining that functionality as a kind of side-branch feature,
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1021 a permitted configuration that is not needed for our own FC handset but needed
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1022 for others. Similarly, when we add support for entirely new peripherals that
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1023 are planned for our FC handset (such as the loudspeaker), we should make the
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1024 firmware change in such a way that targets without the extra feature can still
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1025 be supported. Finally, when we are changing the firmware in ways that
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1026 significantly depart from TI's original, it may sometimes be prudent to preserve
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1027 TI's original way as a lorekeeping option.
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1028
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1029 The following sections will spell out what we support and what we don't support
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1030 in FreeCalypso handset firmware, and how these scoping decisions relate to our
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1031 starting point from TI, to our main goal of FC Libre Dumbphone handset, and to
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1032 secondary objectives of alien target support and lorekeeping.
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1033
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1034 2.1. Display support
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1035
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1036 2.1.1. Support for different display sizes
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1037
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1038 By the very nature of the problem, any phone handset UI design will always be
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1039 quite specific to a particular display size in pixels, and also to the display
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1040 type as in color or black&white. The starting point code we got from TI
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1041 supports 3 different UI configurations in terms of size and coloration:
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1042
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1043 * 176x220 pixel, 16-bit color;
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1044 * 176x220 pixel B&W;
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1045 * 84x48 pixel B&W.
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1046
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1047 In FreeCalypso we have made two changes to this set of possible UI
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1048 configurations:
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1049
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1050 1) The large (176x220 pixel) B&W option has been removed. In TI's delivery this
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1051 option was nothing more than a quick&dirty hack to extend their small (84x48
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1052 pixel) B&W UI to the large D-Sample screen, and this configuration offers
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1053 nothing useful - any real display of such large size will always be color.
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1054
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1055 2) The small B&W configuration has been extended from 84x48 to 96x64 pixels.
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1056 Why 96x64? Because it is the size in pixels of Motorola C139 LCD, and it is
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1057 the smallest LCD size found among those alien Calypso phones whose existence
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1058 is known to us and for which we have at least minimal support. Extending
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1059 this UI configuration from 84x48 to 96x64 pixels was an easy change because
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1060 it is an increase in screen real estate (not a decrease), and it is a fairly
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1061 small increment, such that UI design choices which were sensible for an 84x48
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1062 pixel display are still sensible for 96x64.
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1063
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1064 The main principal difference between our approach in FreeCalypso and what a
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1065 conventional commercial phone manufacturer would have done is that we are
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1066 retaining TI's smallbw configuration and keeping it supported, as opposed to
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1067 disregarding it and working only on the bigcolor UI config for our own planned
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1068 hardware product. We keep this smallbw UI configuration around, in the extended
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1069 96x64 pixel size, for two reasons:
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1070
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1071 1) Lorekeeping: unlike TI's 176x220 pixel B&W config that was totally
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1072 uninteresting, TI's old smallbw UI (from the days of C-Sample) is
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1073 sufficiently interesting and unique (and naturally quite different from the
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1074 bigcolor version) to be worth preserving.
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1075
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1076 2) By keeping this configuration around (not discarding it and not allowing it
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1077 to bitrot beyond repair), we keep the door open for the possibility of a
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1078 minimally usable FreeCalypso Lite aftermarket firmware for Motorola C139.
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1079
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1080 Both UI configurations can be built for our current Luna platform, and both of
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1081 them display on our Luna LCD. The virtual framebuffer of 96x64 pix B&W in the
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1082 smallbw config is displayed in the center of our physical 176x220 pixel color
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1083 LCD, surrounded by a pale magenta border. The same ability to run both configs
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1084 will continue on our next development board (Venus).
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1085
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1086 2.1.2. Backlight readability paradigm
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1087
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1088 (See theoretical background in section 1.4.3.)
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1089
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1090 Our actively maintained FC handset firmware has been paradigmatically redesigned
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1091 to assume a display which is NOT readable without the backlight. Our logical
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1092 primitives with respect to display control are display on/off, rather than
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1093 backlight on/off, and we swallow the initial keypress that turns on the display.
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1094
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1095 This change is a significant departure from TI's original. The LCD on TI's
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1096 D-Sample is transflective, and when the backlight is off, the display remains
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1097 readable in ambient light. It is certainly better in this regard than Motorola
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1098 C139 LCD. And if we go back further in TI's history to C-Sample and earlier,
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1099 those 84x48 pixel B&W LCDs were the traditional mostly-reflective type,
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1100 perfectly readable without the backlight.
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1101
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1102 This area is one where we are NOT retaining TI's original way as an option in
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1103 our actively maintained firmware. The difference between the two principal
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1104 paradigms is too great, and we don't have any active-demand prospective targets
138021ca5eae FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents: 53
diff changeset
1105 with B&W displays of the old traditional kind.
55
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1106
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1107 2.2. Keypad assumptions
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1108
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1109 The keypad arrangement on our FC handset (see sections 1.5 and 1.6) will be
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1110 exactly the same as on TI's D-Sample, thus no principal changes to the firmware
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1111 are needed in this regard. Furthermore, the same 21-button keypad exists on
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1112 Motorola C1xx phones, thus no firmware design variations are needed in this
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1113 regard for secondary target support.
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1114
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1115 The only issue of concern is that the 3 side buttons which exist on D-Sample and
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1116 Pirelli DP-L10 and will also exist on our FC handset don't exist on Mot C1xx.
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1117 Our starting point code from TI does not do anything with these buttons (even
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1118 though it was developed on the D-Sample platform where they exist), but when we
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1119 do get around to adding support for these side buttons, we will need to take
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1120 some extra care in preserving flexibility:
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1121
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1122 * The original code from TI uses navigation up/down buttons for volume control,
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1123 for both ringer and earpiece volume. We are going to change the code to drive
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1124 these volume controls with side buttons instead (dedicated volume up/down
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1125 buttons), but when we make this change, we'll need to provide an option of
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1126 restoring the old way for less button-equipped phones like Mot C1xx.
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1127
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1128 * Whatever functions we assign to the right side button, all of them will be
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1129 our own inventions, as none exist in TI's original code. However, this right
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1130 side button does not exist on Mot C1xx. The Mother's idea is to assign the
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1131 right side button to loudspeaker on/off control - this arrangement will work
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1132 well as the same C1xx phones that lack this button also lack the hands-free
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1133 loudspeaker.
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1134
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1135 2.2.1. No support for 18-button main keypads
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1136
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1137 Prior to D-Sample, TI's C-Sample and earlier boards had keypads with fewer
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1138 buttons, 18 instead of 21, and no side buttons. The difference between the
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1139 C-Sample 18-button main keypad and the 21-button one found on D-Sample, Pirelli
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1140 DP-L10 and Motorola C1xx is that the older 18-button keypad has only up and down
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1141 navigation buttons in the place where the 21-button version has a 5-way
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1142 navigation button group. In other words, navigation left, right and center keys
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1143 don't exist on the 18-button version.
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1144
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1145 TI's demo/prototype/PoC UI code was originally developed on C-Sample or perhaps
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1146 even earlier, thus it was originally designed for the 18-button keypad
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1147 arrangement. For this reason, the code currently makes very little use of
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1148 navigation left, right and center keys. However, some limited use is already
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1149 being made of these extra keys (primarily on text and number entry screens, aka
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1150 the editor), and our use of all available keys in the UI will keep growing. As
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1151 a matter of project scope, we are NOT supporting backward compatibility with
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1152 18-button keypads, given that the lowest-end Mot C1xx family already has
df6c61d0e817 FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 54
diff changeset
1153 21-button keypads.
56
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1154
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1155 2.3. Audio routing
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1156
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1157 TI's demo/prototype/PoC UI code from TCS211 does not use the audio mode facility
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1158 of the RiViera Audio Service: ABB configuration remains the default set in L1
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1159 initialization, volume control is done by calling audio_SetAmplf() in the Condat
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1160 abstraction layer, which in turn calls ABB_DlVolume(). This design will need to
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1161 change in FreeCalypso: we will start using the RiViera Audio Service audio mode
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1162 facility, and the use of this facility (including correct audio mode
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1163 configuration files under /aud in FFS) will become mandatory on all targets.
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1164
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1165 The following 3 audio modes are defined for call audio routing and idle
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1166 operation (keyclicks etc), as opposed to Melody E1 ringing covered in section
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1167 2.4.2:
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1168
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1169 Mode name Used for
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1170 ------------------------
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1171 handheld Default handheld operation and idle state
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1172 handfree Calls in hands-free loudspeaker mode
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1173 headset When a wired analog headset is plugged in
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1174
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1175 At the minimum, valid /aud/handheld.{cfg,vol} files will need to be created in
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1176 FFS on every supported target; other modes can be omitted if they can't be
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1177 entered. /aud/*.vol files maintained by RiViera Audio Service will serve as the
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1178 non-volatile volume setting store for each mode.
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1179
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1180 2.3.1. Loudspeaker inclusion or omission
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1181
66
a2857b6c3d87 FC-handset-spec section 2.3.1: change for bigcolor-spk-* configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 65
diff changeset
1182 The Mother's plan is to conditionalize loudspeaker support on the firmware build
a2857b6c3d87 FC-handset-spec section 2.3.1: change for bigcolor-spk-* configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 65
diff changeset
1183 configuration. Once we implement initial support for audio modes using RiViera
a2857b6c3d87 FC-handset-spec section 2.3.1: change for bigcolor-spk-* configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 65
diff changeset
1184 Audio Service, our basic bigcolor-{gprs,vo} and smallbw configurations will
a2857b6c3d87 FC-handset-spec section 2.3.1: change for bigcolor-spk-* configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 65
diff changeset
1185 support only handheld and headset modes, but not handfree. We will then later
a2857b6c3d87 FC-handset-spec section 2.3.1: change for bigcolor-spk-* configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 65
diff changeset
1186 add new bigcolor-spk-* configurations whose purpose will be to support
a2857b6c3d87 FC-handset-spec section 2.3.1: change for bigcolor-spk-* configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 65
diff changeset
1187 loudspeaker-equipped phone handset targets; these configurations will enable
a2857b6c3d87 FC-handset-spec section 2.3.1: change for bigcolor-spk-* configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 65
diff changeset
1188 support for the hands-free loudspeaker mode (and will expect the loudspeaker
a2857b6c3d87 FC-handset-spec section 2.3.1: change for bigcolor-spk-* configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 65
diff changeset
1189 and handfree audio mode to be available), and will also switch the ringtone
a2857b6c3d87 FC-handset-spec section 2.3.1: change for bigcolor-spk-* configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 65
diff changeset
1190 generation mechanism from the buzzer to Melody E1 - see section 2.4.
56
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1191
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1192 2.3.2. Headset inclusion or omission
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1193
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1194 The code supporting wired headset mode will always be included in the firmware,
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1195 however, there will be a hardware driver function call to inquire if a headset
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1196 is inserted or not. If the wired headset jack does not exist on a given target,
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1197 or more practically if it exists but we don't support it, this headset status
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1198 function will always return "no headset" indication, and the headset mode will
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1199 never be entered.
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1200
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1201 2.4. Ringtone generation
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1202
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1203 See section 1.8 for an overview of possible ways in which ringtone generation
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1204 may be accomplished. The only ring sound generation method supported by TI's
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1205 TCS211 version of their demo/prototype/PoC phone UI (the version for Calypso,
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1206 as opposed to other chipsets) is the original Calypso buzzer, i.e., Calypso
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1207 digital waveform output intended for switching a magnetic buzzer. The code that
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1208 rings this buzzer will execute successfully on every Calypso target, regardless
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1209 of whether it actually has a magnetic buzzer or not: if there is no buzzer and
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1210 Calypso BU/PWT output is left unconnected, like it is on our Luna platform, the
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1211 code will still run and emit the intended tone waveform on BU, but this output
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1212 will go nowhere and no audible sound will be made.
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1213
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1214 As a matter of project scope, in our FreeCalypso handset firmware we shall
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1215 support two configurations with regard to ringing:
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1216
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1217 1) TI's original buzzer configuration will be retained for lorekeeping and to
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1218 keep the door open for the possibility of a minimally usable FreeCalypso Lite
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1219 aftermarket firmware for Motorola C139.
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1220
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1221 2) For our own FC Libre Dumbphone handset, we will need to implement ringing by
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1222 way of the same loudspeaker that will be used for hands-free calls, using the
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1223 Melody E1 feature of Calypso DSP for ringtone melody generation.
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1224
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1225 2.4.1. Scope limitation on buzzer melodies
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1226
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1227 Because the option of ringing via Calypso buzzer output is retained only for
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1228 lorekeeping and for minimal-support alien targets, no effort will be expended
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1229 toward playing more musical melodies via the buzzer. Our current code (bugfixed
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1230 from TI's original) implements just one buzzer ringing sound, consisting of
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1231 alternating 800 Hz and 900 Hz tones, using BU mode rather than PWT, and the
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1232 Mother currently has no plans to implement anything more for the buzzer
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1233 configuration.
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1234
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1235 2.4.2. Melody E1 ringer
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1236
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1237 Our Melody E1 ringer implementation will require melody files in FFS, and we
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1238 will also have a separate audio mode (in the RiViera Audio Service sense) that
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1239 will be loaded during ringing. Even though the same physical loudspeaker will
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1240 be used for both hands-free calls and ringing, logically the two are separate
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1241 modes, and they will be treated as separate for the Audio Service. Separate
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1242 logical modes will provide separate volume files, which is the correct approach:
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1243 loudspeaker volume and ringing volume should be separate, just like how ringing
a39269dddca4 FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents: 55
diff changeset
1244 volume is entirely separate when a buzzer is used.
57
020e6428c248 FC-handset-spec: firmware approach to vibrating alert documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
1245
020e6428c248 FC-handset-spec: firmware approach to vibrating alert documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
1246 2.5. Vibrating alert
020e6428c248 FC-handset-spec: firmware approach to vibrating alert documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
1247
020e6428c248 FC-handset-spec: firmware approach to vibrating alert documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
1248 Our FC handset firmware will support both ringing and vibrating alert modes (as
020e6428c248 FC-handset-spec: firmware approach to vibrating alert documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
1249 well as a ring+vibrate mode) on all targets. The vibrator will be modeled as a
020e6428c248 FC-handset-spec: firmware approach to vibrating alert documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
1250 simple on/off control (no "analog" control of different vibration intensity
020e6428c248 FC-handset-spec: firmware approach to vibrating alert documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
1251 levels, at least initially), and the vibrating alert code path will ultimately
020e6428c248 FC-handset-spec: firmware approach to vibrating alert documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
1252 boil down to a driver function call for vibrator on/off. Therefore, if the
020e6428c248 FC-handset-spec: firmware approach to vibrating alert documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
1253 vibrator does not exist on a given target, or if it exists but we don't know how
020e6428c248 FC-handset-spec: firmware approach to vibrating alert documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
1254 to operate it, the on/off control function can be empty on that target, and the
020e6428c248 FC-handset-spec: firmware approach to vibrating alert documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
1255 firmware will "vibrate" virtually.
020e6428c248 FC-handset-spec: firmware approach to vibrating alert documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
1256
020e6428c248 FC-handset-spec: firmware approach to vibrating alert documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
1257 On development boards such as FC Venus, the vibrator on/off function can turn a
020e6428c248 FC-handset-spec: firmware approach to vibrating alert documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
1258 LED on and off to provide an indication of the UI layers making a vibrating
020e6428c248 FC-handset-spec: firmware approach to vibrating alert documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
1259 alert.
59
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1260
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1261 3. Venus development board
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1262
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1263 As of the summer of 2021, FreeCalypso handset development has reached a point
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1264 where a new development board is desired, to take the place of our current Luna
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1265 development platform. The newly planned FreeCalypso development board is
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1266 codenamed Venus, and it is envisioned as serving two goals:
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1267
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1268 1) Many of the hardware features intended for the ultimate FC handset product
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1269 as described in Chapter 1 can be prototyped on this Venus board;
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1270
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1271 2) The board will serve as the ideal firmware development platform, covering all
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1272 features and options that are listed in the previous chapter and defined as
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1273 being in scope for FC handset firmware.
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1274
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1275 The following sections spell out the design specification for this Venus
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1276 development board.
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1277
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1278 3.1. Build principle
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1279
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1280 The board will be built in the "hard" way, with the Calypso+Iota+RF chipset
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1281 implemented directly on the Venus board itself, as opposed to using a Tango
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1282 (iWOW TR-800) module. This approach is necessary because we need some Calypso
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1283 and Iota signals that are not brought out on TR-800:
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1284
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1285 1) We need Iota HSMICBIAS, HSMICP and HSO signals (the 3rd audio channel) in
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1286 addition to the primary and secondary audio channels, in order to prototype
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1287 section 1.7 hardware for the real handset, and in order to provide a proper
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1288 firmware development platform for section 2.3.
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1289
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1290 2) We need Calypso BU/PWT output so we can implement an old-fashioned buzzer,
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1291 which we need in order to develop and maintain firmware per section 2.4,
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1292 supporting both buzzer and Melody E1 ringing.
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1293
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1294 Once we have accepted that we have to bite the bullet and build our Venus board
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1295 in the "hard" way, we can also implement some other nice-to-have functions that
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1296 would have been deemed non-essential otherwise:
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1297
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1298 * We can bring out Calypso JTAG (which is not brought out on TR-800) like we did
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1299 on FCDEV3B. In the Mother's experience there is very little actual need for
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1300 Calypso JTAG, but it would be improper to omit this interface on a development
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1301 board when bringing it out is possible.
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1302
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1303 * With access to the internal ON_nOFF signal, we can implement a reliable
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1304 chipset-ON LED indicator, also like we did on FCDEV3B.
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1305
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1306 * We can implement both LPG and PWL LEDs like on the original D-Sample. Neither
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1307 LED is strictly needed for the handset firmware functional scope or for
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1308 prototyping toward the final handset; at least one LED is desired for the
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1309 purpose of indicating virtual vibrator on/off state, but similarly to other
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1310 considerations, it would be improper to pass up the opportunity to implement
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1311 both LEDs.
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1312
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1313 * Mostly unrelated to the handset project, falling instead into the realm of
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1314 general Calypso chipset knowledge recovery, I have wanted for a long time to
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1315 sniff the internal chip-to-chip VSP interface between Calypso and Iota - but
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1316 such feat cannot be accomplished on any currently existing hardware, as it's
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1317 an internal interface going from one BGA to another on PCB inner layers. If
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1318 we are building a new Calypso development board for other purposes, it would
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1319 be nifty to throw in a VSP tap header as well.
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1320
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1321 3.2. Purpose and scope
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1322
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1323 Aside from the logically unrelated VSP tap feature, our Venus board will be
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1324 intended for handset firmware development and handset hardware prototyping only.
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1325 It is not intended for non-handset directions of interest - for other interests
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1326 and purposes, use Caramel2 or FCDEV3B.
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1327
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1328 Calypso MCSI will not be available on FC Venus - in handset applications MCSI
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1329 pins are switched into GPIO mode, and we'll be using these GPIOs for LCD
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1330 backlight control on both Venus and the final handset. (Our current Luna
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1331 platform is likewise.) If you need MCSI, then you are doing modem work, not
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1332 handset, so use Caramel2 or FCDEV3B.
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1333
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1334 3.3. RF bands and PCB layout
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1335
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1336 The Mother's intent for the Venus board is to stop copying Openmoko's triband
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1337 PCB layout and instead switch to TI's original Leonardo+ quadband layout, which
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1338 has been recovered from iWOW TR-800 via professional PCB reverse engineering.
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1339 We will need quadband RF for the final FC Libre Dumbphone handset, thus it would
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1340 be best to switch to it now, starting with Venus.
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1341
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1342 3.4. Power supply arrangement
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1343
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1344 FC Venus will have the same orange Weidmuller power input connector as previous
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1345 TI and FreeCalypso development boards C-Sample, D-Sample, Leonardo, FCDEV3B and
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1346 Caramel2. Ready-made VBAT needs to be provided via this connector, fed directly
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1347 to the core chipset and to VBAT-powered peripherals, no on-board power
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1348 conversion. During development, operation with an AC-mains-powered fixed 3.6 V
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1349 DC supply is generally much more convenient than a real battery.
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1350
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1351 For development and testing of handset battery management in the firmware, and
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1352 for exercising the charging boot path in particular, Iota VCHG needs to be
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1353 brought out like it is on iWOW DSK and FC Caramel2 boards, to be connected with
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1354 a jumper wire to +5V pin on the DUART28 USB adapter whenever a "charger plugged"
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1355 condition needs to be presented to the chipset. FC Venus will feature a 2x4 pin
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1356 header with Iota BCI signals like on Caramel2:
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1357
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1358 ICTL VCCS
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1359 PCHG VCHG
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1360 ADIN2 ADIN1
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1361 GND GND
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1362
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1363 The Mother's approach to development and testing of higher-level UI functions
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1364 dealing with battery management is to use the BSIM feature of our FCHG driver,
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1365 in which case the board remains powered from a fixed DC supply (no actual
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1366 battery) and only VCHG needs to be connected. However, if a need arises to
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1367 connect an actual battery and an actual Iota-controlled charging circuit, it
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1368 will be possible: the battery will need to be connected to the orange power
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1369 input connector, and the control signals for the charging circuit will need to
3ead88660a4e FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents: 58
diff changeset
1370 be connected to the 2x4 header.
60
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1371
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1372 3.5. LCD module and backlight
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1373
67
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
1374 The Mother's original intent was to finalize the selection of LCD module for the
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
1375 actual handset before embarking on the detailed design (as in schematics, BOM
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
1376 and layout) of FC Venus, and to implement the final LCD and the final backlight
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
1377 circuit on the Venus board. However, because of the delay in KWH020ST23-F01 LCD
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
1378 testing caused by Digi-Key part backorder issues (see section 1.4.2), this plan
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
1379 is being modified slightly: the design of FC Venus board is being ungated on the
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
1380 bet that KWH020ST23-F01 LCD module will pass all necessary qualification tests,
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
1381 but this Venus board design won't be sent out to PCB fab until those LCD tests
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
1382 actually pass.
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
1383
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
1384 The backlight circuit design of section 1.4.4.1, which is hoped to be final, is
ed686a290f2d FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents: 66
diff changeset
1385 being included in the Venus board design.
60
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1386
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1387 3.6. Keypad buttons
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1388
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1389 The complex mechanical arrangement of keypad buttons that will be needed for the
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1390 real handset will NOT be done on the Venus board. Instead there will be a
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1391 simple 5x5 matrix of buttons in rows and columns, with silk screen labels
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1392 indicating the function of each button, matching D-Sample - the same arrangement
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1393 as on our current Luna platform. There will also be 3 out-of-matrix buttons for
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1394 PWON, RPWON and RESET.
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1395
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1396 There will be no keypad backlight on the Venus board. This secondary backlight
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1397 is not needed for firmware development, as it is not managed separately in our
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1398 fw architecture - instead its control will be absorbed into our R2D BLRR control
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1399 mechanism on the final handset where this backlight will be added.
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1400
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1401 3.7. Audio interfaces
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1402
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1403 Corresponding to the 3 audio channels of section 1.7, there will be 3 analog
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1404 audio interfaces on FC Venus: two TRRS jacks and one 2-pin header. These audio
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1405 interfaces will be as follows:
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1406
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1407 * The main audio channel (the one that will go to the built-in earpiece speaker
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1408 and mic in the real handset) will be wired to a TRRS jack exactly like on
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1409 Caramel2.
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1410
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1411 * The "official" headset channel (the one that will be a jack in the final
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1412 handset) will be wired to another identical TRRS jack. This other jack will
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1413 need plug insertion detection, signaled to a Calypso GPIO input.
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1414
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1415 * The output of the loudspeaker amplifier (see section 1,7.2) will be wired to
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1416 a 2-pin header exactly like on FCDEV3B, allowing the same 8 ohm lab bench
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1417 loudspeaker to be connected.
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1418
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1419 3.8. Magnetic buzzer
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1420
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1421 There will be a magnetic buzzer implemented directly on the Venus board itself
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1422 (not an externally attached component), exactly like on TI's D-Sample board.
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1423 This buzzer will be controlled by Calypso BU/PWT output in the canonical manner,
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1424 allowing the expected sounds to actually emanate when firmware operates the
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1425 old-fashioned Calypso buzzer output. See section 2.4 for the purpose of this
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1426 hardware provision.
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1427
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1428 3.9. LEDs instead of vibrator
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1429
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1430 There will be no vibrator on FC Venus - it is a mechanical function which cannot
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1431 be sensibly implemented on a development board meant for use on a lab bench.
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1432 Instead our Venus board will feature both LPG and PWL LEDs (i.e., LEDs
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1433 controlled by the respective Calypso outputs) exactly like D-Sample, and either
f0d9a2cf15d2 FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 59
diff changeset
1434 of these LEDs can be used to simulate vibrator on/off state.
61
da5113856f3b FC-handset-spec: Venus DUART & CTL interfaces documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 60
diff changeset
1435
da5113856f3b FC-handset-spec: Venus DUART & CTL interfaces documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 60
diff changeset
1436 3.10. Host computer interface
da5113856f3b FC-handset-spec: Venus DUART & CTL interfaces documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 60
diff changeset
1437
da5113856f3b FC-handset-spec: Venus DUART & CTL interfaces documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 60
diff changeset
1438 The host interface model on FC Venus will need to follow that of section 1.12.
da5113856f3b FC-handset-spec: Venus DUART & CTL interfaces documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 60
diff changeset
1439 More specifically, our Venus board will implement the mobile side of the "wall"
da5113856f3b FC-handset-spec: Venus DUART & CTL interfaces documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 60
diff changeset
1440 between USB and mobile power domains, complete with all provisions of section
da5113856f3b FC-handset-spec: Venus DUART & CTL interfaces documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 60
diff changeset
1441 1.12.2 for the mobile side, whereas the USB domain is already implemented on our
da5113856f3b FC-handset-spec: Venus DUART & CTL interfaces documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 60
diff changeset
1442 DUART28 adapter board. The two domains will be interconnected with a ribbon
da5113856f3b FC-handset-spec: Venus DUART & CTL interfaces documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 60
diff changeset
1443 cable in the FC Venus lab bench setup. The 10-pin DUART header will have our
da5113856f3b FC-handset-spec: Venus DUART & CTL interfaces documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 60
diff changeset
1444 standardized FreeCalypso DUART pinout.
da5113856f3b FC-handset-spec: Venus DUART & CTL interfaces documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 60
diff changeset
1445
da5113856f3b FC-handset-spec: Venus DUART & CTL interfaces documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 60
diff changeset
1446 Also following the principal design of section 1.12.3, there will be a 3-pin
da5113856f3b FC-handset-spec: Venus DUART & CTL interfaces documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 60
diff changeset
1447 header on the Venus board bringing out RPWON, nTESTRESET and GND, to be
da5113856f3b FC-handset-spec: Venus DUART & CTL interfaces documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 60
diff changeset
1448 connected to the boot control header on DUART28C.
62
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1449
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1450 4. Motorola C139 port
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1451
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1452 4.1. Background information
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1453
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1454 In FreeCalypso we have low-level support for the following alien targets:
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1455
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1456 * Motorola C11x/12x
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1457 * Motorola C139/140
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1458 * Motorola C155/156
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1459 * Pirelli DP-L10
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1460 * Sony Ericsson J100
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1461
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1462 Low-level support means that for all of these targets, we are able to build and
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1463 load a FreeCalypso firmware image that boots and runs without crashing, operates
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1464 the phone's GSM radio hardware in proper spec-compliant manner (transmissions
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1465 verified with a CMU200 RF tester), and allows control via AT commands and
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1466 FreeCalypso debug & development tools fc-shell, fc-tmsh and fc-fsio. However,
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1467 in this so-called "voice pseudo-modem" (VPM) operation, the phone's LCD stays
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1468 dark, the buttons do nothing, and there are no high-level functions of any kind,
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1469 only low-level control from the attached host computer.
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1470
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1471 It also just happens that in year 2015 I (Mother Mychaela) produced a firmware
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1472 version for Mot C139 that runs untethered, without host computer connection.
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1473 However, that untethered FC-on-C139 firmware was produced as a poor man's hack,
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1474 not as an end user offering! Here is the situation we were in: we did not
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1475 discover the existence of iWOW TR-800 (an extremely obscure Calypso module)
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1476 until December of 2019, thus for the 4 years between 2015 and 2019 we had no way
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1477 of running TI's TCS211 MFW+BMI (handset configuration) firmware in its proper
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1478 D-Sample config, which is 176x220 pixel color. But we knew that TI also had an
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1479 older C-Sample UI configuration (84x48 pixel B&W), thus out of poverty, for the
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1480 lack of proper development hardware, we resurrected that old C-Sample UI config
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1481 (at first it wouldn't even compile) and got it running on Mot C139 hardware -
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1482 possible because that 84x48 pixel UI was small enough to fit into Motorola's
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1483 96x64 pixel LCD.
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1484
63
4389cd2b9d02 FC-handset-spec: grammar fix
Mychaela Falconia <falcon@freecalypso.org>
parents: 62
diff changeset
1485 To be clear, I *never* considered this hacky FC-on-C139 port to be an acceptable
62
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1486 substitute or replacement for my real goals of first getting TI's TCS211 UI up
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1487 and running in its proper 176x220 pixel color configuration, and then producing
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1488 a FreeCalypso handset that can replace the proprietary Pirelli DP-L10. However,
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1489 a peculiar situation has arisen: we now know that it is possible to transform
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1490 Motorola C139 into a sort of Libre Dumbphone Lite with aftermarket FreeCalypso
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1491 firmware, and it is clear that some users will prefer this "liberated C139"
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1492 option over the Mother's desired FC Libre Dumbphone handset - probably for
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1493 reasons of cost more than anything, as our FC phone will likely end up costing
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1494 thousands of dollars. The rest of this chapter will explore the possibility of
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1495 practically usable FreeCalypso handset firmware on Mot C139 hardware.
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1496
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1497 4.2. Why C139?
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1498
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1499 As a matter of general principle, we could probably get our FreeCalypso Lite
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1500 firmware running on all or most of the 5 alien targets listed in section 4.1.
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1501 However, the level of usability and the set of user-available features on the
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1502 other 4 would only be worse than what we would get on C139, thus if someone is
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1503 looking for a pre-existing phone hw unit to convert to FreeCalypso Lite, then
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1504 C139 is the best choice in terms of outcome quality.
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1505
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1506 It is particularly worthy of note that if we were to get FreeCalypso Lite
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1507 firmware running on Pirelli DP-L10 (it hasn't been tried as of this writing,
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1508 but it is likely possible), the result would be not only much much worse in
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1509 functionality than Pirelli's official firmware or the Mother's desired full FC
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1510 handset, but actually even worse than the same FreeCalypso Lite firmware running
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1511 on Motorola C139! Therefore, even though the Pirelli phone serves as the
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1512 Mother's inspiration for our own FC handset hardware, the existing Pirelli
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1513 hardware is mostly useless for the purpose of turning it into a libre phone -
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1514 all because of the vast amount of completely undocumented hardware in this
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1515 model.
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1516
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1517 4.3. How to make it happen
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1518
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1519 The main reason why a practically usable FC firmware version for Mot C139 has
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1520 not been produced yet is because I, Mother Mychaela, am not willing to do it in
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1521 such a way that would jeopardize my primary goal of true FC handset hardware.
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1522 I am willing to support FreeCalypso Lite on C139 as a *side addition* to the
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1523 main FC handset hardware goal, but never as a replacement.
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1524
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1525 Right now my next project goal is to build my desired Venus development board.
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1526 Once that board is built, we will be in a better position to whip our TI-based
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1527 FC handset firmware into shape. No, my priorities won't change, and my initial
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1528 work on the Venus platform will be on the bigcolor firmware configuration.
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1529 However, once FC Tourmaline bigcolor firmware runs on FC Venus in a satisfactory
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1530 manner, with audio mode conversion implemented but still using the Calypso
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1531 buzzer for ringing, then it may be a good time to bring the smallbw
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1532 configuration up to par. And once FC Tourmaline smallbw runs in an end-user-
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1533 acceptable manner on FC Venus, then it will be a slam dunk to move it to actual
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1534 C139 hardware.
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1535
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1536 4.4. Functional scope limitations
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1537
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1538 Because FC Lite on Mot C139 can only ever be a side project and can never be my
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1539 main goal, I have to put some strict limits on the amount of work I am going to
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1540 do in that direction:
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1541
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1542 * The color capability of C139 physical LCD will not be used by FC Lite
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1543 firmware, instead the screen of FC-on-C139 will always be black&white. The
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1544 reason for this limitation is that displaying color on C139 would involve
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1545 actual work (a non-trivial amount of it) to create an entirely new "small
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1546 color" UI configuration (as opposed to the existing bigcolor and smallbw),
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1547 whereas the existing smallbw config is a freebie gift from TI.
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1548
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1549 * No musical ringtones, just one extremely basic ringing sound - implementing
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1550 musical ringtones for the buzzer would be C139-specific work which is not
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1551 needed for the main goal of FC Libre Dumbphone, which will use Melody E1
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1552 ringing instead.
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1553
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1554 * No support for actual headsets in the headset jack! The headset jack on all
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1555 Mot C1xx phones serves a dual function, it is both an analog headset interface
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1556 and a digital interface for computer connection (UART at 2.8V logic levels),
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1557 and in FreeCalypso we absolutely require the computer interface function of
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1558 this jack - it is essential for development and debugging. Therefore, the
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1559 "ordinary end user" function of the headset jack is lost.
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1560
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1561 In summary, FreeCalypso Lite on Motorola C139 will be an *extremely* basic and
42d53bfbcca3 FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 61
diff changeset
1562 "bare bones" phone - but the hope is that it would still be useful to some.