rustphone/README.md
2023-10-07 13:33:14 +02:00

108 lines
2.4 KiB
Markdown

# 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
```