Stargate Mirror With Visual and Sound Effects

38K18055

Intro: Stargate Mirror With Visual and Sound Effects

Stargate is one of my favourite sci-fi TV show of all time. It is actually in top 3 together with Star Trek and Battlestar Galactica. A while ago my wife gave me an idea for a mirror, which will look like Stargate, so I decided to make it with few additions.

As a huge fan of Arduino, I have designed a circuit with red LEDs for the chevrons and blue LED strip for the mirror frame. I have also added the mini mp3 player to play a Stargate theme song while red chevron LED's lights up every few seconds. All effects are triggered by PIR motion sensor hidden at the back of the mirror.

I hope you will like this project and happy making :)

STEP 1: CAD Design

I wanted to create a prop from one of my favourite TV shows, but I also wanted it to be useful. That's why I decided to make a Stargate mirror, where the visual and sound effects are just an addition that you can switch on and off.

For designing the Stargate mirror I used Fusion 360 and it took about 3 hours to complete it. The design is based on the picture I found on the internet and although it is not 100% screen accurate I am very happy with the result.

As for the mirror, I tried couple of different versions while rendering the design, blue and silver. Silver mirror works well when all the effects are switched off as it truly is regular mirror with Stargate frame around it. With blue mirror and LEDs switched on the mirror will look more closely to the Stargate from TV show emulating the blue wormhole effect.

In the end I decided to go for the blue mirror which is quite expensive (£60), so if you wish to save a little bit of money go for silver mirror (£25). I used UK perspex supplier called 'Perspex sheet', but if you are from any other country, I am sure you can find similar local supplier.

STEP 2: 3D Printing - PLA

- Load .stl files into Cura slicer

- I recommend printing with 200 microns layer resolution

- Set infill to 20% - 30%

- For the main stargate pieces you will need support material (10% infill works quite well)

- I recommend printing speed 40mm/s - 50mm/s

- Depending on nozzle type and PLA brand, I recommend printing temperature between 200C - 220C

- After each part is printed, I recommend to write the part number with marker at the back, so you can assemble the mirror in the right order

NOTE: Most of the pieces were printed in Polymaker PLA at 210 degrees nozzle, temperature and 50 degrees bed temperature. Some of the parts were printed in Verbatim PET-G at 235 degrees nozzle temperature and 50 degrees bed temperature.

STEP 3: 3D Printing - UV Resin

- Use slicing software to prepare .stl files for printing (software will vary depending on the brand of the printer)

- I recommend 40 microns layer resolution for the stargate chevron parts (stl files available below)

- Depending on the resin and the printer brand I recommend 8 sec - 12 sec normal layer exposure and about 60 sec - 70 sec for few bottom layers

- Generate support (medium density support works well)

- Before printing clean carefully resin vat and build plate using IPA (99%)

- Shake the bottle with resin before pouring it into the vat

- After the print is finished, remove the chevron parts from the bed using plastic spatula (don't use metal as that will scratch the build plate)

- Clean your prints with IPA

- Cure your prints under UV light (use either the UV lamp or leave it for few minutes outdoors exposed to sunlight)

ALTERNATIVE TO RESIN PRINTING:

If you don't have resin 3D printer, don't worry. You can use T-Glase filament and print the parts on your regular FDM 3D printer. T-Glase translucent red filament is available here: Taulman T-Glase

NOTE: For this project I used Formfutura translucent red UV resin which is available here: UV resin Red

The advantage of this resin is that it is literally odourless and it's very reliable. On the other hand, it requires 10%-20% longer exposure times, so it will take longer to print.

STEP 4: Mirror Assembly Part 1

- Firstly glue all the pieces in the right order using superglue (all main parts are numbered to make it easier to assemble)

- Glue the ring_mirror_holder pieces together and then glue them to Stargate frame (Before gluing the mirror ring to the stargate frame, check if perspex mirror will fit into the ring. There is a small gap in the ring to feed the wires so it is very important to glue everything correctly)

- Glue ring_wall_hoder_Audio_Pot and ring_wall_hoder_PIR_sensor to the Stargate frame (see second picture above)

- Once the glue is cured, paint the stargate frame. I used dark metallic grey acrylic spray paint made by Rust-oleum

- Wait at least 8 hours for the paint to dry and then paint the chevrons and symbols on the stargate dial. I used sliver spray paint by Rust-Oleum.

NOTE: You can choose different colour scheme, something which will be more screen accurate or something completely new and unique to your style.

STEP 5: Electronics

On the photos above, you can see connection diagram for the Stargate mirror with visual and sound effects.

Please follow the diagram and solder all components together accordingly (see pictures of soldered electronics which is placed on the back of the mirror.

When it comes to PAM8403 mini audio amplifier, you can find two different versions; one with potentiometer to regulate volume manually and the other without potentiometer (volume can be set in arduino code).

For this project I would recommend using the one with potentiometer so you can adjust the volume of the tune played as you wish. You can even switch the audio off completely and leave only visual effects.

Above, you can see pictures of each electronic component mounted at the back of the mirror. I used insulation tape to secure all wires to the frame and a little bit of superglue so the tape will stay in place.

STEP 6: Arduino Code

Here is the code that you have to upload using Arduino IDE and instructions how to do that.

- Open Arduino IDE

- Open the code [File -> Open -> Stargate_PIR_DFPlayer_LED_v2.ino]

- Download DFPlayer Mini Fast library [Library]

- Add library to Arduino [Sketch -> Include Library -> Add .ZIP Library]

- Connect Arduino Nano to PC/Laptop using USB cable

- Choose COM port [Tools -> Port “…” -> COM…]

- Choose Arduino board type [Tools -> Board: “…” -> Arduino Nano]

- Choose Arduino Nano processor type [Tools -> Processor: “…” -> ATmega328P] [It is possible that you will need to change it to ATmega328P (Old Bootloader) depending on Arduino Nano]

- Verify the code

- Upload

NOTE: When you open the code in Arduino IDE you can adjust the time of how long the LED strip is on (see picture above).

STEP 7: Mini DFPlayer Audio File

Now it's time to load your audio file to mini DFPlayer. Unfortunetely because of copyright issues I can't share my personal audio file in this Instructables. However you can get Stargate theme song from services like iTunes or Spotify.

DFPlayer:

- Format micro SD card to FAT32

- Copy the 'audio_file_001.mp3' audio file to the SD card

- Insert SD card to the DFPlayer mini

NOTE: Make sure the your audio file is not amplified (see picture above) as that will cause issues when playing through PAM8403 audio amplifier. As a result the Arduino might reset itself half way through the program.

I used Soundforge to check if my audio file has the right volume level as shown in pictures above. You can also use free Audacity software available here: Audacity download

STEP 8: Mirror Assembly Part 2

- Glue the blue LED strip (use super glue) to the mirror ring as shown in picture above

- Place few bulldog clips around the mirror ring to make sure the LED strip will not move while glue is curing

- Arrange soldered electronics as shown in second picture above and secure the wires with insulation tape

- Mount 500mm diameter perspex mirror into the internal ring as shown in third picture above

STEP 9: Stargate Mirror Test

Now our Stargate mirror is ready for the test. Hang it on the wall and plug in the power supply to mains. It takes few seconds for Arduino to start and then every time someone will pass next the mirror, motion sensor should trigger the routine.

The Stargate theme song should start playing and then red LED inside the chevrons should light up every 10 seconds. After 7th symbol is on then the blue LED strip will light up to simulate wormhole. Once all LEDs are on and music will stop, everything will remain on for another 100 seconds. The time intervals between red LED's and the time blue LED strip is on, can be changed in the Arduino code (see Arduino Code and Mp3 Player step).

As mentioned before, the sound can be switched off at any time by turning the potentiometer on PAM8403 audio amplifier.

Jaffa Kree :)

45 Comments

I have just started to work on this project as a gift to my daughter. After I introduced her to SG1, she became a huge fan. And that was many years ago. Wish me luck. I expect to be finished in a few months.
It's not an easy project, but for new Stargate fan it's definitely worth it :)

Good luck and if you will need any help, let me know :)
Well I congratulate myself on finishing this project. As noted previously, it was to be a gift for my daughter. My good news is that I have resolved the problem you were having with the sound level. There is no need to minimize the music tracks. The problem is that the Arduino Nano can not supply the 5V current for both the DFPlayer and the PAM8403 amplifier. What happens is that a loud burst of music will draw too much current and the Nano reboots. The problem is solved by using a buck converter (I used an MP1584EN which is very inexpensive) powered by the 12V supply to provide the DC power of the PAM8403. Works perfectly now. One caution is when adjusting the output voltage on a buck converter, use a 10K resistor across the output while adjusting to 5V otherwise, if it is connected to the PAM8403 at a higher output voltage, it will blow the PAM8403. I also made two improvements. First, I wired the two unused chevron LEDs to pins A0 and A1 making them digital output pins I then used random to randomly light 6 LEDs always keepi9ng the Earth glyph chevron as the 7th to be lit. Second, I also added tracks for the entire sound track of both the SG movie and SG1, and then used random to play one of the tracks each time the motion was detected. The only problem I had was that the DFPlayer module I am currently using, seems to always loop the track and I was using isPlaying to note when it ended to turn everything off. I have not resolved that yet so I added a counter to make sure that it aborted playing after 5 minutes (I had some long tracks!). I can send you my code if you would like it. By the way, I started with a rectangular 2ft x 4ft blue acrylic mirror and cut out the circle using a dremel. It was not as precise, and I had a little difficulty positioning the mirror supports, but it is OK. Great work you did on this project. I have a friend at work who would like one. With what I have learned doing this, a 2nd one should take a lot less time.
Congratulations on completing the project and also on upgrades you did! I already bought MP1584EN to upgrade my mirror :) If possible I would definitley like your upgarded arduino code and I will also have to find time to wire the remaining chevrons to analog pins :D Thanks for the informations!
Thought I would give an update. I have finished the 3D printing, assembled the model, and am working on the electronics. I decided to add LEDs I to the two unused chevrons and am using random to I decide an array of pin assignments using A0 and A1 did the 8th and 9th LED. Using this, 7 of the 9 (not to be confused with Jeri Ryan of StarTrek), LEDs will be randomly lit. Actually I am keeping the chevron closest to earth as always being the 7th to be lit. I also am adding about 20 additional music tracks so that each activation plays a different track. I used hammered metal spray paint for the gate and used metallic blue DecoArt paint for the glyphs. I managed to obtain a 2ft x 4ft piece of blue acrylic mirror from my big box hardware store and used a dremel to cut a 500mm circle. So far, this looks fantastic. I’m now contemplating on some kind of mirror setup for a Star Trek motif for my son. I am an old electronics buf in ham radio in my early days, and a good deal of electronics. But I have not done any of that in years. Started 3D printing last August and found my retirement hobby. Btw, the chevron inserts were printed using FDM with a transparent red filament. You have a great project here. Thanks for making it open source.
I like the idea of the gate resembling the Atlantis ones, it shouldn't be too problematic having a light run around the ring and subsequent lights stacking behind it.
I suppose it would be too cheeky to ask that your next attempt includes a "kawoosh" and perhaps the odd ripple across the surface of the mirror?
I'm sure it's possible, after all, Orlin built one in Sam's basement using odds and ends he ordered off the internet, Sam's microwave and her toaster :-D
Needs an iris in case some goa'uld wants to play ugly tricks, like bombarding it with energy for prolonged time, or simply walking in and kidnapping someone :)
Gaters gonna gate! Lovely project.
Awesome! Here's hoping Amazon decides to make a fourth Stargate series!
Have you seen the various replicas on YouTube? Some of them are full sized!
WoW... I will build one with a little change.
two mirrors the front a spy mirror, the blue leds between them like an infinity mirror.
I am testing it out after slightly modifying it as I only want it to play music. I'm NOT using the LED strip and the 7 LEDs, just One LED connected to D4. At the motion detection the music plays and the LED connected to D4 turns ON. The music stops but the LED stays ON forever even without any motion. I changed the delay times in lines 44, 46, 48,50,52,54,56 to 100ms. but it didn't work. Please advice what changes I need to do to turn the LED OFF. Thanks.
Amazing Instructable. Well done!
Have you thought about turning the mirror into an infinity mirror?
Thanks! Bravo!
Thnak you :) The original version was with silver infinity mirror, but in the end I decided to use regular blue mirror. The infinity vesrion was nice, but a littl ebit too distractive for everyday use :) As a decoration infinity mirror is definitely the way to go. I do have STL files for infinity version and I will add it to the instructable this week as a optional upgrade :)
Okay. This is absolutely amazing. Now you must do the Oblivion gates. NOW!!
I followed your instructions and downloaded the Arduino sketch and the DFPlayer Mini Fast library. When I connect the Arduino Nano and run Verify I getr an error message: "C:\Users\Ken\Documents\Arduino\libraries\DFPlayerMini_Fast-master\src/DFPlayerMini_Fast.h:22:10: fatal error: FireTimer.h: No such file or directory
#include "FireTimer.h" Please help how I can resolve this. Thanks.
Hi, I come across similar error before myself. As the Stargate mirror doesn't use FireTimer.h library it must have been used for one of your other projects and then possibly removed. Now Arduino checks all the libraries and can't find FireTimer and although it's not used in current code you receive an error. What I would suggest is to install Arduino IDE on different PC and then try to compile sketch. Another option is to reinstall on your currnet PC, but remember to remove manually all libreries.
You can also try to download FireTimer.h library and manually add it to the libraries folder or even add to the Stargate code as it won't do any harm to the code.

I just downloaded the Stargate code and it's compiling OK on my PC so please try above solution and let me know if it helps.
Thanks for your suggestions. I downloaded FireTimer.h library and addded it. This got rid of the error.
Yup, you are a master at explaining and creating. Thank you for the very detailed Instructable. Stargate movie tagline: "It will take you a million light years from home. But will it bring you back?".
Thank you so much! I'm not a
native English speaker so sometimes it's difficult to explain things, but I'm
doing my best :)
More Comments