Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Design goals

The SmolPhone project aims to build a mobile phone with limited hardware that still brings value to its users, and enables them to easily create and edit applications using a scripting environment. It targets the following hardware:

  • High-end microcontrollers such as the RP2040, which is a 32-bit, dual-core ARM Cortex-M0+ processor running at 133 MHz with 264 KB of SRAM.
  • Several megabytes of readonly (non-volatile) memory.
  • Memory-in-pixel reflective LCDs with a slow data transfer that supports partial refresh, such as the Sharp LS027B7DH01 which is a $400 times 240$ monochrome display with a serial connection.

Thus, the phone’s memory is more limited than its processing power. Notably, we have far less mutable memory than readonly memory. Also, the display should be partially refreshed as much as possible to reduce the perception of slow data transfer between the memory and the screen.

The software platform that we want to design must meet several quality criteria:

  • C1.a: Low memory usage
  • C1.b: Efficient use of readonly and mutable memory
  • C2.a: Familiar and arguable architecture and abstractions
  • C2.b: Readable, documented and well-tested code
  • C3.a: Provide enough functionality to implement usual phone applications
  • C3.b: Provide a scriptable environment similar to HyperCard or its modern variant Decker