Make Your Own Spy Bug (Arduino Voice Recorder)

78,653

212

51

Introduction: Make Your Own Spy Bug (Arduino Voice Recorder)

About: Awesome Electronics Tutorials, Projects and How To´s

In this project I will show you how I combined an Arduino Pro Mini with a couple of complementary components in order to create a voice recorder which could also be abused as a spy bug. It has a run time of around 9 hours, is small and super easy to use. The recording quality might not be the best, but it should be suitable for many purposes. Let's get started!

Step 1: Watch the Video!

The video gives you all the information you need to create your own Spy Bug. During the next steps though I will present you some additional information.

Step 2: Order Your Parts!

Here you can find a parts list with example sellers for all the components that you will need (affiliate links).

Aliexpress:

1x Arduino Pro Mini: https://s.click.aliexpress.com/e/_d62ALdV

1x LiPo Battery: https://s.click.aliexpress.com/e/_dWbxwQm

1x TP4056 LiPo Charge/Protection Board: https://s.click.aliexpress.com/e/_dX8n0hp

1x Micro SD Card Adapter: https://s.click.aliexpress.com/e/_dUy68bd

1x Electret Mic + MAX9814 Amp: https://s.click.aliexpress.com/e/_dT18MYS

1x Tactile Switch: https://s.click.aliexpress.com/e/_dXIIMcP

1x 5mm Red LED: https://s.click.aliexpress.com/e/_dV63r7D

1x 2kΩ Resistor: https://s.click.aliexpress.com/e/_dTPpXjt

Ebay:

1x Arduino Pro Mini: http://rover.ebay.com/rover/1/711-53200-19255-0/1?...

1x LiPo Battery: http://rover.ebay.com/rover/1/711-53200-19255-0/1?...

1x TP4056 LiPo Charge/Protection Board: http://rover.ebay.com/rover/1/711-53200-19255-0/1?...

1x Micro SD Card Adapter: http://rover.ebay.com/rover/1/711-53200-19255-0/1?...

1x Electret Mic + MAX9814 Amp: http://rover.ebay.com/rover/1/711-53200-19255-0/1?...

1x Tactile Switch: http://rover.ebay.com/rover/1/711-53200-19255-0/1?...

1x 5mm Red LED: http://rover.ebay.com/rover/1/711-53200-19255-0/1?...

1x 2kΩ Resistor: http://rover.ebay.com/rover/1/711-53200-19255-0/1?...

Amazon.de:

1x Arduino Pro Mini: http://amzn.to/2FHf9PY

1x LiPo Battery: http://amzn.to/2DZnbY5

1x TP4056 LiPo Charge/Protection Board: http://amzn.to/2EE8pTT

1x Micro SD Card Adapter: http://amzn.to/2nHrsVd

1x Electret Mic + MAX9814 Amp: http://amzn.to/2FHzW60

1x Tactile Switch: http://amzn.to/2BTCxYg

1x 5mm Red LED: http://amzn.to/2BTCyLO

1x 2kΩ Resistor: http://amzn.to/2nKX5NN

Step 3: Build the Circuit!

Here you can find the schematic and pictures of my finished Spy Bug. Feel free to use them as a reference.

Step 4: Upload the Code!

Here you can download the Arduino code for the project. Use an FTDI breakout to upload it to the Arduino Pro Mini. And don't forget to download/include the TMRpcm library:

https://github.com/TMRh20/TMRpcm

Step 5: Success!

You did it! You just created your own Spy Bug!


Feel free to check out my YouTube channel for more awesome projects:

http://www.youtube.com/user/greatscottlab

You can also follow me on Facebook, Twitter and Google+ for news about upcoming projects and behind the scenes information:

https://twitter.com/GreatScottLab
https://www.facebook.com/greatscottlab

3 People Made This Project!

Recommendations

  • First Time Author Contest

    First Time Author Contest
  • Build a Tool Contest

    Build a Tool Contest
  • Meatless Challenge

    Meatless Challenge

51 Comments

0
hussainbuic
hussainbuic

17 days ago

Hi the code shows to be perfectly uploaded to the Arduino mega board but when i record the voice and pull out my SD card and check it into my PC i cannot see any .wav file in my SD card. Can anybody help in this aspect?

0
abc54093763
abc54093763

Question 1 year ago

The LED does not turn off at once when the switch is pressed to stop recording. Please help me..

0
2Face_918
2Face_918

Answer 9 months ago

There seems to be a change in the SD card library. You can fix it by setting pin 10 as an output & setting it high.
Here is the modified code,

/*
Steps:
1. Edit pcmConfig.h
a: On Uno or non-mega boards, #define buffSize 128. May need to increase.
b: Uncomment #define ENABLE_RECORDING and #define BLOCK_COUNT 10000UL

2. Usage is as below. See https://github.com/TMRh20/TMRpcm/wiki/Advanced-Features#wiki-recording-audio for
additional informaiton.
*/

#include <SD.h>
#include <SPI.h>
#include <TMRpcm.h>
#define SD_ChipSelectPin 10
TMRpcm audio;
int audiofile = 0;
unsigned long i = 0;
bool recmode = 0;

void setup() {
pinMode(A0, INPUT);
pinMode(6, OUTPUT);
pinMode(2, INPUT_PULLUP);
pinMode(10, OUTPUT);
digitalWrite(10, HIGH);
attachInterrupt(0, button, LOW);
SD.begin(SD_ChipSelectPin);
audio.CSPin = SD_ChipSelectPin;

}

void loop() {
}

void button() {
while (i < 300000) {
i++;
}
i = 0;
if (recmode == 0) {
recmode = 1;
audiofile++;
digitalWrite(6, HIGH);
switch (audiofile) {
case 1: audio.startRecording("1.wav", 16000, A0); break;

}
}
else {
recmode = 0;
digitalWrite(6, LOW);
switch (audiofile) {
case 1: audio.stopRecording("1.wav"); break;
}
}
}

0
Shree_98
Shree_98

Answer 1 year ago

I too have the same issue
How did it help you

0
Erina827_
Erina827_

1 year ago on Introduction

Help what to do when there's an error with this:

case 1: audio.stopRecording("1.wav"); break;
^~~~~
auto
exit status 1
'audio' was not declared in this scope

0
sanjay sonkar
sanjay sonkar

4 years ago on Step 4

exit status 1

'class TMRpcm' has no member named 'startRecording'

how to fix this error

pls help Great scott

0
LeonardoV46
LeonardoV46

Reply 3 years ago

In the Arduino IDE go to Sketch/Include Library/Add .ZIP Library, now that you have added the Library to the Arduino IDE go to \Documents\Arduino\libraries there you will find the TMRpcm library, modify the pcmConfig.h file, around line 75 is a #define ENABLE_RECORDING just uncomment that line and the one below that is #define BLOCK_COUNT 10000UL, save the .h file and compile again.

0
toufik.jabrane
toufik.jabrane

Reply 1 year ago

but the tactical switch didn't work as the led? how we can make it work

0
LeT99
LeT99

2 years ago

help me for error, i used UNO for it
Board: "Arduino/Genuino Uno"
C:\Users\VOSTRO~1\AppData\Local\Temp\ccPyppWB.ltrans0.ltrans.o: In function `button':
C:\Users\Vostro 5568\Desktop\sketch_sep21b/sketch_sep21b.ino:22: undefined reference to `TMRpcm::stopRecording(char*)'
C:\Users\VOSTRO~1\AppData\Local\Temp\ccPyppWB.ltrans0.ltrans.o: In function `setup':
C:\Users\Vostro 5568\Desktop\sketch_sep21b/sketch_sep21b.ino:17: undefined reference to `TMRpcm::startRecording(char*, unsigned int, unsigned char)'
collect2.exe: error: ld returned 1 exit status
Multiple libraries were found for "SD.h"
Used: C:\Program
Multiple libraries were found for "SPI.h"
Used: C:\Program
Multiple libraries were found for "TMRpcm.h"
Used: C:\Users\Vostro
Not used: C:\Program
exit status 1
Error compiling for board Arduino/Genuino Uno.

0
namanCzentrix
namanCzentrix

Reply 1 year ago

more probably you have selected the wrong board.

0
bigheadrunaway
bigheadrunaway

2 years ago

Hello, this project looks great! I am new to Arduino. So one quick (very basic) question, if I am not using the battery and just connect it to my computer, do I still need to buy the LiPo Charge/Protection Board? Thank you!

0
namanCzentrix
namanCzentrix

Reply 1 year ago

No, you don't need Lipo protection borad in this case.

0
Shree_98
Shree_98

1 year ago

How do i connect arudino pro mini to my PC for coding?
Using FTDI is the only possible way?

0
Jerin_Joseph
Jerin_Joseph

Reply 1 year ago

No you can use Arduino UNO too, for the same....(coding pro mini)

0
mohamedtop
mohamedtop

1 year ago

Hello
There is a problem with the code when pictures using arduino un
As shown in picture A
When adding this amendment 1. Edit pcmConfig.h
a: On Uno or non-mega boards, #define buffSize 128. May need to increase.
b: Uncomment #define ENABLE_RECORDING and #define BLOCK_COUNT 10000UL
On the code another problem appeared as in image B.
I hope to solve the problem, I did not find a solution to it in Google

a.pngb.pngb.png
0
srtviper1010
srtviper1010

Question 2 years ago

Which arduino pro mini would work best the 5v/16mhz one or the 3.3v/8mhz one

0
tteegii1
tteegii1

Answer 1 year ago

'class TMRpcm' has no member named 'startRecording'

0
AliM352
AliM352

Answer 2 years ago

Please edit pcmConfig.h from your TMRpcm library.

0
AliM352
AliM352

2 years ago

Hi, I am try to upload the code but i getting #error Architecture or board not supported. Try many selection board on the list and nothing change the same error.

Any suggestion?