Introduction: Telephone Recorder Made the Easy Way
One may find many phone recorder circuits on the Internet, but to my knowledge none uses the super useful circuit board that combines the ATmega32u4 microcontroller and MicroSD data reader/writer (DOS formatted). The board, called "Adalogger", is offered by Adafruit. I have used it in three separate circuits and find it to an excellent solution to data storage problem. Even though the 32u4 clocked at 8 MHz seems underpowered for audio recording, my little recorder can easily produce mono .wav files at 38.4 kHz sampling rate - just a touch below the 44.1 kHz CD quality. You can judge it for yourself by playing the .wav sample included below.
This project has risen from a combination of ideas already presented by three people:
Telephone audio interface (Bill Bowden's Hobby Circuits) http://www.bowdenshobbycircuits.info/page8.htm#ph...
Audio amplifier (Arduino Audio Input by Amanda Ghassaei) https://www.instructables.com/id/Arduino-Audio-In...
Software for audio recording in .wav format (Arduino (Mega) Audio Recording by David Patterson) https://www.instructables.com/id/Arduino-Mega-Aud...
Bill presented a very simple circuit for extracting the audio signal from relatively high DC voltage of the phone line; see his page for details. Amanda has already described fundamentals of audio amplification, digital sampling and interfacing with Arduino boards. David used Amanda's ideas to make the practical sound recorder from Arduino Mega and a separate MicroSD breakout board. I took David's complicated Arduino software (much of which is dedicated to handling an LCD panel), simplified it and adopted to 32u4 chip.
Step 1: The Circuit
List of Components
R1 = 220 Ohm, 1/4 W
R2,R3,R5 = 100 kOhm, 1/4 W
R4 = 15 kOhm, 1/4 W
R6 = 620 Ohm, 1/2 W
C1,C2 = 47 uF, electrolytic
C3 = 10 uF, electrolytic
C4 = 100 nF, non-polarized
C5 = 2 uF, 400 V, non-polarized
CHARGE_PUMP = TC7660
IC2A = TL082 (op amp)
Diodes D1,D2 = UF4004 (or equivalent)
ADALOGGER 32u4 board from Adafruit
TR1 = 1:1 isolation transformer LM-NP-1001-B1 from Bourns
SW1 = pushbutton
CN1 = barrel power jack
Not shown on diagram:
1x 5V power adapter with barrel connector
1x RJ11 phone jack
1x RJ11 phone connector
The sole purpose of the charge pump sub-circuit is to provide negative voltage, generated from the power supply positive voltage, for the operational amplifier. Feel free to replace it with something better, if you have it. TC7660 works well enough for me. I've placed the phone interface on a separate board screwed to the top of the containing box. The box, by the way, used to contain iPod Nano when I bought it many years ago. Its easy to make holes in its thin polystyrene walls with a hot knife.
Below is the Fritzing project file for your convenience.
Step 2: The Code
Computer code included below is based on David Patterson's Arduino project who, in turn, borrowed some code from Amanda Ghassaei. Their neat trick of using two buffers, where one is recording while the other is being copied to an SD card, works very well. I use original SanDisk Ultra, 16 GB. Cheap copies/clones may not afford the 38 kHz sampling rate. Push button toggles recording on and off. Solid LED light means recording is in progress. Blinking LED indicates an error; usually I get it when I forget to insert the SD card. ;)
If you want an optional debug output in the Arduino IDE's Serial Monitor (set it to 230400 baud), then uncomment the //#define DEBUG line and recompile.
I didn't bother with setting real date and time. For that you would need a real time clock circuit. Check my other Instructable to see all about using a real time clock.