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
NOTES
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.
If you find that the “How” section on savemysugar.ao2.it is not clear enough, please let e know and I'll try to write a more formal explanation.
Comments
Post new comment