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 |