Introduction: 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)


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.


- 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 :)

Fandom Contest

Second Prize in the
Fandom Contest