Zbotic Logo Zbotic Logo
  • Home
  • Shop
  • Sale
  • 3D Print Service
  • PCB Service
  • B2B
  • Blogs
  • Contact Us
0 0

View Wishlist Add all to cart

0 0
0 Shopping Cart
Shopping cart (0)
Subtotal: ₹0.00

View cartCheckout

  • Shop
  • About Us
  • Contact Us
  • Reseller
  • Blogs
020 69134444
1800 209 0998
[email protected]
Help Desk
Facebook Twitter Instagram Linkedin YouTube
Zbotic Logo Zbotic Logo
0 0

View Wishlist Add all to cart

0 0
0 Shopping Cart
Shopping cart (0)
Subtotal: ₹0.00

View cartCheckout

All departments
  • 3D Print Service
  • 3D Printer
  • Batteries & Chargers
  • Development Boards
  • Drone Parts
  • EBike parts
  • Sensor Modules
  • Electronic Components
  • Electronic Modules
  • IoT and Wireless
  • Mechanical Parts and Workbench Tools
  • Motors & Drivers & Pumps & Actuators
  • DIY and Robot Kits
  • Show more
  • Home
  • Shop
  • Sale
  • 3D Print Service
  • PCB Service
  • B2B
  • Blogs
  • Contact Us
Return to previous page
Home Audio & Sound Modules

Build a Voice Recorder with ISD1820 and Arduino

Build a Voice Recorder with ISD1820 and Arduino

March 11, 2026 /Posted byJayesh Jain / 0

Building an ISD1820 voice recorder Arduino project is one of the most satisfying audio electronics builds — with just ₹80–₹150, you can record up to 10 seconds of voice and play it back on demand. The ISD1820 from Nuvoton is a single-chip voice recorder/playback IC with onboard ADC, non-volatile memory (no battery needed to retain recordings), and a built-in amplifier to drive a small speaker directly. This guide covers standalone use and Arduino-controlled operation for interactive voice projects.

Table of Contents

  • ISD1820 Module Overview
  • Standalone Operation: Record and Playback
  • Wiring to Arduino for Digital Control
  • Arduino Code for Voice Recorder
  • Project Ideas
  • Alternatives: WT588D and ISD1760
  • Frequently Asked Questions

ISD1820 Module Overview

The ISD1820 stores audio in on-chip non-volatile multilevel flash memory — your recording survives power-off for up to 100 years (per the datasheet). Recording duration depends on the sample rate resistor:

  • 100kΩ resistor: 10 seconds at lowest quality
  • 80kΩ resistor: 8 seconds, better quality
  • 60kΩ resistor: 6 seconds, good quality (most modules use this as default)

The onboard module (widely available in India) typically includes:

  • Built-in electret microphone for recording
  • 3.5mm speaker output and direct speaker pads for 8Ω speaker connection
  • Push buttons for REC (record), PLAY-L (play until button released), and PLAY-E (play entire recording)
  • REC, PLAY-L, PLAY-E header pins for Arduino control
  • LED indicators for recording and playback status
  • Operating voltage: 3–5V (5V from Arduino is ideal)

Important limitation: The ISD1820 has only ONE recording slot. Each new recording overwrites the previous one. For multiple recordings, use the DFPlayer Mini (SD card, 32GB storage, folders) or WT588D module instead.

Recommended: WT588D-16P Voice Sound Audio Player Module for Arduino — Upgrade option: the WT588D stores multiple pre-recorded voice messages in SPI flash, controlled via UART or standalone push buttons — no overwrite risk.

Standalone Operation: Record and Playback

The ISD1820 works completely standalone without any microcontroller:

  1. Power: Connect 5V to VCC and GND to GND.
  2. Speaker: Connect 8Ω speaker between SP+ and SP- pads (or use the 3.5mm output to headphones/amplifier input).
  3. Record: Press and hold the REC button. Speak clearly into the onboard microphone. Release when done. The LED flashes during recording.
  4. Playback (entire message): Press PLAY-E button once. The entire recorded message plays then stops automatically.
  5. Playback (while held): Press and hold PLAY-L. Message repeats as long as button is held.

The recording quality is suitable for voice announcements, door bells, and educational projects. Music quality is poor due to the low sample rate — the ISD1820 is optimised for voice, not music.

Wiring to Arduino for Digital Control

// ISD1820 Module → Arduino Wiring (Digital Control)
// VCC  → Arduino 5V
// GND  → Arduino GND
// REC  → Arduino Pin 7 (pull LOW to start recording)
// PLAY-L → Arduino Pin 6 (pull LOW to play, release to stop)
// PLAY-E → Arduino Pin 5 (pull LOW momentarily to play entire recording)
// FT   → Arduino Pin 4 (FeedThrough - monitor mic via speaker without recording)
//
// Speaker connection:
// SP+  → Speaker positive (8Ω)
// SP-  → Speaker negative
//
// Note: REC, PLAY-L, PLAY-E are active-LOW
// Connect them to GND (via Arduino OUTPUT LOW) to activate
// Leave floating (INPUT mode or OUTPUT HIGH) for inactive state

Arduino Code for Voice Recorder

// ISD1820 Voice Recorder: Record on button press, play on another
// Uses 3 push buttons: Record (D2), Play (D3), Stop (D4)

const int ISD_REC    = 7;   // REC pin (active LOW)
const int ISD_PLAY_E = 5;   // PLAY-E pin (active LOW)
const int BTN_RECORD = 2;   // Button: hold to record
const int BTN_PLAY   = 3;   // Button: press to play
bool isRecording = false;

void setup() {
  pinMode(ISD_REC, OUTPUT);
  pinMode(ISD_PLAY_E, OUTPUT);
  digitalWrite(ISD_REC, HIGH);    // Inactive (active-LOW)
  digitalWrite(ISD_PLAY_E, HIGH); // Inactive

  pinMode(BTN_RECORD, INPUT_PULLUP);
  pinMode(BTN_PLAY, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {
  // Record: hold button to record, release to stop
  if (digitalRead(BTN_RECORD) == LOW) {
    if (!isRecording) {
      Serial.println("Recording started...");
      digitalWrite(ISD_REC, LOW);  // Start recording
      isRecording = true;
    }
  } else {
    if (isRecording) {
      Serial.println("Recording stopped");
      digitalWrite(ISD_REC, HIGH); // Stop recording
      isRecording = false;
    }
  }

  // Play: press and release to play entire message
  if (digitalRead(BTN_PLAY) == LOW) {
    Serial.println("Playing message...");
    digitalWrite(ISD_PLAY_E, LOW);   // Trigger playback
    delay(50);
    digitalWrite(ISD_PLAY_E, HIGH);  // Release trigger
    delay(200);  // Debounce
  }

  delay(20);
}

Advanced: Timed Automatic Recording System

// Auto-record system: records every 5 minutes, plays on trigger
// Use case: Voice alarm system that records an alert and plays on sensor trigger

const int ISD_REC    = 7;
const int ISD_PLAY_E = 5;
const int PIR_PIN    = 8;  // PIR motion sensor: HIGH on motion

void recordFor(int seconds) {
  digitalWrite(ISD_REC, LOW);  // Start
  delay(seconds * 1000);
  digitalWrite(ISD_REC, HIGH); // Stop
}

void playMessage() {
  digitalWrite(ISD_PLAY_E, LOW);
  delay(50);
  digitalWrite(ISD_PLAY_E, HIGH);
}

void setup() {
  pinMode(ISD_REC, OUTPUT); digitalWrite(ISD_REC, HIGH);
  pinMode(ISD_PLAY_E, OUTPUT); digitalWrite(ISD_PLAY_E, HIGH);
  pinMode(PIR_PIN, INPUT);
  Serial.begin(9600);
  
  // Record 6-second message on startup
  delay(1000); // Allow ISD1820 to power up
  Serial.println("Say your message now (6 seconds)...");
  recordFor(6);
  Serial.println("Message recorded!");
}

void loop() {
  if (digitalRead(PIR_PIN) == HIGH) {
    Serial.println("Motion! Playing message...");
    playMessage();
    delay(10000);  // Don't replay for 10 seconds
  }
  delay(100);
}
Recommended: Analog Sound Sensor Microphone Module for Arduino — Use as a voice activity detector to automatically trigger ISD1820 playback when ambient noise drops (listener present).

Project Ideas

  • Smart Doorbell: Pre-record a greeting message. PIR sensor triggers ISD1820 playback when visitor approaches. Record new messages easily by pressing the REC button.
  • Interactive Museum Exhibit: Each exhibit has an ISD1820 with a push button. Visitors press the button to hear a pre-recorded explanation (in Hindi, English, or regional language) — no screen or speaker system needed.
  • Talking Piggy Bank: ISD1820 with coin insertion sensor — plays "Thank you for saving!" each time a coin is inserted.
  • Classroom Attendance System: Teacher records their name; system plays it back when attendance is submitted.
  • Medical Reminder Device: Caregiver records medication reminder in local language; Arduino triggers playback at programmed times using RTC module.

Alternatives: WT588D and ISD1760

  • WT588D-16P: Stores up to 220 seconds of audio in external SPI flash; multiple address-selectable tracks; UART and one-pin control. Better for multi-message applications. ₹150–₹300 in India.
  • ISD1760: 8 independent recording channels (each up to 38 seconds), 5V operation, SPI interface. Best for applications needing multiple independent messages. ₹200–₹400.
  • DFPlayer Mini: SD card-based, unlimited recordings, MP3/WAV support. Best for music-quality audio with many files. ₹100–₹200.
Recommended: 5V Active Alarm Buzzer Module for Arduino — Combine with ISD1820: buzzer plays an alert tone while ISD1820 plays the voice message for a complete announcement system.

Frequently Asked Questions

How do I increase the volume of the ISD1820?

The ISD1820’s built-in amplifier is limited to about 100mW into 8Ω. For louder output, take the audio from the SP+ and SP- pads and feed it into a PAM8403 or LM386 amplifier. Connect SP+ through a 10μF coupling capacitor to the amplifier input, and SP- to GND (it’s a differential output, but for single-ended amplifier input, use SP+ as the signal and GND as reference).

Can the ISD1820 record over an existing message?

Yes — simply record again. Each recording automatically overwrites the previous one. There is no erase procedure needed. The module always plays back the most recently recorded content.

My ISD1820 recording sounds muffled — how do I improve quality?

The built-in microphone on cheap ISD1820 modules is often a low-quality electret capsule placed too close to the circuit board (which generates noise). Record in a quiet environment, speak clearly 10–15cm from the module, and avoid background noise (fans, AC units). Alternatively, replace the onboard microphone with a higher-quality electret capsule — most modules have the microphone as a solder-swappable component.

Can I record higher quality audio with the ISD1820?

The ISD1820’s maximum bandwidth is 4kHz at 8kHz sample rate — it’s designed for voice intelligibility, not high fidelity. For better audio quality, use the DFPlayer Mini with 44.1kHz MP3 files, or the WT588D with 8kHz–16kHz PCM recordings. Professional-quality voice ICs like the VS1053 or WM8960 provide 44.1kHz stereo — equivalent to CD quality.

Shop Audio & Sound Modules at Zbotic →

Tags: arduino audio, ISD1820, recording playback, sound recorder module, voice recorder
Share Post
  • Facebook
  • Linkedin
  • Whatsapp
Solar Panel Buying Guide for H...
blog solar panel buying guide for home in india watt and type 598973
blog teensy audio library build a dsp audio project tutorial 598978
Teensy Audio Library: Build a ...

Related posts

Svg%3E
Read more

Audio Oscillator: 555 Timer Tone Generator Projects

April 1, 2026 0
Table of Contents 555 Timer as Audio Oscillator Astable Mode for Continuous Tones Frequency Calculation and Control Tone Generator Projects... Continue reading
Svg%3E
Read more

Doorbell Chime: Custom Sound with Arduino and Speaker

April 1, 2026 0
Table of Contents Custom Arduino Doorbell Generating Musical Tones MP3 Doorbell with DFPlayer Wireless Doorbell with ESP32 Complete Doorbell Build... Continue reading
Svg%3E
Read more

Music Reactive Fountain: Water Dance with Arduino

April 1, 2026 0
Table of Contents Music-Driven Water Fountains Pumps, Valves, and Audio Input Audio-to-Pump Control Circuit Arduino Fountain Controller Code Building the... Continue reading
Svg%3E
Read more

Sound Direction Finder: Microphone Array Localization

April 1, 2026 0
Table of Contents Sound Source Localisation Time Difference of Arrival (TDOA) Microphone Array Design Direction Finding Algorithm Practical Applications FAQ... Continue reading
Svg%3E
Read more

Audio AGC Circuit: Automatic Volume Level Control

April 1, 2026 0
Table of Contents What Is Automatic Gain Control? AGC Theory and Applications Analog AGC with OTA Digital AGC with Arduino... Continue reading

Add comment Cancel reply

Your email address will not be published. Required fields are marked

Facebook Twitter Instagram Pinterest Linkedin Youtube

Get the latest deals and more.

Download on Google Play Download on the App Store

Call us: 020 69134444 / 1800 209 0998

Monday - Saturday 09:30 AM - 06:00 PM
For Technical Supports Email: [email protected]
For Sales / Enquiries Email: [email protected]

  • My Account

    • Cart

    • Wishlist

    • Checkout

    • My Orders

    • Track Order

    • My Account

  • Information

    • FAQs

    • Blogs

    • Career

    • About Us

    • Contact Us

    • Payment Options

  • Policies

    • Privacy Policy

    • Terms & Conditions

    • GST Input Tax Credit

    • Shipping Return Policy

    • E-Waste Collection Points

    • Our Sitemap

© Zbotic.in is registered trademark of Moxie Supply Pvt Ltd – All Rights Reserved
Login
Use Phone Number
Use Email Address
Not a member yet? Register Now
Reset Password
Use Phone Number
Use Email Address
Register
Already a member? Login Now