Introduction: PICAXE - Telephone Telemarketing & Robocall Blocker
Friends are you tired of telemarketing and robocalls on your home phone? Air-duct cleaning company annoying anyone out there? I detest them. Do you find telephone circuits interesting and want to learn more about them? If you do, then this project might be for you.
The Blocker in this project can be plugged into any phone jack in your house. When someone calls it will detect the incoming ring and seize the phone line immediately, so you will not hear the phone ring. Next it will play a short message, which you will record on an inexpensive voice recording module, instructing the caller to press "1" if they wish to speak with you. If they do not press "1" within 20 seconds the Blocker will hang up. Most telemarketing calls are robocalls. A computer calls your line and if it detects that you picked up the phone it will connect you to a human telemarketer. This takes time, sometimes up to 4 or 5 seconds, to happen. We can exploit this delay and use it to block computer dialed calls. If there is a real person calling you, say one of your friends, then they will hear this message and press "1". If your number is dialed by a computer then it will not understand this message and it will be busy connecting you to a human telemarketer. By the time that person is on the line a few seconds later, the message is over, they will not have heard it and will be greeted by dead silence and then shortly after a hang up. They will not know they are supposed to press "1". If you receive a legitimate call from an actual human and they hear your message they will press "1", then the Blocker will place a ring tone on the line, so the caller knows the Blocker is ringing for you. The Blocker will also play a ring tone through a speaker mounted in its box loudly enough for you to hear it. When you pick up your phone the ring sound on the line and in the speaker will stop and you can talk to the caller. If you do not pick up the phone, the Blocker will ring for a pre-determined number of times and then hang up. We will also build in a timer that causes the Blocker to shut itself off after 1, 2 or 4 hours. We will also build it so that we can choose to leave it on all the time. Telemarketers tend to call in the early evening hours around dinner time. So the the idea here is that you can turn it on for a couple of hours during that period and then forget about it, it will turn itself off later. This Blocker does not have voice-mail, so it is not intended to be left on when you are out, unless you don't care about that in which case you also have that option. Possibly in a future project there will be a version 2.0 blocker that has voice-mail and can ring all the phones in the house too, but at the moment version 1.0 will have to suffice. I consider providing the design details of this project to anyone that wants to build it a public service. This is not a simple project to build, calibrate and get working, so you probably don't want to try building this if you are a beginner in electronics. You also need to be able to troubleshoot it if you have made an error building it and be knowledgeable enough to modify it slightly if it won't work on your particular phone line. I have made many functions adjustable, so in 99% of the cases you should be able to get it to work. I'd estimate that it will cost you about $40 - $50 to build.
Step 1: Processor Circuit Diagram and Description of How the Circuit Functions
Here we will discuss the Blocker Processor circuit. For this we will use a PICAXE 20X2 (U3). The ISD1820 module is shown in the picture also.
J1, R11 and R12 make up the programming interface. You plug an AXE027 programming cable into this jack to program the processor. See http://www.picaxe.com/Hardware/Cables . See http://www.picaxe.com for programming software and information on PICAXE chips.
LEDs 3 to 6 are used to indicate if a 1, 2, 4 hour or infinite shut down time delay has been selected. Pot R9 is used to select a shut off time delay. Pin C.3 is configured as an ADC pin in order to do this. SW3 is used to set a time delay. Once the delay is selected by Pot R9, pressing SW3 will set this delay time and turn on LED7. LED7 is used to indicate that a shut off delay time has been selected and the circuit is now active.
U4 is the ISD1820 sound recording module. This module comes with record and play buttons and control pins as well as an onboard microphone. Recording your message, something like "Press 1 to connect to Bob" is as easy as pressing the record button and speaking into the microphone. Here we connect one of the speaker pins to U5's input. Either one seemed to work for me. U5 is used as an adjustable audio amplifier which feeds the recorded audio onto the phone line via C10. Pot R8 is used to adjust the audio volume of the message the caller hears.
Note that the U5 power pin (pin 8) is connected directly to the wall adapter power supply voltage in order to provide enough distortion free audio amplification.
Pot R13 feeds an outgoing ring signal locally generated by the PICAXE onto the phone line via C11. This ring is heard by the caller after they press "1". Pot R13 is used to adjust the volume of the ring signal that the caller hears. Q1 amplifies the ring signal fed to the local loudspeaker. The volume of this sound is controlled by R15 (mounted on the front panel).
The incoming ring signal is detected by U3 pin C.0 which is fed by the phone line interface circuit to be discussed next.
Step 2: Phone Line Interface Diagram and Description of How the Circuit Functions
Here we discuss the circuit which interfaces with your home phone line.
C14, Zener D1, D2, Zener D3, R22 and U6 form the circuit which detects the incoming ring signal when your home phone line is called. The ring signal is an 86 VAC, 20 Hz sine wave. There is also -48VDC across the phone line when it is on-hook (i.e. no one has picked up the phone). C14 blocks the -48VDC and provides approximately 17K ohms of impedance at 20 Hz. Zener diodes D1 and D3 prevent low level noise from triggering the circuit. R22 adds current limiting. When an incoming 86 VAC, 20 Hz sine ring signal is placed on the phone line with the positive cycle on phone line 1, C14 conducts, D1 conducts, U6 internal photo diode conducts, zener D3 breaks down and has 18V across it, R22 conducts. At this point approximately 3 ma of current is passing through the U6 photodiode. This turns on the U6 transistor and current flows from the transistor collector to emitter. LED14 lights momentarily, C15 is charged and the voltage on U3 Pin C.0 rises to just above 3 volts. This is detected by U3 as an incoming ring signal. D2 protects U6 when the ring cycle reverses polarity.
When an incoming ring signal is detected U3 energizes relays K1 and K2. When relay K1 is closed R23 (330 ohms 1/2W) is placed across the phone line. Also LED 8 and R24 (330 ohms 1/2W) are placed across the phone line. When this happens we have approximately 165 ohms across the phone line and this draws current through the line. This current flow is detected by the telephone company and interpreted as you answering the call. When this current is drawn the incoming ring signal ceases and the DC voltage on the phone line will fall to between about - 9 VDC and - 3 VDC depending on how far your house is from the local central telephone office (C.O). So now the blocker has answered the call and seized the phone line. It is as if you have picked up the phone as far as the phone company is concerned. LED8 will illuminate indicating and off-hook state. Diode Bridge 1 ensures that no matter what the polarity of the connected phone line is, LED8 will have a positive DC voltage from the phone line on its anode and U7 will have a a positive DC voltage from the phone line on pin 1.
U7 is used to measure the DC voltage on the phone line while providing isolation. R25 limits maximum current draw through U7's photodiode and R26 adjusts current flow through U7's photodiode. R27 and R28 serve similar functions for U7's photo transistor. Because the DC voltage on the phone line varies slightly when a house phone is picked up, we use U7 to monitor the DC voltage on the line to sense when the home owner has picked up or hung up the phone. U7's collector is connected to U3 pin C.7 which is configured in ADC mode in order to do this.
All of the above occurs the instant K1 is energized. Milliseconds later K2 is energized. This connects the phone line to the audio section of our circuit. C12 and C13 block DC voltages on the phone line and help to impedance match the circuit to the phone line. T1 is used to match the audio circuit to the phone line and to provide isolation. C9, C10 and C11 connect the phone line to various parts of the audio circuit. C10 interfaces the outgoing recorded message to the phone line. C9 interfaces the tone decoder circuit which detects when a "1" tone is pressed on the callers keypad. When an incoming "1" is detected, K3 is energized and the outgoing ring sound generated by U3 is connected to the phone line via C11.
Step 3: Tone Decoder Diagram and Description of How the Circuit Functions
Here we discuss the tone decoder circuit.
When a caller presses "1" on their key pad this sound is fed to the tone detector circuit. Pressing the "1" key generates two audio tones mixed together: 697 Hz and 1209 Hz. Together these provide a unique identity. When the circuit detects both of these tones, it knows an incoming "1" has been detected. The LM567 is a tone decoder I.C specifically designed for this kind of task.
U1 is tuned via R1, C1, C2 and C3 to detected tones close to 697 Hz. R1 is used to fine tune the circuit to detect almost exactly 697 Hz. When this tone is present, pin 8 is pulled low, LED1 lights and a low signal is sent to U3 pin B.4. U2 is tuned in the same way by R2, C4, C5 and C6 to detect tones close to 1209 Hz. R2 is used to fine tune the circuit to detect almost exactly 1209 Hz. When this tone is present, pin 8 is pulled low, LED2 lights and a low signal is sent to U3 pin B.5. When both pins B.4 and B.5 are low, U3 knows that a legitimate "1" has been detected and proceeds to send a ring signal to both the caller and the receiver.
C7 and C8 are power rail bypass capacitors which should be placed as close to U1 and U2 power pins as possible.
Step 4: Power and Relay Circuit Diagram and Description of How the Circuit Functions
Here we discuss the power and relay driver circuits.
K1, K2, K3 and K4 Relay coils are energized by transistors Q2, Q3, Q4 and Q5. We use these transistors because the PICAXE can supply a maximum of 20 ma per pin and these relays demand more than that. Each relay is controlled by an individual pin on processor U3, so it can control all relay states independently. Diodes D4, D5, D6 and D7 are protection diodes and these protect the transistors from the back EMF on the relay coils. Do not omit them or your transistors will not last long. LEDs 9 to 12 are used to indicate when a relay coil is energized. As such these are optional but I found them extremely useful indicators when troubleshooting the circuit. If you make a mistake building it you will need to have these to help you troubleshoot the issue. I placed these on the circuit board close to each relay. Each relay has two sets of contacts or is double pole double pole (DPDT) in most cases we only need to use one set of contacts. Relay contacts are shown on the other circuit diagrams.
C16 and C17 are power rail bypass capacitors which should be placed as close to U3 and U5 power pins as possible. C18 provides bulk capacitance to filter any power bumps.
U8 is an LM317 adjustable voltage regulator. With this you can convert the voltage from a wall adapter, typically 9 to 24 V to the 5V required by most of the circuit. C19, C20 and C21 are filter capacitors. R38 allows for voltage adjustment. For R38 use a multi-turn type pot. R38 and R39 have been selected so that the maximum voltage out of the circuit is about 5.2 V. Adjust R38 for a 5.0 V output. D8 and D9 are protection diodes in the event of a short across the output, these discharge C20 safely.
SW1 is used to power the circuit on. when SW1 is pressed +5V is applied to all 5V power rails in the circuit. U3 is powered up and the first thing it does is turn on relay K4. Now K4's contacts are closed and when SW1 is released, the microprocessor now controls circuit power via K4. If SW2 is pressed this breaks the power connection. K4 powers off and the circuit is off until SW1 is pressed again.
Step 5: The PICAXE Program Part 1
The program is fully commented.
Step 6: The PICAXE Program Part 2
Step 7: The PICAXE Program Part 3
Step 8: Parts List
Processor Circuit Parts List:
1 x PICAXE 20X2 (Solarbotics)
1 x ISD1820 voice recorder module (Dx.com)
1x LM358N op-Amp
1 x 2N2222 transistor
1 x 3.5mm stereo jack
1 x 2.5“ 8 ohm loudspeaker
1 x pushbutton switch (N.0)
5 x LEDs
1 x 20K board mounted potentiometer
1 x 500 ohm multiturn board mounted potentiometer
2 x 5K or 10k bulkhead mount linear potentiometer
1 x 1K resistor
1 x 4.7K resistor
3 x 10K resistor
5 x 330 ohm resistor
1 x 22K resistor
1 x 20 pin IC socket
1 x 8 pin IC socket
Telephone Line Interface Circuit Parts List:
2 x 4N25 Optoisolator IC
2 x 1N5248 18V zener diode
1 x 1N4007 diode
1 x 0.47 uf 250V capacitor
1 x 1K resistor
1 x DF 10M-2 diode bridge
2 x 330 ohm 1/2 watt resistor
2 x LED
3 x 330 ohm resistor
2 x 5K board mounted potentiometer
2 x 1 uF 50V ceramic capacitor
3 x 0.47 uF ceramic capacitor
1 x 4TU016-RC 600:600 ohm audio transformer (Mouser, Sayal)
1 x 1 uF 16V electrolytic capacitor
2 x 8 pin IC socket (for 4N25)
3 x HK19F-DC5V-SHG relays (5V - DPDT) (Dx.com)
Tone Decoder Circuit Parts List:
2 x LM567 tone decoder IC
2 x 8 pin IC socket
2 x 20K board mount potentiometer
4 x 0.1 uF
3 x 2.2 uF electrolytic capacitor
1 x 4.7 uF electrolytic capacitor
2 x LED
2 x 330 ohm resistor
2 x 10K resistor
Relay Driver and Power Circuit Parts List:
6 x 1N4007 diode
5 x LED
5 x 330 ohm resistor
4 x 10K resistor
4 x 2N3904 transistor
1 x HK19F-DC5V-SHG relay (5V - DPDT) (Dx.com)
1 x pushbutton switch (N.0)
1 x pushbutton switch (N.C)
3 x 0.1 uF capacitor
1 x 470 uF 16V capacitor
1 x 500 ohm multiturn board mounted potentiometer
1 x 270 ohm resistor
1 x 240 ohm resistor
1 x 10 uF tantalum capacitor
1 x 1 uF tantalum capacitor
1 x LM317 adjustable voltage regulator in TO220 package
1 x heatsink for the LM317
1 x Project box Hammond 1591ESBK (Sayal)
1 x prototype board approx 16cm x 9cm (cut to fit in box if needed)
1 x Wall adapter 9V to 24VDC, 500ma
4 x 1/4" standoffs with 4-40 screw thread
8 x 4-40 1/4" screws
4 x 4-40 3/8" screws
4 x 4-40 nuts
4 x 2 pin screw terminal
2 x 1/4" rubber grommet
2 x potentiometer knobs
1 x RJ31 pre-wired phone plug with 4 ft of wire
30 AWG wire wrap wire
20 AWG wire
Step 9: Circuit Construction - Breadboarding
When building this circuit it is highly advisable to build it on a breadboard first to get it working. You see the main breadboard in the picture. Here the power circuit is not seen as I just used a benchtop supply for the initial circuit.
Step 10: Circuit Construction - Final Circuit on Protoboard
The final circuit on protoboard is shown above. Here I used point to point wiring using 30 AWG wire wrap wire on the bottom side. Connections to the phone line, power, ISD 1820 module and and speaker us screw terminals. LEDS, switches and Potentiometers were wired directly to the board. The LM317 should be heatsinked.
Step 11: Construction - the Front Panel
Use masking tape on the box lid to mark out the location of all the LEDs, switches and pots as well as the holes for the speaker. Drill a small pilot hole first and then use a larger bit to drill to size.
Use Word to create labels for all the LEDs, switches and pots. Cut these to size and use clear tape or glue to attach them.
Insert all designated LEDs, switches and pots in the front panel.
Step 12: Construction - Mounting It in the Box
Drill 2 holes to fit the grommets you are using in the side of the box where the power and phone cable connectors are located on the protoboard. Insert the grommets and thread the power and phone line cables through. Insert the wires into the correct connectors on the protoboard and tighten them. Next put a cable tie around the cable just inside where it enters the box to act as a strain relief.
Drill 4 holes in the bottom of the box to match the 4 holes on the corners of your protoboard. screw in 1/4" standoffs and screw the board to these at all 4 corners. Use hot glue to attach the ISD 1820 module to the side of the box at a convenient location so that it is secure and does not move around and short something out.
Step 13: Setup and Calibration
You likely want to perform these procedures prior to placing the circuit board in the box so that you can make adjustments or measurements and troubleshoot.
1. Place a voltmeter from U8 pin 2 (Output) to ground. Adjust R38 until you measure 5.0 Volts. Note do not press SW1 until you have done this. The LM317 circuit is limited to a maximum of 5.2 volts so the circuit will not be damaged under normal conditions, however if you have made a mistake during circuit construction it could be as high as the wall adapter voltage which would destroy U3. Also the remainder of the circuit calibration depends on a 5.0 V supply.
2. Load the TTRB Calibration program into the PICAXE. Press and hold the power button (SW1) during programming.
3. Place a voltmeter across R25 and adjust R26 until you measure 1.0 Volts.
4. Place a voltmeter from U7 pin 5 to ground. Adjust R28 for 2.0 volts.
5. Observe in the debug window that the ADC reading is approximately 100.
6. Pick up your house phone handset i.e. go off-hook and observe that the ADC reading is approximately 140.
7. Note that in the program the ADC reading decision point is 120. That is < 120 is on-hook and > 120 is off-hook. If you do not achieve the approximate ADC values that I used, then modify the ADC value in your program to one that will work for your phone line.
8. Next lift your house phone handset i.e. go off-hook and leave it off hook. Press and hold the "1" button. Now slowly adjust R1 until LED1 lights. Next adjust R2 until LED2 lights. Now your tone decoder circuit is set to detect an incoming "1". If you are having trouble getting the tone decoder circuit to respond, adjust pot R8 because this volume setting on the LM358N circuit can interfere with the tone decoder circuit.
9. Load the Telemarketing Blocker 20X2 program into the PICAXE. Press and hold the power button (SW1) during programming.
10. Press SW1 and turn on the Blocker. Record a short message on the ISD 1820 module. Such as "Press one to talk to Bob". On the ISD1820 module, switch on the repeat function.
11. Rotate Pot R9 and observe that the delay time LEDs change as you do so. Set time delay to 1hr and press the Set button (SW3). Call your home phone with a cell phone and observe that K1 and K2 close and that you hear the repeating message on your cell phone. Adjust pot R8 for a comfortably loud distortion free playback. If the repeat function does not work temporarily disconnect the wire going to Play-E. If the circuit times out before you are finished, just call back again.
12. Next switch off the repeat function on the ISD 1820 module. Turn pot R15 fully anti-clockwise, i.e. turn down the speaker volume to zero. Call your house phone with your cell phone again. After you hear the message, press the "1" key on your cell phone and observe that K3 turns on.
13. You should now hear a ring sound on your cell phone. Adjust R13 for a comfortable ring sound level. i.e. audible but not too loud or distorted. Note do not turn the volume up too high or the sound may trip the tone decoders once in awhile and you don't want that to happen.
14. Next rotate pot R15 clockwise until you hear the ring sound in your local speaker. Adjust this to a comfortable level.
15. Setup and Calibration is now complete.
Step 14: Attachments
The attached zip file contains the PICAXE programs and circuit diagrams.
Step 15: Read My Ebook "PICAXE Microcontroller Projects for Makers" for More Projects Like This.
Read My ebook "PICAXE Microcontroller Projects for Makers" for more projects like this. Available at Apple, Chapters, Barnes and Noble, Smashwords etc.
This eBook contains detailed instructions on how to build and program 15 different PICAXE Microcontroller projects. It is very comprehensive and includes all of the programs as well as circuit diagrams, parts lists, photographs and construction details.
Visit my website at http://www.squeezebyte.com
Participated in the