Working Stargate with Arduino Control

by Carasibana, published

Working Stargate with Arduino Control by Carasibana Dec 1, 2014
5 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps


Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

111986Views 13098Downloads Found in Props


** STOP!!!! ****

Glitch has come out with a new version of the stargate that blows this out of the water! check it out here http://www.thingiverse.com/thing:1603423

This is my Remix of Glitch's working Stargate.

I remixed this with the following changes:

  • I altered the Base extensively, so that it prints in one large piece on a 150mm ^ 3 print bed ( with separate sides and a top cap )
  • The base also has mounting for a NEMA 17 Stepper motor , and an Arduino UNO with a Motor Shield.
  • The Gear was modified to snugly fit onto the stepper motor, and added a hole through which the Stepper motor could be tightened to its mount.
  • I combined some parts that were 2 pieces into one piece so that the build required less gluing and was structurally stronger

I also have included the DialingSequence Arduino sketch that I wrote to control the project.

Detailed instructions are now available, click on Instructions to view them

Video of the final result: http://youtu.be/JDSCKgwPn2k

A HUGE thank you to Glitch for the original design of the working stargate!

** V 1.01 Update 15/12/2014 **

  • Altered the Base to add more material to the interior vertical pillar on the micro controller side for more support for printing without support material.
  • Altered the Base to have have smaller holes so it will slice properly ( 5mm diameter became 4mm diameter )
  • Altered the Pins on Side1 and Side2 to have smaller pegs to fit the new holes ( 4mm diameter to 3mm diameter )

Updated files are now named

  • Instructions on the thingiverse page had randomly been mostly deleted, luckily I had them saved as a text file and have restored them ( to a slightly earlier version )


Working Stargate with Arduino Control

The Electronic components that you'll need for this Project are:

1 x Arduino Uno
( https://www.adafruit.com/products/50 )
1 x Adafruit Motor/Stepper/Servo Shield for Arduino v2 Kit - v2.3
( https://www.adafruit.com/products/1438 )
1 x Stepper motor - NEMA-17 size - 200 steps/rev, 12V 350mA
( https://www.adafruit.com/products/324 )
9 x NeoPixel Diffused 5mm Through-Hole LED
( https://www.adafruit.com/products/1938 )
1 x 12 VDC 1000mA regulated switching power adapter
( https://www.adafruit.com/products/798 )
1 x 1000 µF Capacitor
1 x 300Ω to 500Ω Resistor
22 AWG Wire ( you could use a smaller wire, but this is what I had, and it is more than capable of handling the current that the electronics will draw )

File names

  • I have named the files so that they tell you my suggested order they are needed for the build in, a s well as how many of each item to print, and a description of the piece
    for exmaple

    "01" This is the first piece for the build,
    "_8x" you will need to print 8 of them
    "DoubleMiddle-1" This is a piece I Doubled from Glitch's design, it is for the Middle ring, and there are 2 different components for this larger part


  • If my doubled pieces are too large for your printer, you can use the single pieces from Glitch's original design, it will just require more gluing, and may be a little less strong structurally if a lot of gluing joints line up.

This build has Several components; the actual Gate itself, the base, and the electronics.

The Gate consists of 4 Layers which I refer to as Middle, Back, and Top, and the Symbol Ring.


The Middle section is the most structural part of the gate, it consists of the 'Track' that the Symbol ring spins in, and it holds the wiring and LEDs .
When I was combining parts from 2 pieces into one from Glitch's original design, I made it so that the Middle section is offset by half a length from the Top and Back pieces. I did it this way so that the joints that you have to glue don't all line up, so that the gate is stronger.

These files make up the Middle ring:  

Symbol Ring

The Symbol Ring is the geared piece that has the Gate symbols and actually spins. I have made no changes to these files from Glitch's original design aside from fixing some models to be manifold. I only included them for the sake of completeness. The pieces should be assembled clockwise sequentially ( i.e if piece 1 is at the top , piece 2 is to the right, 3 is to the right of that etc. until piece 10 is connected back to the left of piece 1)

These files make up the Symbol Ring:  


The Top layer consists of several parts, The Chevrons that sit over the LEDs, the Light caps for those, and an an inner cover. The top layer is attached to the Middle layer, and is what keeps the Symbol Ring in place while it is spinning.

The Chevrons purpose is to cover the wiring, holding the LED's in place, as well as conceal the gear teeth of the Symbol Ring, and do most of the work keeping the symbol ring in place. They attach to the outer edge of the Middle ring. Because I made these parts offset from the Middle pieces, the part isn't also joined at the same point that it covers the LEDs

The Chevrons of the Top layer are made with the file:  

The inner cover also keeps the Symbol ring in place, it attaches flush to the inner edge of the Middle ring.

 it consists of  

The Light Caps sit directly overtop of your LEDs. I highly recommend printing these in either a transparent material, or a transluscent Red material. the fit into the Chevron parts

They use file:  


The back is the decorative back side of the Stargate. it glues onto the back of the Middle section and provides more structural support as well as finishing the appearance of the Stargate.

The back is made from the file:  

Printing & Assembly

  • To begin with, I found it was usefull to print an extra "_03__1_x_sg-ring-1.stl" at ~50% Z scale to use as a guide to help you line up the Middle pieces when they're being glued together.

The Gate

  • I printed all of the Gate pieces at 0.1mm Layer height, 35% infill, with no support material needed.
    I highly suggest using Super glue and not Hot glue, as hot glue takes up a lot of space, and the extra material will throw off the desgin, making things not fit together properly when you're assembling all the components together.

Start by printing the parts to make the Middle ring, _01__8_x_DoubleMiddle-1.stl makes up the bulk of the section, with one piece made from _02__1_x_DoubleMiddle-2.stl that is slightly different in that it has spacing for the gear to fit into , and for the wires for the LEDs to come out of.

glue the pieces together on a flat surface, using your extra sacrificial Symbol ring piece as a guide to make sure that the middle pieces are lined up properly. Be careful not to accidentally glue your guide to your middle pieces.

Once the middle ring is complete , Print the Ten Symbol ring pieces , and glue them together. I suggest using the Middle ring that you already assembled as a guide to make sure that your Symbol ring is lined up properly. Again be careful not to glue the symbol ring to the Middle component , or else your Stargate won't spin!

At this point you can wire up your LEDs. I chose to use 5mm NeoPixels for several reasons. The NeoPixels can all share a common 5V line, and a common Ground, and have a Data in and Data out. This means that you can run one 5V line all the way around the gate, one Ground line all around the gate, and have a Data line that is chained between each Neopixel.
This means that at any given point you only need to have 3 wires running around the gate. Much easier for wire management than if you needed to have an individual 5V line for each LED, and it only uses one pin on the Arduino!
Using Neopixels also means that you have full RGB colour on all of your chevrons. As far as screen accuracy I can't think of a reason to make your stargate light up purple or green, but it can look really neat none the less. It also means that you can adjust the colour of your Neopixels if the light cap pieces that you use have a tint to them to give you the exact colour of light that you want.
Connect the power to the NeoPixels in parallel NOT in series.

If you're new to Neopixels, I HIGHLY recommend reading the Adafruit NeoPixel Überguide, by Phillip Burgess https://learn.adafruit.com/adafruit-neopixel-uberguide/overview

You'll want to include the resistor on the Data line between the Arduino's Data pin and the Data In on the first Neopixel, and also include your Capacitor between the 5V and Ground lines before the Neopixels ( this is to protect the NeoPixels from a sudden surge when you first apply power to them )

I used Hot Glue to hold the Neopixels in place on the middle section, and you can see how I oriented my Neopixels to fit in an example picture I included in the gallery for this Thing.

Be sure to leave enough wire leading into the first NeoPixel so that there will be room to connect everything , and route the wire so that it doesnt get caught in the Gear when its spinning.

I HIGHLY recommend testing the wiring of each NeoPixel as you go to prevent headaches down the line!

Once you have wired and THOROUGHLY TESTED your entire NeoPixel strand, you can print the Top pieces and glue them onto the Middle section. Make sure that your Symbol ring is sitting in the track of the middle piece when you glue your top pieces on! You may need to slightly trim out the underside of the Chevron pieces to get them to fit overtop of the NeoPixels proerly ( this trimming will be hidden )

Test to make sure that your Symbol ring still spins freely as you glue on each top piece.
When you're gluing the Chevrons on , also make sure that you glue each Chevron's edge to its neighbour pieces as well as to the middle section. also make sure that the inner top covers are glued to their neighbours as well.

I used Hot glue to attach the Light caps overtop of the Neopixels, this gave a good glow to the entire light cap piece when lit , and was easy to glue in. Be carful if you do this however! , the heat of the hot glue can warp your light cap part.

Once everything is dried and secure in place , you can turn your Gate upside down ( on a flat surface ), and start to print and glue on the Back pieces. The Back pieces are offset from the Middle pieces, so they should line up so that the glue joints of the middle pieces are in the middle of each back piece.

Congratulations! you have assembled your Stargate! now its time to print the base and set the Gate in place!

The Base

  • I printed all of the Base pieces at 0.3mm layer height to decrease the print time.

Print your main Base piece! , this one is going to take a long time. Mine took 11.5 Hours at 0.3mm layer height
I built mine from an earlier version of the base design, I have modified the base model since then to account for some modifications I had to make as I built mine, but I have not printed the base as it is now.

Once you have your Base printed, print the sides and Top Cap and make sure that they will fit onto the base
Again, the sides are slightly different than the ones that I used in my build, I added the pins built into the sides AFTER I made mine ( I used finishing nails in my build ) I also added the hole for the Power and USB Cables for the Arduino

Print out your Gear that will fit onto the Stepper motor, and slide it onto the drive shaft of the Stepper.
Now slide the Stepper motor into place, and secure it by screwing it to the base structure through the hole in the gear.

For testing purposes I suggest leaving the sides off of the base for the first few tests, the sides do add some support to hold the gate up, so you might have to carefully hold the gate upright for your initial testing.

Slide the Assembled Gate down into the baseso that the teeth of the Sybol ring intersect with the teeth of the gear on the Stepper motor's shaft.

Upload the provided Arduino sketch, DialingSequence.ino ,to your Arduino, connect the Stepper motor to the motor shield, and connect the Neopixels to the 5V , Ground, and Data to pin 6 on the Shield/Arduino

I have attempted to comment everything you need to know about the Arduino sketch into the sketch itself, and won't explain it here, if you need any help with it, please leave a comment
As of right now , there are some small tweaks I'm intending to make to the Ardunio sketch, so that the symbols will line up better with the chevrons when the symbol ring spins, and so that it will properly dial the address provided ( its currently miscalculating every other symbol backwards, the ring will spin , but it wont line up with the intended symbol )

Be sure that you install the power jumper on the motor shield, and that you are using a wall wart of sufficient power to power your stepper motor. ( 12 V 1 Amp that I used was sufficient )
Do NOT power the Ardunio with the motor shield connected to the stepper soley from your computer's USB port. This could cause damage to your USB bus as the Stepper is intended to work on 12V , and may draw more current in spikes than the 500 mAh that computer USB ports are rated to provide

For more information about Stepper motors and the Motor shield, you should read the Adafruit Motor Shield V2 for Arduino guide by Limor Fried ( Lady Ada ) at https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino

Once you have tested the Gate in place on the Stepper motor , you can install the Arduino & motor shield into the holder in the base, and route your wires so that they won't get caught in the gear when it spins. then you can install the sides on your base, slide the Gate into place and snap the top cap into place!

if you need to take your Stargate back out of the base, you will have to release the side's pins from teh base, then roll the stargate to one side, sliding the side down until it slides off of the Chevron piece and can be pulled off. Then repeate the process for the other side.


  • you've built your own working Stargate!
    I'm more than happy to help with any questions or modification suggestions anyone has, message me or leave a comment on this thing and I'll get back to you as soon as I am able ( Though it might take a little while, I won't be checking Thingiverse every day! )

All credit to Glitch for the incredible design of the Working Stargate! all I have done is merge some thigns together, and alter the base to fit an Arduino and Stepper motor ( And wrote the Arduino sketch )


More from Props

view more

File Name



All Apps

3D Print your file with 3D Hubs, the world’s largest online marketplace for 3D printing services.

App Info Launch App

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

3D Print a wide range of designs with Treatstock. Easy to use tools to get the perfect result. The global 3D printing network that connects you with high-quality and fast working print services nea...

App Info Launch App

Good assembly
But my arduino knowledge is limited
Could you tell me how to connect the diodes or wiring diagram of the complete circuit
thank you very much

Comments deleted.

What shield is that for the Arduino? I plan on making this but I am not sure what that shield is because it would appear as the Arduino is up side down

All the parts are listed in the instructions :)

If you're interested in building this , I'd suggest checking out http://www.thingiverse.com/thing:1603423 first before you start in though!

Working Stargate Mk2
by Glitch

What shield is that for the Arduino? I plan on making this but I am not sure what that shield is because it would appear as the Arduino is up side down

What shield is that for the Arduino? I plan on making this but I am not sure what that shield is because it would appear as the Arduino is up side down

What shield is that for the Arduino? I plan on making this but I am not sure what that shield is because it would appear as the Arduino is up side down

What shield is that for the Arduino? I plan on making this but I am not sure what that shield is because it would appear as the Arduino is up side down

a real newbie question.
Do i need two power supplies 12V and 5V or what?

how mutch filament needed and rough time to print ?

Any thoughts on getting the locks to actuate. I was thinking about using relays to push them down when the last one locked. Also was thinking about backing it with a mirror for effect. Scaling it up and sticking it in the closet :P

Isn't the NEMA 17 a bit of an overkill? I mean you neither move fast nor something heavy, so a small stepper (or DC motor with encoder) should work fine. I'll make a version for smaller steppers as soon as I've got the right filament and some time.

I am working on this project now myself and a friend gave me small idea. Seeing as we unfortunately cant have real wormholes and only the sounds can play he said it might be a good idea to have a few blue LEDs in the center ring to activate when dialing sequence has finished. Any idea if this is possible with this design or not?

Anyone else have a problem with stepper motor being too weak? My inner ring spins nice and freely - I can spin it so easily with my finger and it doesn't snag or catch, yet when I place the ring on top of the gear it's as if the motor just isn't strong enough and it struggles to turn the ring. If it was catching I'd understand but since I can spin it freely no problems I'm a little confused. It takes very minimal effort to stop the stepper motor! I bought all my stuff from adafruit.com so it's not a cheap clone or anything. Anyone got any ideas? Ps: it's powered using 12v 7a adapter into the dc jack.

Try upping the stepper motor current on your driver board maybe?

I'm not sure it can be done?... I Used this board: https://www.adafruit.com/products/1438

It appears you are right, and your board has a comparable current capacity to the A4988 board (which is what I assumed you were using).

Only thing I can suggest is checking the input voltage while the motor is running, to see if it is a power supply issue, then you could check voltage across one of the stepper coils while it is running (just remember not to remove the motor wiring from the board while it is powered up).

I see that your board has several modes of driving the motors, have you tried "single coil" or "interleaved" modes?

Other than that, someone else with a bit more experience might be able to chime in :)


Complete EPICNESS! I am adding to my project list light under my 100watt flash light.

Where can I buy Naquadah filament?

I too would like to find some Naquadah filament as I do not believe anything else is strong enough for correctly printing a stargate.

I had been thinking of trying this in bronzefill or stainless steel......

Maybe a plain PLA version first tho. :)

Best comment ever.

The best stargate model I have seen, and it's working too.

Can you lock the eigthth symbol to go in another galaxy?

Really neat design, though If I make one I'll probably re-shape the base to look more like the actual ones in the show, not the one in the game room, the ones on alien planets, set of stairs etc, perhaps add a DHD, making that work as well could be pretty tricky though.

How far can this transport you? I didn't expect to see a working stargate on thingverse!

Well as of yet , I've been unable to establish a connection to an off world gate through random dialing. And as you know its not possible to dial into another stargate on the same planet ( barring a solar flare redirecting the wormhole through time ) So the distance remains unknown as I haven't found a remote gate to connect to. Also I'm not entirely sure that a 12V 1A wall wart is able to provide the power necessary to form the wormhole initially, further testing is required.

i do not think that the arduino can calculate for all of the years of interstellar drift

is there a schematic diagram for wiring the LEDs?

What sizes did you print the stl files? What sizes did you make the pieces for your model?

How is this not a featured item!!!

This looks INCREDIBLE!!! , I clicked on the instructions but I do not see anything on the assembly of this in detail once it's all printed

I did have the instructions saved to a text file , and I've added them back to the instructions section , they're a slightly older version, and I think thingiverse might be having some issues with the formatting , but they're there again!.

There USED to be an entire write up on assembly and tips, but it has disappeared and I did not remove it. There must have been a problem with thinigiverse. I MIGHT have a copy of it saved as a text file at home, if thinigiverse doesn't restore what was there I'll see if I have a copy of it , I really don't want to rewrite the instructions for a third time.

Hi Cara!

Awesome job on this. I just finished assembling mine. The only issue is, I'm using a Seeed V2 Motor Shield instead of the Adafruit one. Is there any chance you can make a version of the .ino for this particular shield? The Arduino library is located here: https://github.com/Seeed-Studio/Motor_Shield and the shield's wiki page here: http://www.seeedstudio.com/wiki/Motor_Shield_V2.0

I know that it's rather cost-prohibitive, but I wonder how complicated it would be to get a piece of that 'privacy glass' and cut a disk of it to sit in the middle. It's transparent until you run a voltage through it, you could probably set the arduino to trigger a relay on/off and make the glass opaque or trasparent to go with the gate being open.

Keep the Gate Open!

But we haven't received the proper IDC!

I made one for my wife for christmas, I forgot how much I hated soldering when it came to tight spaces with the LEDs but I managed. my ring had a lot of friction based on the way the glue set everything so I spent quite some time loosening it up. I did find the gear dimensions to be ever so slightly oversized which was enough to chew up the plastic. I've redesigned the gear for a tighter fit and put a flange on it to distribute the radial forces over a greater flat. Hopefully I'll be back in action after that.

I settled on simply drilling a hole in front and adding a button to start the built in sequence, as much as I'd love to make this into a huge project, I know I'd never finish if I did haha.

When it comes to the sketch, I'm working through the code myself as well. So far a few notes (I can't test until I get the fixed gear but plotting the logic works):

  • Chevron 1 logic needs to account for the fact that you start on "1"
    numStep = ((SGAddress[(Chevron-1)]-1) * (STEPPERSYM));

  • Chevron 2,4,6 logic, the else should be
    "numStep = ((SGAddress[(Chevron-2)] - SGAddress[(Chevron-1)]) * STEPPERSYM);" // to provide a positive step value

  • Chevron 3,5,7 logic, since the gate is moving CCW aka "Forward"
    if (SGAddress[(Chevron-1)] > SGAddress[(Chevron-2)]){
    numStep = ((SGAddress[(Chevron-1)] - SGAddress[(Chevron-2)]) STEPPERSYM);
    numStep = (((39 + SGAddress[(Chevron-1)])-(SGAddress[(Chevron-2)] ))

I am interested on how you changed or add the code in order to have a button to start. That and how or where do we put the release( ) call to let the coils free in order to avoid overheating the motors.

I'd thank very much any help here.

Except for a few syntax corrections (missing asterisk before STEPPERSYM), your changes seemed to work well. Thanks!

Ok I think I got it figured out. I didn't alter the neopixel parts of the sketch and I am still waiting for delivery of the neopixels so I'm no 100% sure that part works but I see no reason it won't.

My solution for the stepper may not be that well written but it works. the delay(5) that determines stepper speed will probably need tweaking as will the a<2000 part to determine how long to rotate in each direction.

I've attached the new sketch. I'm pleased this was possible because an uno and motor shield is $45 and a trinketPro and pololu a4988 is $15!

sketch: https://www.dropbox.com/s/6u1assbpru2whv8/pololu_DialingSequence.zip?dl=0

Just amazing. I thought the pulsing startrek warp core was awesome but this is another level.

I'm trying to build one with parts on hand. I have a adafruit trinket pro, pololu A4988, stepper motor, and the right neopixels. I love to make this work but cost is an issue so I am hoping you can help.

I found this page: http://forum.arduino.cc/index.php?topic=133894.0 which makes it seem like controlling the pololu is as easy as setting direction pin high or low and pulsing the step pin once for every motor step.

can you help me alter the sketch to work with this? It would be nice for others as well since the trinket pro/pololu combo is much cheaper

Wow, that is awesome. Nice work!

Lol. "Working Stargate". Still seems cool, though.

When I ran the sketch as-is, the stepper motor jerked and stuttered while rotating. After a bit of futzing with it, I found that it smoothed out and worked fine if I changed it to DOUBLE instead of SINGLE:
myMotor->step(numStep, BACKWARD, DOUBLE);

Has anyone else noticed this issue? Also, the stepper motor seems to be heating up rather quickly even without being attached to anything, which concerns me a bit.

We're still printing and assembling everything, but it's awesome so far. Thanks for the contribution!

Comments deleted.

I ended up just leaving it as DOUBLE. While that seemed to solve the problem, there did seem to be a very minor error of rotation where the steps were a fraction of a degree off. If you ran the sequence over and over, it would slowly creep out of alignment. Eventually, you would have to manually line up the starting point again. Not a huge deal, but something to keep in mind if you start showing it off a lot.

Damn, deleted the previous comment just when I was finishing answering you.
Well, as you did, I ended up leaving DOUBLE and for the rest of features I wanted, I figured it out myself after spending some days asking here and there. :(

So now it only works when a button is pressed, all coils are off when after each rotation, and I've added a string to have some LED strip to simulate the wormhole and another for the ramps lights. Also it will be the code for my new Stargate Mk2 by Glitch. I'll be using a RC servo instead of the second stepper because I think it's too much and turns the project a bit more expensive.
As for the rotation alignment, I've seen here some posts that mention 30.77 steps as the right ones. Maybe I'll try to integrate Glitch's code for the calibration process. :)

A friend has asked me to try to make one of these for him. I have a couple of questions:

  1. What specific material did you use? I can see it is gray and you mentioned PLA, but who made it and what specific color did you use? From my research it looks like MakerBot cool gray. Can you confirm that? And do you have an idea of how much filament you used for the piece, so I know if I can buy the small reel or if I need the large one?
  2. Do you think that the programming could be changed to use an EasyDriver instead of the Adafruit driver? I have several EasyDrivers from another project.


I used Bumat Gray PLA ( http://www.amazon.ca/BuMat-Filament-2-2-Pound-Printing-Material/dp/B00JHKSOMK/ref=sr_1_9?ie=UTF8&qid=1420035508&sr=8-9&keywords=bumat+1.75mm+pla ) and it used ~ 2/3rds of that spool to print. If I could have found it I probably would have used something that was a slightly darker Gray in colour.

I've never used an EasyDriver, there's no reason that the arduino sketch couldn't be modified. My version calculates the number of steps needed to reach each symbol , and then uses the Adafruit driver Motor Shield V2 library to drive the stepper motor the number of steps needed in the direction needed. you should just have to modify the code to remove the adafruit motor shield library calls and replace them with those needed to have the easy driver move the number of steps needed.

Its awesome! Will you probably do more Stargate stuff?

I Hope so! , i plan to make a DHD to dial the gate with when I can find the time

Well, the second attempt at printing the Base failed at the same spot were the second motor shaft support is built up from the Arduino mounting bracket. This time I used the excellent print mode and a 90% fill on a Da Vinci 1.0 printer. What a shame it looks like a cool project. It may be possible to print the Base using supports, but I'm not going to waste another 20+ hours and over half a roll of filament to find out. Here are some pictures of the failure I keep seeing. http://www.teamkiss.com/StargateFail/ 881-883 are the latest attempt

I'm really sorry its given you so much trouble, Thats a lot of filament :(
There is a version 1.01 of the base file that I made to try to address that problem. It that has a much larger piece at the point where it failed on you to try to help with that problem.
I really appreciate the pictures, that kind of feedback is great to help me try to fix the model to work as well as possible.
I printed mine at about 35% infill 0.3mm layer height , and it took around 11 hours on my Printrbot Simple metal, I must have gotten lucky at that point.

I had similar issues. I'm printing from ABS at .2mm took about 16 hours and 14 hours into it the top failed. Basically at 85mm up. The center columns are the problem, they wobble back and forth too much during printing. If those had more support I think it'd help a lot. I might add some struts and try again. But for now to get a working prototype my base from 85mm down is okay and will slice the file and print from 85mm up and glue the top on.

How are the leds connected to the arduino, what ins? Also does the base need supports when printing.

The neopixels are connected on pin 6 in my sketch , but you can change it to any available pin if need be.
I printed an early version of the base without support just fine, but a few people have mentioned some issues printing the base with no support, to that end though i released v1.01 of the base which hopefully will handle being printed without support better than V1.00

Nice job and nice idea for a pinball's topper
Do You sell it?

Thanks! ... whats a pinball's topper?

and no I'm afraid that I'm not selling this, I'm happy to help out anyone that's building one though!

Thats so cool nice job!

"OK, so I tried printing it without support and it all worked except for the internal vertical piece opposite the motor mount - it ended up breaking off because it wasn't connected at the top, which had dropped filament on the inside surface."

I am also in the process of printing the Base and the same internal structure failed just about even with the bottom of the hole on the stepper motor side. It's a big mess. I'm using a Da Vinci 1.0 printer in Excellent print mode with 30% fill. I'm going to let it finish since it is 14.5 hours into the printing process. I'm not sure I can fix it. Is it possible to get a file to just print that part and then glue it back in? Is there somewhere to post a photo of the Failure so you can see what happened?

Looks good. Have you tried sending a malp through yet? ;)

You could cheat and use an Adafruit Trellis for 16 buttons:

It uses i2c so you only need 4 wires and can tile multiples together. With a bit of tinkering you could take the buttons upto the DHD or design it so certain DHD buttons pushed down onto the Trellis.

I've been thinking about how to center the ring, perhaps a hall sensor in the base with a small magnet in one of the gear teeth. On startup the arduino hunts for this magnet and sets this point as zero. If you can work out the number of steps for 1 revolution then each symbol is total steps/39, although I am simplyfying it.

I had the same thought of using a hall effect sensor with magnet. You could put a magnet in one of the teeth to signify 'Home" : Might I suggest http://vignette2.wikia.nocookie.net/stargate/images/7/72/0Ega.svg
With a Nema17 it has a step angle of 1.8°/step. If your not microstepping, then 200steps/rev of small gear. The small gear has 13 teeth driving a 78 tooth gear so a gear ratio of 1:6. So 1200 steps / full revolution of the gate. So each symbol is 30.77 steps.

That's what I calculated too. The Arduino sketch actually includes a variable STEPPERSYM that it uses to calculate how far to turn for each given symbol. ( I have it set to 31 ) I made the sketch with that variable included so that if someone uses a stepper motor with a different precision than 200 steps per rev, or they just want to tweak it that it would be easy to do.

The magnet and Hall effect sensor is a great idea, I had been considering doing it with a beam break type sensor and a hole in the inner ring somewhere , but the magnet and hall effect makes more sense. Part of the reason I don't have it right now though is because I assumed that the final symbol would always be the point of origin ( Earth , 1 ) so the gate would effectively reset itself to the same starting position after each dialing.

Right now though I need to find the time to fix the sketch , since its currently miscalculating how many steps to take when its spinning the ring clockwise. Once that's done it should hopefully home itself fairly accurately, Though I am curious to find out how much drift over time happens with the 0.23 step per symbol difference cause by my rounding ( 0.414° drift per symbol distance traveled? ) I'm not sure if the stepper motor & Arduino would be able to handle a number of steps command with precision to 2 decimal places, I assume it would just get rounded to the nearest step. I should test it and have the sketch calculate how many total extra steps would be taken over the travel distance and have it subtracted from each travel command. Or I could just use the 30.77 figure in my calculations instead and hope that the call to

myMotor->step(numStep, FORWARD, SINGLE);

will handle two decimal places.

Yeah, unfortunately Adafruit's library doesn't handle floating steps. Their library does support microstepping though and the default in library is 1/16 stepping.
You could do 1/16 Microstepping so it takes 19200 steps for a full rev. Then every symbol is 492.31 steps or round to 492. This would be much more accurate: 492 / 16 = 30.75 which is extremely close to 30.77; much closer than 31.

Then just use the hall sensor to zero the ring on startup.

I'd love to use something like that , it would be a lot of soldering to get the buttons arranged in in the ring pattern of a DHD and connected to the board , plus the LEDs , but it might be a good solution.

My plan is to add sound effects, maybe with the Adafruit Audio FX Sound Board + 2x2W Amp (http://www.adafruit.com/products/2210). That would be even cooler! :=)

I had that thought as well!
I haven't placed an order for it yet , because I'm trying to figure out the easiest way to connect the 39 buttons I need to make the DHD to the arduino, and figuring out if I should use a second arduino and some form of wireless connection between the DHD and the gate, and I only want to do one order from Adafruit if i can help it ( boo import duties ) So my sounds will have to wait until I get the DHD figured out

Let me know if you get it running! I'd love to see the code & results! :D

I'm planning on adding a sparkfun wav triggler which will allow layering of wav files for a seamless sound effect. You can send serial data to the wav trigger so I'll just inject that into the arduino code.

I found some good sound effects for the stargate here: https://github.com/RafaelDeJongh/cap_resources

Just brainstorming.... But.... What about some sort of matrix? Like the 8x8x8 LED cubes, create a matrix of buttons, Each with 1 of 7 neg leads, and 1 of 6 pos leads. Then detect which leads have been connected. My eletronics knowledge is fairly limited, but put each lead through a coil and have a hall sensor detect the current. That way you're only dealing with 13 inputs, which an UNO should easily handle, and if you use all the Analog inputs, you'll have a few pins leftover for other applications, which you'll probably need for comms to the other arduino, as the LEDS and stepper will take up more than you have leftover.

Yeah a key matrix was my original plan, but I need to find something that will give me 39 buttons worth of input using as few pins as possible , AND fit in control for 39 LEDs, AND a wireless connection to the gate's Arduino.

Ideally some kind of I2C key matrix board , and an LED controller would be awesome, the Adafruit Trellis looks promising, but its intended to have everything mounted right onto it, so I'm still looking!

Got to thinking again, if you use individual NEOpixels (https://www.adafruit.com/products/1558), chained together, that's 1 pin for all the LED's, just will probably need an external power supply to run them, but of course that can also run the Arduino. I've been playing with the NeoPixel sticks, and they're very easy to use.

Yeah , that's probably the way to go with it , I used Neopixels on the gate itself. with the DHD only 8 of them should be on at any given time, so there shouldn't be too much of an issue with amperage. the only downside is that the neopixels are a bit pricey compared to a normal through hole single colour LED.

Being doing a little research, as I'm interested in this for various other projects.

If you haven't learned I2C yet, apparently now is a good time.

This is what you need: http://tronixstuff.com/2011/08/26/tutorial-maximising-your-arduinos-io-ports/

They offer the chip he describes, and it's about $3 each, and you'll need 6 by my math (Each one adds 16 I/O ports, so 48 each for the buttons and LED's is kind of overkill, but you'd want the coding to be easier I'd assume). So with these chips, you can use regular LED's, and ditch the NeoPixels. It will use only a few pins for all 39 LED's, and all 39 Buttons. Plenty of room for the sound module you're considering, and the wireless connection. Some creative PCB'ing and wiring, you should be able to use a nano in both the DHD (What a stupid name LOL) and the gate, hide a battery in there, and it's completely wire free.

Read all his I2C tutorials, and perhaps freshen up on wikipedia about binary and Hex. But I actually understand how it works now, and I had no idea before I started reading that. Even then, it seems Adafruit has released a library specifically for this chip, so that should make it even easier to use.

Sorry, but using so many i/o expander is crazy. Neopixels just need 1 pin and you can chain them together. Why use a seperate connection for each led? And loose full RGB capability? Also using one port per button can be avoided by connecting the buttons in a matrix. Maybe a 6x7 matrix = 13 pins, plus 1 Neopixel pin. 14 Pins is no problem for an Arduino Nano.

Yes, but we're trying to conserve pins, she's looking to add wireless communications and a sound system to the arduino, 13 in use doesn't leave a lot to go around, especially if 1 & 2 are required for communications (they may or may not). If we can do it with a matrix, cool, that simplifies things a lot, but if we need the pin space....

Still, the matrix would require only 1 expander, not 6!

Each chip adds 16 ports, Theres 39 buttons, 39 LED's to light, 2 chips get you 32 ports, still need 7 for each. On the 5th chip you could use PortA for buttons and PortB for LEDS. So, yeah, not 6, but 5. I'm learning myself, and I love this project, so I'm just offering my suggestions. I originally suggested a matrix for the buttons, but since pins are at a premium, I was looking for a better solution. She also mentioned cost was an issue, so getting these chips and all the other components will probably cost less than the required amount of NeoPixels alone.
This way also looks kinda fun to implement, especially using the Library, where it treats each I2C chip as an object, and the ports on each are handled almost identical to the ports on the Arduino (chip1.DigitalWrite(12,HIGH) or chip3.DigitalRead(4)) so the coding wouldn't be that hard at all. Just an idea.

40 5mm Neopixel (which are just rebranded WS2812 LEDs) amount to ~20€ in Germany, probably less if you order from a chinese seller. If you take SMD leds, its only ~10€. Your 6 expander would also cost about 10€. Why would you trade that for a huge amount of 39 individual led connections and no RGB functionality?
And a key matrix is also the only way to go, because 39 individual wires for the buttons would also amount to total chaos.

On sg-ring-1.stl the "bar" right next to the earth symbol is smaller than all the other ones. is there a reason?
Btw. truly epic thing!

the 'bars' on both ends should be slightly skinnier , This is so that when you glue to end bars together they're the same size as the other 'bars' in the middle of the pieces

Yes. But look at the bar right of the Earth "A" point-of-origin gylph. That bar is also thinner.

It's not a little bit dangerous without the iris?


good job

Hmm... maybe I should bury it while I'm not using it...

I wouldn't worry too much, mini fake gods should be quite easy to deal with.

Will the base print without supports? It looks like it's designed to, but some of the surfaces are close to what I can get away with so I'm hesitant to try unless somebody else can confirm that it works. With PLA, if it matters.

I printed my base without support, and tried to design it so that it wouldn't need any.
That said I haven't printed this final version as it is, the version I printed didnt have the gap for the motor shaft in it and I had to cut that away to be able to slide the motor in from the side. ( which is why I made the change for the final version ). The version i printed also didn't have the half rings for wire management built in.

mine was printed with PLA

OK, so I tried printing it without support and it all worked except for the internal vertical piece opposite the motor mount - it ended up breaking off because it wasn't connected at the top, which had dropped filament on the inside surface.

Also, the Kysan NEMA 17 motor I have is just a smidge too big to fit in the motor mount space because it's a little deeper than the one you specified. I'm going to order the other stepper and try again.

Finally, the lower holes use to mount the sides to the base don't slice properly for me - no matter what settings I use then end up having open sides, probably because the wall thickness on either side of the holes is less then the line width I'm using (0.48mm). If you make any further changes you might want to make those holes a little bit smaller.

Sorry to hear that you had issues, I know its a lot of material and that you personally probably don't want to print another base, But if you do , and for anyone in the future, I've modified the base and side files ( calling it V1.01 ) to make the vertical pillar on the interior have more built in support, and I decreased the size of the holes in the base, and the pins on the side pieces.

Comments deleted.

THANK YOU. I'm not going to give up...printing this thing out has become my mission now. I've printed the base 3 times (well, once complete and two half prints) but I think with the latest changes it will finally work.

Wow, amazing mate! I was just talking to a friend last night about making one of these, but molding and casting.
Amazing work!!

So gorgeous I'm gonna cry ;.;

This is great. I'm going to start printing out pieces tonight. Thank you so much. Are the hieroglyphs on the ring the same as the movie and series?

I want to build this thing!
What material did you use ABS or PLA? If you use ABS would a solvent type glue work?

Now all we need is a 3D printed DHD to connect to that arduino and a sound generator to simulate the TV sound of the gate dialing!

wonder if this one is to scale and if it could be modified to accept some smt switches and LEDs?


I used PLA for my build, cant think of a reason that you couldn't use a solvent glue if you made it with ABS.

My next project is going to be trying to make a DHD with buttons and lights to control the Stargate with, as soon as I can find some time to devote to it!

What is the scale of the final product? For example the diameter of the completed ring?

the completed Gate is 42cm in diameter

You are an ABSOLUTE LEGEND! :)
This is such a magnificent write-up!

I've already printed out Glitch's parts and assembling now.
Yours to follow soon. :)

Glad you like it! I hope your build goes well and that you share some picture of the result! :D

Oh that´s well done!
Have you altered the Stargate too or just the base?
I just printed the gate but not yet the base, so do you think the gate will fit your base?


Yes Glitch's original gate will fit in my base, the only alterations I made to the gate itself were combining some parts into single pieces for strength.

OMFG THIS IS AWESOME!! I can't wait to make one.