SaveMySugar: exchange messages using only phone rings
From “The Lord of the Phone-Rings”, about SaveMySugar:
One RING after them all, one RING to end them,
One RING to get the... messages, and from Morse code decode 'em.
Back in 2006, a friend of mine asked:
Antonio, would it be possible to send messages for free using only phone rings?.
I did find the question interesting, I did a brief research to see if anyone had already solved the problem and found the same idea posted on Half Backery, and I also found Xringd which was doing something similar, but not for text messages.
So I spent some time on the problem and found a solution which kind of worked; but it was a quick and dirty hack and I didn't publish it.
In the following years, from time to time, I got back to thinking about this project; then, after almost ten years, the friend asked again if I was ever going to complete it, and so I decided to give it another go and publish a more solid prototype.
And you know, when you can finally name something it becomes easier to analyze, the name in this case was “pulse-distance modulation”.
If we consider a phone ring as the rising edge of a pulse we can represent information using the distance between rings, but for that to work we have to consider the fact that the time between placing a call and having the phone ringing on the other side is not a constant; however once we measure this noise, we can predict a window for the “phone ring” event and re-interpret the information on the receiving side in a consistent way.
So, this is the brief story of how SaveMySugar was born.
Here is an example video of the exchange of a message:
Check out also these resources:
- SaveMySugar page
- SaveMySugar python code
- SaveMySugar Android app cource code
- SaveMySugar website source code
I only tested the Android app with Android 4.2, I am not sure if the “Send” functionality works on other versions, so if anyone gets to test it, please let me know.
Also the Android app can be improved a lot, but I don't particularly enjoy Java or GUI programming, so any help is appreciated.
If anyone is interested in porting SaveMySugar to other platforms (iOS?), get in touch.