GSM will be shutting down in France in a few years so if you have an old cellphone and don't want to buy a fancy, spying, expensive smartphone, making your own 4G cellphone is an interesting option.
* Low cost
* Privacy
* Long battery life (this one will be complicated)
* Low-consumption components
* Use less CPU cycles
* Update display less often
* Use less wireless RX/TX
* Usable for basic things (call, messages, agenda, contacts, notepad)
* Customizable (smartphones don't do exactly what I want)
* (long term) Mesh networking and other cool stuff
For example, the letters _m_, _o_, _n_ are on the same key `MNO6` but they frequently appear consecutively in French, so you have to wait between each letter. Having them on three different keys solves this problem.
In case we switch to some more powerful MCU like ESP32.
Using an RTOS would be better than creating a monolithical horror. It would also make it easier to split the software into modular programs and store some programs in different memories (e.g. store kernel in internal flash and user programs in SPI flash).
Rusty embedded RTOS's:
* https://bern-rtos.org/
* does not support Xtensa
* supports Cortex-M
* does not seem to support dynamic programs
* https://www.drone-os.com/
* does not support Xtensa
* supports Cortex-M
* explicitly does not support dynamic programs
Needs:
* Kernel writes user programs to SPI flash (can it be done via chip programming or has it do be done by kernel? then USB, SD, debug probe, UART??)
* Handle hardware-specific work (provide high level interfaces for GPIO, SD, screen, modem, wifi, bluetooth...)