Free Cell Data Transfer With Slowest Morse Code Ever

Readers of a certain age will remember the payphone trick of letting the phone ring once and then hanging up to get your quarter back. This technique was used with a pre-planned call time to let someone know you made it or you were okay without accruing the cost of a telephone call. As long as nobody answered you didn’t have to pay for the call, and that continues to be the case with some pay-per-minute cellphone plans.

This is the concept behind [Antonio Ospite’s] ringtone data transfer project called SaveMySugar. Don’t judge him, this work has been ongoing for around ten years and started back when cellphone minutes were a concern. We’re just excited to see that he got the excruciatingly slow thing to work.

Those wanting to dig down to the nitty-gritty of the protocol (and you should be one of them) will want to read through the main project page. The system works by dialing the cellphone, letting it ring once, then hanging up. The time between redials determines a Morse code dot, dash, or separation between characters. Because you can’t precisely determine how long it will take each connection to read, [Antonio] built ‘noise’ measurement into the system to normalize variations. The resulting data transfer works quite well. He was able to transfer the word “CODEX” in just six minutes and thirty seconds. But it is automatic, so what do you care? See the edge-of-your-seat-action play out in the video below.

If you can’t stomach that baud, here’s a faster Morse code data transmitter but it doesn’t use the phone.

41 thoughts on “Free Cell Data Transfer With Slowest Morse Code Ever

  1. In “the early days” in Europe it was possible to transfer more complex status data for free using the phone number.

    If the target phone number would be 555 555, the originator could simply dial 555 555 123…, with 123… being available at the receivers end to handle as he pleases.

    I’ve used this in the late 1990s to gather real time feedback from a fleet of just in time logistics delivery couriers, without any carrier cost. A courier would simply long-press a button on the phone to call a number in his phone book, a mgetty-modem would pick up, register the phone number+extension and hang up immediately.

    After a year or so the carrier noticed and charged for transmitting the extension dialed after the regular phone number. Still very cheap and very fast.

  2. I think that QRSS is slower, with times between 1 and 60 seconds per dash (or dot). With bandwidth limited to few hertz amateurs can achieve range in hundreds or thousands of kilometers with powers in mW or even uW range…

  3. Cool! A simpler version of this could be used for remote IoT devices or rudimentary alarms. Send a single tone once every 24H hours to signal that the system is up and running. Send two tones when the alarm or whatever other sensor is triggered.

  4. My cellphone provider already took measures against that. If i my mobile phone rings and I don’t pick up, I get an SMS a few seconds later, that there was a missing call.
    Which is extremely unconvinient, even if I dont try to send data over ringing.

  5. Should be able to increase the data rate if the redial interval is reduced by a factor of 2 and additional bits can be sent if the maximum of rings is increased to 2. If this can be made into an app, then then the redial timing itself can easily pack more bits.
    Morse code for letter to binary encoding is fine, but horrible for the utilization for a medium with good signal quality.

      1. Can’t remember the exact phone system, but I read somewhere it send two caller ID’s. One could be set by the sender, and the second could not be changed. I think it was an ISDN line, and they where also using the channels used for initiating the call for free data transmission.

        1. You might be thinking of ANI. It is a behind the scenes form of caller ident for the carrier to use for billing purposes. It works different then CID as ANI is sent before CID is sent. That’s why Hollywood and TV spy/FBI shows are FOS. They know who’s calling way before CID does and tracing is not even needed. And when calling 911 and 800 #’s they use ANI not CID. So you can NOT spoof them and get away with it.

  6. my network used to offer free credit for dropped calls lasting over a minute so when I wanted to I could ring a freephone number, futz around in the voice prompts for a while, then pull the battery out of the back of the phone. only problem was it took under 24 hours to credit to the phone.

      1. it was over a decade ago but it was almost enough for a text message so around 6 cent in euro. I would have to do it twice if I wanted to send an SMS. I had thought of automating the system to generate credit but at the time I read a court case where a nigerian entrepreneur had 100 stolen phones with a wooden plank with nails in over the redial buttons that he had all ring a premium cost line. I figured with all the phone surveillance about even at that time that unusual activity would show up a statistical red flag on the telco’s computers.

  7. first though would be to reduce the number of calls by encoding nibbles in the time between the initial ring and the next.
    so the number of calls would be n+1 to transmit n nibbles of data. Like this
    init_call -> delay_sec_and_call(nib_val) -> delay_sec_and_call(nib_val) …. end.

  8. Some cell networks play a ringing sound to the caller while trying to find an available channel to page the phone on the receiving end of the call. This makes it difficult to tell whether the phone has started to ring. When calling my phone to locate it, I often hear two or three rings before the cell phone starts to ring.

  9. Why not use two sims one set for 0 one set for 1 and then call from the number representative of each digit, it would be faster and still cost nothing. and then you can use asci for the message

    1. Google Voice and or Google Hangouts provides free SMS reception and a free Google Voice telephone number to send it to. Using some sort of “screen scraping” application you could have the data sent to another program for manipulation of the SMS data like making a table lamp come on with some sort of IoT interface.

      Or triggering an automatic Microsoft SKYPE-OUT conference call?


  10. Cool hack…

    How about this?:

    Using Microsoft SKYPE-IN and Out – get an IN number (i.e. VOIP) that is not published anywhere. Then when the payphone user puts 50 cents in (not a quarter any more), they call the Skype-IN number. You have a voice modem attached to the receiving PC which exploits the Caller Id function of the modem. It never answers the phone. It just strips the CID and saves it to a variable in your home-grown program.

    The user hangs up and get their 2 quarters back. If the payphone accepts incoming calls, which many of them don’t, SKYPE-OUT then does a conference call to the number in the variable (i.e. the payphone) and a prearranged 2nd telephone number (or skype user) and you are now connected for free (i.e. Skype uri skype:number1;number2;?call). The program times out in say 5~10 minutes (arbitrary range) and then terminates the connections waiting for next phone call event.

    If you don’t desire a voice transaction during this call event you could design a Morse Code or PSK31 Audio Transceiver that looks like a sophisticated Pocket Tone Dialer with a LCD screen and keyboard (of course with an Arduino microprocessor). :-)

    [Note: However, Google Play has this already for audio Morse Code Xcvr on Smartphones]

    If you have a bunch of canned messages you could fully exploit the 5~10 minute limit on the call. The Skype-In line is freed up during the event for other callers but you will not get a call back while the other user is using the system. You’ll just have to try again in a few minutes. Or you could busy out the Skype-In line with a ATH1 command to the modem during the user-1 event. Then user-2 gets a busy signal. ATH0 would be automatically sent to free it up.

    You could use a VOX circuit or a dual NE567 circuit to monitor the conference call for a call timer reset and/or call hangup reset. That way the length of the call could be unlimited versus 5~10 minutes. Which is an arbitrary time range. Experimentation would be indicated here.

    I think Visual Basic would work well here as you can do SENDKEYS() to the applications to open (browsers and send URIs) and close the latent opened screens down with a CTRL-F4. Also VB works well with modem commands over COM1: or COMx:. VB can control other applications unlike browser scripting languages which are hampered by browser security issues. VB can also strip off the modem voice responses like “RING”, “703-555-1212”, and “Payphone” using it’s string manipulation functions.

    NOTE: Skype-IN is NOT free! It will cost you $XX amount per year. Skype-Out is free for now.

  11. Back in the day (which can still be done) you call the AT&T operator (dial 00 not just 0 or 1-800-225-5288) to make a person-to-person collect call. Prisoners do it all the damn time!

    Ask the operator SPECIFICALLY for a person on the other end BY NAME who will accept or deny the collect call. Make the name believable and not too goofy. Try something like Dr. Benjamin Glickstein. When your partner hears this very unique sounding name he is delivered a coded message and promptly DENIES to accept any charges as Dr.Glickstein is not here right now (not even a lie either). He now knows what you wanted but for free.

    Most payphones will allow calling 00 or 1-800 numbers without even putting coins in. Some goofy off-brand ones require the coins just to hear a dial tone. Don’t fool with those types. They are just ridiculous payphones that may even block AT&T 1-800 ‘s or any toll-free number except their own. Just look for an AT&T payphone at the airport, train, hotel, or bus station. Even the credit card phones will allow calling AT&T operator without a credit card.

    You and your partner make up a list of believable names with what they mean. Using the same name is dangerous as you might get the same operator and she will get suspicious with all of the denied collect calls coming from the same payphone.

    Another trick is to use a voicemail box that has 1-800 number access. Could be for a cheap pay-go cell phone you leave powered off so it goes straight to VM. You both know the password so you just leave voice mails for each other and delete them after reading. You don’t need a password to leave the message either only to retrieve it.

  12. I invented something similar, which I called SIT-COM. Man, I thought that was tedious, but this method here is beyond believable. At least I can communicate free from payphones in less than a minute. The scheme described here has next to zero utility! I’ll stick with SIT-COM.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.