Harmonic Gear Driven Star Tracker

A dual stage harmonic drive for simple star tracking

Similar projects worth following
This is a free time project to prove 3D printing is feasible for creating a harmonic drive gear, and use it for star tracking instead of needing to purchase one off the shelf.

Each harmonic gear has a reduction ratio of 63:1, making a total reduction of 3696:1! This is an ongoing project that will be optimized more and more as each prototype is tested.

I wanted to try something new that not a whole lot of people have done from scratch before. The harmonic drive was just cool enough and easy to design that i had to give it a shot. A harmonic has zero backlash because two opposite sides of the flex spline are ALWAYS meshed with the outer ring gear. When you rotate the elliptical input, whether its two bearings or a custom made elliptical ball bearing, it constantly meshes the next gears over. It works similar to wedges, so the output torque is pretty high as well.

How i did the math to follow earths rotation:

- A mean sidereal day is 23hr 56min 4.1sec, or 1436.0682min. I wanted to work in RPM so i took the inverse to find my needed output speed, which is 0.00069635 RPM.

- Since i now have my desired output speed i can multiply that by my gear reduction to find the needed input speed, which is 2.7638 RPM.

- I am using a 200 step motor, and in full-step mode i would need 9.213 steps/sec to achieve the desired RPM. However, stepper motors really dont do decimal steps, so i rounded to the nearest whole number of 9 steps/sec. This would give me a new input speed of 2.76 RPM. Since i want to reduce vibrations i decided to use 1/2 microstep because it gives me the same input RPM with much less vibration.

- Now i can divide that new input speed by my reduction ratio to find my new output RPM, which came out to 0.0006953 RPM. Fairly close to what i need with a % difference of 0.14%.  (i did do the math for using microstepping, from 1/2 down to 1/32. Only full-step and 1/2-step got me close enough, 1/4 and 1/8 step gave me a difference of 0.4% and 1/16 and 1/32 gave me a difference of 0.27%)

- Next i needed to put this input RPM into something useful to control the motor. For this i am using a simple code with microsecond delays on the HIGH and LOW pins to reach my desired RPM. Ive tried using the AccelStepper library but i do not believe the library can keep up and the output is always slightly slower than desired (it gets more noticeable when you start using microsteps). After doing some quick math i found i need a delay of 27174 microseconds.

- That is all the math needed to code this sucker!

Luckily i had a V1 already printed and proven to work, so i set out to test it and got some good results! The first prototype was massive though, easily the size of two hands. Because of this i set out to shrink the design by at least 50% and that is where im at now. Prototype photos will be posted in a few days, each flexible gear and housing take a good 6hr to print each, plus some other misc spacers and the two bearing drives.

  • 12 × 608 Bearing (22 OD, 8 ID) cheap skateboard bearings work
  • 2 × 6806 Bearings These are BB30 bottom bracket bearings, easily found at a bicycle shop
  • 4 × M3x60 Bolts For the housings
  • 15 × M3x20 Bolt Used for the oval drive carriers
  • 1 × M3x10 (or longer) For the motor shaft set screw

View all 10 components

  • 8-24-20: Wobbly

    tyler08/25/2020 at 00:18 0 comments

    After some more testing of long exposures ive found that the wobble is nearly repeatable throughout all photos, it always makes a U or V shape. I took a time-lapse of the tracker at 5s intervals and found that the output does in fact wobble.

    Now working to find the cause of this, my thinking is it is one of the bearing drives. Maybe if they are not dead straight then it could cause the flex cup to oscillate.

  • Images, 8-16-20

    tyler08/16/2020 at 20:39 0 comments

    After a night out testing how the tracker performed, i managed to get a few samples that are usable (sort of a windy night). I took a 159s (photo with random stars), 140s (single landscape shot of milky-way) and a few 30s exposures (merged 4 of them to get the detailed vertical shot of the milky-way).

    with the longer exposures i got some camera vibration either due from the motor or from the wind, or maybe both, or because i just learned that with longer than 30s exposures my camera will take 2 photos back-to-back to help with hot pixels. I will go out again soon and see if i can narrow down what happened! The good thing was 70% of my 30s exposures turned out pin-point with no trails, even the long exposures shot to have no visible trails which means tho tracker worked!

  • 8-13-20:

    tyler08/13/2020 at 22:57 0 comments

    All parts printed and ready for a test tonight! Some parts are in need of minor changes such as; hex nut pocket hole width, bolt head pocket depth, and other minor things to make assembly easier. Photos updated as well.

    Once i get some photos from the camera on the tracker i will add another update. Unfortunately there can be a lot of human error when aligning the tracker to Polaris, but i will try my best.

View all 3 project logs

  • 1

    install 6x 608 bearings to each oval drive carrier and bolt top on with 6x M3x20 bolts and 6x nuts

  • 2

    Mount motor plate to the motor with 4x M3x4.5 bolts

  • 3

    Install 6802 bearings onto flex splines, and install 1st stage oval drive onto the motor shaft

View all 10 instructions

Enjoy this project?



Stephen West wrote 08/21/2020 at 17:18 point

Is it possible to download the STL files for this somewhere, please?

  Are you sure? yes | no

Dan Maloney wrote 08/13/2020 at 17:29 point

Was going to ask if the harmonic gear parts were 3D-printed, then I read a little more closely. Looking forward to seeing photos - I always get a kick out of seeing harmonic drives in action.

  Are you sure? yes | no

tyler wrote 08/13/2020 at 23:01 point

they work surprisingly well, with a little grease they are very quiet and mesh a little easier. I need to get a time-lapse of it to see if its actually smooth and not wobbly or hanging up any.

  Are you sure? yes | no

Michael Möller wrote 08/13/2020 at 16:47 point

When you need non-integer steps/sec, you do the same way we handle non-integer days/year. Every now and then you add a step. :-) But do the steps need to be per second? Do your 9 steps every 976 millliseconds, that gets you closer, too

  Are you sure? yes | no

tyler wrote 08/13/2020 at 17:22 point

you know that makes sense, and is super easy to change. i was too focused on matching RPM i forgot i can get much closer to what i need by changing the delay slightly!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates