Inspiration

Parts of the developing world do not have access to consistent cellular data signals, and the same can be said about many rural places anywhere. This hack attempts to solve the problem of poor internet availability by providing a data connection through the cellular voice band, which is more widely available.

What it does

Phomo allows secure computer to computer transfer of data including files, internet, etc.
In order to get a data connection to a laptop, a connection is made between the laptop and a smartphone using an audio cable. The smartphone connects to another smartphone over cellular voiceband, and the second phone connects to another computer which has access to the internet. Requests from the data-less computer are sent through this networked chain, all the way to the internet and back. The actual communication between phones is accomplished through the use of old-school technology: the modem.

How I built it

A first laptop was connected to a smartphone with a pair of headphones with mics instead of aux cables. The laptops we used had only one port for both audio in/out, and because of the lack of 4-pin TRRS aux cables, we had to construct crude approximations by putting the earbud of one pair of headphones up to the microphone of another pair, and burying the set in a box filled with sand in order to dampen acoustic noise from the environment, which seriously confounded our efforts. From there, we used minimodem to encrypt the data being transferred into audio which is then sent over the headphones and through the phone to the data-less computer. The data was then decrypted and either pushed to a browser for internet access or saved as a file.

Challenges I ran into

Without dedicated audio patch cables, we had to construct the crude headphone bridge between computers and smartphones. These constructions worked well in the absence of environmental noise, but the system quickly broke down when more than a few people talked in the room during transmission. We partially solved this issue by burying the headphones in boxes full of sand, which helped, but was not the optimal solution.

The cellular voice band has lossy compression algorithms applied to the sound transmitted on it, which causes serious issues with data transmission over audio.

Accomplishments that I'm proud of

Transmitting data over voice band at 10b/s! Transmitting data over FaceTime at 2kB/s
Transmitting data over headphones at 20kB/s

What I learned

Nobody makes TRRS aux cables that can connect two systems together for communication. Laptop manufacturers love to take away ports that can be extremely useful and hackable, like dedicated microphone ports.

What's next for Phomo

Construct special "crossover" TRRS aux cable for use with modern laptops and smartphones.
Optimize modem algorithm to better work on voice band.

Built With

  • bash
  • blood
  • cellphone
  • curl
  • dominoes-box
  • facetime
  • gnu
  • headphones
  • love
  • minimodem
  • redbull
  • sand
  • tears
  • tk
  • voiceband
Share this project:

Updates