947bd1969f643a690d23de37a85a39f58081f100
[SaveMySugar/python3-savemysugar.git] / README.md
1 SaveMySugar
2 ===========
3
4 SaveMySugar is an experiment about transmitting and receiving messages for free
5 using phone call rings to encode Morse code.
6
7 The name SaveMySugar is a joke on the price per bit of SMSs (Short Message
8 Service) which is quite high, and the distress signal Save Our Soul used in
9 Morse communications.
10
11 See [http://savemysugar.ao2.it](http://savemysugar.ao2.it) for further details.
12
13 Tutorial
14 --------
15
16 The "measure" pass in 1. and 2. assumes that there are two serial modems
17 attached to the same host connected to two independent phone lines, so that
18 a single program can control both the transmitter and the receiver device.
19
20 A possible setup is to have two cell phones providing serial ports over which
21 the programs can send AT commands and receive RING notifications.
22
23 1. Measure the call setup time using `src/measure_call_setup_time.py` and take
24    note of `Max call setup time` and `Call setup time uncertainty`.
25
26 2. Measure the distance between rings in the same call using
27    `src/measure_ring_distance.py` and take note of `max_distance` and
28    `uncerainty`.
29
30 3. Adjust the parameters in `src/savemysugar/CallDistanceTransceiver.py` using
31    the values measured before, possibly approximated by excess.
32
33 4. Transmit and/or receive a message using `src/transmit.py` or `src/receive.py`
34
35 The sender and the receiver must use the same parameters.
36
37 In a future version it should be possible to pass the parameters as command line
38 arguments to `transmit.py` and `receive.py`, but for now these values have to be
39 hardcoded.
40
41 Dependencies
42 ------------
43
44 The only dependencies are:
45
46 * python3
47 * python3-serial
48
49 Authors
50 -------
51
52 Written by Antonio Ospite <ao2@ao2.it> starting from an idea by Corrado Rubera.