ISD4002-120 Recording Circuit
This project is about an IC called ISD4002-120. It is a circuit that can store 120second of audio.
This page will explain how it works and how you can controll the circuit.
All contribution to this page are most welcome!

The humans has several senses, I belive we have 5. Some of us has a 6:th.
The most often used senses with electronic equipment are the eyes. We use all kind of displays and LEDs. We read texts, and numbers. The disadvantage with the eyes is that when we look at a display, we lose the concentration and focus from something else. I will not mention what the TV does to our senses or girls bicycling in short skirts!

This project is to increase information flow and still keep our focus on something more important (like the bicycling girls). The ISD4002-120 circuit is a recorder witch can store 120 second of sound information. The shortest message can be 20ms. You can predefine where in the memory you want to store your information. With this unit you can playback information to a user witch will hear it. A good example is the car. Instead of having lamps that blink when something is wrong you can use ISD4002-120 and play a pre-recorded warning message. This technology is often use in commercial air plains and combat-plains. The cool-factor of a homebrewed speaking equipment is very high, I would give it a strong eight! *smiling*
There are lot of circuit that can store audio-info and I have got this ISD4002-120. I will explain how it works and how you can store info.

I will also give you a windows program where you can control the recording/playback and you can also program a WAV file from your computer into the circuit. This window program is very handy if you want to record many shorter messages. You could program all the speaking sounds (letters) and then you can easy combine them into frases and you will have a machine witch can speak from text.


The ISD4002-120 circuit contains 960k EEPROM cells for audio storage. (see fig above) The cells are configured in a block with 600 row. Each row can be addressed for playback or recording. Each row is 200ms long and contains 8 EOM. A Recording is started with a specific record-command and a address. After that command the circuit will record the audio until a stop command is sent to the circuit or it reaches the end of memory. A stop command will activate the next EOM. At playback, the circuit will continue to playback until it reaches the EOM witch is at the end of the message.


The interface to the ISD4002-120 circuit is serial. It starts with the SS (Chip Enable) go low.
The MOSI input is the info into the circuit and the MISO is the outcoming info from the circuit.

A0 to A9 set the address and CO to C4 is the command. The serial bitstream starts with A0 and the last bit to send is the C4. When you clock info into the circuit you also get information out from the circuit. P0 to P9 will give the address for the last command. The output bitstream starts with OVF,EOM, P0...P9.

Klick on the pic to see a larger schematic.

Lets have a look at the schematic. To the left you will see a RS232 converter connected to a PIC16F84 processor. The processor convert the the info from the computer to seriell data. The PIC also read the data from the ISD4002-120 circuit and send it back to the processor. The protocol between the computer and the circuit can be found a bit down on this page. The output from the PIC are connected to the ISD4002-120 circuit via some resistors. The ANA in+ at pin 17 is the analogue input, and the level shouldn't be higher than 32mV. The ANA UT at pin 13 is the analogue output, and the level is about 500mV. The ISD4002-120 circuit also needs powers supply at 3V. The analogue and digital part in the circuit has different supply connection. You can connect the analogue and digital supply together, but it is very important to keep the pin connected with short wires. The best is if you have a PCB with short wires. I did some experiment on a experiment board and I had wires connecting the pins together and the sound quality was disturbed by other signals, so I really advice you to use PCB.

In this schematic I have added a audio amplifier to the circuit and I have also added a connector witch should be connected to the audio output of your computer. The reason of this configuration is that you should be able to program a WAV-file from your computer into the circuit. If you want you can connect a microphone here instead or some other audio source. Make sure you have a 32mVpp signal.


The RS232 protocol is 19200 baud,Even parity,1 start and one stop bit.
The computer need two byte to send all the information to the PIC. The first byte (yellow) contain C4 to A8, the second byte contains A7 to A0. After the computer has send these two byte a replay will come from the PIC and the first byte (blue) contain OVF to P5 and the second bye contains P6 to P9 and the "X" is nothing.

Now when you know the protocol to the PIC16F84, you can make controlling software yourself. If you want you can use the windows program I have made for the ISD4002-120. This program will help you to program the circuit with sounds. The software has six main control buttons. According to the datasheets , there are 10 command one can send to the circuit and I have connected six of the most used to buttons. I will explain them one by one.
Here you can find Professionally recorded Vocabulary Library.

Recording Example:
If you send a record command to the circuit it will start record until you send the end command. At the same time you send the end command you will clock out the end address (P0 - P9). The internal address counter in the circuit will be pointing at the next address.
Let's say you set the address to 000h and start recording for 7.9sec. When you send the end command, you will receive 027 from the P0-P9. This means that the circuit has recorded from address 000h to 027h. If you want to record another message you must set the address to 028h or else you will write over the first message. In my window program I automatically increase the address by 1 after a recording. In the left pic you can see that the recording stopped ad adress 027h and the adress setting (white box) has incresed by one (028h). You can now simply record another message without thinking about the address setting.

This button (command) make the circuit play the sound, starting at the address you have defined in the address setting box (A9-A0). The ISD4002-120 will continue to play the sound until it reaches and EOM.

This button (command) works in the same way, but here you will record a sound, starting at the address you have defined in the address setting box (A9-A0). The recording will end and make a EOM when you press the STOP button (STOP command sent).

This button (command) wakes the circuit.

Play works in the same way as SET PLAY except that the address will NOT be set with (A9-A0). The address will be the current address in the circuit. The ISD4002-120 will continue to play the sound until it reaches and EOM.

Rec works in the same way as SET REC except that the address will NOT be set with (A9-A0). The address will be the current address in the circuit. The ISD4002-120 will continue to rec the sound until you press the STOP button (STOP command is sent).

This button (command) stop any activity as a PLAY or REC.

Address position:
Here you can see the position star and end of a recording witch can be important to note when you are going to use the circuit in an application.

Here you can see the timing in second.

Wave Recording:
If you want to rec a wav file into the circuit you must first open a file and if you want you press the button "Test play" to listen to the file. If you press the button "Rec wav" the file will be played and the ISD4002-120 circuit will record the sound, starting at the address you have specified in the address setting box.
It is important to set the address before you press "Rec wav" button or else you might get wrong address.

Summary of the 10 command for the ISD4002-120 circuit:
Instruction OP (code 5 bits)
Address (11bits)
Operational summary
POWERUP 00100(XXXXXXXXXXX) Power up circuit.
SETPLAY 11100(0, A9-A0) Initiates playback from address (a9-a0).
PLAY 11110(XXXXXXXXXXX) Playback from current address (Until EOM or OVF).
SETREC 10100(0, A9-A0) Initiates a record operation from address (a9-a0).
REC 10110(XXXXXXXXXXX) Record from current address (Until OVF is reached).
SETMC 11101(0, A9-A0) Initiates Message cueing (MC) from address (a9-a0).
MC 11111(XXXXXXXXXXX) Performe a message cueing. Proceeds to the end of the current message (EOM).
STOP 0X110(XXXXXXXXXXX) Stop current operation.
STOPPWRDN 0X010(XXXXXXXXXXX) Stop current operation and enter stand-by (power down) mode.
RINT 0X110(XXXXXXXXXXX) Read interupt status bits:Overflow and EOM.

Download PIC16F84 program (INHX8M format) istest.hex, the file is zipped!

Download some datasheets
ISD4002-120.pdf Datasheets for ISD4002-120

Download software
Download windows software (1.57Mb)
Click here to go to the software download page!

Final word
I hope you will enjoy audio recording-project.
I also hope I have given you some new ideas and knowledge.
You can always mail me if there is anything unclear.
In some case I can help you with components if you can't find them.

I wish you good luck with your projects and thanks for visit my page.

Back to main Page  |  Contact Me  |  Cheap components

Copyright © Last modified on 4 May 2002.