FreeCalypso > hg > freecalypso-docs
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 |
