OS for a dumbphone
src | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE | ||
README.md | ||
rustfmt.toml |
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
# 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
cargo run --features simulator
Build
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