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 usageC1.b: Efficient use of readonly and mutable memoryC2.a: Familiar and arguable architecture and abstractionsC2.b: Readable, documented and well-tested codeC3.a: Provide enough functionality to implement usual phone applicationsC3.b: Provide a scriptable environment similar to HyperCard or its modern variant Decker