questions about PI GCS adapter

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

questions about PI GCS adapter

Philippe GENDRE
Hello,

I am using a PI P601 Z actuator with an E625 controller through Micro-Manager for Windows (XP).

As a whole, it works nicely but I see two anomallies:

- first : it is not possible to use an Handshaking : "software" or "Hardware" leads to an error message during configuration (see attached Corelog when "Hardware" is selected),

- second : Handshaking being off; when I send the commands sequence :
setPosition(stage,0)
IJ.wait(1000)
z=getPosition(stage)
setPosition(stage,z+1)
IJ.wait(1000)
z=getPosition(stage)

return value is typically 1.10-1.20.

My application allow me to perform step height measurements using z scans. If I measure a standard calibrated step of 20 µm, I find the right value using  commands such like in a loop :

setPosition(stage, z)
z=z+deltaz

but the result is wrong if I write :

setPosition(stage,z)
IJ.wait(some time)
z=getPosition(z)
z=z+deltaz

that is if Iupdate the z value using the getPosition command.

I don't understand what is going wrong. No problem with PI Mikromove.

Thanks for your help.

Philippe






------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general

CoreLog.txt (16K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: questions about PI GCS adapter

Nico Stuurman-4
Hi Philippe,

> I am using a PI P601 Z actuator with an E625 controller through  
> Micro-Manager for Windows (XP).
>
> As a whole, it works nicely but I see two anomallies:
>
> - first : it is not possible to use an Handshaking : "software" or  
> "Hardware" leads to an error message during configuration (see  
> attached Corelog when "Hardware" is selected),

That means that either your controller does not support hardware  
handshaking, or that your serial cable does not connect the  
handshaking lines.  Since you get communication without handshaking,  
there is nothing to worry about (most modern devices have enough  
buffer to avoid lost data).

> - second : Handshaking being off; when I send the commands sequence :
> setPosition(stage,0)
> IJ.wait(1000)
> z=getPosition(stage)
> setPosition(stage,z+1)
> IJ.wait(1000)
> z=getPosition(stage)
>
> return value is typically 1.10-1.20.

You could use the command
setRelativePosition(deltaZ) instead.

> My application allow me to perform step height measurements using z  
> scans. If I measure a standard calibrated step of 20 µm, I find the  
> right value using  commands such like in a loop :
>
> setPosition(stage, z)
> z=z+deltaz
>
> but the result is wrong if I write :
>
> setPosition(stage,z)
> IJ.wait(some time)
> z=getPosition(z)
> z=z+deltaz
>
> that is if Iupdate the z value using the getPosition command.

Not sure what you mean with "the result is wrong", but my guess is  
that there is a bit of a difference with where you send the stage to  
and the position that it reports.  When you base your actions on what  
the controller reports, you are likely accumulating errors.

You probably should ask PI why the stage is 100-200 nm away from the  
position that you send it to, and whether or not that is acceptable.

Also, I hope that Steffen (PI) can weigh in.

Best,

Nico
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: questions about PI GCS adapter

Philippe GENDRE
Hello Nico,

Thank you for your quick and precise answers.

I have performed additional measurements using different procedures and finally it seems that the final results is allways correct : I measure the good step height that is 20 µm with a very good reproducibility and accuracy even if I update the z position (using getPosition(stage)).

Two problems still remains :
- the "Handshaking" cannot be set to "Software" or "Hardware" inside Micro-Manager but this can be made in the PI Terminal application; but as you suggest I can consider that it is not of importance;
- the z return value  for a 1 µm step is typically 1.10 to 1.15 µm (using setRelativePosition(deltaZ) doesn't change z return value) but this don't seem to have any kind of effect on the measurement of a 20 µm calibrated step height which is calculated from a processed stack (with or without updated z values); therfore it seems that the z moving is correct but not the z displayed value;

Best regards,

Philippe

2010/4/9 Nico Stuurman <[hidden email]>
Hi Philippe,

> I am using a PI P601 Z actuator with an E625 controller through
> Micro-Manager for Windows (XP).
>
> As a whole, it works nicely but I see two anomallies:
>
> - first : it is not possible to use an Handshaking : "software" or
> "Hardware" leads to an error message during configuration (see
> attached Corelog when "Hardware" is selected),

That means that either your controller does not support hardware
handshaking, or that your serial cable does not connect the
handshaking lines.  Since you get communication without handshaking,
there is nothing to worry about (most modern devices have enough
buffer to avoid lost data).

> - second : Handshaking being off; when I send the commands sequence :
> setPosition(stage,0)
> IJ.wait(1000)
> z=getPosition(stage)
> setPosition(stage,z+1)
> IJ.wait(1000)
> z=getPosition(stage)
>
> return value is typically 1.10-1.20.

You could use the command
setRelativePosition(deltaZ) instead.

> My application allow me to perform step height measurements using z
> scans. If I measure a standard calibrated step of 20 µm, I find the
> right value using  commands such like in a loop :
>
> setPosition(stage, z)
> z=z+deltaz
>
> but the result is wrong if I write :
>
> setPosition(stage,z)
> IJ.wait(some time)
> z=getPosition(z)
> z=z+deltaz
>
> that is if Iupdate the z value using the getPosition command.

Not sure what you mean with "the result is wrong", but my guess is
that there is a bit of a difference with where you send the stage to
and the position that it reports.  When you base your actions on what
the controller reports, you are likely accumulating errors.

You probably should ask PI why the stage is 100-200 nm away from the
position that you send it to, and whether or not that is acceptable.

Also, I hope that Steffen (PI) can weigh in.

Best,

Nico
------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: questions about PI GCS adapter

Steffen Rau
In reply to this post by Philippe GENDRE
Hello Philippe,


My name is Steffen Rau, I'm software engineer from PI. I have written most of the PI_GCS micro-amanger adapter.
I can connect a similar controller with hardware handshake and micro-manager. I'm still looking for exact the same controller type to perform more tests.
 
Can you reproduce the discrepancy between commanded position and displayed position with PIMikroMove or PITerminal?
Or is this something special for the micro-manager adapter?
 
 
Best regards
 
Steffen
 



________________________________

        De : Philippe GENDRE [mailto:]
        Envoyé : lundi 12 avril 2010 12:56
        À : Micro-Manager General
        Cc : Pascal, Emmanuel
        Objet : Re: [micro-manager-general] questions about PI GCS adapter
       
       
        Hello Nico,
       
        Thank you for your quick and precise answers.
       
        I have performed additional measurements using different procedures and finally it seems that the final results is allways correct : I measure the good step height that is 20 µm with a very good reproducibility and accuracy even if I update the z position (using getPosition(stage)).
       
        Two problems still remains :
        - the "Handshaking" cannot be set to "Software" or "Hardware" inside Micro-Manager but this can be made in the PI Terminal application; but as you suggest I can consider that it is not of importance;
        - the z return value  for a 1 µm step is typically 1.10 to 1.15 µm (using setRelativePosition(deltaZ) doesn't change z return value) but this don't seem to have any kind of effect on the measurement of a 20 µm calibrated step height which is calculated from a processed stack (with or without updated z values); therfore it seems that the z moving is correct but not the z displayed value;
       
        Best regards,
       
        Philippe
       
       
        2010/4/9 Nico Stuurman <[hidden email]>
       

                Hi Philippe,
               

                > I am using a PI P601 Z actuator with an E625 controller through
                > Micro-Manager for Windows (XP).
                >
                > As a whole, it works nicely but I see two anomallies:
                >
                > - first : it is not possible to use an Handshaking : "software" or
                > "Hardware" leads to an error message during configuration (see
                > attached Corelog when "Hardware" is selected),
               
               
                That means that either your controller does not support hardware
                handshaking, or that your serial cable does not connect the
                handshaking lines.  Since you get communication without handshaking,
                there is nothing to worry about (most modern devices have enough
                buffer to avoid lost data).
               

                > - second : Handshaking being off; when I send the commands sequence :
                > setPosition(stage,0)
                > IJ.wait(1000)
                > z=getPosition(stage)
                > setPosition(stage,z+1)
                > IJ.wait(1000)
                > z=getPosition(stage)
                >
                > return value is typically 1.10-1.20.
               
               
                You could use the command
                setRelativePosition(deltaZ) instead.
               

                > My application allow me to perform step height measurements using z
                > scans. If I measure a standard calibrated step of 20 µm, I find the
                > right value using  commands such like in a loop :
                >
                > setPosition(stage, z)
                > z=z+deltaz
                >
                > but the result is wrong if I write :
                >
                > setPosition(stage,z)
                > IJ.wait(some time)
                > z=getPosition(z)
                > z=z+deltaz
                >
                > that is if Iupdate the z value using the getPosition command.
               
               
                Not sure what you mean with "the result is wrong", but my guess is
                that there is a bit of a difference with where you send the stage to
                and the position that it reports.  When you base your actions on what
                the controller reports, you are likely accumulating errors.
               
                You probably should ask PI why the stage is 100-200 nm away from the
                position that you send it to, and whether or not that is acceptable.
               
                Also, I hope that Steffen (PI) can weigh in.
               
                Best,
               
                Nico
                ------------------------------------------------------------------------------
                Download Intel&#174; Parallel Studio Eval
                Try the new software tools for yourself. Speed compiling, find bugs
                proactively, and fine-tune applications for parallel performance.
                See why Intel Parallel Studio got high marks during beta.
                http://p.sf.net/sfu/intel-sw-dev
                _______________________________________________
                micro-manager-general mailing list
                [hidden email]
                https://lists.sourceforge.net/lists/listinfo/micro-manager-general
               



------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: questions about PI GCS adapter

Philippe GENDRE
Hello Steffen,

With PIMikroMove, the displayed position is very good for a step of 1 µm (something like 1.00X).

Using Micro-Manager and sending the following commands (Handshaking : off) :

setPosition(stage,0)
IJ.wait(1000)
z=getPosition(stage)
setPosition(stage,z+1)
IJ.wait(1000)
z=getPosition(stage)

return value is typically in the range 1.10-1.20.

Best regards,

Philippe

2010/4/12 Rau, Steffen <[hidden email]>
Hello Philippe,


My name is Steffen Rau, I'm software engineer from PI. I have written most of the PI_GCS micro-amanger adapter.
I can connect a similar controller with hardware handshake and micro-manager. I'm still looking for exact the same controller type to perform more tests.

Can you reproduce the discrepancy between commanded position and displayed position with PIMikroMove or PITerminal?
Or is this something special for the micro-manager adapter?


Best regards

Steffen




________________________________

       De : Philippe GENDRE [mailto:]
       Envoyé : lundi 12 avril 2010 12:56
       À : Micro-Manager General
       Cc : Pascal, Emmanuel
       Objet : Re: [micro-manager-general] questions about PI GCS adapter


       Hello Nico,

       Thank you for your quick and precise answers.

       I have performed additional measurements using different procedures and finally it seems that the final results is allways correct : I measure the good step height that is 20 µm with a very good reproducibility and accuracy even if I update the z position (using getPosition(stage)).

       Two problems still remains :
       - the "Handshaking" cannot be set to "Software" or "Hardware" inside Micro-Manager but this can be made in the PI Terminal application; but as you suggest I can consider that it is not of importance;
       - the z return value  for a 1 µm step is typically 1.10 to 1.15 µm (using setRelativePosition(deltaZ) doesn't change z return value) but this don't seem to have any kind of effect on the measurement of a 20 µm calibrated step height which is calculated from a processed stack (with or without updated z values); therfore it seems that the z moving is correct but not the z displayed value;

       Best regards,

       Philippe


       2010/4/9 Nico Stuurman <[hidden email]>


               Hi Philippe,


               > I am using a PI P601 Z actuator with an E625 controller through
               > Micro-Manager for Windows (XP).
               >
               > As a whole, it works nicely but I see two anomallies:
               >
               > - first : it is not possible to use an Handshaking : "software" or
               > "Hardware" leads to an error message during configuration (see
               > attached Corelog when "Hardware" is selected),


               That means that either your controller does not support hardware
               handshaking, or that your serial cable does not connect the
               handshaking lines.  Since you get communication without handshaking,
               there is nothing to worry about (most modern devices have enough
               buffer to avoid lost data).


               > - second : Handshaking being off; when I send the commands sequence :
               > setPosition(stage,0)
               > IJ.wait(1000)
               > z=getPosition(stage)
               > setPosition(stage,z+1)
               > IJ.wait(1000)
               > z=getPosition(stage)
               >
               > return value is typically 1.10-1.20.


               You could use the command
               setRelativePosition(deltaZ) instead.


               > My application allow me to perform step height measurements using z
               > scans. If I measure a standard calibrated step of 20 µm, I find the
               > right value using  commands such like in a loop :
               >
               > setPosition(stage, z)
               > z=z+deltaz
               >
               > but the result is wrong if I write :
               >
               > setPosition(stage,z)
               > IJ.wait(some time)
               > z=getPosition(z)
               > z=z+deltaz
               >
               > that is if Iupdate the z value using the getPosition command.


               Not sure what you mean with "the result is wrong", but my guess is
               that there is a bit of a difference with where you send the stage to
               and the position that it reports.  When you base your actions on what
               the controller reports, you are likely accumulating errors.

               You probably should ask PI why the stage is 100-200 nm away from the
               position that you send it to, and whether or not that is acceptable.

               Also, I hope that Steffen (PI) can weigh in.

               Best,

               Nico
               ------------------------------------------------------------------------------
               Download Intel&#174; Parallel Studio Eval
               Try the new software tools for yourself. Speed compiling, find bugs
               proactively, and fine-tune applications for parallel performance.
               See why Intel Parallel Studio got high marks during beta.
               http://p.sf.net/sfu/intel-sw-dev
               _______________________________________________
               micro-manager-general mailing list
               [hidden email]
               https://lists.sourceforge.net/lists/listinfo/micro-manager-general





------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general