Small lightweight stepper motor and trying to find "home"

I've been using the adafruit gauge steppers and they are exactly what I needed for my gauge project. The pain is how to find home. I've been pretty successful in just storing a last position in the eeprom, but any disturbance to the needle means that it's now off. And these things are so lightweight that it really takes almost nothing to move the needle. These motors are 600 steps around a 315 degree swing. So I can't just pivot all the way around. or can I...

So my first option, and what I am doing now is just max out in one direction and let it skip off the mechanical limits of it's construction. Again, with no load on it and it's physically small weight this hasn't actually seemed to cause any problem. But the chatter looks a little unprofessional. Meh.

So then I started considering a simple limit switch obviously. The problem here is that even just the tiniest force of striking a limit switch in a very slow pace will kinda jog the needle on the shaft a little bit. Not much. But, reset the needle a couple hundred times this way and you start to build some tolerance issues.

So then I started pondering an optical limit switch but it would need to be really compact and tiny. I was thinking something like surface mount infrared transmitter with a receiver right next to it and a small reflector underneath the needle. I kinda played around with a mockup of this but the range at which it starts to detect the signal is pretty good but not killer accurate.

So i was wondering if anyone had any ideas? How do automotive manufacturers keep dash clusters in check for needle position?

That is the way to go. Search for opto slot detectors and look at the images you get back.

This just gives a pulse when it passes through the slot, you keep on stepping slowly until you get a pulse. Then add pulses to get to the start position. You need to find out how many this is by trial and error.

Be very careful not to ware-out your EEPROM with too many writes.

1 Like

Hi, @iamthegorf

Or do it like the automotive sector do with these steppers in the car dashboard.
When you power up you drive the stepper does a full sweep back and forth , towards HOME which is a physical stop.
Drive more steps than what full sweep of your gauged would be.

x27 dashboard steppers are air cored and are designed for that type of physical action.

Are you using a Library to control your steppers?

Can you post your code?
Can you please post a link to specs/data of the stepper.

Thanks.. Tom.. :smiley: :+1: :coffee: :australia:

1 Like

As @TomGeorge said, on startup, drive 700 steps CCW call that "home", then (if needed) step CW to your zero position.

Yeah and like I said in my original post, that's all i'm doing now. I'm stepping it out to a starting position that is a number of steps that I know is beyond the limit. It seems to handle this just fine and it won't bother my setup at all. So I think I'm still with it for now and in the meantime start considering my v2 with something more optical.

I'm using these x27's that Adafruit sells but eventually I will need about 20 of them, so ill probably go snag them wherever is cheapest. haha

Does your driver do this step pattern?

X27 PDF

Right now I'm driving them with a TB6612 and the standard Stepper.h library vi an Android Micro. I'm actually not familiar with what the stepping pattern is for that driver. I ordered a pack of AX1201728SG to play around with. It also crossed my mind to just build my own H-bridge

Why aren't you using the x27 library?

Google;

arduino x27 library

Tom... :smiley: :+1: :coffee: :australia:

That is a lot harder than you think and unless you are an expert in electronic design I would not bother.

What is this I have never heard of that sort?
Can you please post a link to where you bought it from.

I don't think that library has a step sequence for those motors.
Leo..

Hi, @iamthegorf

Goolge:

driving x27 stepper motor

Tom... :smiley: :+1: :coffee: :australia: