Ludl X-Y stage wrong moving distance by Stage Control plugin

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Ludl X-Y stage wrong moving distance by Stage Control plugin

hsin
Hi

I am using a MAC 2002 controller and Ludl stepper motor X-Y stage (99S003-6) on Micro-Manager. While trying to move the stage by the Stage Control plugin, the stage seems to move longer than the given value, suspectedly by 4 times.

When 10,000 um was given, the stage moved 40,000 um (40 mm), and I noticed the motor made 10 turns.
It looks to me that the program thinks the motor (and screw lead) does 1 mm/rev, while it's actually 4 mm/rev.

The problem is it's unclear to me how the program recognises the stage configuration.
For example, I tried varying the stepper resolution (steps/rev) by the DIP switch on the controller module, but the program seemed not able to see the difference and change the StepSize accordingly (it was always 0.1); and the resultant motor revs(/moving distance) didn't change too.

I can resolve this at the surface by manually changing the StepSize to 0.4, but it doesn't really feel right if it means the smallest step it can achieve is 0.4 um, while the stage is capable of 0.1 um resolution.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Ludl X-Y stage wrong moving distance by Stage Control plugin

JonD
Administrator
hsin wrote
The problem is it's unclear to me how the program recognises the stage configuration.
For example, I tried varying the stepper resolution (steps/rev) by the DIP switch on the controller module, but the program seemed not able to see the difference and change the StepSize accordingly (it was always 0.1); and the resultant motor revs(/moving distance) didn't change too.
A quick glance at the Ludl device adapter source code shows that the step size is never queried from the controller, so the user would have to set a value other than the 0.1 value used by default.

As someone who has written similar device adapters but never used a Ludl stage, I can say that if you know the appropriate serial command to read the then it would be pretty straightforward to change the device adapter code to use that command.  In fact, the past author(s) of the source code left a note at the appropriate place: "TODO: modify this method to query the step size from the controller".

Jon

-------------------------------------------
Jon Daniels
Applied Scientific Instrumentation
29391 West Enid Rd, Eugene, OR 97402
Phone: (541) 461-8181 x118
-------------------------------------------
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Ludl X-Y stage wrong moving distance by Stage Control plugin

Nico Stuurman-2
In reply to this post by hsin
On 2/13/2017 10:21 AM, hsin wrote:

> I am using a MAC 2002 controller and Ludl stepper motor X-Y stage (99S003-6)
> on Micro-Manager. While trying to move the stage by the Stage Control
> plugin, the stage seems to move longer than the given value, suspectedly by
> 4 times.
>
> When 10,000 um was given, the stage moved 40,000 um (40 mm), and I noticed
> the motor made 10 turns.
> It looks to me that the program thinks the motor (and screw lead) does 1
> mm/rev, while it's actually 4 mm/rev.
>
> I can resolve this at the surface by manually changing the StepSize to 0.4,
> but it doesn't really feel right if it means the smallest step it can
> achieve is 0.4 um, while the stage is capable of 0.1 um resolution.

That is exactly what you are supposed to do to get it to work right.  If
I remember correctly, it was not possible to get the step size reliably
from the controller.  What do you mean with "the stage is capable of 0.1
um resolution"?  It sure looks like the step size of your stage is 0.4
microns.

Best,

Nico



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Ludl X-Y stage wrong moving distance by Stage Control plugin

hsin
In reply to this post by hsin
Many thanks to Jon and Nico for your replies. Sorry to get back late.

With 'the stage is capable of 0.1 um resolution' I meant the smallest travel distance per step of the stage is 0.1 um/step. The x, y axis modules allows for tuning the steps/revolution value from 500 to 40,000 by changes of dip-switches.
Therefore, for the stage of 4000 um/rev (screw lead) on the highest resolution 40,000 steps/rev, it should do 0.1 um/step.

My understanding for StepSize is that it defines how many sections make up a turn (a rev.), which then can convert to a linear distance base on screw lead length. To travel a certain distance, say 10,000 um, with a screw lead 4000 um/rev the motor should always turn 2.5 revs, no matter the StepSize is 0.1 or 0.4 um.

However the program seems to run on a different way and I am confused which parameter is the control factor, or the reference.

Is there anyway to know or to set the screw lead (um/rev) value?
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Ludl X-Y stage wrong moving distance by Stage Control plugin

Nico Stuurman-2
On 4/6/2017 11:24 AM, hsin wrote:
> Many thanks to Jon and Nico for your replies. Sorry to get back late.
>
> With 'the stage is capable of 0.1 um resolution' I meant the smallest travel
> distance per step of the stage is 0.1 um/step. The x, y axis modules allows
> for tuning the *steps/revolution* value from 500 to 40,000 by changes of
> dip-switches.
> Therefore, for the stage of 4000 um/rev (screw lead) on the highest
> resolution 40,000 steps/rev, it should do 0.1 um/step.

So, if you want to use a 0.1 um stepsize, you need to set the dip
switches to 40,000.  MM can not change the dip switches for you.

> My understanding for StepSize is that it defines how many sections make up a
> turn (a rev.),

No.  Step size means the distance traveled per step.  A step is the
smallest distance the controller can move the stage.  In case of stepper
motor that is determined by the number of (micro) steps per turn and the
distance traveled per revolution of the lead screw.

So, the stepsize that you use should match the settings of your system.

Best,

Nico


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Ludl X-Y stage wrong moving distance by Stage Control plugin

hsin
This post was updated on .
Thank you Nico.
The scenario here is that I've configured the DIP switch to 40,000 steps/rev, and as the screw lead of the stage is 4 mm/rev, I set the StepSize to 0.1 in Micro-Manager accordingly.

Then I set the travel length to 10 mm, with that the stage was expected to do 2.5 revs, while it actually did 10 revs and hence travelled 40 mm. Judge based on this, I suspect that MM somehow assigns 1 mm/rev to be the value of the screw lead, which is incorrect.

You can make it to travel 10 mm by either changing the set travel length to 2.5 mm instead of 10 mm, or changing the StepSize from 0.1 to 0.4 in order to trick MM to cut down the required steps (or pulses sent to the motor) by 1/4, thus forcing the motor to turn 2.5 revs (1/4 of 10 revs). Both of them are however just using an error to rectify another error, which doesn't make sense.

In the extreme situation where I require the stage to move 0.1 um, according to the above tricks, the setting would need to be either StepSize 0.1 with set travel length 0.025 um, or StepSize 0.4 with set travel length 0.1 um. It's doubtfully achievable as the two parameters (StepSize & set travel length) clearly contradict each other.

I would guess the proper solution is to correct the screw lead value, but there's seems no this option in MM.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Ludl X-Y stage wrong moving distance by Stage Control plugin

Nico Stuurman-2
On 4/18/17 12:45 PM, hsin wrote:
> Thank you Nico.
> The scenario here is that I've configured the DIP switch to 40,000
> steps/rev, and as the screw lead of the stage is 4 mm/rev, I set the
> StepSize to 0.1 in Micro-Manager accordingly.
>
> Then I set the travel length to 10 mm, with that the stage was expected to
> to 2.5 revs, while it actually did 10 revs and hence travelled 40 mm. Judge
> based on this, I suspect that MM somehow assigns 1 mm/rev to be the value of
> the screw lead, which is incorrect.

I do not see any problems in the code:
https://valelab4.ucsf.edu/svn/micromanager2/trunk/DeviceAdapters/Ludl/Ludl.cpp.
You can set MM to debug mode (under options), you may need to change the
serial port to output all commands (in the hardware configuration
wizard) to get a log of all the commands that MM sends (so that you know
what number of steps it tells the controller to take).  You can also use
a serial port monitor to listen in on the communication between MM and
your controller.  If MM sends the correct MOVE command, then your
controller is not doing what it is supposed to be doing (or you may have
another lead screw than you think).  If MM sends the incorrect MOVE
command, you can try to figure out what the code is doing wrong (as I do
not see any obvious errors) and send a fix.

Best,

Nico


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Loading...