Skip to content

Open source smart phone implementation using RPi + FONA breakout board

License

Notifications You must be signed in to change notification settings

TwistTheNeil/fone

Repository files navigation

Fone (Still WIP)

This project is an implementation of a cell phone while keeping true to the unix philosophy.

This project uses the following components:

Fone consists of a server which will speak to the FONA baord using the serial interface. It accepts two types of transactions from clients:

  1. Commands - These are transactions which require the FONA board to query or execute a task.
  2. Subscriptions - These are transactions which require the server to notify a subscribing client about any subscribed notifications originating from the FONA board.

Every client in the server will have a specialized function and will need to communicate to the FONA board via the server.

Additional information may be found in the man pages in docs/man/

Setup

  1. Setup build environment

    sudo apt install build-essential screen
    
  2. Setup serial communication

  3. Connect the GPIO pins on the FONA 808 to the pi. Look here for more detail on pinouts

  • FONA GND -> Pi Ground
  • FONA Vio -> Pi 3v3 power
  • FONA RX -> Pi TXD
  • FONA TX -> Pi RXD
  1. Configure ppp to connect to the network stack

    apt install ppp
    cp etc/ppp/peers/fona /etc/ppp/peers/fona
    chmod 644 /etc/ppp/peers/fona
    cp etc/chatscripts/gprs /etc/chatscripts/gprs
    chmod 644 /etc/chatscripts/gprs
    
  2. Deploying (may be daemonized later)

    sudo pon fona
    cd /path/to/fone/code
    make all
    screen -fa -d -m -S foneserver ./build/foneserver
    # Wait until foneserver is running
    ./build/fone_configure
    screen -fa -d -m -S call-receive ./build/call-receive
    screen -fa -d -m -S sms-receive ./build/sms-receive
    

Interesting configuration

AT+CLIP=1      # Enable Caller ID
ATE 0          # Disable Echoing
AT+CHFA=0      # Main audio
AT+CLVL=20     # Volume

# Receiving SMS
AT+CMGL="ALL"  # List all messages in storage
AT+CPMS="SM"   # Prefer SM store
AT+CNMI=2,0    # do not emit +CMTI notifications. This will need to change if moved to subscription model

What is complete:

  • Core
    • Tether Cellular Data Connection
    • Threaded named pipes
    • Threaded UART interface
    • Transaction message queue
    • Subscriber message queue
  • Application Clients
    • Test Network
    • Sending SMS
    • Receive SMS
    • Initiate Phone Call
    • Answer Phone Call
    • GPS
    • Something else?
  • User Interfaces

About

Open source smart phone implementation using RPi + FONA breakout board

Resources

License

Stars

Watchers

Forks

Packages

No packages published