FreeCalypso > hg > freecalypso-docs
annotate FC-handset-spec @ 102:49be28a15768
USB-ID-assignments: new official document location
Our master document for assignment of USB IDs that have been allocated
to us by FTDI previously resided in doc/USB-IDs in freecalypso-hwlab
repository. However, that hw lab hacks repository is not the right
place for a long-term official policy document - the present repository
is a much better place.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 11 Sep 2023 06:32:05 +0000 |
parents | f5b954172002 |
children |
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 |
78
a05195c86d3a
FC-handset-spec: introduce all 4 chapters
Mychaela Falconia <falcon@freecalypso.org>
parents:
77
diff
changeset
|
4 The purpose of this document is multifold: |
a05195c86d3a
FC-handset-spec: introduce all 4 chapters
Mychaela Falconia <falcon@freecalypso.org>
parents:
77
diff
changeset
|
5 |
a05195c86d3a
FC-handset-spec: introduce all 4 chapters
Mychaela Falconia <falcon@freecalypso.org>
parents:
77
diff
changeset
|
6 * Chapter 1 gives the principal design specification for the FreeCalypso Libre |
a05195c86d3a
FC-handset-spec: introduce all 4 chapters
Mychaela Falconia <falcon@freecalypso.org>
parents:
77
diff
changeset
|
7 Dumbphone handset hardware which I, Mother Mychaela, seek to build as a |
a05195c86d3a
FC-handset-spec: introduce all 4 chapters
Mychaela Falconia <falcon@freecalypso.org>
parents:
77
diff
changeset
|
8 distant long-term goal. |
41
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 |
78
a05195c86d3a
FC-handset-spec: introduce all 4 chapters
Mychaela Falconia <falcon@freecalypso.org>
parents:
77
diff
changeset
|
10 * Chapter 2 defines the scope of functionality to be supported in FreeCalypso |
a05195c86d3a
FC-handset-spec: introduce all 4 chapters
Mychaela Falconia <falcon@freecalypso.org>
parents:
77
diff
changeset
|
11 handset firmware, including support for additional hardware targets beyond |
a05195c86d3a
FC-handset-spec: introduce all 4 chapters
Mychaela Falconia <falcon@freecalypso.org>
parents:
77
diff
changeset
|
12 the primary FC handset hw target. |
41
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 |
78
a05195c86d3a
FC-handset-spec: introduce all 4 chapters
Mychaela Falconia <falcon@freecalypso.org>
parents:
77
diff
changeset
|
14 * Chapter 3 gives the principal design specification for FreeCalypso Venus |
a05195c86d3a
FC-handset-spec: introduce all 4 chapters
Mychaela Falconia <falcon@freecalypso.org>
parents:
77
diff
changeset
|
15 development board, which is a more near-term piece of hardware I seek to |
a05195c86d3a
FC-handset-spec: introduce all 4 chapters
Mychaela Falconia <falcon@freecalypso.org>
parents:
77
diff
changeset
|
16 build, nearer than the long-term goal of Chapter 1. |
a05195c86d3a
FC-handset-spec: introduce all 4 chapters
Mychaela Falconia <falcon@freecalypso.org>
parents:
77
diff
changeset
|
17 |
a05195c86d3a
FC-handset-spec: introduce all 4 chapters
Mychaela Falconia <falcon@freecalypso.org>
parents:
77
diff
changeset
|
18 * Chapter 4 explains the side project of FreeCalypso Lite aftermarket firmware |
a05195c86d3a
FC-handset-spec: introduce all 4 chapters
Mychaela Falconia <falcon@freecalypso.org>
parents:
77
diff
changeset
|
19 on Motorola C139 hardware. |
41
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 1. FC handset hardware specification |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 1.1. Basic features |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 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
|
26 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
|
27 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
|
28 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
|
29 features are to be included: |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 * 176x220 pixel color display (no touch) |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 * 21-button main keypad |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 * 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
|
34 * 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
|
35 * vibrator |
41
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 * 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
|
37 * wired analog headset jack |
41
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 * single SIM slot |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 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
|
41 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
|
42 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 * camera |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 * Bluetooth |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 * FM radio |
58
e6a1d1699ebb
FC-handset-spec: explicitly list stereo/music exclusion
Mychaela Falconia <falcon@freecalypso.org>
parents:
57
diff
changeset
|
46 * MP3 or any other music player |
e6a1d1699ebb
FC-handset-spec: explicitly list stereo/music exclusion
Mychaela Falconia <falcon@freecalypso.org>
parents:
57
diff
changeset
|
47 * 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
|
48 * TV receiver |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 * GPS receiver |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 * dual SIM slot |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 * torch light beyond LCD and keypad backlights |
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.2. RF band capability |
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 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
|
56 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
|
57 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
|
58 (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
|
59 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 1.3. RAM and flash |
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 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
|
63 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
|
64 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
|
65 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
|
66 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
|
67 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
|
68 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 1.4. Liquid crystal display |
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 1.4.1. Display size |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 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
|
74 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
|
75 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
|
76 display size have been considered and rejected: |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 * 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
|
79 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
|
80 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
|
81 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
|
82 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 * 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
|
84 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
|
85 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
|
86 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
|
87 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
|
88 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
|
89 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
|
90 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
|
91 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
|
92 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 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
|
94 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
|
95 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
|
96 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
|
97 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
|
98 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 1.4.2. Specific LCD module selection |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 |
73
eb68975e1b81
FC-handset-spec: KWH020ST23-F01 finalized
Mychaela Falconia <falcon@freecalypso.org>
parents:
69
diff
changeset
|
101 Over the summer of 2021 we have selected Formike KWH020ST23-F01 as our LCD |
eb68975e1b81
FC-handset-spec: KWH020ST23-F01 finalized
Mychaela Falconia <falcon@freecalypso.org>
parents:
69
diff
changeset
|
102 module for FreeCalypso; in prior years we had evaluated two other LCD modules |
eb68975e1b81
FC-handset-spec: KWH020ST23-F01 finalized
Mychaela Falconia <falcon@freecalypso.org>
parents:
69
diff
changeset
|
103 from HaoRan and Startek. All relevant datasheets (our finally chosen LCD |
eb68975e1b81
FC-handset-spec: KWH020ST23-F01 finalized
Mychaela Falconia <falcon@freecalypso.org>
parents:
69
diff
changeset
|
104 module, our previous candidate LCD modules and the controller ICs inside these |
eb68975e1b81
FC-handset-spec: KWH020ST23-F01 finalized
Mychaela Falconia <falcon@freecalypso.org>
parents:
69
diff
changeset
|
105 modules) are collected here: |
eb68975e1b81
FC-handset-spec: KWH020ST23-F01 finalized
Mychaela Falconia <falcon@freecalypso.org>
parents:
69
diff
changeset
|
106 |
eb68975e1b81
FC-handset-spec: KWH020ST23-F01 finalized
Mychaela Falconia <falcon@freecalypso.org>
parents:
69
diff
changeset
|
107 ftp://ftp.freecalypso.org/pub/embedded/LCDs/ |
eb68975e1b81
FC-handset-spec: KWH020ST23-F01 finalized
Mychaela Falconia <falcon@freecalypso.org>
parents:
69
diff
changeset
|
108 |
eb68975e1b81
FC-handset-spec: KWH020ST23-F01 finalized
Mychaela Falconia <falcon@freecalypso.org>
parents:
69
diff
changeset
|
109 Our LCD module selection criteria were as follows: |
41
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 * 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
|
112 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 * 16-bit microprocessor bus interface; |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 * 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
|
116 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 * 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
|
118 with separately brought-out cathodes; |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 * 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
|
121 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
|
122 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
|
123 connector. |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 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
|
126 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
|
127 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
|
128 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
|
129 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
|
130 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
|
131 |
67
ed686a290f2d
FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents:
66
diff
changeset
|
132 Formike KWH020ST23-F01 is an LCD module that was discovered by Mother Mychaela |
73
eb68975e1b81
FC-handset-spec: KWH020ST23-F01 finalized
Mychaela Falconia <falcon@freecalypso.org>
parents:
69
diff
changeset
|
133 in May-June of 2021, and it satisfies all of our requirements. In June of 2021 |
eb68975e1b81
FC-handset-spec: KWH020ST23-F01 finalized
Mychaela Falconia <falcon@freecalypso.org>
parents:
69
diff
changeset
|
134 we received sample pieces, then we designed a test board for the purpose of |
eb68975e1b81
FC-handset-spec: KWH020ST23-F01 finalized
Mychaela Falconia <falcon@freecalypso.org>
parents:
69
diff
changeset
|
135 evaluating this new LCD, connecting it to our Luna interface from 2020. Our |
82
e279a924f7a3
FC-handset-spec: update for Formike LCD modules being here
Mychaela Falconia <falcon@freecalypso.org>
parents:
81
diff
changeset
|
136 lunalcd2 test board was finally assembled in August, all tests passed, and in |
e279a924f7a3
FC-handset-spec: update for Formike LCD modules being here
Mychaela Falconia <falcon@freecalypso.org>
parents:
81
diff
changeset
|
137 September of 2021 we have bought 100 pcs of this finally chosen LCD module. |
e279a924f7a3
FC-handset-spec: update for Formike LCD modules being here
Mychaela Falconia <falcon@freecalypso.org>
parents:
81
diff
changeset
|
138 This stash of 100 LCD modules is expected to be sufficient as a lifetime buy. |
67
ed686a290f2d
FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents:
66
diff
changeset
|
139 |
41
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 1.4.3. Backlight and readability considerations |
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 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
|
143 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
|
144 operation and readability interacts with the backlight: |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 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
|
147 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
|
148 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
|
149 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
|
150 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
|
151 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
|
152 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
|
153 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
|
154 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
|
155 on/off control. |
41
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 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
|
158 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
|
159 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
|
160 (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
|
161 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
|
162 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
|
163 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
|
164 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
|
165 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
|
166 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
|
167 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 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
|
169 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
|
170 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
|
171 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
|
172 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
|
173 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
|
174 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
|
175 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
|
176 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
|
177 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
|
178 to make the display readable. |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 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
|
181 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
|
182 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
|
183 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
|
184 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
|
185 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 1.4.3.1. Backlight dimming mode |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 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
|
189 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
|
190 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
|
191 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
|
192 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
|
193 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
|
194 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
|
195 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
|
196 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
|
197 (but still readable) state keypresses are NOT swallowed. |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 |
67
ed686a290f2d
FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents:
66
diff
changeset
|
199 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
|
200 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
|
201 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
|
202 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
|
203 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
|
204 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
|
205 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
|
206 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
|
207 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
|
208 see section 1.4.4.1. |
41
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 1.4.4. Backlight circuit implementation |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 |
73
eb68975e1b81
FC-handset-spec: KWH020ST23-F01 finalized
Mychaela Falconia <falcon@freecalypso.org>
parents:
69
diff
changeset
|
212 In all candidate TFT LCD modules that have been considered (see section 1.4.2), |
41
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 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
|
214 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
|
215 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
|
216 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
|
217 at maximum intensity, for 45 mA total, and the LED forward drop voltage (Vf) at |
74
e4eebf9ffce3
FC-handset-spec: Vf=2.9 V on both HaoRan and Formike LCD modules
Mychaela Falconia <falcon@freecalypso.org>
parents:
73
diff
changeset
|
218 this rated current seems to range between 2.9 V (what I actually measured on |
e4eebf9ffce3
FC-handset-spec: Vf=2.9 V on both HaoRan and Formike LCD modules
Mychaela Falconia <falcon@freecalypso.org>
parents:
73
diff
changeset
|
219 both Formike and HaoRan LCD modules) to 3.2 V (what the datasheets list as |
e4eebf9ffce3
FC-handset-spec: Vf=2.9 V on both HaoRan and Formike LCD modules
Mychaela Falconia <falcon@freecalypso.org>
parents:
73
diff
changeset
|
220 typical) to perhaps as high as 3.4 V (what one datasheet lists as the maximum). |
41
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 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
|
223 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
|
224 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
|
225 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
|
226 current), hence we need to avoid using such. |
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 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
|
229 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
|
230 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
|
231 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
|
232 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
|
233 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
|
234 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
|
235 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
|
236 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
|
237 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
|
238 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
|
239 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
|
240 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 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
|
242 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
|
243 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
|
244 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
|
245 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
|
246 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
|
247 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
|
248 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
|
249 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
|
250 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
|
251 variations in Vf. |
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 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
|
254 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
|
255 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
|
256 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
|
257 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
|
258 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
|
259 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
|
260 - *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
|
261 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
|
262 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
|
263 switching transistor. |
41
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
264 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
265 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
|
266 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
|
267 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
|
268 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
|
269 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
|
270 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
|
271 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
|
272 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
|
273 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
|
274 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
|
275 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
|
276 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
277 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
|
278 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
279 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
|
280 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
|
281 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
|
282 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
|
283 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
|
284 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
|
285 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
286 LCD backlight LED current will be selected by way of two Calypso GPIO pins |
92
f5b954172002
FC-handset-spec: document the use of 74LVC2G126
Mychaela Falconia <falcon@freecalypso.org>
parents:
90
diff
changeset
|
287 configured as outputs, and a 74LVC2G126 dual tristate buffer. Each tristate |
41
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
288 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
|
289 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
|
290 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
|
291 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
|
292 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
|
293 |
ed686a290f2d
FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents:
66
diff
changeset
|
294 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
|
295 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
|
296 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
|
297 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
|
298 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
|
299 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
|
300 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
|
301 of 4 different backlight intensity levels to be selected via the two Calypso |
92
f5b954172002
FC-handset-spec: document the use of 74LVC2G126
Mychaela Falconia <falcon@freecalypso.org>
parents:
90
diff
changeset
|
302 GPIO outputs going to the 74LVC2G126 buffer's output enable inputs. The actual |
73
eb68975e1b81
FC-handset-spec: KWH020ST23-F01 finalized
Mychaela Falconia <falcon@freecalypso.org>
parents:
69
diff
changeset
|
303 currents will be determined after some further experimentation with our lunalcd2 |
eb68975e1b81
FC-handset-spec: KWH020ST23-F01 finalized
Mychaela Falconia <falcon@freecalypso.org>
parents:
69
diff
changeset
|
304 test setup: this setup features our KWH020ST23-F01 LCD, a MAX1916-based |
eb68975e1b81
FC-handset-spec: KWH020ST23-F01 finalized
Mychaela Falconia <falcon@freecalypso.org>
parents:
69
diff
changeset
|
305 backlight circuit, and a DIP switch pack selecting the LED current in 1 mA |
eb68975e1b81
FC-handset-spec: KWH020ST23-F01 finalized
Mychaela Falconia <falcon@freecalypso.org>
parents:
69
diff
changeset
|
306 increments. |
41
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
307 |
92
f5b954172002
FC-handset-spec: document the use of 74LVC2G126
Mychaela Falconia <falcon@freecalypso.org>
parents:
90
diff
changeset
|
308 74LVC2G126 has been chosen as the dual tristate buffer part instead of more |
f5b954172002
FC-handset-spec: document the use of 74LVC2G126
Mychaela Falconia <falcon@freecalypso.org>
parents:
90
diff
changeset
|
309 common 74LVC2G125 because the '126 has active-high output enable inputs, making |
f5b954172002
FC-handset-spec: document the use of 74LVC2G126
Mychaela Falconia <falcon@freecalypso.org>
parents:
90
diff
changeset
|
310 the software interface (bits in the GPIO output register) more intuitive: with |
f5b954172002
FC-handset-spec: document the use of 74LVC2G126
Mychaela Falconia <falcon@freecalypso.org>
parents:
90
diff
changeset
|
311 a '126 buffer, writing 1 into GPIO11 or GPIO12 will turn on the corresponding |
f5b954172002
FC-handset-spec: document the use of 74LVC2G126
Mychaela Falconia <falcon@freecalypso.org>
parents:
90
diff
changeset
|
312 current contribution, whereas a '125 buffer would produce an inverted sense. |
f5b954172002
FC-handset-spec: document the use of 74LVC2G126
Mychaela Falconia <falcon@freecalypso.org>
parents:
90
diff
changeset
|
313 74LVC2G126GT parts were less readily available than the '125 counterpart, but |
f5b954172002
FC-handset-spec: document the use of 74LVC2G126
Mychaela Falconia <falcon@freecalypso.org>
parents:
90
diff
changeset
|
314 we have now made a lifetime buy of the preferred part. |
f5b954172002
FC-handset-spec: document the use of 74LVC2G126
Mychaela Falconia <falcon@freecalypso.org>
parents:
90
diff
changeset
|
315 |
41
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
316 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
|
317 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
318 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
|
319 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
|
320 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
|
321 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
|
322 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
|
323 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
|
324 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
|
325 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
|
326 possible LED currents. |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
327 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
328 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
|
329 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
|
330 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
|
331 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
|
332 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
|
333 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
334 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
|
335 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
|
336 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
|
337 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
|
338 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
|
339 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
|
340 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
|
341 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
|
342 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
|
343 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
|
344 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
|
345 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
346 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
|
347 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
|
348 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
|
349 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
|
350 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
|
351 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
|
352 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
|
353 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
|
354 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
|
355 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
|
356 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
|
357 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
|
358 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
|
359 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
|
360 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
|
361 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
|
362 induced reductions, just the natural one. |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
363 |
7d77aa76bcaa
FC-handset-spec: beginning of massive document
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
364 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
|
365 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
|
366 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
|
367 |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
368 1.5. Main keypad |
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 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
|
371 21-button arrangement: |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
372 |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
373 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
|
374 <O> |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
375 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
|
376 button button |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
377 |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
378 1 2 3 |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
379 4 5 6 |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
380 7 8 9 |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
381 * 0 # |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
382 |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
383 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
|
384 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
|
385 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
|
386 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
|
387 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
|
388 a firmware function. |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
389 |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
390 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
|
391 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
|
392 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
|
393 Samsung E2232. |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
394 |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
395 1.5.1. Keypad backlight |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
396 |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
397 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
|
398 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
|
399 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
|
400 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
|
401 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
|
402 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
|
403 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
|
404 |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
405 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
|
406 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
|
407 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
|
408 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
|
409 |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
410 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
|
411 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
|
412 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
|
413 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
|
414 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
|
415 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
|
416 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
|
417 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
|
418 |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
419 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
|
420 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
|
421 (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
|
422 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
|
423 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
|
424 |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
425 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
|
426 |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
427 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
|
428 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
|
429 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
|
430 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
|
431 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
|
432 |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
433 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
|
434 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
|
435 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
|
436 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
|
437 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
|
438 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
|
439 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
|
440 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
|
441 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
|
442 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
|
443 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
|
444 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
|
445 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
|
446 |
a415ae467c6d
FC-handset-spec: main keypad and its backlight documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
43
diff
changeset
|
447 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
|
448 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
|
449 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
|
450 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
|
451 |
9df8683daec4
FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
44
diff
changeset
|
452 1.6. Side buttons |
9df8683daec4
FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
44
diff
changeset
|
453 |
9df8683daec4
FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
44
diff
changeset
|
454 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
|
455 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
|
456 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
|
457 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
|
458 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
|
459 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
|
460 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
|
461 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
|
462 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
|
463 purposes of our own invention. |
9df8683daec4
FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
44
diff
changeset
|
464 |
9df8683daec4
FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
44
diff
changeset
|
465 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
|
466 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
|
467 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
|
468 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
|
469 |
9df8683daec4
FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
44
diff
changeset
|
470 * 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
|
471 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
|
472 TI. |
9df8683daec4
FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
44
diff
changeset
|
473 |
9df8683daec4
FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
44
diff
changeset
|
474 * 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
|
475 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
|
476 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
|
477 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
|
478 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
|
479 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
|
480 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
|
481 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
|
482 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
|
483 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
|
484 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
|
485 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
|
486 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
|
487 off. |
9df8683daec4
FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
44
diff
changeset
|
488 |
9df8683daec4
FC-handset-spec: side buttons documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
44
diff
changeset
|
489 * 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
|
490 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
|
491 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
|
492 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
|
493 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
|
494 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
|
495 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
|
496 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
|
497 |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
498 1.7. Audio routing |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
499 |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
500 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
|
501 handset: |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
502 |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
503 * 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
|
504 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
|
505 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
|
506 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
|
507 |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
508 * 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
|
509 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
|
510 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
|
511 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
|
512 same. |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
513 |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
514 * 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
|
515 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
|
516 headset interface. |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
517 |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
518 1.7.1. Earpiece and loudspeaker separation |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
519 |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
520 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
|
521 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
|
522 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
|
523 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
|
524 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
|
525 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
|
526 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
|
527 by Iota EAR output. |
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 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
|
530 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
|
531 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
|
532 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
|
533 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
|
534 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
|
535 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
|
536 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
|
537 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
|
538 traditional 32 ohm earpiece speaker. |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
539 |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
540 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
|
541 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
|
542 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
|
543 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
|
544 arrangement as D-Sample and Leonardo. |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
545 |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
546 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
|
547 architecture, using physically separate earpiece and loudspeaker transducers. |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
548 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
|
549 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
|
550 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
|
551 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
|
552 earpiece physical position seems very uncommon. |
46
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
553 |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
554 1.7.2. Loudspeaker implementation |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
555 |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
556 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
|
557 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
|
558 "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
|
559 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
|
560 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
|
561 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
|
562 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
|
563 |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
564 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
|
565 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
|
566 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
|
567 |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
568 1.7.3. Wired analog headset jack |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
569 |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
570 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
|
571 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
|
572 follows: |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
573 |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
574 * 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
|
575 * electret condenser microphone, positive connected to Ring1; |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
576 * 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
|
577 |
1fec0a3f09cc
FC-handset-spec: audio routing documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
45
diff
changeset
|
578 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
|
579 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
|
580 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
|
581 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
|
582 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
|
583 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
|
584 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
|
585 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
|
586 the TRRS headset jack. |
47
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
587 |
86
8df29c96327a
FC-handset-spec: mention FC-HDS4, i.e., headset already made
Mychaela Falconia <falcon@freecalypso.org>
parents:
82
diff
changeset
|
588 We already have an official FreeCalypso headset with a TRRS plug and BTL-wired |
8df29c96327a
FC-handset-spec: mention FC-HDS4, i.e., headset already made
Mychaela Falconia <falcon@freecalypso.org>
parents:
82
diff
changeset
|
589 earpiece speaker as described above: it is called FC-HDS4, it was custom-made |
8df29c96327a
FC-handset-spec: mention FC-HDS4, i.e., headset already made
Mychaela Falconia <falcon@freecalypso.org>
parents:
82
diff
changeset
|
590 for us by a professional headset manufacturer company, and we have made 100 pcs |
8df29c96327a
FC-handset-spec: mention FC-HDS4, i.e., headset already made
Mychaela Falconia <falcon@freecalypso.org>
parents:
82
diff
changeset
|
591 at the time of our initial order in the fall of 2021 - this quantity is expected |
8df29c96327a
FC-handset-spec: mention FC-HDS4, i.e., headset already made
Mychaela Falconia <falcon@freecalypso.org>
parents:
82
diff
changeset
|
592 to be a lifetime supply for us. |
8df29c96327a
FC-handset-spec: mention FC-HDS4, i.e., headset already made
Mychaela Falconia <falcon@freecalypso.org>
parents:
82
diff
changeset
|
593 |
47
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
594 1.8. Ringtone generation |
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
595 |
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
596 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
|
597 in which cellphone ringing sounds can be produced: |
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 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
|
600 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
|
601 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
|
602 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
|
603 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
|
604 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
|
605 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
|
606 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
|
607 C139/140) use such buzzers for ringing. |
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
608 |
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
609 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
|
610 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
|
611 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
|
612 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
|
613 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
|
614 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
|
615 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
|
616 Motorola C155/156 phones. |
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
617 |
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
618 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
|
619 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
|
620 chipsets, then a further distinction arises: |
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
621 |
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
622 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
|
623 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
|
624 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
|
625 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
|
626 is used for hands-free calls, if the latter feature is offered at all. The |
81
3e32484f8832
FC-handset-spec: typo fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
79
diff
changeset
|
627 special ringtone generator chip is typically a combined MIDI player and |
47
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
628 loudspeaker driver. |
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
629 |
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
630 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
|
631 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
|
632 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
|
633 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
|
634 (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
|
635 routed to the loudspeaker. |
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
636 |
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
637 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
|
638 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
|
639 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
|
640 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
|
641 |
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
642 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
|
643 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
|
644 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
|
645 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
|
646 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
|
647 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
|
648 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
|
649 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
|
650 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
|
651 |
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
652 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
|
653 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
|
654 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
|
655 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
|
656 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
|
657 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
|
658 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
|
659 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
|
660 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
|
661 |
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
662 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
|
663 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
|
664 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
|
665 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
|
666 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
|
667 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
|
668 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
|
669 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
|
670 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
|
671 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
|
672 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
|
673 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
|
674 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
|
675 extra work. |
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
676 |
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
677 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
|
678 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
|
679 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
|
680 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
|
681 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
|
682 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
|
683 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
|
684 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
|
685 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
|
686 |
f0419ac0a815
FC-handset-spec: ringtone generation documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
46
diff
changeset
|
687 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
|
688 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
|
689 (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
|
690 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
|
691 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
|
692 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
|
693 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
|
694 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
|
695 functions. |
48
cb8d43a5023c
FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
47
diff
changeset
|
696 |
cb8d43a5023c
FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
47
diff
changeset
|
697 1.9. Vibrator |
cb8d43a5023c
FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
47
diff
changeset
|
698 |
cb8d43a5023c
FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
47
diff
changeset
|
699 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
|
700 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
|
701 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
|
702 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
|
703 situations. |
cb8d43a5023c
FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
47
diff
changeset
|
704 |
cb8d43a5023c
FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
47
diff
changeset
|
705 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
|
706 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
|
707 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
|
708 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
|
709 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
|
710 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
|
711 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
|
712 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
|
713 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
|
714 |
cb8d43a5023c
FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
47
diff
changeset
|
715 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
|
716 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
|
717 "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
|
718 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
|
719 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
|
720 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
|
721 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
|
722 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
|
723 either. |
cb8d43a5023c
FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
47
diff
changeset
|
724 |
cb8d43a5023c
FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
47
diff
changeset
|
725 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
|
726 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
|
727 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
|
728 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
|
729 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
|
730 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
|
731 to be made right now. |
cb8d43a5023c
FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
47
diff
changeset
|
732 |
cb8d43a5023c
FC-handset-spec: vibrator documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
47
diff
changeset
|
733 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
|
734 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
|
735 simulate the vibrator on/off state. |
49
38bcb9425df0
FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
48
diff
changeset
|
736 |
38bcb9425df0
FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
48
diff
changeset
|
737 1.10. Battery |
38bcb9425df0
FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
48
diff
changeset
|
738 |
38bcb9425df0
FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
48
diff
changeset
|
739 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
|
740 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
|
741 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
|
742 won't be addressed until later in the project, when we get closer to building |
79
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
743 the actual handset. (2021-09 update: we are now looking at using Panasonic |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
744 NCR18650B as our canonical battery on the Venus board, but we are not yet |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
745 committing to anything for the actual handset.) |
49
38bcb9425df0
FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
48
diff
changeset
|
746 |
38bcb9425df0
FC-handset-state: battery documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
48
diff
changeset
|
747 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
|
748 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
|
749 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
|
750 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
|
751 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
|
752 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
|
753 NiMH battery is that we would be going into completely uncharted territory |
79
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
754 without any guidance. Here are some of the difficulties that would arise with |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
755 a NiMH battery: |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
756 |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
757 1) In the case of Li-ion batteries the charging process is well-understood in |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
758 both theory and practice, and our FCHG logic based on reverse engineering of |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
759 Pirelli's firmware works well both on the same Pirelli and on Motorola C1xx |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
760 family. In contrast, if we went with NiMH, we would have absolutely no |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
761 guidance in implementing the necessary charging control logic (TI's LCC code |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
762 is useless), causing a huge risk to the project. |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
763 |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
764 2) When TI designed their canonical battery charging circuit to be controlled |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
765 via Iota BCI, they assumed a charging power source that puts out somewhere |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
766 between 6 and 7 V, not 5.0 V - those were the days before USB charging. For |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
767 Li-ion batteries charging at around 500 mA, a USB +5V charging power source |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
768 is good enough, as proven by Pirelli DP-L10. However, this lower charging |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
769 voltage may not be enough for NiMH - consider the note in the Iota chip |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
770 datasheet (TWL3025_SWRS021.pdf) that reads "Ni-MH/Ni-Cd 3-cell battery |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
771 voltage can reach 5.5 V at the end of a charge cycle." |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
772 |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
773 3) Determining the state of charge from Vbat for the purpose of the bars icon |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
774 is already somewhat challenging even with Li-ion, given the relatively flat |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
775 middle part of the discharge curve - and with NiMH we can only expect the |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
776 problem to be even worse, as their discharge curve is said to be even |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
777 flatter. |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
778 |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
779 For these 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
|
780 |
68
bdc5d8d9fa1f
FC-handset-spec: new section 1.10.1 clarifies battery ID
Mychaela Falconia <falcon@freecalypso.org>
parents:
67
diff
changeset
|
781 1.10.1. Battery ID resistors or thermistors |
bdc5d8d9fa1f
FC-handset-spec: new section 1.10.1 clarifies battery ID
Mychaela Falconia <falcon@freecalypso.org>
parents:
67
diff
changeset
|
782 |
bdc5d8d9fa1f
FC-handset-spec: new section 1.10.1 clarifies battery ID
Mychaela Falconia <falcon@freecalypso.org>
parents:
67
diff
changeset
|
783 In all classic dumbphones from the era which we seek to revive (the ones with |
bdc5d8d9fa1f
FC-handset-spec: new section 1.10.1 clarifies battery ID
Mychaela Falconia <falcon@freecalypso.org>
parents:
67
diff
changeset
|
784 user-removable batteries), the battery pack (flat pouch) has 3 or 4 contacts |
bdc5d8d9fa1f
FC-handset-spec: new section 1.10.1 clarifies battery ID
Mychaela Falconia <falcon@freecalypso.org>
parents:
67
diff
changeset
|
785 rather than just 2: in addition to battery +ve and -ve terminals, there are some |
bdc5d8d9fa1f
FC-handset-spec: new section 1.10.1 clarifies battery ID
Mychaela Falconia <falcon@freecalypso.org>
parents:
67
diff
changeset
|
786 ID resistors or thermistors included. Both Motorola C1xx and Pirelli DP-L10 |
bdc5d8d9fa1f
FC-handset-spec: new section 1.10.1 clarifies battery ID
Mychaela Falconia <falcon@freecalypso.org>
parents:
67
diff
changeset
|
787 batteries have 3 contacts, and so does Nokia BL-6C battery form factor that was |
bdc5d8d9fa1f
FC-handset-spec: new section 1.10.1 clarifies battery ID
Mychaela Falconia <falcon@freecalypso.org>
parents:
67
diff
changeset
|
788 copied by FIC/Openmoko. In contrast, cylindrical Li-ion battery cells like |
bdc5d8d9fa1f
FC-handset-spec: new section 1.10.1 clarifies battery ID
Mychaela Falconia <falcon@freecalypso.org>
parents:
67
diff
changeset
|
789 18650 have no such third terminal. |
bdc5d8d9fa1f
FC-handset-spec: new section 1.10.1 clarifies battery ID
Mychaela Falconia <falcon@freecalypso.org>
parents:
67
diff
changeset
|
790 |
79
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
791 As of this writing (2021-09), we do not anticipate using any kind of battery ID |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
792 resistors or thermistors, neither on our Venus board nor on our final handset. |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
793 FC Venus will have a provision for bringing out Iota ADIN2 like on Leonardo |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
794 (see section 3.3.1.1), but we do not anticipate actually using it. The battery |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
795 on FC Venus will most likely be an 18650; on the final handset we will most |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
796 likely either keep the same or use a custom-made flat pouch battery pack, and |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
797 if we go with the latter, it will still most likely only have two terminals. |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
798 |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
799 Our current FCHG battery charging driver does not touch ADIN1 or ADIN2 at all. |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
800 Looking at TI's old PWR reference code and the disassembly of Pirelli's |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
801 firmware, it appears that when mainstream proprietary firmwares do check those |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
802 ID resistors or thermistors on ADIN1 or ADIN2, they only act as artificial |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
803 blockers: the firmware refuses to charge the battery if it sees something it |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
804 doesn't like, as opposed to using data from these sensors to tune or adjust the |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
805 charging process in some positive constructive manner. In FreeCalypso we stand |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
806 against all such artificial blocking, instead we uphold the principles of user |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
807 empowerment and personal responsibility - thus we do not currently anticipate |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
808 ever implementing any kind of ADIN1 or ADIN2 logic. |
68
bdc5d8d9fa1f
FC-handset-spec: new section 1.10.1 clarifies battery ID
Mychaela Falconia <falcon@freecalypso.org>
parents:
67
diff
changeset
|
809 |
50
da1a2a32c260
FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents:
49
diff
changeset
|
810 1.11. Charging circuit |
da1a2a32c260
FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents:
49
diff
changeset
|
811 |
da1a2a32c260
FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents:
49
diff
changeset
|
812 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
|
813 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
|
814 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
|
815 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
|
816 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
|
817 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
|
818 in section 1.12. |
da1a2a32c260
FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents:
49
diff
changeset
|
819 |
da1a2a32c260
FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents:
49
diff
changeset
|
820 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
|
821 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
|
822 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
|
823 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
|
824 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
|
825 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
|
826 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
|
827 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
|
828 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
|
829 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
|
830 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
|
831 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
|
832 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
|
833 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
|
834 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
|
835 computer interface only, without charging. |
da1a2a32c260
FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents:
49
diff
changeset
|
836 |
da1a2a32c260
FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents:
49
diff
changeset
|
837 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
|
838 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
|
839 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
|
840 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
|
841 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
|
842 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
|
843 |
75
c458b7159fbd
FC-handset-spec: add charging indicator LED
Mychaela Falconia <falcon@freecalypso.org>
parents:
74
diff
changeset
|
844 1.11.1. Charging indicator LED |
c458b7159fbd
FC-handset-spec: add charging indicator LED
Mychaela Falconia <falcon@freecalypso.org>
parents:
74
diff
changeset
|
845 |
c458b7159fbd
FC-handset-spec: add charging indicator LED
Mychaela Falconia <falcon@freecalypso.org>
parents:
74
diff
changeset
|
846 We are going to implement a TI-classic charging indicator LED controlled by |
c458b7159fbd
FC-handset-spec: add charging indicator LED
Mychaela Falconia <falcon@freecalypso.org>
parents:
74
diff
changeset
|
847 Iota LEDC; the circuit is nothing more than a LED in series with a resistor, |
c458b7159fbd
FC-handset-spec: add charging indicator LED
Mychaela Falconia <falcon@freecalypso.org>
parents:
74
diff
changeset
|
848 connected between the VCHG rail and Iota LEDC terminal. The LED will probably |
c458b7159fbd
FC-handset-spec: add charging indicator LED
Mychaela Falconia <falcon@freecalypso.org>
parents:
74
diff
changeset
|
849 be red (TBD), such indicator LEDs have low Vf, and because the positive source |
c458b7159fbd
FC-handset-spec: add charging indicator LED
Mychaela Falconia <falcon@freecalypso.org>
parents:
74
diff
changeset
|
850 is USB +5V rather than VBAT, there should be no issues with LED brightness |
c458b7159fbd
FC-handset-spec: add charging indicator LED
Mychaela Falconia <falcon@freecalypso.org>
parents:
74
diff
changeset
|
851 variation. |
c458b7159fbd
FC-handset-spec: add charging indicator LED
Mychaela Falconia <falcon@freecalypso.org>
parents:
74
diff
changeset
|
852 |
50
da1a2a32c260
FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents:
49
diff
changeset
|
853 1.12. Computer interface |
da1a2a32c260
FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents:
49
diff
changeset
|
854 |
da1a2a32c260
FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents:
49
diff
changeset
|
855 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
|
856 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
|
857 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
|
858 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
|
859 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
|
860 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
|
861 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
|
862 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
|
863 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
|
864 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
|
865 |
da1a2a32c260
FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents:
49
diff
changeset
|
866 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
|
867 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
|
868 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
|
869 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
|
870 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
|
871 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
|
872 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
|
873 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
|
874 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
|
875 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
|
876 charging the battery at the same time. |
da1a2a32c260
FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents:
49
diff
changeset
|
877 |
da1a2a32c260
FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents:
49
diff
changeset
|
878 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
|
879 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
|
880 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
|
881 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
|
882 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
|
883 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
|
884 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
|
885 |
da1a2a32c260
FC-handset-spec: USB description started
Mychaela Falconia <falcon@freecalypso.org>
parents:
49
diff
changeset
|
886 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
|
887 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
|
888 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
|
889 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
|
890 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
|
891 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
|
892 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
|
893 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
|
894 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
|
895 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
|
896 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
|
897 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
898 1.12.1. Set of UART signals |
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 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
|
901 UART is almost complete: |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
902 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
903 USB UART |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
904 DTE signal Calypso signal |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
905 ------------------------------ |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
906 TxD RX_MODEM |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
907 RxD TX_MODEM |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
908 RTS CTS_MODEM |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
909 CTS RTS_MODEM |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
910 DTR GPIO3 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
911 DCD GPIO2 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
912 RI GPIO8 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
913 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
914 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
|
915 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
|
916 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
917 USB UART |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
918 DTE signal Calypso signal |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
919 ------------------------------ |
52
cfe8623b915d
FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
51
diff
changeset
|
920 TxD2 RX_IRDA |
cfe8623b915d
FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
51
diff
changeset
|
921 RxD2 TX_IRDA |
51
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
922 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
923 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
|
924 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
|
925 implemented. |
51
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
926 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
927 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
|
928 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
929 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
|
930 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
|
931 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
|
932 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
|
933 concerned about: |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
934 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
935 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
|
936 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
|
937 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
|
938 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
939 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
|
940 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
|
941 unacceptable drain on the battery. |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
942 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
943 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
|
944 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
|
945 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
|
946 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
|
947 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
|
948 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
949 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
|
950 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
|
951 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
|
952 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
|
953 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
|
954 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
|
955 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
|
956 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
|
957 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
|
958 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
959 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
|
960 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
|
961 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
|
962 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
963 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
|
964 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
965 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
|
966 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
|
967 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
|
968 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
|
969 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
|
970 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
|
971 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
|
972 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
973 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
|
974 (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
|
975 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
|
976 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
|
977 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
|
978 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
|
979 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
|
980 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
|
981 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
|
982 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
|
983 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
|
984 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
|
985 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
986 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
|
987 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
988 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
|
989 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
|
990 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
|
991 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
|
992 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
|
993 depending on the needed signal sense. |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
994 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
995 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
|
996 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
|
997 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
|
998 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
|
999 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
|
1000 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
|
1001 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
|
1002 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
|
1003 the precharge current.) |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
1004 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
1005 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
|
1006 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
|
1007 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
|
1008 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
|
1009 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
|
1010 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
|
1011 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
1012 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
|
1013 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
|
1014 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
|
1015 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
|
1016 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
|
1017 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
|
1018 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
|
1019 |
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
1020 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
|
1021 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
|
1022 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
|
1023 out of it as normally expected), which is a bad condition for CMOS outputs. |
76
04080501911d
FC-handset-spec section 1.12.2.2: more accurate rounding to 41 uA
Mychaela Falconia <falcon@freecalypso.org>
parents:
75
diff
changeset
|
1024 However, this current will be limited to a maximum of about 41 uA |
51
7933c3a1b5e0
FC-handset-spec: power domain mess documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
50
diff
changeset
|
1025 ((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
|
1026 Nexperia LVC buffers. |
52
cfe8623b915d
FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
51
diff
changeset
|
1027 |
cfe8623b915d
FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
51
diff
changeset
|
1028 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
|
1029 |
cfe8623b915d
FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
51
diff
changeset
|
1030 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
|
1031 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
|
1032 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
|
1033 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
|
1034 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
|
1035 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
|
1036 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
|
1037 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
|
1038 |
cfe8623b915d
FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
51
diff
changeset
|
1039 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
|
1040 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
|
1041 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
|
1042 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
|
1043 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
|
1044 |
cfe8623b915d
FC-handset-spec: UART signal pull-up/down documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
51
diff
changeset
|
1045 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
|
1046 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
|
1047 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
|
1048 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
|
1049 component count. |
53
016f8cf2418c
FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
52
diff
changeset
|
1050 |
016f8cf2418c
FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
52
diff
changeset
|
1051 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
|
1052 |
016f8cf2418c
FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
52
diff
changeset
|
1053 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
|
1054 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
|
1055 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
|
1056 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
|
1057 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
|
1058 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
|
1059 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
|
1060 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
|
1061 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
|
1062 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
|
1063 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
|
1064 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
|
1065 similar no-buttons-needed manner. |
016f8cf2418c
FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
52
diff
changeset
|
1066 |
016f8cf2418c
FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
52
diff
changeset
|
1067 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
|
1068 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
|
1069 (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
|
1070 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
|
1071 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
|
1072 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
|
1073 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
|
1074 |
016f8cf2418c
FC-handset-spec: boot control idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
52
diff
changeset
|
1075 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
|
1076 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
|
1077 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
|
1078 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
|
1079 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
|
1080 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
|
1081 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
|
1082 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
|
1083 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
|
1084 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
|
1085 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
|
1086 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
|
1087 -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
|
1088 recovery from runaway code is needed. |
54
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 2. FC handset firmware functional scope specification |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1091 |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1092 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
|
1093 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
|
1094 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
|
1095 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
|
1096 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
|
1097 |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1098 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
|
1099 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
|
1100 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
|
1101 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
|
1102 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
|
1103 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
|
1104 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
|
1105 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
|
1106 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
|
1107 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
|
1108 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
|
1109 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
|
1110 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
|
1111 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
|
1112 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
|
1113 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
|
1114 |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1115 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
|
1116 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
|
1117 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
|
1118 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
|
1119 |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1120 2.1. Display support |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1121 |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1122 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
|
1123 |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1124 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
|
1125 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
|
1126 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
|
1127 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
|
1128 |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1129 * 176x220 pixel, 16-bit color; |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1130 * 176x220 pixel B&W; |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1131 * 84x48 pixel B&W. |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1132 |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1133 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
|
1134 configurations: |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1135 |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1136 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
|
1137 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
|
1138 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
|
1139 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
|
1140 |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1141 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
|
1142 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
|
1143 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
|
1144 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
|
1145 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
|
1146 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
|
1147 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
|
1148 pixel display are still sensible for 96x64. |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1149 |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1150 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
|
1151 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
|
1152 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
|
1153 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
|
1154 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
|
1155 96x64 pixel size, for two reasons: |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1156 |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1157 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
|
1158 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
|
1159 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
|
1160 bigcolor version) to be worth preserving. |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1161 |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1162 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
|
1163 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
|
1164 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
|
1165 |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1166 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
|
1167 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
|
1168 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
|
1169 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
|
1170 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
|
1171 |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1172 2.1.2. Backlight readability paradigm |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1173 |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1174 (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
|
1175 |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1176 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
|
1177 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
|
1178 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
|
1179 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
|
1180 |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1181 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
|
1182 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
|
1183 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
|
1184 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
|
1185 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
|
1186 perfectly readable without the backlight. |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1187 |
138021ca5eae
FC-handset-spec: starting firmware scope description
Mychaela Falconia <falcon@freecalypso.org>
parents:
53
diff
changeset
|
1188 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
|
1189 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
|
1190 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
|
1191 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
|
1192 |
df6c61d0e817
FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
54
diff
changeset
|
1193 2.2. Keypad assumptions |
df6c61d0e817
FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
54
diff
changeset
|
1194 |
df6c61d0e817
FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
54
diff
changeset
|
1195 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
|
1196 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
|
1197 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
|
1198 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
|
1199 regard for secondary target support. |
df6c61d0e817
FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
54
diff
changeset
|
1200 |
df6c61d0e817
FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
54
diff
changeset
|
1201 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
|
1202 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
|
1203 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
|
1204 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
|
1205 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
|
1206 some extra care in preserving flexibility: |
df6c61d0e817
FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
54
diff
changeset
|
1207 |
df6c61d0e817
FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
54
diff
changeset
|
1208 * 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
|
1209 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
|
1210 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
|
1211 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
|
1212 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
|
1213 |
df6c61d0e817
FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
54
diff
changeset
|
1214 * 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
|
1215 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
|
1216 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
|
1217 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
|
1218 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
|
1219 loudspeaker. |
df6c61d0e817
FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
54
diff
changeset
|
1220 |
df6c61d0e817
FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
54
diff
changeset
|
1221 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
|
1222 |
df6c61d0e817
FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
54
diff
changeset
|
1223 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
|
1224 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
|
1225 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
|
1226 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
|
1227 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
|
1228 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
|
1229 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
|
1230 |
df6c61d0e817
FC-handset-spec: firmware keypad model documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
54
diff
changeset
|
1231 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
|
1232 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
|
1233 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
|
1234 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
|
1235 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
|
1236 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
|
1237 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
|
1238 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
|
1239 21-button keypads. |
56
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1240 |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1241 2.3. Audio routing |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1242 |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1243 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
|
1244 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
|
1245 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
|
1246 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
|
1247 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
|
1248 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
|
1249 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
|
1250 |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1251 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
|
1252 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
|
1253 2.4.2: |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1254 |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1255 Mode name Used for |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1256 ------------------------ |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1257 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
|
1258 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
|
1259 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
|
1260 |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1261 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
|
1262 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
|
1263 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
|
1264 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
|
1265 |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1266 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
|
1267 |
66
a2857b6c3d87
FC-handset-spec section 2.3.1: change for bigcolor-spk-* configs
Mychaela Falconia <falcon@freecalypso.org>
parents:
65
diff
changeset
|
1268 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
|
1269 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
|
1270 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
|
1271 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
|
1272 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
|
1273 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
|
1274 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
|
1275 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
|
1276 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
|
1277 |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1278 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
|
1279 |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1280 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
|
1281 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
|
1282 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
|
1283 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
|
1284 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
|
1285 never be entered. |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1286 |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1287 2.4. Ringtone generation |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1288 |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1289 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
|
1290 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
|
1291 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
|
1292 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
|
1293 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
|
1294 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
|
1295 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
|
1296 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
|
1297 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
|
1298 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
|
1299 |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1300 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
|
1301 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
|
1302 |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1303 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
|
1304 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
|
1305 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
|
1306 |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1307 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
|
1308 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
|
1309 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
|
1310 |
87
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1311 2.4.1. Approach to buzzer melodies |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1312 |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1313 My (Mother Mychaela's) original intention was to limit buzzer ringing support |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1314 to the extremely crude implementation contained in the Condat audio "driver" |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1315 abstraction layer - this demo/prototype/PoC code uses BU mode rather than PWT, |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1316 and it only has one extremely basic ringing sound: alternating 800 Hz and 900 Hz |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1317 tones, no melodies. However, I have subsequently changed my mind on this point: |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1318 upon further reflection, I realized that the audio "driver" in the Condat |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1319 abstraction layer is a horrendous mess that needs to be cleaned up, and one |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1320 very helpful step in cleaning it up will be to remove buzzer functionality from |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1321 it. Toward this end, I came up with a new architecture: |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1322 |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1323 * What little remains of the Condat audio "driver" layer (it will be thinned |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1324 significantly) will be only for simple audio tones (call waiting, busy, |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1325 ringing code for the calling party when the GSM network provides no IBT), and |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1326 it won't be involved in ringing, neither in the buzzer config nor in the |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1327 Melody E1 loudspeaker config. |
56
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1328 |
87
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1329 * For platforms that feature a magnetic buzzer, there is a new BUZM (buzzer |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1330 melody) service implemented in RiViera land (the part of fw architecture |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1331 where such application services properly belong), and this BUZM service plays |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1332 PWT buzzer melodies, rather than BU mode. The bit-level format for these PWT |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1333 melodies is an original FreeCalypso invention, the necessary tool support for |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1334 it has been added to the FC host tools package as of fc-host-tools-r17, and |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1335 the necessary documentation is maintained in the same place. |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1336 |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1337 For the end user of a FreeCalypso phone that features an old-fashioned buzzer |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1338 (e.g., FreeCalypso Lite aftermarket fw on Mot C139), the visible effect of this |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1339 architecture change is that a decent selection of varied ringtone melodies can |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1340 be implemented. A basic ring that sounds just like TI's original BU version is |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1341 still available in PWT mode (it is now composed of alternating G5 and A5 musical |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1342 notes, rather than alternating 800 Hz and 900 Hz tones, but it sounds just the |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1343 same at least to my ear), but we are now also able to play ringtone melodies of |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1344 the same rich kind as those offered by Motorola in their official firmwares for |
78d4d362c086
FC-handset-spec section 2.4.1: update for PWT melodies and BUZM
Mychaela Falconia <falcon@freecalypso.org>
parents:
86
diff
changeset
|
1345 buzzer-equipped phones. |
56
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1346 |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1347 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
|
1348 |
a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
Mychaela Falconia <falcon@freecalypso.org>
parents:
55
diff
changeset
|
1349 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
|
1350 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
|
1351 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
|
1352 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
|
1353 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
|
1354 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
|
1355 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
|
1356 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
|
1357 |
020e6428c248
FC-handset-spec: firmware approach to vibrating alert documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
56
diff
changeset
|
1358 2.5. Vibrating alert |
020e6428c248
FC-handset-spec: firmware approach to vibrating alert documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
56
diff
changeset
|
1359 |
020e6428c248
FC-handset-spec: firmware approach to vibrating alert documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
56
diff
changeset
|
1360 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
|
1361 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
|
1362 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
|
1363 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
|
1364 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
|
1365 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
|
1366 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
|
1367 firmware will "vibrate" virtually. |
020e6428c248
FC-handset-spec: firmware approach to vibrating alert documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
56
diff
changeset
|
1368 |
020e6428c248
FC-handset-spec: firmware approach to vibrating alert documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
56
diff
changeset
|
1369 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
|
1370 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
|
1371 alert. |
59
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1372 |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1373 3. Venus development board |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1374 |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1375 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
|
1376 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
|
1377 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
|
1378 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
|
1379 |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1380 1) Our Venus board will be a close-to-final prototype for the actual FC handset, |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1381 as close as can be achieved in the physical form factor of a development |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1382 board meant to be used "bare" on a lab bench; |
59
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1383 |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1384 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
|
1385 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
|
1386 being in scope for FC handset firmware. |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1387 |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1388 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
|
1389 development board. |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1390 |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1391 3.1. Build principle |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1392 |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1393 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
|
1394 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
|
1395 (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
|
1396 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
|
1397 |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1398 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
|
1399 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
|
1400 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
|
1401 firmware development platform for section 2.3. |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1402 |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1403 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
|
1404 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
|
1405 supporting both buzzer and Melody E1 ringing. |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1406 |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1407 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
|
1408 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
|
1409 would have been deemed non-essential otherwise: |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1410 |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1411 * 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
|
1412 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
|
1413 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
|
1414 board when bringing it out is possible. |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1415 |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1416 * 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
|
1417 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
|
1418 |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1419 * 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
|
1420 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
|
1421 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
|
1422 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
|
1423 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
|
1424 both LEDs. |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1425 |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1426 * 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
|
1427 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
|
1428 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
|
1429 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
|
1430 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
|
1431 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
|
1432 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
|
1433 |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1434 3.2. Purpose and scope |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1435 |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1436 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
|
1437 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
|
1438 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
|
1439 and purposes, use Caramel2 or FCDEV3B. |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1440 |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1441 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
|
1442 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
|
1443 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
|
1444 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
|
1445 handset, so use Caramel2 or FCDEV3B. |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1446 |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1447 3.3. Handset vs. development board |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1448 |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1449 The Mother's vision is that our Venus development board will be fairly close to |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1450 a final handset motherboard in terms of included hardware and general layout: |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1451 on the top side it will feature our LCD, underneath this LCD it will feature our |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1452 keypad button set, whereas the bottom side will feature the same two core |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1453 component clusters (each possibly covered by a shieldcan) as are envisioned for |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1454 the final handset: one for the mobile domain (Calypso+RF core) and one for the |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1455 USB domain (FT2232x subsystem of section 1.12). However, in terms of physical |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1456 form factor, FC Venus will still be a development board meant to be used "bare" |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1457 on a lab bench, and will exhibit the following key differences from the final |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1458 handset motherboard: |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1459 |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1460 * The general form factor will be simple rectangular and unconstrained, without |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1461 highly complex mechanical design effort that will later be needed for a |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1462 handset motherboard that goes into a plastic case. |
59
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1463 |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1464 * Two handset peripheral features will be omitted: the vibrator and the keypad |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1465 backlight. |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1466 |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1467 * There will be one additional peripheral just for the fw development platform |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1468 role of this board, as opposed to the handset prototype role: the magnetic |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1469 buzzer described in section 3.8. JTAG and VSP tap header connectors can also |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1470 be regarded as special development-board-only extra peripherals. |
59
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1471 |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1472 * The physical realization of audio interfaces will be a little different from |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1473 the final handset and more appropriate for a development board, as detailed |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1474 in section 3.7. |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1475 |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1476 * The SIM socket and all developer-user controls and indicators will be located |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1477 on the top side of the board. |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1478 |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1479 3.3.1. Power supply or battery connection |
59
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1480 |
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1481 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
|
1482 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
|
1483 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
|
1484 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
|
1485 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
|
1486 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
|
1487 |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1488 However, in a departure from our previous development boards, it will also be |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1489 possible to connect a real Li-ion battery (instead of a fixed supply) to the |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1490 same connector - the Mother's intent is to use a common off-the-shelf 18650 |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1491 battery holder and wire it up to the necessary Weidmuller plug. When a real |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1492 battery is used, it will also be possible to charge it via Calypso+Iota BCI and |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1493 FreeCalypso FCHG just like in a real handset - see the following section. |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1494 |
79
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
1495 Because of the need for battery-specific tuning in FCHG, it will be difficult |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
1496 to use "any" 18650 battery for the real-battery mode of operation on FC Venus - |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
1497 instead we will be on much more solid footing if we select some specific battery |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
1498 model and stick to it. The Mother's current plan is to use Panasonic NCR18650B |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
1499 as our canonical battery. |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
1500 |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
1501 3.3.1.1. Iota ADIN2 connection |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
1502 |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
1503 Our previous development boards FCDEV3B and Caramel2 use only pins 1 and 3 on |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
1504 the 3-pin Weidmuller battery power input connector - however, TI's Leonardo |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
1505 schematics also connect ADIN2 to the otherwise unused middle pin. Just for the |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
1506 sake of flexibility, we are going to replicate this Leonardo-style ADIN2 |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
1507 connection on our Venus board, allowing the possibility of experimenting with |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
1508 battery packs that include some kind of ID resistor or thermistor and provide a |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
1509 third terminal for it. However, as of this writing (2021-09), we do not |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
1510 anticipate actually using this functionality - the Mother's current plan is to |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
1511 use an 18650 battery that does not provide any kind of third terminal. |
468d43c0d8cb
FC-handset-spec: document our plan of using NCR18650B
Mychaela Falconia <falcon@freecalypso.org>
parents:
78
diff
changeset
|
1512 |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1513 3.3.2. USB subsystem |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1514 |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1515 Our Venus development board will include the same USB subsystem as intended for |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1516 the final FC Libre Dumbphone handset, as described in sections 1.11 and 1.12, |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1517 consisting of a USB mini-B interface connector, a charging on/off switch with |
88
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1518 the charging circuit behind it, and the FT2232D subsystem of section 1.12. |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1519 |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1520 This design is a radical departure from our previous development boards which |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1521 bring out the two Calypso UARTs in their raw LVCMOS form, leaving the USB |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1522 interface to an external adapter, most recently our own DUART28. In fact, the |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1523 Mother's original idea for the Venus board was to keep essentially the same |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1524 interfaces as on Caramel2, retaining the use of the external DUART28 adapter |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1525 and calling for a potential separate battery+charger board - but then this |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1526 design was changed after further reflection. |
69
c6dafe9f3ac2
FC-handset-spec: BCI header change on Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
1527 |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1528 On our previous modem-centric (as opposed to handset-centric) Calypso |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1529 development boards, the USB interface was kept separate for the sake of |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1530 modularity, allowing the two Calypso UARTs to be connected to other entities |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1531 besides just USB. That design made good sense and continues to make good sense |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1532 for non-handset Calypso modem boards. However, on a handset development board |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1533 like FC Venus it becomes much more difficult to think of a realistic use case |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1534 where the two Calypso UARTs (or either one of them) would need to be connected |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1535 to something other than USB, thus this particular modularity becomes much less |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1536 of a value - while the opposite approach of integrating USB provides numerous |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1537 benefits: |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1538 |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1539 * One of the primary benefits of the new Venus board over existing Luna is |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1540 significant reduction in clutter: instead of 3 separate boards (Caramel2 MB, |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1541 LCD and keypad) connected with ribbon cables, there will be just one |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1542 integrated board. If we also integrate the functionality of our DUART28C |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1543 adapter, then we reduce clutter even further. |
69
c6dafe9f3ac2
FC-handset-spec: BCI header change on Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
1544 |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1545 * In the integrated USB arrangement, the Modem UART channel's RI output (coming |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1546 from Calypso GPIO8) will be connected just like in the final handset - see |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1547 section 1.12.1. OTOH, this signal would have to be omitted if we were to use |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1548 our legacy 10-pin DUART interface and a DUART28 adapter - RI does not fit well |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1549 into that arrangement. |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1550 |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1551 * When development is done using an AC-mains-powered fixed DC supply and the |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1552 BSIM mode in FCHG, there still needs to be a way to present and remove VCHG. |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1553 Turning on the charging switch will be more convenient than connecting a |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1554 jumper wire between a VCHG header pin and the USB +5V pin on DUART28. |
59
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1555 |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1556 * If our Venus board includes complete charging circuits just like the real |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1557 handset, operation with an actual battery will become a much more practical |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1558 option. Such operation can be very useful for the purpose of giving field |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1559 demos away from FreeCalypso HQ: in such field scenarios, having to connect an |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1560 AC-mains-powered fixed DC supply may be difficult (limited space, no access |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1561 to AC power outlets, limited attention span of the audience), and furthermore, |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1562 if the demo is presented to a less technical audience, it will likely feel |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1563 more "real" if the phone prototype being demonstrated is powered by a battery |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1564 rather than an AC mains adapter. In some cases, the charging process itself |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1565 (with standard USB as the charging power source) can be made a part of the |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1566 demo. |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1567 |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1568 3.3.2.1. Linux kernel patch requirement |
59
3ead88660a4e
FC-handset-spec: started Venus board description
Mychaela Falconia <falcon@freecalypso.org>
parents:
58
diff
changeset
|
1569 |
88
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1570 The FT2232D USB subsystem implemented on FC Venus will include the boot control |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1571 feature originating from DUART28C, as described in section 1.12.3. This |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1572 hardware feature has an implication for developer-users of this board: anyone |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1573 wishing to play with a Venus board beyond already-flashed fw (i.e., anyone |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1574 wishing to connect the board to a host computer) will need to apply our DUART28C |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1575 support patch to the ftdi_sio driver in their Linux kernel; as for other host |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1576 OSes beyond Linux, absolutely no support exists currently, thus you would need |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1577 to do all of the necessary support-creating work yourself. |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1578 |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1579 The problem with the needed ftdi_sio driver patch is that it has been rejected |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1580 by mainline Linux maintainers. The patch is purely additive and non-impacting: |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1581 it simply adds support for an entirely new USB device (a new USB VID:PID) that |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1582 did not exist before, and has exactly zero impact on anything pre-existing, on |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1583 anything outside of this brand-spankin'-new USB device. But the power-wielding |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1584 maintainers rejected the patch because it isn't general enough to them, because |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1585 it serves only one specific hardware device which they don't wish to support. |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1586 |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1587 The Mother's answer to those Linux maintainers' game of hardball is to play back |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1588 a game of my own: our Venus boards will NOT be sold for money, not for any |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1589 price, instead they will be given out free of cost to loyal FreeCalypso |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1590 supporters. Anyone wishing to receive a Venus board will be required to apply |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1591 the non-mainlined ftdi_sio driver patch locally to their own Linux kernel, and |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1592 to show proof that they have applied this maintainer-rejected patch as a |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1593 condition of receiving their board. |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1594 |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1595 3.3.2.2. Board bring-up order |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1596 |
88
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1597 The on-board FT2232D subsystem will be the preferred way to interface to the |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1598 two Calypso UARTs on FC Venus, and also the preferred way of driving RPWON and |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1599 nTESTRESET boot controls - if everything goes according to plan. However, to |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1600 guard against inoperable boards in the unfortunate event that the built-in USB |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1601 subsystem doesn't work as designed, there will also be a "rescue" 10-pin DUART |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1602 header on the board. If all USB subsystem components are populated on the |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1603 board as we currently intend, the "rescue" DUART header MUST NOT have anything |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1604 connected to it, other than oscilloscope probes - however, if a need arises to |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1605 operate a Venus board via an external DUART28 or other adapter, then some |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1606 components will need to be removed from the USB section of the board to prevent |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1607 the scenario of two fighting drivers. |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1608 |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1609 There will also be a 3-pin boot control header, bringing out RPWON and |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1610 nTESTRESET, but this provision does not present the same stringent single driver |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1611 requirements as the "rescue" DUART header, as all drivers for these boot control |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1612 signals are open drain. |
69
c6dafe9f3ac2
FC-handset-spec: BCI header change on Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
1613 |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1614 The charging switch will need to be off during board bring-up, and it is |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1615 expected to remain off during most development activities on FC Venus, to be |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1616 turned on only rarely when exercising the charging function. |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1617 |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1618 3.3.3. Stepping stone toward the final handset |
69
c6dafe9f3ac2
FC-handset-spec: BCI header change on Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
1619 |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1620 When the time comes to embark on the design of the actual FC Libre Dumbphone |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1621 handset, after all necessary fw development work gets done on the Venus |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1622 development board, one of the biggest challenges will be the need for close |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1623 coordination between electronico-mechanical design of the motherboard PCBA and |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1624 ergonomico-mechanical design of the handset case. It is the Mother's hope that |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1625 by being as close as possible to the final handset motherboard while subject to |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1626 the constraints of a development board, our Venus board will serve as a useful |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1627 stepping stone toward the actual handset. When the time comes to hire a |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1628 cellphone mechanical design expert to create the mechanical design for our FC |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1629 handset, we will present a working Venus board (battery-powered and running |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1630 well-polished fw, for proper psychological impact) to our hired mechanical |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1631 designer, and hopefully this Venus board reference will work for the purpose of |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1632 communicating to that mechanical designer our requirements from the electronics |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1633 side, as in how much space is required for all of our functional components, |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1634 which will be quite different from the more recent mainstream proprietary |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1635 phones. |
69
c6dafe9f3ac2
FC-handset-spec: BCI header change on Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
1636 |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1637 In terms of electronic circuit details, our final FC Libre Dumbphone handset is |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1638 expected to be somewhat different from FC Venus, different enough to call for a |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1639 different fw build target, as a matter of fact. However, we expect that in |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1640 terms of PCB layout, these electronic circuit differences won't be heavily |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1641 disruptive, and we hope that once our hired mechanical designer gives us a |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1642 design for the handset, we will then able to transform the PCB layout of FC |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1643 Venus into the real handset motherboard. |
69
c6dafe9f3ac2
FC-handset-spec: BCI header change on Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
1644 |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1645 3.4. RF bands and PCB layout |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1646 |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1647 The Mother's intent for the Venus board is to stop copying Openmoko's triband |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1648 PCB layout and instead switch to TI's original Leonardo+ quadband layout, which |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1649 has been recovered from iWOW TR-800 via professional PCB reverse engineering. |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1650 We will need quadband RF for the final FC Libre Dumbphone handset, thus it would |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1651 be best to switch to it now, starting with Venus. |
60
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1652 |
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1653 3.5. LCD module and backlight |
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1654 |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1655 The LCD module on FC Venus will be Formike KWH020ST23-F01, the same LCD module |
82
e279a924f7a3
FC-handset-spec: update for Formike LCD modules being here
Mychaela Falconia <falcon@freecalypso.org>
parents:
81
diff
changeset
|
1656 which we have settled on for the actual FC handset. In 2021-09 we made a |
e279a924f7a3
FC-handset-spec: update for Formike LCD modules being here
Mychaela Falconia <falcon@freecalypso.org>
parents:
81
diff
changeset
|
1657 lifetime buy of 100 pcs of this LCD module, thus we are now past the point of |
e279a924f7a3
FC-handset-spec: update for Formike LCD modules being here
Mychaela Falconia <falcon@freecalypso.org>
parents:
81
diff
changeset
|
1658 considering different candidate LCD modules. Our chosen Formike LCD module is |
e279a924f7a3
FC-handset-spec: update for Formike LCD modules being here
Mychaela Falconia <falcon@freecalypso.org>
parents:
81
diff
changeset
|
1659 almost perfect for development boards such as FC Venus; the only blemish is |
e279a924f7a3
FC-handset-spec: update for Formike LCD modules being here
Mychaela Falconia <falcon@freecalypso.org>
parents:
81
diff
changeset
|
1660 that in the absence of additional mechanical restraints, an elastic force that |
e279a924f7a3
FC-handset-spec: update for Formike LCD modules being here
Mychaela Falconia <falcon@freecalypso.org>
parents:
81
diff
changeset
|
1661 originates somewhere in the area of the folded-under FPC tail pushes the bottom |
e279a924f7a3
FC-handset-spec: update for Formike LCD modules being here
Mychaela Falconia <falcon@freecalypso.org>
parents:
81
diff
changeset
|
1662 of the module upward, away from the PCB, acting against both gravity and |
e279a924f7a3
FC-handset-spec: update for Formike LCD modules being here
Mychaela Falconia <falcon@freecalypso.org>
parents:
81
diff
changeset
|
1663 adhesive forces. However, we have a planned workaround: we are working with a |
e279a924f7a3
FC-handset-spec: update for Formike LCD modules being here
Mychaela Falconia <falcon@freecalypso.org>
parents:
81
diff
changeset
|
1664 local-to-us mechanical engineering company to produce a custom retaining |
e279a924f7a3
FC-handset-spec: update for Formike LCD modules being here
Mychaela Falconia <falcon@freecalypso.org>
parents:
81
diff
changeset
|
1665 bracket; with the addition of this bracket, the mounting of our LCD module is |
e279a924f7a3
FC-handset-spec: update for Formike LCD modules being here
Mychaela Falconia <falcon@freecalypso.org>
parents:
81
diff
changeset
|
1666 expected to become secure enough for development board purposes. |
67
ed686a290f2d
FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents:
66
diff
changeset
|
1667 |
ed686a290f2d
FC-handset-spec: LCD and backlight specification changes
Mychaela Falconia <falcon@freecalypso.org>
parents:
66
diff
changeset
|
1668 The backlight circuit design of section 1.4.4.1, which is hoped to be final, is |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1669 being included in the Venus board design. Specific LED currents don't need to |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1670 be finalized for Venus PCB layout or PCB fabrication; resistor values that set |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1671 these currents will only need to be finalized when the time comes to populate |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1672 the first fabricated Venus PCBs with components. |
60
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1673 |
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1674 3.6. Keypad buttons |
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1675 |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1676 The Mother's original intent for FC Venus was to punt on the more complex keypad |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1677 arrangement that approximates the real handset, instead continuing what we |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1678 currently have on FC Luna: a "raw" 5x5 matrix of buttons in rows and columns, |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1679 with silk screen labels indicating the function of each button, matching TI's |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1680 D-Sample. However, this plan has been changed upon further reflection - the |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1681 Mother's new thinking is that FC Venus will be a prototype toward the final |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1682 handset, a prototype as close as possible to "the real thing" while staying |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1683 within the constraints of a development board, thus the keypad arrangement needs |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1684 to be made closer to "real" as well. |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1685 |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1686 The main 21-button keypad described in section 1.5 will need to be implemented |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1687 on our Venus board, with the buttons in approximately correct relative |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1688 positions, all below the LCD. The buttons will be generic off-the-shelf tactile |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1689 switches with finger-accessible actuators, similar to those used on Caramel2 and |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1690 on our current Luna keypad add-on, except that SMT parts will need to be used, |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1691 in order to not put extra constraints on component placement on the opposite |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1692 side of the board. Because we won't have any overlay with button legends, we |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1693 will need to put silk screen labels on our PCB next to each button, denoting |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1694 logical functions. |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1695 |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1696 Out of the 21 buttons of the main keypad, 20 will fall onto KBC/KBR cross- |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1697 points, i.e., they will be "regular" keypad buttons. However, the button in the |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1698 END position (the one which is traditionally red, for power on/off and call |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1699 hang-up) will be special: in hardware terms it will be the PWON button, both on |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1700 FC Venus and on the final handset. This special arrangement exactly follows |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1701 TI's canon (D-Sample and predecessors), and has also been followed by the makers |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1702 of Pirelli DP-L10. |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1703 |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1704 The 3 side buttons of section 1.6 will also need to be implemented on FC Venus. |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1705 The two left side buttons (volume up/down) will be placed on the left side of |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1706 our LCD, and the single right side button will be placed on the right side of |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1707 our LCD. |
60
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1708 |
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1709 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
|
1710 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
|
1711 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
|
1712 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
|
1713 |
88
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1714 3.6.1. Limited boot control buttons |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1715 |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1716 The Mother's original idea for FC Venus was to implement pushbutton switches for |
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1717 all 3 boot controls as in PWON, RPWON and nTESTRESET. However, now that we are |
88
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1718 integrating the FT2232D USB subsystem of section 1.12 and the boot control |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1719 mechanism of section 1.12.3 as a non-removable part of the Venus board itself, |
88
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1720 the pushbutton switch for RPWON is being eliminated, leaving only PWON in the |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1721 "END" position in the main keypad and a rare-use RESET button. For additional |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1722 context, when I first decided to integrate the FT2232D subsystem with boot |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1723 control, I was going to drop the RESET button as well - but then I decided that |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1724 it would be more proper to include at least a footprint for one. My current |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1725 intent is to populate an actual button for RESET, but to use a different switch |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1726 part with a shorter actuator and a greater operating force, reducing the |
91352355857c
FC-handset-spec: document beyond-USB rescue provisions on FC Venus
Mychaela Falconia <falcon@freecalypso.org>
parents:
87
diff
changeset
|
1727 probability of accidental resets. |
77
da3bb12c2e6f
FC-handset-spec: overhaul of Mother's vision for FC Venus board
Mychaela Falconia <falcon@freecalypso.org>
parents:
76
diff
changeset
|
1728 |
60
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1729 3.7. Audio interfaces |
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1730 |
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1731 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
|
1732 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
|
1733 interfaces will be as follows: |
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1734 |
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1735 * 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
|
1736 and mic in the real handset) will be wired to a TRRS jack exactly like on |
89
b10442b756b2
FC-handset-spec section 3.7: mention FC-HDS4
Mychaela Falconia <falcon@freecalypso.org>
parents:
88
diff
changeset
|
1737 Caramel2. The intent is that an FC-HDS4 headset will be plugged into this |
b10442b756b2
FC-handset-spec section 3.7: mention FC-HDS4
Mychaela Falconia <falcon@freecalypso.org>
parents:
88
diff
changeset
|
1738 main audio jack. |
60
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1739 |
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1740 * 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
|
1741 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
|
1742 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
|
1743 |
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1744 * 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
|
1745 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
|
1746 loudspeaker to be connected. |
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1747 |
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1748 3.8. Magnetic buzzer |
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1749 |
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1750 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
|
1751 (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
|
1752 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
|
1753 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
|
1754 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
|
1755 hardware provision. |
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1756 |
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1757 3.9. LEDs instead of vibrator |
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1758 |
f0d9a2cf15d2
FC-handset-spec: Venus peripherals documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
59
diff
changeset
|
1759 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
|
1760 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
|
1761 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
|
1762 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
|
1763 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
|
1764 |
62
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1765 4. Motorola C139 port |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1766 |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1767 4.1. Background information |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1768 |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1769 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
|
1770 |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1771 * Motorola C11x/12x |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1772 * Motorola C139/140 |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1773 * Motorola C155/156 |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1774 * Pirelli DP-L10 |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1775 * Sony Ericsson J100 |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1776 |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1777 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
|
1778 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
|
1779 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
|
1780 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
|
1781 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
|
1782 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
|
1783 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
|
1784 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
|
1785 |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1786 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
|
1787 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
|
1788 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
|
1789 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
|
1790 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
|
1791 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
|
1792 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
|
1793 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
|
1794 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
|
1795 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
|
1796 (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
|
1797 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
|
1798 96x64 pixel LCD. |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1799 |
63
4389cd2b9d02
FC-handset-spec: grammar fix
Mychaela Falconia <falcon@freecalypso.org>
parents:
62
diff
changeset
|
1800 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
|
1801 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
|
1802 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
|
1803 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
|
1804 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
|
1805 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
|
1806 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
|
1807 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
|
1808 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
|
1809 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
|
1810 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
|
1811 |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1812 4.2. Why C139? |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1813 |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1814 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
|
1815 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
|
1816 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
|
1817 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
|
1818 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
|
1819 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
|
1820 |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1821 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
|
1822 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
|
1823 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
|
1824 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
|
1825 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
|
1826 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
|
1827 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
|
1828 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
|
1829 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
|
1830 model. |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1831 |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1832 4.3. How to make it happen |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1833 |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1834 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
|
1835 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
|
1836 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
|
1837 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
|
1838 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
|
1839 |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1840 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
|
1841 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
|
1842 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
|
1843 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
|
1844 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
|
1845 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
|
1846 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
|
1847 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
|
1848 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
|
1849 C139 hardware. |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1850 |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1851 4.4. Functional scope limitations |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1852 |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1853 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
|
1854 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
|
1855 do in that direction: |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1856 |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1857 * 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
|
1858 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
|
1859 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
|
1860 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
|
1861 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
|
1862 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
|
1863 |
90
5952e2dfdc26
FC-handset-spec section 4.4: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
89
diff
changeset
|
1864 * No dynamic mode switching support on the headset jack: this jack on all C1xx |
5952e2dfdc26
FC-handset-spec section 4.4: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
89
diff
changeset
|
1865 phones serves a dual function, it is both an analog headset interface and a |
5952e2dfdc26
FC-handset-spec section 4.4: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
89
diff
changeset
|
1866 digital interface for computer connection (UART at 2.8V logic levels), and I |
5952e2dfdc26
FC-handset-spec section 4.4: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
89
diff
changeset
|
1867 currently have no plans to implement dynamic switching between these two |
5952e2dfdc26
FC-handset-spec section 4.4: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
89
diff
changeset
|
1868 modes. There will be one firmware build configuration in which the jack |
5952e2dfdc26
FC-handset-spec section 4.4: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
89
diff
changeset
|
1869 accepts Motorola headsets - serial cables won't work unless you shut down the |
5952e2dfdc26
FC-handset-spec section 4.4: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
89
diff
changeset
|
1870 fw and operate on the phone with tools like fc-loadtool, fc-simint or our FC |
5952e2dfdc26
FC-handset-spec section 4.4: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
89
diff
changeset
|
1871 FFS editor - and another fw build configuration in which the headset jack |
5952e2dfdc26
FC-handset-spec section 4.4: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
89
diff
changeset
|
1872 accepts serial cables, but not actual headsets. |
62
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1873 |
42d53bfbcca3
FC-handset-spec: Mot C139 idea documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
61
diff
changeset
|
1874 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
|
1875 "bare bones" phone - but the hope is that it would still be useful to some. |