comparison Handset-UI-fw @ 31:2e9719074e79

Handset-UI-fw: update for FC Luna
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 23 Sep 2020 23:06:58 +0000
parents fcd1cf531017
children
comparison
equal deleted inserted replaced
30:658010a51ff4 31:2e9719074e79
178 to LCC's API functions. The practical effect of this quirk is that there is no 178 to LCC's API functions. The practical effect of this quirk is that there is no
179 need to resurrect PWR or LCC in order to run TI's UI code in its pristine 179 need to resurrect PWR or LCC in order to run TI's UI code in its pristine
180 original form - using our own FCHG or no battery management driver at all is 180 original form - using our own FCHG or no battery management driver at all is
181 just as fine. 181 just as fine.
182 182
183 FreeCalypso Luna handset UI development platform
184 ================================================
185
186 As of 2020 we have a new hardware platform for running UI-enabled firmware
187 configurations; this development platform is codenamed FC Luna. Our FC Luna
188 platform consists of a 176x220 pixel LCD (TFT color) and a 5x5 keypad connected
189 to a Calypso core; the key feature is that the LCD size (176x220 pix), color
190 depth (16 bits) and interface to Calypso (16-bit parallel with memory-mapped
191 registers) are exactly the same as on TI's D-Sample. This FC Luna platform is
192 supported in FC Magnetite, and it finally allows us to run TI's handset UI code
193 in its native form. We can run all of the same configurations which existed in
194 TI's original TCS211 fw on TI's original D-Sample platform:
195
196 * The default configuration is 176x220 pixel UI with full color - this is the
197 config which TI actually supported in TCS211 days.
198
199 * Setting UI_CONFIG=bigbw (switching UI code config) and optionally
200 DSAMPLE_FULL_COLOR=0 (switching R2D driver config) produces TI's 176x220 pixel
201 black&white configuration. This config is not particularly interesting: any
202 practical phone LCD of this large size is also going to be color, thus it is
203 better to use the full color config for this large size instead. For this
204 reason whatever bugs are specific to this 176x220 pix B&W config (and there
205 definitely are some) will be ignored, as there is no point in investigating
206 and fixing them.
207
208 * Setting UI_CONFIG=84x48 and DSAMPLE_FULL_COLOR=0 produces the same C-Sample
209 UI config which we've been running on Mot C139 phones, but without the
210 ugliness of emulating C-Sample LCD hw at the driver level - instead in this
211 config the small 84x48 pixel UI code runs on top of TI's D-Sample B&W R2D
212 driver, with the small UI displayed in the upper left corner of the large
213 physical Luna LCD.
214
215 Running the UI_CONFIG=84x48 DSAMPLE_FULL_COLOR=0 config on Luna has already
216 helped shed light on one UI issue that was more elusive when running on C139 hw:
217 the disappearing time display. When running this config on Luna, we can see
218 that the UI code displays a text line with date and time outside of the 84x48
219 pixel area, i.e., it is a bug in the !LSCREEN configuration - but when we run
220 with driver-level C-Sample emulation on C139, this misplaced text line is
221 invisible.
222
183 The proper way to get proper support for Mot C139 223 The proper way to get proper support for Mot C139
184 ================================================= 224 =================================================
185 225
186 I (Mother Mychaela) feel very strongly that the best way to produce practically 226 For many years the handset firmware project direction in FreeCalypso had been
187 usable end user FreeCalypso firmware for the C139 target would be to do it 227 blocked by the lack of a D-Sample-like development platform with a 176x220 pixel
188 together with our own FreeCalypso Libre Dumbphone development, as opposed to 228 LCD. This blockage has finally been lifted in 2020 with the arrival of our Luna
189 trying to support the C139 to the exclusion of our own FreeCalypso hardware. 229 UI development platform, and now the only lacking factor is developer time and
190 Specifically, I propose the following order of steps: 230 motivation. As of this writing (2020-09) I (Mother Mychaela) am not able to
191 231 devote any significant time to handset firmware work because I need to focus on
192 1) First build our own FreeCalypso UI development board, a derivative of the 232 bringing FC Tango and Caramel2 hardware products to market, but once I get past
193 FCDEV3B adding a 176x220 pixel color LCD and other miscellany to serve as a 233 this current work, I may be able to refocus on handset fw.
194 replacement for TI's D-Sample. 234
195 235 When and if I start working again in the handset fw direction, my plan of action
196 2) Retire the C-Sample UI configuration and our currently implemented C-Sample 236 is as follows:
197 emulation hack on the C139, and start running TI's UI code the way TI's own 237
198 developers ran it on the D-Sample. 238 1) Fix the most obvious bugs like the misplaced text line in the small UI config
199 239 while staying in the Magnetite source tree, but working only in the hybrid UI
200 3) Change the "small screen" UI layout from 84x48 to 96x64 pixels (from 6 rows 240 code base - the old TCS2 version of BMI+MFW that sits on top of a blobs-only
201 of 14 characters to 8 rows of 16 characters with TI's existing font), and 241 old version of G23M PS will not be carried forward.
202 fix the bugs related to displaying this "small screen" (!LSCREEN) UI on a 242
203 physically larger LCD - we would like to display it on our 176x220 pixel UI 243 2) Create a new firmware source tree based on Magnetite that keeps only the
204 development board. 244 hybrid config with old clutter removed, allowing bolder changes going
205 245 forward.
206 4) Extend the UI code to allow the possibility of COLOURDISPLAY && !LSCREEN, 246
207 i.e., a small (96x64 pixels) color display like on the C139. Have this 247 3) Drop the driver-level C-Sample LCD emulation approach, and instead implement
208 96x64 pixel color UI displayed on our 176x220 pixel UI development board. 248 a 96x64 pixel B&W logical framebuffer config in R2D. Display this logical
209 249 96x64 pix B&W framebuffer on both Luna and C139 physical LCDs. In both cases
210 5) Work on getting the actual UI into shape, keeping the two configurations of 250 the physical LCD color capability will remain unutilized, with all display
211 176x220 pixel color (future FreeCalypso Libre Dumbphone) and 96x64 pixel 251 images being black&white, but so be it.
212 color (Mot C139) as actively supported ones. Do all development on our 252
213 176x220 pixel UI development board. 253 4) Immediately after the previous step the 84x48 pixel UI will appear in the
214 254 upper left corner of the 96x64 pixel B&W display, with the rightmost 12 and
215 6) Once the UI-enabled firmware works decently on our development board in both 255 bottommost 16 pixels remaining unused.
216 176x220 and 96x64 configurations, add native C139 LCD support (not C-Sample 256
217 emulation) to R2D, adapt Condat's display driver as necessary if we are still 257 5) Drop the 176x220 pixel B&W UI config, leaving only large (176x220 pix) color
218 using it (if we don't find a way to get rid of it by this point), and run 258 and "small B&W". Remove code stanzas specific to the
219 our 96x64 pixel color UI config on real C139 hardware. At this point we 259 (LSCREEN && !COLOURDISPLAY) combination, and outside of that eliminated
220 should have practically usable end user FreeCalypso fw on the C139. 260 combination, make all conditionals based on LSCREEN and not COLOURDISPLAY.
221 261
222 7) While the less demanding and more casual phone users will be happy with the 262 6) Extend the "small B&W" UI config from 84x48 to 96x64 pixels, i.e., from 6
223 feeble C139 if it runs our FreeCalypso fw, those of us who desire the 263 rows of 14 characters to 8 rows of 16 characters with TI's existing font.
224 Ultimate Awesome Libre Dumbphone will be able to take our 176x220 pixel UI 264
225 development board and start turning it into an actual FreeCalypso Libre 265 7) With the above gymnastics out of the way, work on whipping the actual phone
226 Dumbphone handset. This will be the point when we can move the ringtone 266 UI into shape, supporting two configurations: large color and small B&W,
227 output from the piezo buzzer to the loudspeaker (Melody E1) and start making 267 with Luna hw platform supporting both configs, whereas the small B&W config
228 other changes for better-than-C139 hardware. 268 will also run on C139 hw.
229 269
230 Of course the biggest difficulty with the above plan is that it requires 270 It should be noted that this approach does NOT include any implementation of
231 designing and building a new piece of hardware as its very first critical step. 271 color UI for the small LCD size on Mot C139 and similar low-end platforms. As
232 My personal plan is to kill two birds with one stone: design the board in such 272 the plan stands currently, this omission is intentional and is part of effort
233 a way that it can be used both as a development board for the above plan and as 273 minimization: I need to put some limits on the amount of time and effort I
234 a close-to-final prototype for my desired FC Libre Dumbphone handset - although 274 invest into project directions that are specific to low-end phones, i.e.,
235 not completely final, as this board would absolutely need to be usable in its 275 project directions that are intrinsically less worthy than my desired
236 bare form on a lab bench without plastics, which calls for a somewhat different 276 FreeCalypso Libre Dumbphone as in FreeCalypso handset hardware.
237 design than a final handset product.
238
239 Anyone who disagrees with my approach, anyone who is against designing and
240 building new custom hardware at high cost and who is instead interested first
241 and foremost in pre-existing hardware targets like Mot C139 is more than welcome
242 to delve into the code themselves and try their own hand at fixing the code to
243 make it practically usable on the C139. However, I have to warn you: if you
244 spend a significant amount of time working with TI's code and develop an
245 affection for it, it is quite possible that you will start to feel the way I do
246 in terms of desiring a D-Sample-like platform for development.
247 277
248 Why Mot C139? 278 Why Mot C139?
249 ============= 279 =============
250 280
251 Out of the known repertoire of pre-existing Calypso-based phones whose existence 281 Out of the known repertoire of pre-existing Calypso-based phones whose existence