ISD1820 Arduino Voice Record/Playback Tutorial

Back to Blog
ISD1820 Arduino Voice Record/Playback Tutorial - ISD1820 Arduino Voice Record/Playback Tutorial - ISD1820 Arduino Voice Record/Playback Tutorial - ISD1820 Arduino Voice Record/Playback Tutorial

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.

ROSCDurationSample RateBandwidth
80 KΩ8 Sec8.0 KHz3.4 KHz
100 KΩ10 Sec6.4 KHz2.6 KHz
120 KΩ12 Sec5.3 KHz2.3 KHz
160 KΩ16 Sec4.0 KHz1.7 KHz
200 KΩ20 Sec3.2 KHz1.3 KHz

 

If you want to extend it to Speakers (High power), you can use LM386, D2283, D2322, TA7368, MC34119 etc amplifier IC.

Pinout

  1. VCC– 3.3V power supply
  2. GND– Power ground
  3. 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.
  4. REC takes precedence over either playback (PLAYL or PLAYE) signal.
  5. 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.
  6. PLAYL – Playback, Level‐activated, when this input pin level transits for LOW to HIGH, a playback cycle is initiated.
  7. Speaker Outputs – The SP+ and SP‐ pins provide a direct drive for loudspeakers with impedances as low as 8Ω.
  8. MIC – Microphone Input, the microphone input transfers its signals to the on‐chip preamplifier.
  9. FT – Feed Through: This mode enable the Microphone to drive the speaker directly.
  10. 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.

 

1.Arduino-Voice-Playback-factory-forward

Start using the Module!!

  1. Push REC button then the RECLED will light and keep push until record end.
  2. Release the REC button
  3. 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.
  4. P-E mode, when short P‐E jumper the record will playback repeatedly until jumper off or power down.
  5. 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 SensorArduino
VCC5 V
GNDGND
OUT11

 

ISD1820 Voice RecorderArduino
VCC3.3 V
GNDGND
REC8
P-E9
P-L10

 

Circuit Diagram:

2.Arduino-Voice-Playback-IR-factoryforward

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);

 }

}

 

Share this post

Comments (16)

  • Amit Kumar

    How can I just use this as a microphone. I mean no recording and direct from microphone to speaker.

    February 27, 2019 at 10:44 PM
    • Sharath

      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.

      February 28, 2019 at 10:43 AM
  • Galiba

    Is this a single message play back?
    Or else how we can program to get multiple voices

    March 9, 2019 at 12:11 PM
    • Sharath

      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/

      March 9, 2019 at 2:27 PM
  • Lazaros

    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 ?

    March 12, 2019 at 6:07 PM
    • Sharath

      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.

      March 15, 2019 at 1:35 PM
  • a

    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!

    March 20, 2019 at 4:18 AM
  • LEN CREELMAN

    Where is the external resistor which changes record time attached on this module?

    March 20, 2019 at 6:39 PM
  • LEN CREELMAN

    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.

    March 22, 2019 at 11:38 PM
  • Cony Kenji

    Thank you! This is what I wanted. Is very useful for a part of my sound installation

    August 13, 2019 at 5:45 AM
  • Sapper968

    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.

    August 14, 2019 at 6:48 AM
    • Sharath

      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.
      ISD1820 Schematics

      August 15, 2019 at 5:40 PM
  • Eloy Creichmon

    There is some problem in the code, pin 7 and pin 11 are changed? doesn’t?

    November 15, 2019 at 8:25 PM
  • Derek Johnson

    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

    June 25, 2020 at 8:39 PM

Leave a Reply

Back to Blog