Several years ago, a scammer woke me up at 4 am. Some nonsense about me "owing to the IRS". A few months later, some clueless telemarketer forgot about the existence of time zones and rang me up at 6 am. "It would be awesome to have a device that turns phone off during the night hours, then turns it back on during the day, all done automatically!" - was an obvious idea that popped into my mind. That was years before I have got myself interested in electronics.
Yes, I am talking about the POTS (plain old telephone service, a.k.a. landline), since modern smartphones have this useful function built in. Now that I know a bit more about electronics and POTS in particular, I figured that turning the entire phone off is actually an overkill. I have built a circuit that achieves all of the following objectives:
- It prevents ringing of all the phones in the house that are on the same line, simultaneously.
- To the outside caller it just appears like nobody is picking the phone up.
- Otherwise, the circuit does not interfere with normal phone operations and calls can be made at any time.
- It is powered from the phone line itself. There are no other power sources.
- It is practically undetectable by the phone company, because it uses only a very small amount of power during its 6-minute startup, after which it enters a very low power mode using only 4 uA of current.
If you already know all the basics of POTS signaling, or don't care about the underlying principles, then you can skip the next step.
Step 1: Phone Line Power and Ring Signaling
First, read this excellent page (from which I borrowed the ring detector idea) for all the gory details. In short, with all phones on-hook the incoming phone line bears an open circuit DC voltage of ~50 V (it's 51 V at my house). This is a pretty lousy, unregulated power source because of its relatively large output resistance. Thus, connecting any practical load drops the voltage precipitously. For example, picking the phone off-hook drops the line voltage below 8 V (6.7 V in my case).
Jason Smith, who proposed to draw electricity from the phone line in this Instructable, measured the resistance of POTS line at 628 ohm. Thus, drawing only 75 mA from his line drops voltage 10-fold. I don't recommend drawing any sizable power from the phone line on permanent basis, since both current and voltage drop will be detected by the phone company, who will send a tech to investigate. But because phone wire lengths and quality of their insulation vary, the company will tolerate some voltage drop. Conservatively, I figured that a temporary line voltage drop down to 47 V and a small current below 10 mA won't raise any alarms. Of course, in the long term the line voltage should be above 48 V at all times with current being as small as possible. Read Hermon Labs report and this blog for useful details.
An incoming call signal, which rings your phone, features the ~80 V (RMS) AC current! Yes, your eyes are not deceiving you: that's ~ 250 V peak-to-peak sinusoid. And, it is usually overlayed on top of the regular 50 V DC. The first figure above shows typical ringing signal on my line. Note that the voltage swings between -68 V and +168 V. There are four 2-second rings separated by 4-seconds of silence. It is during these silence periods the calling party receives progress signal (a.k.a. ring-back). The second figure zooms on the first ringing signal. When I pick up my phone, the company computer detects impedance load on the line and stops the ringing signal. And this exactly is the basic operational principle of my circuit:
- Detect incoming ringing signal.
- Quickly connect sufficient impedance so that the phone company drops the signal before any of my phones ring.
Step 2: The Circuit
Parts (refer to the diagram above):
- Ring detector
- C1 = Capacitor 470 nF, 400 V, non-polarized
- D1 and D2 = Zener diodes 1N4742A, 12V
- D3 = plain vanilla diode 1N4148
- R1 = Resistor 10 kOhm, 1/4 W
- Optocoupler (I used 4N35)
- Power management
- Ring tripper
- R3 = Resistor 15 kOhm, 1/4 W
- R4 = Resistor 680 Ohm, 1/2 W
- M1 = N-type MOSFET transistor, 2SK2545
Although most parts can be substituted by their equivalents, the last two parts in "power management" are critical to the operation of this circuit and to its invisibility in particular. LM2936 is an awesome regulator with an ultra-low quiescent current. 99.99% of time, when the circuit is in its dormant state, the LM2936 let's sip through only 4 uA (yes, 4 microamperes, as I measured it empirically) of current! Thanks to that, the line voltage is back at its normal 51 V value. The circuit is totally invisible! Not to mention we are being nice to the phone company. ;) When I used the vanilla LM317, as much as 2.8 mA was flowing in waste - not acceptable.
The supercapacitor acts like a battery storing the charge needed during the milliseconds of circuit operation. The line voltage doesn't even budge at that time. 0.1 F seems like an overkill for this particular application, but the circuit is designed with the future expansion in mind. For example, in testing my fully charged supercap could supply power to a Trinket Pro microcontrollerand to the real time clock for full 10 seconds! Otherwise, in dormancy the supercap holds the charge very well at the rock solid, regulated 5 V.
The only time power is drawn from the phone line is at the initial charge-up. My tests revealed that the supercap is charged from 0 to 5 V in about 6 minutes. The line voltage drops at its lowest initial point to 47 V, but then it steadily climbs up to 51 V. Quite reasonable, IMHO. Thanks to R2, the charging current is no larger than 3 mA at its peak.
Step 3: How Does This All Work?
The incoming ringing AC signal, as shown in the first image of Step 1, triggers the ring detector sub-circuit. Details of its operation have been described elsewhere. In short, the C1 allows only AC current to pass through, while the role of two opposing Zener diodes is to filter out AC signals with peak voltage smaller than 12 V, such as dialtone and speech. Ringing signal easily passes this barrier and induces LED in the optocoupler. This turns the optocoupler's transistor on and allows current to pass from C2 through optocoupler and R3 to the ground. Voltage that builds up on R3 activates the MOSFET's gate, the MOSFET turns on and allows the current pass directly between phone line wires via the R4 resistor.
The net effect is that shortly right after the ringing signal starts the phone line sees connected impedance of 680 ohms. In other words, the phone company computer "thinks" someone picked the phone up (since going off-hook puts impedance on the line) and cuts the ringing off. This is illustrated in the first image above by the blue trace; compare it to the first image in Step 1. (The yellow trace is the MOSFET's gate voltage.) Instead of the regular 2 seconds, the ringing signal is cut short to about 0.1 second (second image). Moreover, peak-to-peak voltage is squashed down to the (-36 V, 78 V) range. Compare it to the unaffected regular signal in the third image. Apparently, this is not enough to trigger ringing recognizer in modern phones (at least in all the phones I have at home), so they remain silent. What's interesting is that the caller hears the normal progress signal, like nothing happened, and thinks that nobody is home. ;)
So far, I have described only the analog part of the device mentioned in Introduction. Obviously, this circuit knows nothing about the time of the day and squashes rings regardless. In this form, it's ideal for either heavenly patient people, who will always remember to plug it in in the evening and out in the morning, or as a toy for pranksters. :) For regular users, it still needs a digital part where a real-time clock (RTC) turns it on and off at preset times. See the next step...
Ah, one more thing: To indulge StuartB44, let me point out that connecting anything to phone lines may be illegal in some countries. In other words, if you do it, you are responsible.
Step 4: Adding the Real Time Component
One way to add time control is to pair a real-time clock (RTC) chip with a microcontroller unit (MCU) - along with an independent power source, because MCU is likely to draw a sizable amount of current. My ambition is to power everything from the phone line and still keep the circuit "invisible". Certainly, it is possible to put the MCU in a dormant state, then wake it up with interrupts generated by RTC, etc. You are welcome to do so, if you wish. I have got a simpler idea where the MCU is not needed at all for the regular circuit operation, only for its setup. Take a look at the diagram in the first image.
What replaces a complicated MCU in making on/off decisions is a very simple T flip-flop chip. Read its Wikipedia page if you are not familiar with this fundamental element of digital electronics. In short, its output, Q, toggles between 0 and supply voltage upon receiving clock impulses. (I have actually built it from JK flip-flop, M74HC112, by tying both the J and K inputs to the supply line.) Hence, it provides a nice "translator" between time pulses and on/off states.
Now, how do we use the state of Q output to connect/disconnect impedance to/from the phone line? Simple. In the analog part of our circuit the signal from ring detector activated MOSFET transistor acting as a switch. Thus, a second MOSFET paired with the first one in a logical AND configuration should be the simplest solution. Indeed, the 680 ohm resistor, R4, connects to the phone line only when: 1) ring is detected; AND 2) the flip-flop's Q output is high.
It is the RTC chip that sets the Q output low or high. Initially, I experimented with Adafruit's PCF8523 breakout board, but found it inadequate for my purposes: it features only one alarm. Ah, if you are not sure what I am talking about: modern RTC chips can be set to store a particular date and/or time in their memory. When real time reaches the stored value, RTC outputs an interrupt signal on one of its pins. This alarm can periodically repeat itself, e.g., every day if hour/minute/second registers are set while day/month/year ones are ignored. But we need to trigger the T flip-flop at two different times per day, thus we need two independent alarms. Another of Adafruit's products, the precision DS3231 RTC has two alarms, but the problem here is that when either is triggered the resulting interrupt signal is a permanent change from high to low voltage. Resetting it back to high requires intervention from an MCU… Bummer.
PCF85263, a newer RTC chip from NXP Semiconductors, however, is perfect in this respect. It has two independent alarms and its interrupt signals can be configured as pulses. In addition, it's SO8 package perfectly matches that of PCF8523, so I simply desoldered PCF8523 from the breakout board and soldered PCF85263 in its place. Works like charm!
In summary, the additional parts needed for time control are:
- U4 = M74HC112, dual JK flip-flop triggered by the negative edge of clock pulse.
- U2 = PCF85263, real time clock along with the required 32 kHz oscillator crystal, Y1, and decoupling capacitor, and battery backup, and I2C pullup resistors… Ugh, just get PCF8523 from Adafruit and swap the RTC chips.
- Q1 and Q2 = two IRF630B, N-channel MOSFET transistors. (So, you ask, what happened to the 2SK2545? Well, I simply did not have two of these, so I used IRF630B.)
- R5, R6, and R7 = Pullup resistors 10 kOhm, 1/4 W
There is a very important caveat you must be aware of (and of which I learned the hard way): the M74HC112 flip-flop will draw a relatively large current unless all of its input pins are connected! The chip has actually two JK flip-flops; I used only one leaving the other unconnected and was surprised by a huge power draw. But after securing all the unused input pins to the ground the supply current dropped to a single digit uA range. Make sure you leave the unused output pins, Q and ~Q, on both JKs unconnected!
How it works? To set it up, I connect an MCU (Arduino Mega in my case) to the P1 connector: ground pin to the ground, the SCL and SDA pins to their counterparts, and two digital pins to CLR and PR, respectively. What are these, you ask? When a JK flip-flop is first powered up, its Q and ~Q outputs are in a random state. Hence, the M74HC112 chip has preset, PR, and clear, CLR, pins that let the MCU initialize Q and ~Q to a state appropriate for the time of the day. Read the data sheet for more details. Next, the MCU transmits instructions setting the alarms, interrupt type, etc., to the RTC through SCL/SDA pins using I2C protocol. After this setup the MCU is disconnected and the circuit flies on its own solely from the phone line. For example, during the daytime MCU would set the Q output to a low state, then set the first alarm sometime in the evening hours range and the second in the morning range. When the first alarm is triggered, the RTC sends a short rectangular impulse, as illustrated in one of the images above, whose falling edge would flip the Q state from low to high activating the Q2 MOSFET. The circuit would the kill incoming phone rings during the night when the Q1 is activated. In the morning the second alarm pulse would deactivate Q2 and all phone rings would be allowed during the day since the state of Q1 wouldn't matter.
This cycle repeats indefinitely until the MCU is connected again to change the alarm(s), or until something breaks, or the phone company comes knocking. ;) In the embedded video, I connected an LED to the unused ~Q pin in a way that lists it up when ~Q is low => it indicates the high state of the Q pin. Next, I instructed the RTC to send an interrupt pulse every second to test the system.
Lastly, was it all worth the effort? Take a look at the last two images: under normal operation the circuit (without the LED) draws only 10 uA of current and the line voltage remains at a very healthy 51 V! In spite of more connected components the "killer" still remains "invisible". :)