Skip to content

ISD1820 Voice Recording and Playback Module

In order to be able to integrate a sound in the project, we have utilized the ISD1820 module. This module allows you to record and play a 10 second voice message.

Operation

This module has a microphone to record a sound/voice message and a speaker to play the sound. To operate the ISD1820 module, connect 5V and ground to the VCC and GND ports, connect a speaker to the speaker ports and connect the microphone jack to a phone. Open the sound you want to record from your phone while simultaneously hold down the REC button. To play the entire recording , press on the PLAYE button. To play the recording to a specific part, press and hold the PLAYL button.

Problems Encountered

We have had two main problems with this module:

1- Low Speaker Sound

The speaker provided with the module outputs a very faint sound which required us to either use a sound amplifier to increase the sound or try out other speakers. Since we did not find a sound amplifier in FabLab, we tried out multiple speakers but, all of them outputted a low sound.

Then, Dua gave us another speaker and thankfully, it had a much stronger sound compared to the previous ones.

2- Unclear Microphone

The microphone soldered on the ISD1820 board is a condenser microphone which picks up a lot of the background noise resulting in an unclear recording. To solve this issue, I desoldered the microphone and soldered a microphone jack to allow me to use my phone and the microphone. I did that because we did not have a different type of microphone at FabLab.

Using the Microcontroller

In our project, we wanted to include a button to record and an LED to indicate that the recording process is happening. To do that, we connected a button to the REC pin on the ISD1820 module. The button example code in the Arduino IDE was used.

Circuit Connections


Code Used

/*
  Button

  Turns on and off a light emitting diode(LED) connected to digital pin 13,
  when pressing a pushbutton attached to pin 2.

  The circuit:
  - LED attached from pin 13 to ground through 220 ohm resistor
  - pushbutton attached to pin 2 from +5V
  - 10K resistor attached to pin 2 from ground

  - Note: on most Arduinos there is already an LED on the board
    attached to pin 13.

  created 2005
  by DojoDave <http://www.0j0.org>
  modified 30 Aug 2011
  by Tom Igoe

  This example code is in the public domain.

  https://www.arduino.cc/en/Tutorial/BuiltInExamples/Button
*/

// constants won't change. They're used here to set pin numbers:
const int buttonPin = 2;  // the number of the pushbutton pin
const int ledPin = 6;    // the number of the LED pin

// variables will change:
int buttonState = 0;  // variable for reading the pushbutton status

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);
}

void loop() {
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed. If it is, the buttonState is HIGH:
  if (buttonState == HIGH) {
    // turn LED on:
    digitalWrite(ledPin, HIGH);
  } else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
  }
}

References





Last update: September 14, 2024