FreeCalypso > hg > freecalypso-docs
annotate FC-handset-spec @ 42:6b61d77f7700
FC-handset-spec: missed the loudspeaker and vibrator in 1.1
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 10 Jun 2021 16:12:38 +0000 |
parents | 7d77aa76bcaa |
children | e1b75668a706 |
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 |
42
6b61d77f7700
FC-handset-spec: missed the loudspeaker and vibrator in 1.1
Mychaela Falconia <falcon@freecalypso.org>
parents:
41
diff
changeset
|
27 * hands-free loudspeaker |
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 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 * wired headset jack |
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 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 * TV receiver |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 * GPS receiver |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 * dual SIM slot |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 * torch light beyond LCD and keypad backlights |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 1.2. RF band capability |
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 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
|
47 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
|
48 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
|
49 (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
|
50 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 1.3. RAM and flash |
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 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
|
54 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
|
55 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
|
56 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
|
57 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
|
58 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
|
59 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 1.4. Liquid crystal display |
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.1. Display size |
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 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
|
65 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
|
66 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
|
67 display size have been considered and rejected: |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 * 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
|
70 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
|
71 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
|
72 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
|
73 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 * 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
|
75 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
|
76 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
|
77 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
|
78 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
|
79 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
|
80 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
|
81 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
|
82 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
|
83 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 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
|
85 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
|
86 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
|
87 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
|
88 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
|
89 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 1.4.2. Specific LCD module selection |
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 As of this writing, the specific LCD module to be used has not been firmly |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 selected yet. We are actively looking for an LCD module that fits all of the |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 following requirements: |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 * 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
|
97 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 * 16-bit microprocessor bus interface; |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 * 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
|
101 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 * 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
|
103 with separately brought-out cathodes; |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 * 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
|
106 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
|
107 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
|
108 connector. |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 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
|
111 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
|
112 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
|
113 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
|
114 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
|
115 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
|
116 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 1.4.3. Backlight and readability considerations |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 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
|
120 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
|
121 operation and readability interacts with the backlight: |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 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
|
124 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
|
125 ordinary ambient lighting, be it natural daylight or room lighting. Such |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 LCDs are called reflective. With these B&W displays, you only need to turn |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 on the backlight if you need to operate the phone in darkness, such as |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 outdoors at night or inside with all lights off. The firmware in such phones |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 is typically designed to leave the actual display functional and updated at |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 all times, with only the backlight subject to on/off control. |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 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
|
133 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
|
134 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
|
135 (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
|
136 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
|
137 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
|
138 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
|
139 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
|
140 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
|
141 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
|
142 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 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
|
144 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
|
145 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
|
146 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
|
147 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
|
148 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
|
149 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
|
150 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
|
151 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
|
152 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
|
153 to make the display readable. |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 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
|
156 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
|
157 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
|
158 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
|
159 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
|
160 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 1.4.3.1. Backlight dimming mode |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 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
|
164 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
|
165 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
|
166 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
|
167 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
|
168 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
|
169 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
|
170 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
|
171 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
|
172 (but still readable) state keypresses are NOT swallowed. |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 We only need to implement two different intensity levels for the LCD backlight: |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 full brightness and in-call dimmed. The backlight intensity level in the dimmed |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 state will need to chosen on this principle: use the lowest backlight LED |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 current (to conserve battery power and allow longest talk time on one charge) at |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 which the display is still readable, similarly to Pirelli's in-call dimmed |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 state. |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 In the user-actively-poking state, as opposed to the long-call dimmed state, |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 there is no need to provide different configurable backlight levels - see |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 section 1.4.5. |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185 1.4.4. Backlight circuit implementation |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 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
|
188 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
|
189 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
|
190 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
|
191 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
|
192 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
|
193 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
|
194 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
|
195 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
|
196 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 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
|
198 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
|
199 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
|
200 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
|
201 current), hence we need to avoid using such. |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 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
|
204 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
|
205 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
|
206 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
|
207 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
|
208 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
|
209 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
|
210 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
|
211 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
|
212 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
|
213 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
|
214 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
|
215 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 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
|
217 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
|
218 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
|
219 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
|
220 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
|
221 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
|
222 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
|
223 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
|
224 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
|
225 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
|
226 variations in Vf. |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 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
|
229 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
|
230 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
|
231 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
|
232 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
|
233 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
|
234 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
|
235 - *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
|
236 place of resistors as current-limiting elements, and the chip's global on/off |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 control takes the place of a separate switching transistor. |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 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
|
240 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
|
241 inside the chip) regardless of variations in both Vbat and Vf! Of course the |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 requested current can only be sustained as long as Vbat >= Vf + Vds, where Vds |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 is the lowest drop voltage of the FETs inside MAX1916, and once Vbat falls below |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 this point, the LED current will begin to decline. However, the beauty of this |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 design is that no arbitrary artificial turnover points (like the 3.5 V point in |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
246 our hacky design from the spring of 2020) need to be set: the battery discharge |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247 point at which the LED current begins to decline will be whatever it comes to be |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248 naturally, based on Vf (perhaps depending on temperature) and MAX1916 Vds, and |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
249 the decline is expected to be gradual. |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
250 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
251 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
|
252 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 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
|
254 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
|
255 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
|
256 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
|
257 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
|
258 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
|
259 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260 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
|
261 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
|
262 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
|
263 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
|
264 different carefully computed values, each connected between one of the two |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
265 tristate buffer outputs and MAX1916 SET pin. One resistor will provide a small |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
266 current, the other will provide a large current, and each of these two currents |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
267 will be switchable on/off by Calypso GPIO signals switching the buffer outputs |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
268 between driving high (2.7-2.8 V) and Hi-Z. Resistor values will be chosen such |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
269 that the sum of both currents will be the 15 mA limit (the current is reckoned |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
270 per LED), whereas the small current alone will be whatever we need for the |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
271 battery-saving long-call dimmed mode. |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
272 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
273 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
|
274 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
275 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
|
276 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
|
277 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
|
278 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
|
279 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
|
280 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
|
281 backlight intensity appears to be continuously variable from 1/255 to 255/255, |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
282 which is certainly a much richer control than our crude selection of just 3 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
283 possible LED currents. |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
284 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
285 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
|
286 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
|
287 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
|
288 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
|
289 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
|
290 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
291 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
|
292 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
|
293 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
|
294 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
|
295 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
|
296 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
|
297 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
|
298 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
|
299 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
|
300 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
|
301 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
|
302 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
303 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
|
304 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
|
305 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
|
306 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
|
307 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
|
308 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
|
309 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
|
310 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
|
311 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
|
312 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
|
313 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
|
314 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
|
315 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
|
316 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
|
317 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
|
318 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
|
319 induced reductions, just the natural one. |
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 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
|
322 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
|
323 switching with much more limited selection. |