Build a Stargate yourself?

Do you want to build a Stargate and DHD yourself?

You can now buy an archive of the needed files here. The archive includes the following:

  • STL files for all the objects needed to put together the Stargate as seen on this site.
  • 176 audio files with sound effects and audio clips from the show.
  • The gerber files for all the custom made PCBs.
  • The original 3D file of the Stargate and DHD in 3D studio Max file format.
  • Access to an online picture gallery containing a lot of extra WIP pictures and videos of the Stargate Project.
Build a Stargate yourself

After publishing this Stargate project online much of the feedback I am getting are from people asking if they can buy a Stargate or if they can buy the files needed to make one themselves. Sadly I do not have the time and capacity to be able to make and sell whole complete Stargates. It’s really time consuming work. However, I have put together this page where you can buy an archive of the needed files. I think the “Making the Stargate” and “Making the DHD” pages gives you a good starting point for how it’s made. Together with the files, the tips and suggestions on this page it should be possible for others to make their own Stargates. Keep in mind it is a lot of work, and I can not give you any guarantees that you are able to make a Stargate yourself, even if you buy the files.

If you buy the files and use them for anything fun, like making a Stargate of your own. I would really like to see it. Send me an email to and show me a picture.

3D Printing

To print the Stargate you will need a 3D printer. I guess any printer will do, but some of the objects are close to 20 cm across and requires a printer with a bed that is about 20×20 cm. If you have a smaller print bed, you will need to split the parts in order to print them. I used a Wanhao Duplicator 6 Desktop 3D printer to make this Stargate. I also used Wanhao ABS filament. Using ABS gives you strength and heat resistance. It also gives you the possibility to smooth the parts with acetone vape to give it a nice finish as you can see in my post here. I calculated the total print time to about 12-14 days total. Yes, that’s a lot of printing time.

The software

The archive you can buy on this site includes a Software folder where I put the python program that runs the Stargate. In order for this to work without too much changes you need create a virtual environment called stargate using python 3.8 and put it in the /home/pi/ directory. There are references in the python program to files in /home/pi/stargate/ so it’s easier if they are kept in the same path. When the virtual environment is in place, you need to install the different python modules using the requirements.txt file provided in the archive and drop the files from the Software folder inside the stargate virtual environment folder. The raspberry pi must be configured to log in and start the program automatically on boot. This way one only needs to provide power to the raspberry pi for the Stargate to boot and be ready to dial another planet.

Also in the Software folder is a file called This file should be run as a cron job every eight or nine minutes. This is a “workaround” to keep the speaker turned on. The speaker has an automatic shutdown feature if it’s not in use. Running the cron job will prevent the speaker from shutting down. If you use a speaker that does not have this feature, or one where it can be turned off, you won’t need to bother with the cron job.

The buttons on the DHD is really only seen by the raspberry pi as a keyboard. And one symbol on the DHD simply sends a letter or other key press to the pi. You probably have a different keyboard layout (language) than me, and also other hardware factors will send different keystrokes to the pi than is set-up in the program. In order to solve this you need to tweek the file. Within the file you will find a dictionary that maps each key to a symbol number. Simply update the key with the one you are using from your “keyboard”. Similarly with the lights under the DHD buttons, there is a dictionary that maps each symbol number with the DHD LED number.

The PCBs

The archive file also includes gerber files so you can order the PCBs from a PCB manufacturer. I want to give you a heads up in regards to the power distribution PCB. I did include two connectors for power input, one barrel jack and one micro usb port. However, I could not find any micro usb power supplies that was powerful enough for the Stargate. But if you do, you have the option. A power supply that can provide 3A should be enough.

The main reason for making this power distribution PCB was to eliminate the need for many power supplies. (One for the pi, one for the speaker, and one for the wormhole LEDs). I want to use as few wires as possible coming out of the back of the base. Also this gave me the opportunity to fix the “electronic noise” that was generated by the “system” and was ruining the sounds coming from the speaker. More info in this post. Also when I first made the power PCB, I had some issues with to much power running through the B0505S-1W. (It got too hot and died) I tried fixing this with a resistor, but after a lot of frustration I found that it was a faulty wire that made the trouble. The resistor on the power distribution PCB is therefore not needed. Either use a really really small one, or just use a regular wire instead of the resistor.

Because of the PCB taken from the keyboard, all 39 of the buttons on the DHD PCB can function with only 16 wires. I used red wires (R) for the lower eight connectors and black wires (B) for the top eight connectors. In this schematic of the DHD, you can see how each button is connected and which wires are in use for each button. As an example the first red wire, R1, is connected to 4 switches/buttons. Pressing the first one connect R1 and B2, and the second one connects R1 and B3 and so on. Using the PCB keyboard grid we made earlier, we find that pressing the first button (R1B2) triggers the keyboard PCB to send the “1” key to the raspberry pi. The second button (R1B3) sends the letter “q” to the raspberry pi. Remember to solder the headers on the DHD PCB on the backside. The wires connects from the bottom.

Update, 11.11.2020: The DHD PCB in the picture above is made to function with the dell keyboard PCB i took from an old keyboard i had lying around. You might get it to work with other keyboard PCBs also. But it will require that you can combine enough wires two by two to make the keyboard send 39 individual usable symbols to the keyboard. It also requires that you can do so with use of 16 wires, connected as seen in the schematic. This is just fine if you have the exact same keyboard PCB, but is not tested with other keyboard PCBs. I am currently working on a different way to to this without the specific keyboard PCB. It’s not as fun as “hacking a keyboard”, and will require 40 wires instead of just 16. This might also require a small redesign of the custom DHD PCB. I’ll update this site when I have this alternate solution working.

PCB Schematics: DHD PCB, Power PCB, Chevron PCB.

The hardware

update: 20.06.2020
I was asked about the wiring of the project and decided to make a wiring sketch. Because of the position of the wire screw connectors on the motor controller hats, they are hard to use when you stack the controllers. In order to easier detach the stargate from the base, I forwarded the connectors to the prototyping area of the top motor controller hat. There is an image of this to in the lower right corner of the sketch. Click the image for a larger view.

Stargate wiring sketch

In addition to the 3D printed objects that makes up the Stargate, we need some motors, wires, a raspberry pi, screws, LED’s etc. Below is a list of all the things I used in this project. I cannot guarantee that I remembered it all (or that every item is an exact match for what I used), but I think the list is rather complete:

Update 18.11.2020: I just calculated an estimate price for all the hardware in the below table. This is not including shipping. The total amount for the list below is about 520 euro.

PictureItem (amount)Link
raspberry piRaspberry Pi (I used the 3B+, but others will work also)
dc_motorMicro Metal Gearmotor with Push Header Shim – 50:1 (x7)
motor_hatAdafruit DC & Stepper Motor HAT for Raspberry Pi – Mini Kit (x3)
resize_NEMA_14_1_of_1_1024x1024Stepper motor – NEMA 14 (35mm)
led_listFlexible RGB LED Strip (NeoPixel/WS2812/SK6812 compatible) – 144 pixels per metre
resize_Wire_Spool_5_of_7_1024x1024Wire Spool – Red
resize_Wire_Spool_7_of_7_1024x1024Wire Spool – Black
resize_2x20_2_of_2_b5e0faab-d10d-4459-87de-89e54705b268_1024x10242×20 pin Female GPIO Header for Raspberry Pi – 11mm (x3)
resize_Header_Selection_1_of_1_62f73737-6d68-4b63-a201-40ece658e74d_1024x1024Maker Essentials – Various Headers
resize_1489-00_1024x1024Tactile Switch Buttons (6mm slim) x 20 pack (x2)
resize_power-supplyPower supply, 5V 3A
resize_usb-cableShort USB cable A male to Micro B Male (2x)
resize_fem-wire-connectorFemale wire terminator/connector (crimp) (quite a lot of these)
resize_connector_housingFemale socket connector housing (quite a lot of these as well)
resize_dupontDupont connector. (2pcs 1×4, 2pcs 2×5, 1pcs 2×8)
resize_led3mmLED 3mm (x14, and perhaps a few to break)
resize_led5mmLED 5mm (x7, and perhaps a few to break)
resize_speakerSpeaker with USB and jack connections
resize_jack-audioShort audio cable
resize_audio-adapterUSB audio adapter
resize_ball-bearingsBall bearings
keyboardOld USB Keyboard to take apart for the PCB inside
resize_screw-standoffScrew, standoff (x6)
resize_IMG_20201018_181003-e1603121652312Screw 1,4x6mm (ca 80 pcs)
resize_IMG_20201018_180821Screw 1,4x4mm (ca 25 pcs)
resize_IMG_20201018_181056Screw 2,5x12mm (ca 50 pcs)
resize_IMG_20201018_181122Screw 2,5x16mm (18 pcs)
resize_IMG_20201018_181132Screw 3x30mm (18 pcs)
resize_solder-pasteSolder Paste
resize_dotstarDotstars (addressable LEDs) (x40 LEDs and a few to break)
resize_angled-connectorAngled connector Female (x14)
angled maleAngled connector Male (x7)
IMG_20201018_180547resistor 100 ohm (x7, for the chevron pcb)
resize_microusbMicro USB female connector (actually ended up not being used)
resize_usb-aFemale USB A connector (x2)
headerHeader pins (a few of these)
resize_barrel-jackBarrel jack connector
resize_IMG_20201018_1804222-Way/See-Thru Mirror 3.0mm 300x300mm
resize_IMG_20201018_180422Acrylic mirror 300×300
magnetsSupermagnets x4
Chaos BlackChaos Black Spray
Mechanicus Standard GreyCitadel Paint – Base Mechanicus Standard Grey
codex_greyCitadel Paint – Layer Dawnstone
flesh washFlesh Wash
Green WashGreen Wash
Sepia WashSepia Wash
red washRed Wash
Black WashBlack Wash
Citadel Paint – Layer Eshin GreyCitadel Paint – Layer Eshin Grey
Brassy BrassBrassy Brass
Transparent RedTransparent Red