# Rustphone (temporary name) (early development) OS for a dumbphone based on Maduino Zero 4G LTE board. ## Goals 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 ## Install tools ```bash # Choose one line depending on your distro sudo pacman -S arm-none-eabi-gcc sudo apt install gcc-arm-none-eabi # Install Rust target rustup target add thumbv6m-none-eabi ``` ## Run simulator ```bash cargo run --features simulator ``` ## Build ```bash cargo build --release --target thumbv6m-none-eabi ``` ## Pins * D2 * D3 * D4 * D5 (internally assigned): modem power * D6 (internally assigned): modem reset * D7 (internally assigned): flightmode * D8 * D9 * D10 * D11 * D12 * D13 * A0 * A1 (internally assigned): vbat * A2 (internally assigned): vsys * A3 * A4 * A5 * SDA: I2C * SCL: I2C Used pins: * display SPI: 3 pins * keypad: 6 pins (74HC565+75HC165), maybe 5 if the same clock is used * display LED: 1 pin * torch LED: 1 pin * ESP UART: 2 pins (I2C still possible if not enough pins) Note: at most 5 outputs of the 74HC565 may be used as GPO. ## components * https://www.makerfabs.com/maduino-zero-4g-lte-sim7600.html * https://www.waveshare.com/1.54inch-e-Paper-Module.htm1 * https://bulkmemorycards.com/shop/microsd-cards/microsd-32gb/sd-32gb-class-10/32gb-microsd-ultra-sandisk-memory-card-2/ * Maybe an ESP for WIFI and Bluetooth: https://www.sparkfun.com/products/18034 ## crates * bitmap-font ? * https://lib.rs/crates/at-commands OR https://lib.rs/crates/atat * https://crates.io/crates/embedded-menu ## Apps * Calculator * Config * Contacts * Journal * Play audio * Send call * Send message * Show bitmap ## Keypad Optimized to reduce the number of consecutive presses on the same key in French. 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. ``` ncb1 upz2 tdk3 eow4 lqh5 age6 sfx7 rmj8 ivy9 ```