Introduction: Self Destructing Message

Picture of Self Destructing Message

"Good morning, Mr. Hunt. Your mission, should you choose to accept it...."

The Self destructing message - One of the most valuable gadgets used in the Mission:Impossible movies, and probably used by other secret agents to receive their mission objective(s). This device is very inconspicuous, but only the intended user knows there is a secret message waiting to be read. This message is only readable ONE TIME, then self destructs, leaving no evidence of its contents.
        In this Instructable, I will show how to make a self destructing message , similar to ones used by Ethan Hunt himself! This project involves etching, soldering, bread boarding, and a few other electronics skill are utilized.

Your mission, should you choose to accept it, is to construct your very own self destructing message, personalize it, and have fun on this DIY project. As always, should any member of your team be caught or killed, the Secretary will disavow all knowledge of your actions.  This message will self destruct in five seconds.

Step 1: Tools/parts

To construct this project, you will need the following:
- Eagle Cad
- Arduino
- Soldering Iron
- Solder
-----------------------------------------------------------------------------------------------------------------------------------
- SSD1306 display, Adafruit sells them along with a level shifter. This place is great and has tutorials to get you up and running in no time.
Product page: https://www.adafruit.com/products/326
Tutorial: http://ladyada.net/products/oled12864/
------------------------------------------------------------------------------------------------------------------------------------
- Ramtron FM24C04, 4Kb F-ram memory http://ramtron.com/products/nonvolatile-memory/serial-product.aspx?id=141 (Datasheet)
  Digikey: http://www.digikey.com/product-detail/en/FM24C04B-G/1140-1000-ND/2809793
-------------------------------------------------------------------------------------------------------------------------------------
- .1µF capacitor (SMD size: 1206) - decoupling, but datasheet doesn't say it is required
---Etching----------------------------------------------------------------------------------------------------------------------
blank presensitized PCB, Positive developer, etchant (can be purchased from Fry's Electronics)
Or other materials for your preferred method of etching
-------------------------------------------------------------------------------------------------------------------------------------
- Male header pins
- Jumper wires
- Laser printer
- Optional: Hot air gun (for SMD)
-Other misc. parts

Step 2: Files/Downloads

Picture of Files/Downloads
Since I bought memory chips without a breakout board , I had to make one.The schematic and board layout files are included in the zip attachment.

A hardware SPI version of the SSD1306 library speeds up the display. Modification Credit goes to NickGammon from the Adafruit forums.

Zip file includes:
  • Arduino Sketches
  • Breakout Board schematic
  • Breakout Board Layout
  • SSD1306 Hardware SPI library files

Step 3: Etching and Assemmbly of the Breakout

Picture of Etching and Assemmbly of the Breakout

 You Can't breadboard a SMD component! If you are on this step, you should have already downloaded the schematic and board files. Open the files with Eagle, and hit the "ratsnest" button on the board window, this will make the ground plane visible. Depending on the method you choose to etch your board, you might need to mirror the image when printing. If you use the photoresist method like I did, its a good idea to have the image printed twice, and double them to cover any imperfections from the laser printer. I am not going into detail about how to etch a board, since that process is a whole other instructable by itself.

Note: on the schematic, there is capacitors C2, and C3. These are NOT to be populated. They were only placed in the schematic to create soldering pads on the board. Yes, I could have probably used a different method to achieve this, but this was fast,  and Initially only for my own use. These pads are for pins A1 and A2, which are the address pins of the device. If you leave these pins un-jumped, the devices address at A1 and A2 will be 0 and 0 because they are internally pulled down. If you want to add more than one of these memory chips to this project, or other projects, you can jump A1 / A2 in different combinations to achieve a unique address for each additional chip. The connections Ground, VCC, Serial data, and Serial clock are written on the bottom layer. Once etched, the pins can easily be identified since they listed on the board.

Step 4: Prototyping / Breadboarding the Circuit

Picture of Prototyping / Breadboarding the Circuit

Now that you have everything bread board compatible, you can construct the circuit. All pin connections are listed in the arduino sketch: SELF_DESTRUCTING_MSG.
/* -------------------------------------------------------------------------------
   RAMTRON FM24C04 Connections to Arduino
   --------------------------------------
   pinout:  Breakout | Arduino
             GND        GND
             VCC        +5V
             SDA        A4
             SCL        A5
   ---------------------------------------------------------------------------------------------
   FM24C04: http://ramtron.com/products/nonvolatile-memory/serial-product.aspx?id=141 (Datasheet)
   ----------------------------------------------------------------------------------------------
*/

/* -------------------------------------------------------------------------------
   SSD1306 OLED Display(Breakout board, USE level shifter)
   -------------------------------------------------------------------------------
pinout: SSD1306 | Arduino
                    SCLK      D13
                    SDIN      D11
                       3V3       +3.3V
                        RS        D08
                        CS        D10
                      RES       D07
   ----------------------------------------------------------------------------------
   ADAFRUIT: https://www.adafruit.com/products/326 (product page)
   TUTORIAL: http://ladyada.net/products/oled12864/ (Connecting to an Arduino)
   ----------------------------------------------------------------------------------
*/

NOTE: The SSD1306 display I used for this project is one from china(bought with ebay bucks), and has a signal conditioner/level shifter on the back of the PCB. If you purchase the display module from Adafruit (recommended), you will need to use a level shifter between the Arduino and display module.

Step 5: Hardware Test

Picture of Hardware Test

Now that everything is connected, it is a good time to make sure everything is properly setup. Open sketch Test_Create_mission, and upload it to your Arduino. You wont See anything happen on the display yet, but if you open the Serial monitor, you will see the array that was written to the memory. If you get a message  between "Begin mission briefing" and "End mission briefing", your memory IC is connected and working properly. If not, double check all connections to the breakout board.

Next is to test the OLED display. To do this, open the "Self_destructing_msg" sketch, and upload it to the Arduino. When it is done loading, you should see a logo bouncing on the screen. Your display is working properly. If not, double check all connections to the display.

This is a little logo I made, but you can easily change it using lcd assistant (found on the Adafruit tutorial page) and on:
http://en.radzio.dxp.pl/bitmap_converter/

  Wait!  its just a logo bouncing on the screen..... d -_- b..... OR IS IT?

Step 6: All Wired Up

Picture of All Wired Up

At this step, everything should be wired up, and it should look similar to this image. The only thing left to connect is a button to activate the message. For this tutorial, I am leaving it simple, and making the message display when the button is pressed. But it can be setup to display the message only after a sequence/pattern of button presses, or other methods.
The button is connected to pin 6,  with a 10KΩ pull down resistor. When the button is pressed (closed), pin6 is connected to vcc (5V), and activates the hidden message.

Step 7: How It Works

Picture of How It Works
This circuit does more than just display some graphics and text on the screen. If it did that , then it wouldn't be self destructing.
The first sketch that should be run, is create mission objective sketch, this sketch uploads a character array to the memory chip, THIS is the mission objective/message that is destructed.
In the second sketch, Self Destructing Msg, a few things happen. At startup there is a idle screen, with the logo that moves across the screen. The button pin is checked for its state. If the button state is high, it goes into the reading function in the program. This function reads, data from the memory chip, then stores it in an array on the arduino memory.
The next function reads the array, and sends it to the display. after a set amount of time, to allow the user to read the message, it waits 5 seconds, then the important part.
All arrays with the message, are overwritten, and no evidence is left behind. If the button is pressed again, a different message is displayed, and the original secret message cannot be recovered.


What's going on in the video:

<8s - Idle screen, logo moves up and down.
*Button Pressed and held*
>8s && <=11s - Splash screen
-read data from memory
-write data to array "cache"

>=11s && <18s - Displays Secret Message

>19s && <24s - 5 second countdown
-Erase array (overwrites)
-Erase FM24C04 (overwrites)

>24s && < 30s - Returned to Idle screen
*Button Pressed*
(There is nothing to read from the memory chip, and nothing in the array cache" All evidence is gone. In addition, the loop that displays the secret message, is also only run once. Every time after that, the program automatically goes into the second loop, which has a complete different set of instructions, which, in the video, displays "nothing to see here!")

-enter 2nd loop
-no valuable data
 

Step 8: Wrap It Up

Now that the circuit is complete, all there is left to do, is to put it in a housing. Maybe a project box, or one of the secret book stashes? In the movie, the message was always inside a regular device you see everyday. Example: a payphone. Well, you don't see those anymore... but the options of an enclosure for this project are basically limitless.

Im calling this one Version 1. Plans for the next version, is to add a smoking device. So after the 5 second delay, there is a plume of smoke emitted, giving that classic, self destructing look from the movie. Hope you like the project, enjoy!

Comments

Jacky P (author)2013-03-28

What's with all the lines?

foxxtrotalpha (author)2012-06-16

tv show? a model rocket motor should work. I was thinking something similar, smoke bombs, and use a model rocket engine igniter to lite the smoke bomb.

foxxtrotalpha (author)2012-06-16

tv show? a model rocket motor should work. I was thinking something similar, smoke bombs, and use a model rocket engine igniter to lite the smoke bomb.

DouglasG1 (author)2012-06-16

From the movie but what about the TV show? Also could you use something like a model rocket motor to melt the circuit board?

foxxtrotalpha (author)2012-06-14

Lol yes there are two zombies on the board. Had to add them. This is V1 of the project. V2 will have a burning effect. I don't think many people will want to build this project then actually destroy the etched and soldered Breakout board or risk damage to their arduino. So next version will just appear to be burning up, but no components of the circuit will actually be burning.

goldedrago (author)2012-06-13

oh and step 2? looks like 2 zombies lol

goldedrago (author)2012-06-13

i thought it was really going to blow up!lol it's still pretty cool! lol

About This Instructable

20,066views

84favorites

License:

Bio: I am a college student; I enjoy hacking electronics and DIY projects
More by foxxtrotalpha:Self Destructing MessageGoldeneye 007 Proximity Mine 3D Print PIRSoldering Assistant
Add instructable to: