Make Your Own Spy Bug (Arduino Voice Recorder)

71,529

206

50

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

  • Hour of Code Speed Challenge

    Hour of Code Speed Challenge
  • Hide It Challenge

    Hide It Challenge
  • Edible Art Challenge

    Edible Art Challenge

50 Comments

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 5 weeks 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 10 months ago

I too have the same issue
How did it help you

0
Erina827_
Erina827_

5 months 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

3 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 2 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 8 months 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 9 months ago

more probably you have selected the wrong board.

0
bigheadrunaway
bigheadrunaway

1 year 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 9 months ago

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

0
Shree_98
Shree_98

11 months 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 10 months 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 1 year 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 1 year ago

Please edit pcmConfig.h from your TMRpcm library.

0
AliM352
AliM352

1 year 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?

0
dogan35
dogan35

Question 2 years ago

C:\Users\EEE\Desktop\arduino ses\SpyBug\SpyBug.ino:72:44: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
case 10: audio.stopRecording("10.wav"); break;

It gives this error and it does not work. There is no even a .txt file.