ISD1820 Arduino Voice Record/Playback Tutorial
The Voice Record Module is based on the ISD1820 chip, a multiple‐message record/playback device.
It can offer true single‐chip voice recording, non-volatile storage, and playback capability for 8 to 20 seconds. The sample rate is between 8.0 KHz to 3.2 KHz for the duration of 8 to 20 Seconds for the Recorder.
This module use is very easy to use, which you could direct control by the push button on board or by Microcontroller such as Arduino, STM32, ChipKit etc.
Specifications
- Push-button interface, playback can be edge or level activated
- Automatic power-down mode
- On-chip 8Ω speaker driver
- Signal 3V Power Supply
- Can be controlled both manually or by MCU
- Sample rate and duration changeable by replacing a single resistor
- Record up to 20 seconds of audio
- Dimensions: 37 x 54 mm
If you want change record duration, an external resistor is necessary to select the record duration and sampling frequency, which can range from 8 – 20 seconds (4‐12kHz sampling frequency). The Voice Record Module of our provides default connect 100k resistor by a short cap. So the default record duration is 10s.
ROSC | Duration | Sample Rate | Bandwidth |
80 KΩ | 8 Sec | 8.0 KHz | 3.4 KHz |
100 KΩ | 10 Sec | 6.4 KHz | 2.6 KHz |
120 KΩ | 12 Sec | 5.3 KHz | 2.3 KHz |
160 KΩ | 16 Sec | 4.0 KHz | 1.7 KHz |
200 KΩ | 20 Sec | 3.2 KHz | 1.3 KHz |
If you want to extend it to Speakers (High power), you can use LM386, D2283, D2322, TA7368, MC34119 etc amplifier IC.
Pinout
- VCC– 3.3V power supply
- GND– Power ground
- REC – The REC input is an active‐HIGH record signal. The module starts recording whenever REC is HIGH. This pin must remain HIGH for the duration of the recording.
- REC takes precedence over either playback (PLAYL or PLAYE) signal.
- PLAYE – Playback, Edge‐activated: When a HIGH‐going transition is detected on continues until an End‐of-Message (EOM) marker is encountered or the end of the memory space is reached.
- PLAYL – Playback, Level‐activated, when this input pin level transits for LOW to HIGH, a playback cycle is initiated.
- Speaker Outputs – The SP+ and SP‐ pins provide a direct drive for loudspeakers with impedances as low as 8Ω.
- MIC – Microphone Input, the microphone input transfers its signals to the on‐chip preamplifier.
- FT – Feed Through: This mode enable the Microphone to drive the speaker directly.
- P‐E – Play the records endlessly.
You can control the Voice Recorder Module ISD1820 directly with onboard Buttons.
- Connect VCC from ISD1820 to any 3V power supply. In our case, we have connected to 3.3V on Arduino
- Connect GND to GND on Arduino.
Start using the Module!!
- Push REC button then the RECLED will light and keep push until record end.
- Release the REC button
- Select Playback mode:
- PLAYE, just need push one time, and will playback all of the records and until the pre-record sound end.
- PLAYL, you need always push this button until you want to stop playback record or end.
- P-E mode, when short P‐E jumper the record will playback repeatedly until jumper off or power down.
- FT mode, when short FT jumper, that means all of you speak to MIC will direct playback to Speaker.
Leave a Message to your loved ones!!
In this tutorial, we will use IR Sensor, ISD1820 Voice Recorder and Arduino to record and leave a message.
- When you wave across IR sensor it starts recording for 10 Seconds.
- When PLAYE button on the Voice Recorder is pressed it playbacks the recorded voice.
Circuit Connection:
IR Sensor | Arduino |
VCC | 5 V |
GND | GND |
OUT | 11 |
ISD1820 Voice Recorder | Arduino |
VCC | 3.3 V |
GND | GND |
REC | 8 |
P-E | 9 |
P-L | 10 |
Circuit Diagram:
Code:
#define IR 11 #define REC 8 #define PLAYE 9 #define PLAYL 10 void setup(){ pinMode(IR, INPUT); pinMode(REC, OUTPUT); Serial.begin(9600); } void loop(){ int i = digitalRead(IR); if(i == 0) { Serial.println("Someone's here!!"); digitalWrite(REC, 1); delay(10000); digitalWrite(REC, 0); delay(1000); digitalWrite(PLAYE, 1); delay(10000); digitalWrite(PLAYE, 0); } }
Comments (16)
How can I just use this as a microphone. I mean no recording and direct from microphone to speaker.
FT mode, when short FT jumper, that means all of you speak to MIC will direct playback to Speaker.
Check the Pinout and usage of this module explained in this tutorial.
Is this a single message play back?
Or else how we can program to get multiple voices
It is a single record playback only. It can hold normally 10s on its onboard memory. If you want to use multiple voices and use like an MP3 Player as well as program it using Arduino, then you need the MP3TF-16P Module (also called as DFPlayer Mini MP3 Module). It has built-in Amplifier, SD Card Slot, Hardware pins, and Communication Pins for the programmable mode. Tutorial Link – https://www.factoryforward.com/mp3-tf-16p-arduino-dfplayer/
If i have a door , and when this door opens a pre-configured message it will be activated.
I will need only the ISD1820 module? if not what else i will need ?
If you are using it with Arduino then you can go with DFPlayer Mini (MP3TF16P). That supports SD Card and all. You can have your favourite MP3 Files and play it and the sound quality also good. If sound quality doesn’t matter then you can use this module also. But the drawback is limited to 10s audio, not more than one recorded audio, Low watt speaker.
thank you help me i do a project that check if the baby cry and i need to record here voice and to perform on here voice if it is cry or not maybe i will need you help thanks!
Didn’t get clear what you are asking.
Where is the external resistor which changes record time attached on this module?
This said above
“If you want change record duration, an external resistor is necessary to select the record duration and sampling frequency, which can range from 8 – 20 seconds (4‐12kHz sampling frequency). ”
Where do you connect this resistor?
Thank you.
Thank you! This is what I wanted. Is very useful for a part of my sound installation
As per len creelman, i too am wondering which jumper is used to place the 200 om resistor to extend recording time to 20 seconds.
It is mentioned in the datasheet. You can refer the schematics, The ROSC Pins is the 10th pin of the IC and you need to replace the resistor connecting to it. But we didn’t tried it in real-world.
There is some problem in the code, pin 7 and pin 11 are changed? doesn’t?
You were right. Thank you. Updated now.
Your first circuit diagram shows the ISD1820 connected to 5V on the Arduino, it should be connected to the 3V pin as it is only rated up to 4.5v