Probe Software Users Forum

Software => PictureSnapApp => Topic started by: John Donovan on February 10, 2018, 09:21:55 AM

Title: PictureSnapApp version 1.8.8
Post by: John Donovan on February 10, 2018, 09:21:55 AM
We're pleased to announce a new software product, PictureSnapApp, for sample navigation for EPMA, SEM and TEM instruments.   Actually PictureSnapApp will work with any instrument that has an XY or XYZ stage, though we currently only have drivers for FEI, Cameca and JEOL instruments.

This is a very inexpensive application (US$499 for the hardware enabled version), and please note that in the *free* "Text Input" mode discussed below, PictureSnapApp will be useful on any instrument with an X/Y stage

Essentially this is a "standalone" version of the PictureSnap feature in Probe for EPMA, but designed to be utilized on various SEM, EPMA and TEM instruments (and any other instrument in the free "Text Input" mode), using an image of the sample or sample holder obtained from any optical (or other imaging) device. The idea is to be able to quickly take a picture of your sample holder, open it in PictureSnapApp, calibrate it, and navigate your sample holder in say, visible light.  For example, navigate quickly to the sample location with the brownish stain...

In addition PictureSnapApp allows one to annotate unlimited points and fields of view (FOV) *and* subsequently move your images and annotations to different instruments, easily recalibrate to the new instrument stage, and then accurately navigate back to those annotation coordinates or any other arbitrary sample location.

PictureSnapApp is available free for downloading here:

http://probesoftware.com/download/PictureSnapApp.msi

This free version of PictureSnapApp software has both a demonstration mode and also a text based input mode. The demonstration mode will allow everyone to play around with the software and see what it does, while the text input mode will allow PictureSnapApp to be utilized on any instrument, even if there is no hardware connection to the instrument stage.  Although the text input mode requires the user to enter the stage calibration coordinates using a keyboard.

For this $499 fee (per computer) we provide a registration number which will unlock the interface drivers for the FEI DCOM interface for all FEI SEM and TEM instruments, and also the EIKS interface for all JEOL SEM, TEM instruments (and also JEOL EPMA instruments for those that do not already have our Probe for EPMA product). We hope to add support for additional instrument vendor SEM/TEM stages soon.

Edit: We have now also added support for Cameca EPMA instruments if you don't already have our Probe for EPMA product or want the image annotation and image/stage transformation capabilities of PictrureSnapApp for moving images and annotations between different instruments...

Attached below (remember to login to see attachments) is a flyer describing the basic functions of the PictureSnapApp software. As a reminder, this app can import any JPG, GIF or BMP image up to 32K by 32K pixels for detailed sample navigation. For example the document camera described here is an inexpensive ($99) device for taking high resolution images of your sample or sample holder:

http://probesoftware.com/smf/index.php?topic=999.msg6635#msg6635

However, the image source can be from any device including other optical or beam instruments or even your cell phone camera!  In addition, any text annotations (which are calibrated in stage coordinates), will be automatically transformed if the files are transferred to another instrument and re-calibrated to that instrument's stage coordinate system.

But the best way to learn the software features and capabilities is to download it (it's free) and try it out! 

Please contact Barbara (barbara@probesoftware.com) for pricing and other details.

PictureSnapApp Version Changes:

01/09/2024    Add feature to import point annotations in stage coordinates to the point annotations dialog.  Also add "Delete All" button.
v. 1.8.8

08/02/2023    Add options for embedded image border and filename (von der Handt).
v. 1.8.6

12/27/2022    Add stage coordinate entry dialog (Neill).
v. 1.8.5

06/16/2022    Add display of current mag to main window. Add right and left arrow keys for 2% change in mag for demo and text input modes.

                       Add new keyword in PictureSnapApp.ini for setting initial magnification (demo and text input modes only):

                       [hardware]
                       InitialMagnification=100

06/12/2022    Add FOV label for "typical" FOVs for FEI, JEOL and Cameca instruments at 100x (horizontal FOV).
v. 1.8.2

03/24/2021    Add INI keywords for modifying Cameca (SX100 and SXFive) stage motor speeds (Neill).  See new entries for:
v. 1.8.2          XMotorSpeedCameca=10000
                      YMotorSpeedCameca=10000
                      ZMotorSpeedCameca=10                       

12/29/2020    Update copyright.
v. 1.8.1

09/03/2020    Modify Current Stage Position window to update position automatically, unless user is entering new stage positions.
v. 1.8.0

08/14/2020    Add stage position menu to Window menu
v. 1.7.9

02/13/2019    Modify stage limit drawing code to handle rotated samples.
v. 1.7.7

11/14/2018    Add code to automatically read stage limits and check for locked axes on FEI instruments.
v. 1.7.6

11/3/2018      Add code to display stage limits on main PSA window and also full view window (Seward).
v. 1.7.5

09/22/2018    Fix code for error when closing app on 32 bit operating systems (Neill).
v. 1.7.4

09/15/2018    Add red annotation color.  Fix JEOL SEM stage orientation.
v. 1.7.3

09/13/2018    Fix bug in JEOL 8900/8200/8500 comms interface.
v. 1.7.2

08/24/2018    Modified the update download code to utilize https secure connections. 
v. 1.7.1

08/03/2018    Re-set the PictureSnapCalibration mode automatically back to two points when loading a new uncalibrated image.
v. 1.6.9

07/25/2018    Fix un-calibrated image bug in display current mag box code.
v. 1.6.8

07/19/2018    Modify GDI+ graphics to open/close in form load/unload events to prevent Microsoft memory leak.
v. 1.6.7

07/17/2018    Fix blinking problem with graphics drawing.
v. 1.6.6

07/11/2018    Modify ruler measurement feature to utilize GDI+ for anti-aliasing graphics.

07/08/2018   Add export of sub image ACQ calibration files from Image Locator window.
v. 1.6.5

07/07/2018   Add code to handle stage to image rotation for adding calibrated images and draw rectangle modes.
v. 1.6.3

06/29/2018   Add code to rotate annotations in PictureSnapApp transform menu dialog.
v. 1.6.1

06/27/2018     Add measurement tool to PictureSnapApp (Langworthy).
v. 1.6.0

06/20/2018     Add calibration accuracy output and Load ACQ from external file to Calibrate Image window.
v. 1.5.9

06/15/2018     Add "Select Remote Image" button to Image Locator feature.
v. 1.5.8

06/07/2018     Improve code to automatically handle updating of annotations and sub images after user clicks Calibrate Image. Add
v. 1.5.7            checks for stage tilt and FOV orthogonality.

06/03/2018     Add hand cursor for Image Locator feature to show pan/zoom capability. Fix image rotation display in Transform dialog.
v. 1.5.6

06/02/2018     Add image mosaic feature (in hardware enabled versions).  Add automatic conversion of point/FOV and sub image calibration coordinates from stage to screen. Makes the conversion to/from different stage systems better and *much* easier to code.
v. 1.5.5

05/26/2018     Resize image display for smaller images.
v. 1.5.4

05/23/2018     Add Image Locator feature with zoom and pan.
v. 1.5.3

05/16/2018     Improve stage config dialog, File Save As options.
v. 1.5.2

05/09/2018     Add additional tools for configuring and testing the FEI DCOM connection. Updated installation instructions.
v. 1.5.0

04/12/2018     Move stage to current position (if in bounds) when loading new image- just for moving main window to current position.
v. 1.4.9

04/07/2018     Add support for JEOL 8800/8900/8100/8200/8500 EPMA instruments (support for 8230/8530 instruments using
v. 1.4.8           existing EIKS interface.

04/01/2018     Add image rotation feature for when the sample must be mounted in a different orientation from another instrument.
v. 1.4.7

03/28/2018     Add digitize current position, rectangular/line drawing and new quick start popup.
v. 1.4.5

03/26/2018     Minor improvements.
v. 1.4.4

03/24/2018      Add support for "half-cartesian" stages (e.g., LA-ICPMS). Add support for "nm" units and also automatically convert images
v. 1.4.3            when loading them.

03/17/2018      Add "transform" dialog for unit conversion.  Stage orientation code next!
v. 1.4.2

03/15/2018      Add Cameca EPMA support. Minor improvements.
v. 1.4.1

03/09/2018      Add recently open file list and FOV annotations. Add Move To buttons for both point and FOV annotations.
v. 1.4.0

03/01/2018      Implement labels for calibration points. Improve annotation code (Seward).
v. 1.3.9

02/28/2018      Implement new options for defining the IP address of the instrument.  Add option to disable Z stage movement.
v. 1.3.8

02/12/2018      Fix missing file issue.
v. 1.3.6

02/10/2018      Add mouse cursor movement display of stage coordinates to full view image
v. 1.3.5

02/09/2018      Initial release of PictureSnapApp
v. 1.3.4

Title: Re: PictureSnapApp version 1.3.5
Post by: macosta on February 13, 2018, 02:27:09 PM
 :)  :) :) :)

This app is bae.

I've been using the SEM/EPMA work for the past 8 years as both an undergraduate and a graduate student. My research has always required that I be able to correlate thin section images with SEM-CL/BSE/SE images, which can be challenging in the geologic samples that I work with.

In the past, I've had to do this by having a thin section high resolution scan of my sample pulled up on a separate computer, finding identifying markers to locate myself , collecting the images/data, and manually annotating the thin section scan with the approximate field of view in the SEM image and the SEM image file name.

As you can imagine, it can be quite time consuming. ADDITIONALLY, switching from the SEM, where I identified the phases I would like to analyze with either LA-ICP-MS or the microprobe I need to be able to verify that I am analyzing the exact crystals with the CL textures of interest, and the different zones of the CL in the individual crystal.

The PictureSnapApp streamlines this process, reduces the uncertainty, and is going to save me so much time! I  have used it twice now, and it is convenient and I'm able to collect data so much more efficiently.

The field of view is automatically outlined in the app, and resizes as you change magnification.

There is an annotation feature that I use to record all relevant information. The annotated image is easily exported as a BMP file.

The calibration is easy and painless. Instead of guessing my approximate location on the high-resolution thin section scans, I know automatically and with more precision EXACTLY where I am on my samples.

Every lab needs this.


-Marisa Acosta
 Department of Earth Sciences
 University of Oregon
 
Title: Re: PictureSnapApp version 1.3.6
Post by: John Donovan on February 13, 2018, 02:41:43 PM
Hi Marisa,
Thanks for the nice review!   I had to google "bae" to find out what it meant!    :)

I should also mention that Marisa is the grad student here that said to me last December when she was running on the Quanta: "why don't we have PictureSnap running on the SEM?"   So she is the impetus for this app development.
john
Title: Re: PictureSnapApp version 1.3.8
Post by: John Donovan on February 28, 2018, 07:08:54 PM
The latest version of PictureSnapApp ( 1.3.8 ) now allows one to define the instrument IP address in case the default IP address is not being utilized.

Normally all FEI instruments use the 192.168.0.1 address for the SEM instrument.  But Gareth Seward's FEI SEM uses a hosted network switch which was set to that address, while the SEM instrument itself is set to 192.168.0.2.  So now when one selects the FEI DCOM interface, the 192.168.0.1 address is loaded by default, but one can specify a different IP address if necessary.

Same goes for the JEOL EIKS interface. Normally the IP address of the JEOL computer (EIKS server) is 192.168.0.4, but I just bet that someone, somewhere is using a different IP address.  So we also added code to handle that situation.

(https://probesoftware.com/smf/gallery/1_28_02_18_7_06_13.png)

In addition we also added an option to disable the Z stage axis for movement as seen here:

(https://probesoftware.com/smf/gallery/1_28_02_18_7_06_36.png)

Why? Because Z is essentially arbitrary in SEMs and maybe we only want to navigate in X/Y space.  It's an option anyway.
Title: Re: PictureSnapApp version 1.3.9
Post by: John Donovan on March 01, 2018, 06:25:53 PM
The latest version of PictureSnapApp has improved annotation capabilities and now labels the calibration points (also true for PictureSnap in the latest Probe for EPMA v. 12.2.0).

(https://probesoftware.com/smf/gallery/1_01_03_18_6_21_39.png)
Title: Re: PictureSnapApp version 1.3.9
Post by: neko on March 07, 2018, 07:46:10 AM
I take it the stand-alone PictureSnap doesn't work with the Cameca SX system yet? The version included with PfE works though, right?
Title: Re: PictureSnapApp version 1.3.9
Post by: John Donovan on March 07, 2018, 08:13:13 AM
I take it the stand-alone PictureSnap doesn't work with the Cameca SX system yet? The version included with PfE works though, right?

Yes, PictureSnap is completely integrated into Probe for EPMA.  That allows for some nice features, such as display of digitized or acquired positions on the image.

Right now we just do hardware interfacing to JEOL and FEI SEMs/TEMs (and JEOL EPMAs). We could add support for Cameca instruments in the standalone version of PictureSnap(App), we just didn't think there would be much demand so we haven't made it a priority.  We'll probably do it eventually though.  Or you'all could just get PFE for your instrument!   :D

But you could also download PictureSnapApp and simply use it in "text input" mode which will "run" on any instrument!  Once you install it, simply go to the File | Stage Config menu and select text input for the interface type (and configure the units to "um" and set the stage limits and FOV appropriately for the Sx100) and you should be good to go.  You'll have to enter the X/Y stage calibration point coordinates by hand, but once you do calibrate the image, you can navigate by double clicking any spot on the image and the stage coordinates of that position are displayed, with buttons for copying to the clipboard.

So until we get  PictureSnapApp interfaced to the Cameca, you could simply install PictureSnapApp on the PeakSight computer, so you can easily cut and paste between PeakSight and PictureSnapApp.   Hey, at least it's free!    :)
Title: Re: PictureSnapApp version 1.3.9
Post by: neko on March 08, 2018, 08:40:22 AM
It works! A little clunky to use the copy/paste but it works and is quite accurate (and precise!). This will save a ton of time with folks who have small features that they need to locate on "fun" thin sections.

The only possible recommendation I would make is to make middle click (or L+R click) work to scroll the image around the viewport via dragging, if you have an image that outscales your monitor, and don't want to use the full, (possibly scaled down) view. Of course, our monitors are sorta small so that may not be a problem with newer monitors.

At least I can show this to people and be like "and if we upgrade to PfE, it'll work *even better*!"
Title: Re: PictureSnapApp version 1.3.9
Post by: John Donovan on March 08, 2018, 08:49:24 AM
Hi Nick,
Cool.  Sorry about having to use text input mode for now, but that's why text input mode is free!  We'll get the Cameca instrument interface implemented quickly- we just didn't think there would be any demand for it, so we just released it for JEOL and FEI instruments to begin with. 

On the dragging the main window around one can use the scroll bars of course, but even better I think is to simply double click on the full view window and the main window image will be automatically shifted to the area of interest.

We've also been looking into Zeiss and Hitachi instrument interfacing, but so far Zeiss says they want $9K for their API, so we can forget about that!   Still looking into the Hitachi SEM API, so has anyone utilized the Hitachi SEM API for their own coding projects?  I'd be very interested to hear.
john
Title: Re: PictureSnapApp version 1.4.0
Post by: John Donovan on March 09, 2018, 12:50:37 PM
The latest version of PictureSnapApp now has a recently opened file list (thanks Gareth), and also FOV annotations (thanks Marisa), to document the current FOV on the image as seen here:

(https://probesoftware.com/smf/gallery/1_09_03_18_12_42_44.png)

To annotate the current FOV, simply type "<shift> f" and enter any text in the pop up dialog.  In addition we've added Move To buttons for both point and FOV annotation lists so one can select any annotation from the list and move to that location automatically as seen here:

(https://probesoftware.com/smf/gallery/1_09_03_18_12_43_28.png)
Title: Re: PictureSnapApp version 1.4.0
Post by: John Donovan on March 10, 2018, 10:32:57 AM
Here's what one of our grad students, Marisa Acosta, has been using PictureSnapApp for with her scanned thin sections on our Quanta SEM:

(https://probesoftware.com/smf/gallery/1_11_03_18_12_08_57.png)

The cool thing is that when she takes the image and the calibration files to another instrument, say the TOF-SIMS, she can simply recalibrate the image to the SIMS stage and the point and FOV annotations are automatically transformed, allowing her to easily navigate to their locations even if she can no longer see the thin section in visible light anymore.
Title: Re: PictureSnapApp version 1.4.0
Post by: neko on March 13, 2018, 03:06:54 PM
I am happy to report that thus far, our lab users have responded enthusiastically to this app, and I've spread it to another lab in the department that has a laser ablation stage (I'll let you know if it ends up working out for them - they have an old P4 dell running XP with a single tiny monitor so ... it should work but might be inconvenient to use).
Title: Re: PictureSnapApp version 1.4.0
Post by: John Donovan on March 13, 2018, 03:30:57 PM
I am happy to report that thus far, our lab users have responded enthusiastically to this app, and I've spread it to another lab in the department that has a laser ablation stage (I'll let you know if it ends up working out for them - they have an old P4 dell running XP with a single tiny monitor so ... it should work but might be inconvenient to use).

Hi Nick,
Thanks, good to know.

Just FYI, in addition to getting the interface to the Cameca working, we will be making a bunch of other changes later this week to PictureSnapApp.  For example, to facilitate moving from one instrument coordinate system to another, and allowing the user to transform images that are oriented differently in different instruments.

Still very much a "a work in progress"!    :)    So do feel free to let us know of any ideas you/they have.   Be sure to update PictureSnapApp frequently using the Help menu...
john
Title: Re: PictureSnapApp version 1.4.2
Post by: John Donovan on March 17, 2018, 06:16:56 PM
We have now implemented in PictureSnapApp, support for Cameca EPMA instruments.

For Cameca EPMA instruments you'll want to select "um" for stage units, cartesian stage orientation, and enter the appropriate stage limits +/- 26000 in X, +/- 41000 in Y and +/- 1000 for Z, and roughly 1000 um for the FOV at 100x.

Any questions, just let us know.
Title: Re: PictureSnapApp version 1.4.2
Post by: John Donovan on March 17, 2018, 06:24:52 PM
We just released v. 1.4.2 of PictureSnapApp which has a number of small improvements including a new menu to transform images from one coordinate system to another.

(https://probesoftware.com/smf/gallery/1_17_03_18_5_57_35.png)

For example transforming from um (Cameca) to FEI or JEOL (mm) stages (and visa versa).  Because JEOL SEMs utilize a cartesian stage orientation, this transform dialog works fine moving to/from JEOL SEMs to other cartesian stage instruments such as JEOL and FEI SEMs.

But while you can run PictureSnapApp just fine on your JEOL EPMA, we haven't yet implemented the coordinate transformation code to handle transferring the anti-cartesian orientation of the JEOL EPMA images to/from a cartesian JEOL or FEI SEM (or to/from a cartesian Cameca EPMA).  We will release the orientation transform feature shortly, but in the meantime for transferring calibrated images between all other instruments (FEI, JEOL SEM, Cameca EPMA), the stage unit conversion works fine. Also the transform code automatically converts all point and FOV annotations.  See this Cameca image in mm units after conversion from um stage units:

(https://probesoftware.com/smf/gallery/1_17_03_18_5_58_25.png)

When you click on the Transform menu you'll get this dialog:

(https://probesoftware.com/smf/gallery/1_17_03_18_5_57_56.png)

As you can see, the conversion from um to mm was selected.  The image and calibration filenames are automatically appended with the unit conversion that was performed. e.g., "_um_to_mm" or "_mm_to_um" as seen here:

(https://probesoftware.com/smf/gallery/1_17_03_18_5_58_10.png)

Please update from your Help menu and try it and and let us know what you think.
Title: Re: PictureSnapApp version 1.4.2
Post by: neko on March 21, 2018, 01:24:32 PM
WOOOOOOOOOOOO

It works! With Cameca! Folks are gonna be so happy to not have to stab around in the dark anymore! I mean, with 7 years of practice like me you can hit exact grains a lot of the time but that's not a skill anyone should need. And now I can accurately target the smallest of grains without effort.

My only feature request would maybe be a way to to modify the text overlay slightly (black outlined in white or yellow, or maybe a transparent background highlight or something) just to make it slightly easier to read on complex, light colored thin sections (like, on top of unpolarized plagioclase grains that are next to voids, which I was recently working on) - but I mean, I can live happily forever without that; and if it's that necessary I'll figure out how to do it in MatLab. :D

Cheers,
Nick
P.S. WOOOOOOOOOO
Title: Re: PictureSnapApp version 1.4.2
Post by: Probeman on March 21, 2018, 02:05:45 PM
Hi Nick,
Cool.

I too used to try and guess for specific grains in a mount (when it actually worked I'd say to myself "nice shootin' Tex!"), but since we've had PictureSnap (in Probe for EPMA) and now the standalone PictureSnapApp on our EPMA, FIBs and SEMs, we are no longer "shooting in the dark"!   :)

On your suggestion about the annotation text color, I'm sure John(!) can easily do something like that.  In the meantime, simply use the Display menu and click the Use Black Scale Bar and Annotations menu:

(https://probesoftware.com/smf/gallery/395_21_03_18_2_02_34.png)

So use the white (default) color for dark colored images, the black color for light colored images, and for in between colored images, I guess use either color!   :D

For your own edification, note that annotations are stored in an ASCII file with a name the same as the image, but with the extension .ACQ. It's basically a normal INI file format with a different extension. The coordinates for the point and FOV annotations are always in native stage coordinates...
Title: Re: PictureSnapApp version 1.4.2
Post by: neko on March 23, 2018, 04:09:18 PM
Thanks Probeman! I saw that when I first used the program and totally forgot. That'll help for the time being, we can just switch back and forth when it's one of those sections with dark/light areas.

We tried using this upstairs with one of the laser ablation stages. It almost worked in text mode buuuuuuuuut (and, I stress, this is really dumb) it's half anti-cartesian.

As in, the X-axis runs in the normal cartesian plane, but the Y axis runs anti-cartesian. (+/+ in the lower right, -/- in the top left).

"We changed things up to differentiate ourselves from the competition!"

"Does it work better?"

"Worse, actually. But it's different!"

Dunno if that's a problem you've run into yet, but I thought you'd be interested in this oddity. We tried reversing the stage limits in PSA but... yeah, that didn't work, as expected. If you're planning on making this a laser ablation stage program you might run into this issue in the future, or maybe not, we might have the only one. I'm predisposed to finding everything weird and unusual in the world.

If you are interested, I can get more information on the stage/program makers, but... it's not a priority for us, the laser actually has quite a nice built in optical mosaic program that uses the snake pattern to save travel time, and you can see the section with the naked eye to help orient yourself.
Title: Re: PictureSnapApp version 1.4.2
Post by: John Donovan on March 23, 2018, 05:14:37 PM
We tried using this upstairs with one of the laser ablation stages. It almost worked in text mode buuuuuuuuut (and, I stress, this is really dumb) it's half anti-cartesian.

As in, the X-axis runs in the normal cartesian plane, but the Y axis runs anti-cartesian. (+/+ in the lower right, -/- in the top left).

"We changed things up to differentiate ourselves from the competition!"

"Does it work better?"

"Worse, actually. But it's different!"

Dunno if that's a problem you've run into yet, but I thought you'd be interested in this oddity. We tried reversing the stage limits in PSA but... yeah, that didn't work, as expected. If you're planning on making this a laser ablation stage program you might run into this issue in the future, or maybe not, we might have the only one. I'm predisposed to finding everything weird and unusual in the world.

If you are interested, I can get more information on the stage/program makers, but... it's not a priority for us, the laser actually has quite a nice built in optical mosaic program that uses the snake pattern to save travel time, and you can see the section with the naked eye to help orient yourself.

Oh god...  who was it that said the perversity of the universe tends to a maximum?  ;D

This "half anti-cartesian" stage orientation was also the case for the first microprobe I ever used, an ARL SEMQ.  On that instrument, the explanation for the reversed Y axis was simple: they used an inverting microscope optics (as in a petrographic optical microscope), so it sorta-kinda made a little sense.

But then just to be different, they used stage units of 0.1 mm!    :o   What the heck is a hundredth of a meter?  I called them humimeters. As in hundred micron units. So now you know!   And you'll never be able to forget either.   :P

Just so you know, I do have the X and Y polarities specified separately in the code, so in theory it's possible that PictureSnapApp could handle this "half-anti-cartesian" (or is it half cartesian?) situation.  In practice?  Maybe someday.  Also, if you look at the .ACQ file in a text editor, you'll notice that the X and Y stage "polarities" are specified separately, so we've left this option open for future development. 

Right now we're deep into implementing a new feature in PictureSnapApp that will make it like a lab notebook for images.  Possibly after this is implemented I will look into messing with these oddball stage cases.

But I would be interested in knowing if there are any other instruments that have these, let's called them "half cartesian", stages...
Title: Re: PictureSnapApp version 1.4.2
Post by: John Donovan on March 23, 2018, 10:33:48 PM
I'll answer my own question:

https://en.wikipedia.org/wiki/Finagle%27s_law

I probably read it in one of Larry Niven's novels, most likely one of his Ring World series novels. And if you haven't, you should.

Here's the part of the Wiki page I enjoyed the most:

Quote
A related concept, the "Finagle factor", is an ad hoc multiplicative or additive term in an equation, which can only be justified by the fact that it gives more correct results.

And who's to say that we are correct, and the optical microscope is wrong?     ;)
Title: Re: PictureSnapApp version 1.4.2
Post by: neko on March 24, 2018, 09:25:10 AM
I'll answer my own question:

https://en.wikipedia.org/wiki/Finagle%27s_law

I probably read it in one of Larry Niven's novels, most likely one of his Ring World series novels. And if you haven't, you should.

Here's the part of the Wiki page I enjoyed the most:

Quote
A related concept, the "Finagle factor", is an ad hoc multiplicative or additive term in an equation, which can only be justified by the fact that it gives more correct results.

And who's to say that we are correct, and the optical microscope is wrong?     ;)

Maybe they microscope they're using is inverted, but why on earth people don't just click the "invert * axis" button in the framegrabber software is well beyond my ken. Even the cheap software included with my $50 usb microscope could do that.

No one is worried that it doesn't work - I thought you would enjoy a good laugh, but it turns out I just surfaced youthful nightmares for you :D Just having features annotated on a printout helps enough with their system.

Finagle Factor really sounds like what Einstein thought the universal constant was (which he spent his later years fruitlessly attempting to disprove). Turns out he was so smart, he was wrong about being wrong, and he had accidentally discovered what we now refer to as dark energy.

Humimeter? Why not HectoMicron, as in why the hecto you do this? :D Was the stage accurate to the centihumimeters range? :D
Title: Re: PictureSnapApp version 1.4.3
Post by: John Donovan on March 24, 2018, 02:41:58 PM
Hi Nick,
Well I woke up this morning thinking of an easy way to do all this transformation stuff "on the fly"!

So now PictureSnapApp supports cartesian, anti-cartesian and now "half-cartesian" stages!    8)

(https://probesoftware.com/smf/gallery/1_24_03_18_2_24_40.png)

I also modified the transformation menu dialog to support transforming images from and to different units and stage orientations (I've been a busy bee) as seen here:

(https://probesoftware.com/smf/gallery/1_24_03_18_2_24_54.png)

But the best part is that I modified the open image file code so that PictureSnapApp now *automatically* detects the stage units and orientation of the image being loaded, and then converts it to the current PictureSnapApp stage units and orientation.  So the above transform dialog isn't really necessary any longer, but I left it there just in case someone can find a use for it.  This new auto-detect code should make it essentially effortless to move your images and annotations from one instrument to another.

And of course PictureSnapApp also converts all the point and FOV annotations to the new stage units and orientations, but remember you'll still need to re-calibrate the image to the new stage coordinates, even if no unit or orientation conversions were necessary. That is to say, just because two instrument stages have the same units and orientation, that doesn't mean that the sample was mounted exactly the same in both instruments. 

Of course, re-calibrating the image is also required if you remove the sample from the sample holder, and then remount it in the same instrument. Although in this case the image calibration will probably be very close to the saved calibration making it really easy to do (unless you mounted the sample in a different place in your sample holder).  But this is all normal and expected.

This new version also supports nm (nanometer) units (I'm thinking of TEMs, but maybe they all use mm and um units?).   Anyway, nm are now supported.

When you install this new version, it might force you to re-specify the stage parameters.  I don't think it will but I had to modify the installer slightly so it's possible.  Anyway, I will be very interested to see what you think of the recent changes... just update from the Help menu and all should be good to go.

Oh, I should also mention that if the software detects that it needs to transform the stage units and/or orientation, it automatically appends some text on the image name to make it clear what things were modified.  For example if the image was converted to um, it appends a "_to_um" to the original image file name.  In a similar manner, if the stage orientation was converted from cartesian orientation to anti-cartesian orientation, it would also append a "_to_anti-cartesian" string to the original image file name.  That way the original image is not modified.
Title: Re: PictureSnapApp version 1.4.3
Post by: neko on March 28, 2018, 02:35:06 PM
It works! I'm pleased to report it even handles 0 correctly for stage limits. This stage is weird, it's 0-50mm in both directions. But as you said, the image opened up, converted itself properly, and after we figured out what we were looking at, calibrate correctly and even in text mode with not so great scans, is within 50-100um of where it should be. We didn't calibrate that carefully, and we're also using a second computer and typing the coordinates in by hand. but hey, it works as advertised!

Next up: the ability to draw a box and have it auto-calculate your xmap/mosaic settings for you (just kidding, but this will help us figure out crystal extents more quickly with polarized optical scans).

In fact, this app is going to be *really* handy on those few rare folk who have basalt and plag that you can barely distinguish separately - using high gain BE mode helps, but a scan that shows crystal orientation & glass extinguishing via polarization will probably be way better. I just take a look at the samples and tell the poor researchers "good luck!"
Title: Re: PictureSnapApp version 1.4.3
Post by: John Donovan on March 28, 2018, 07:06:39 PM
We added the keyboard and mouse annotation documentation to the Stage Config dialog, and also it will pop up after you click the Calibrate button in the Window | Calibrate Image To Stage Coordinates menu window (the first time only!).

Here is what it looks like in the Stage Config dialog (which pops up the first time you run PictureSnapApp!).

(https://probesoftware.com/smf/gallery/1_28_03_18_6_59_32.png)

We also added a feature that allows the user to capture the exact current position by typing <shift> p as seen here:

(https://probesoftware.com/smf/gallery/1_28_03_18_7_00_40.png)

Of course one can right click anywhere on the image to add a random annotation, but this allows one to capture the current position precisely.
Title: Re: PictureSnapApp version 1.4.3
Post by: John Donovan on March 28, 2018, 07:18:05 PM
Next up: the ability to draw a box and have it auto-calculate your xmap/mosaic settings for you (just kidding, but this will help us figure out crystal extents more quickly with polarized optical scans).

Hi Nick,
We just added a feature tonight that does at least the first half of your request!  It was already in the PictureSnap feature in PFE, so we "just" moved the code over.   :D

You turn it on/off using a new Misc menu, and here we choose the draw rectangle mode:

(https://probesoftware.com/smf/gallery/1_28_03_18_7_14_51.png)

Basically it just draws a (red) rectangle between the current position and the last position double-clicked to as seen here:

(https://probesoftware.com/smf/gallery/1_28_03_18_7_00_14.png)

The blue square is of course the current field of view.
Title: Re: PictureSnapApp version 1.4.5
Post by: John Donovan on March 29, 2018, 10:34:47 AM
We made a separate web page for PictureSnapApp:

http://probesoftware.com/PictureSnapApp.html
Title: Re: PictureSnapApp version 1.4.3
Post by: neko on March 29, 2018, 02:54:41 PM
We just added a feature tonight that does at least the first half of your request!  It was already in the PictureSnap feature in PFE, so we "just" moved the code over.   :D

"just"  ;D I've coded relatively little but dang, even on the simple, fun things I've done there's not "just" in programming.

I have an excel sheet with all the necessary calculations baked to calculate the mosaic center and number of cells (both for square xmaps and 3/4 height video scan maps, once I realized why they were coming out weird) in the X and Y directions, as well as just the number of cells you can expect from the map. It does this based on the FOV you input however, and due to that extends outside the nominal limits of the area.

The only inputs needed are X1, X2, Y1 and Y2 (negative, positive and the order they're specified in don't matter as long as you have the right axis) and FOV - I built the sheet as I was using it and ideas came to me, so it's not so well organized but it gets the job done way better than guessing. Xc and Yc are the center points of the mosaic, Width X/Y are the dimensions based on the input coordinates, "cells wide" is however many cells are needed in the X direction to cover at least the area of the mosaic, "Cells Tall Xmap" is how many in the Y direction are needed for square cells, and "Cells Tall Video" is how many cells are needed when you're doing image capture mosaics, to compensate for the 4/3 ratio of video scan acquisition. The numbers are all rounded to whole numbers for easy of copy/paste into programs that don't take floating points, all units in microns except for the cells.

Julian built something similar in his De-MA, but that only does single cell maps as far as I can tell; my spreadsheet can do that and also calculate your mosaic values. It doesn't tell you how long things will take, but I figured that wasn't a big deal as Peaksight tells you (inaccurately) how long it'll take.

Feel free to rob my IP blind if you find it useful - I'm sure there's a better way to do it, but as I said, this gets the job done, and it's really nice when you don't accidentally run maps that don't acquire the whole area or are offset. hashtag peaksight4probs
Title: Re: PictureSnapApp version 1.4.3
Post by: John Donovan on March 29, 2018, 06:34:59 PM
I have an excel sheet with all the necessary calculations baked to calculate the mosaic center and number of cells (both for square xmaps and 3/4 height video scan maps, once I realized why they were coming out weird) in the X and Y directions, as well as just the number of cells you can expect from the map. It does this based on the FOV you input however, and due to that extends outside the nominal limits of the area.

Hi Nick,
Nice.  I appreciate what you've done.  My mosaic efforts are here:

http://probesoftware.com/smf/index.php?topic=324.msg6078#msg6078

for creating stage/beam mosaics using an analog signal (BSE, SE, etc.) in our Stage app.  We also have a % overlap parameter which is nice for eliminating gaps when your beam to stage and/or scan rotation calibration isn't perfect.
Title: Re: PictureSnapApp version 1.4.3
Post by: neko on March 30, 2018, 11:00:49 AM
Hi Nick,
Nice.  I appreciate what you've done.  My mosaic efforts are here:

http://probesoftware.com/smf/index.php?topic=324.msg6078#msg6078

for creating stage/beam mosaics using an analog signal (BSE, SE, etc.) in our Stage app.  We also have a % overlap parameter which is nice for eliminating gaps when your beam to stage and/or scan rotation calibration isn't perfect.

That's great to know, and exactly solves every problem I currently have with mapping (which I kinda assumed you'd already have solved). Now to just convince people that these problems should be fixed...
Title: Re: PictureSnapApp version 1.4.6
Post by: John Donovan on April 01, 2018, 03:30:35 PM
Dang, this was harder than I thought it would be but we added the ability to rotate an image +/- 90 or 180 degrees to deal with samples mounted in different orientations in different instruments.  Or perhaps you loaded the sample in the same instrument, but upside down, as is sometimes the case!

To utilize this feature please update to the latest PictureSnapApp from the Help menu, then click on the Transform | Rotate Image/Stage Orientation menu as seen here:

(https://probesoftware.com/smf/gallery/1_01_04_18_3_25_26.png)

Then use the Select button to load an image, and then click one of the Rotate buttons to rotate the image appropriately.

(https://probesoftware.com/smf/gallery/1_01_04_18_3_20_15.png)

When you click the OK button the app will save the rotated image and also rotate the screen calibration coordinates. Here is an example of the original thin section and the two screen calibration points:

(https://probesoftware.com/smf/gallery/1_01_04_18_3_20_40.png)

And here is the image rotated 90 degrees clockwise:

(https://probesoftware.com/smf/gallery/1_01_04_18_3_20_55.png)

Please note that the stage calibration coordinates will not be modified, but since you'll have to re-calibrate the image to the new stage, that really doesn't matter.  But at least the location of the original calibration points will be preserved, though of course one can choose different calibration points if they prefer.
Title: Re: PictureSnapApp version 1.4.6
Post by: neko on April 02, 2018, 01:44:57 PM
Dang, this was harder than I thought it would be but we added the ability to rotate an image +/- 90 or 180 degrees to deal with samples mounted in different orientations in different instruments.  Or perhaps you loaded the sample in the same instrument, but upside down, as is sometimes the case!

You're getting faster all the time, I see. I was just about to request this feature, but the problem was already solved 22 hours ago. Which is extra handy, because our probe only does vertical thin sections, and our LA-ICMPS that I installed PSA on only does horizontal thin sections. And our slide scanner only does horizontal sections as well. Not that it's that difficult to rotate an image in another program, but translating the stored points? That's worth every penny.
Title: Re: PictureSnapApp version 1.4.6
Post by: John Donovan on April 02, 2018, 02:15:59 PM
Dang, this was harder than I thought it would be but we added the ability to rotate an image +/- 90 or 180 degrees to deal with samples mounted in different orientations in different instruments.  Or perhaps you loaded the sample in the same instrument, but upside down, as is sometimes the case!

You're getting faster all the time, I see. I was just about to request this feature, but the problem was already solved 22 hours ago. Which is extra handy, because our probe only does vertical thin sections, and our LA-ICMPS that I installed PSA on only does horizontal thin sections. And our slide scanner only does horizontal sections as well. Not that it's that difficult to rotate an image in another program, but translating the stored points? That's worth every penny.

Hi Nick,
The stored annotations in the rotated image ACQ file should be correctly converted when you re-calibrate the image to the different instrument stage (I gave it a good long thought and I think that modifying the screen calibrations for the rotation operation should be enough), but to be absolutely honest I haven't had a chance to test it.  So if you get a chance to test it before I do please let me know.   ;D
john

Edit by John: OK, so I scanned a standard block that I had rotated 90 degrees, and loaded the block into the instrument with the same orientation as the scanned image. Then I calibrated three calibration points and made an annotation in another spot.

I then removed the rotated standard block and loaded it back again, but this time with a normal orientation.  I then started PictureSnapApp and using the Transform menu, selected the rotated image, clicked Rotate 90 (CCW) and clicked OK. I then loaded the rotated (now normally oriented) image into PictureSnapApp using the File | Open Image menu.

I didn't know what to expect, but to my surprise the calibrations and the annotation all loaded in the correct orientation, but of course the stage coordinates were all wrong.  So I proceeded to update the rotated stage calibrations (you need to be sure that calibration point #1 is updated to the new calibration point #1 location, calibration point #2 to the new calibration point #2, etc.), and when I clicked Calibrate Image, lo and behold, everything was perfect.

So I think it's all working fine...
Title: Re: PictureSnapApp version 1.4.6
Post by: Changkun on April 07, 2018, 06:56:31 AM
This app works nicely in my JSM-7200F. Installation was easy even though the IP address of SEM-PC is 192.168.20.3, not a default IP.
Image rotation was one on my wish list. I should update soon. Thanks, John  ;D

Sometimes I made high resolution reflected, plane-polarized, and cross-polarized images with >10,000 X >10,000 pixels by optical microscope, and want to observe the details of the same area (very small) by SEM-EDS and EPMA, which observed by optical microscope. In order to this, zoom-in/out is highly required in this program.

FYI, ImageJ and/or Image Composite Editor are used for stitching images. Especially, BaSIC plugin for ImageJ works great to correct intensity discontinuities in the mosaic image. Please refer the paper below.

https://www.nature.com/articles/ncomms14836
Title: Re: PictureSnapApp version 1.4.6
Post by: John Donovan on April 07, 2018, 12:24:52 PM
Sometimes I made high resolution reflected, plane-polarized, and cross-polarized images with >10,000 X >10,000 pixels by optical microscope, and want to observe the details of the same area (very small) by SEM-EDS and EPMA, which observed by optical microscope. In order to this, zoom-in/out is highly required in this program.

Hi Chankun,
Glad it's working for you! 

We're adding zoom in/out soon as part of our new "Image Locator" feature.  In the meantime please note that since the main PictureSnapApp window is already mapped at 1 image pixel to 1 screen pixel, zooming in will only make it look pixelated.  For an overview of the whole image, simply open the Full Image Picture View window from the Window menu.
Title: Re: PictureSnapApp version 1.4.8
Post by: John Donovan on April 07, 2018, 01:39:54 PM
We've now added support to PictureSnapApp for JEOL 8800/8900/8100/8200/8500 EPMA instruments:

(https://probesoftware.com/smf/gallery/1_07_04_18_1_33_37.png)

Support for JEOL 8230/8530 EPMA instruments is available using the existing EIKS interface for JEOL SEMs.
Title: Re: PictureSnapApp version 1.4.8
Post by: neko on April 08, 2018, 04:01:19 PM
I wrote a little python program for myself to convert a CSV of coordinates and comments from (comment, x, y, z,) into .ACQ annotation format - it's very basic and doesn't check to see if there are any current annotations, just starts adding them as if the [annotations] line is the last line in the file, currently (i'll improve that as I find it necessary). I figured there's no point in duplicating the work and it's more precise (in theory  ::)) when you've picked the points in the quant program anyway.

I can post the code if anyone's interested but I suspect John'll make his own import routine at some point, this was mostly an exercise to entertain myself.  ;D it wasn't very difficult in any case
Title: Re: PictureSnapApp version 1.4.9
Post by: John Donovan on April 12, 2018, 11:27:25 AM
Two small changes in PictureSnapApp v. 1.4.9.

First we now close the current image when loading the Help | Update dialog (to avoid the "Do you want to close the current image?" message box).

And second, when opening a new image, we now move to the current stage position (if the stage position is within the image bounds). This is just to allow the app to move the main image window scroll bars to show the current position, since the stage is already at the current position!
Title: Re: PictureSnapApp version 1.5.0
Post by: John Donovan on May 09, 2018, 11:50:06 AM
We updated the PictureSnapApp installer to install some additional tools for configuring the FEI DCOM network connection, if you are installing on a new computer that does not already have an existing DCOM connection to the FEI microscope computer.

Usually one would install PictureSnapApp on a computer that already has a DCOM connection to the FEI microscope computer, for example the computer used for the EDS system.  But if you are installing PictureSnapApp on a new computer to connect to an FEI instrument, the updated instructions (and tools) should be very helpful.  See the detailed pdf instructions provided by FEI in the FEI_DCOM_Tools.zip file.

See attachment below (you must be logged in to the forum to see attachments).
Title: Re: PictureSnapApp version 1.5.2
Post by: John Donovan on May 16, 2018, 05:43:57 PM
The latest version of PictureSnapApp (v. 1.5.2) now configures your stage units and stage orientation automatically for the selected instrument interface (FEI, JEOL and Cameca EPMAs, SEMs and TEMs). 

Of course for demo and text input modes one can select any combination of stage units (mm, um and nm) and stage orientation (cartesian, anti-cartesian or half cartesian), since there is no actual instrument interface.
Title: Re: PictureSnapApp version 1.5.4
Post by: John Donovan on May 26, 2018, 10:16:40 AM
So here are some PictureSnapApp examples of displaying BSE images from PFE displayed on a sample thin section scanned on a Nikon slide scanner with crossed polars:

(https://probesoftware.com/smf/gallery/1_26_05_18_10_13_40.png)

These "thumbnail" images could be any image source (CL, SE). One can also simply check a box and only the outlines of the image will be visible:

(https://probesoftware.com/smf/gallery/1_26_05_18_10_13_59.png)
Title: Re: PictureSnapApp version 1.5.4
Post by: John Donovan on May 26, 2018, 10:29:05 AM
And here's another example showing the current position and current FOV on the PictureSnapApp base map:

(https://probesoftware.com/smf/gallery/1_26_05_18_10_27_10.png)

Try it out in demo (and text input mode) mode (for free!):

http://probesoftware.com/PictureSnapApp.html
Title: Re: PictureSnapApp version 1.5.9
Post by: John Donovan on June 27, 2018, 08:30:52 AM
The latest version of PictureSnapApp (still v. 1.5.9) now has a "measurement tool" as suggested by Kurt Langworthy. This feature is enabled by simply clicking and dragging the mouse on the calibrated image in the main window as seen here:

(https://probesoftware.com/smf/gallery/1_27_06_18_8_23_25.png)

To "remove" the measurement graphic, simply click once on the image.

As usual, just click the Help | Update PictureSnapApp menu to update PictureSnapApp.
Title: Re: PictureSnapApp version 1.6.1
Post by: John Donovan on June 29, 2018, 08:18:04 PM
As you may know, using the Transform menu dialog in PictureSnapApp one can manually rotate images 90 CW, 90 CCW and 180 degrees.

Previously the code only rotated the screen calibration points, but in the latest version, 1.6.1, the point and FOV annotations and sub image fields also get rotated automatically.

Here is an image with a point annotation, FOV annotation and a sub image field using the image locator feature:

(https://probesoftware.com/smf/gallery/1_29_06_18_8_09_40.png)

Now rotating it 90 degrees CW, we see this:

(https://probesoftware.com/smf/gallery/1_29_06_18_8_20_53.png)

Anyway, it seems to be working so if you are moving a sample from one instrument to another and need to orientate  the sample differently in the new instrument, this will work well for you.

You still need to re-find your calibration points for the new instrument stage, but then the rest is automatic.
Title: Re: PictureSnapApp version 1.6.3
Post by: John Donovan on July 07, 2018, 11:23:12 AM
The latest version of PictureSnapApp (and also the PictureSnap feature in Probe for EPMA), now automatically handles samples that are rotated with respect to the image orientation when utilizing the Draw Rectangle feature (available from the Misc menu) as seen here:

(https://probesoftware.com/smf/gallery/1_07_07_18_11_17_02.png)

The above image shows the rectangular area on the sample, as selected by the user (by double-clicking on the image to move the stage), rotated appropriately when the image is rotated with respect to the instrument stage.
Title: Re: PictureSnapApp version 1.6.5
Post by: John Donovan on July 12, 2018, 05:00:16 PM
I made up a short PowerPoint describing the basics of PictureSnapApp.  I'll be presenting it some time this month to my colleagues at UofO.

The PPT file is too big to post here, but I attached a PDF below (please login to see attachments).

If you're interested in the PPT file, please send me an email and I'll send you a Dropbox link.
Title: Re: PictureSnapApp version 1.6.6
Post by: John Donovan on July 17, 2018, 05:47:54 PM
The latest version of PictureSnapApp (v. 1.6.6) fixes the problem (on some systems) of "blinking" graphics. 

Download the app here:

http://probesoftware.com/download/PictureSnapApp.msi

Or simply use the Help | Update PictureSnapApp menu if you have it already installed on your computer. If you have any questions about this "visual notebook" application, please let us know.
Title: Re: PictureSnapApp version 1.6.7
Post by: John Donovan on July 20, 2018, 08:47:04 AM
The latest version of PictureSnapApp fixes a Microsoft(!) memory leak issue in the GDI+ graphics. You'd only notice it if you left PictureSnap running for 4 or 5 days and had lots of images displayed.

Anyway, it's fixed now, so please use the Help menu in PictureSnapApp to update.
Title: Re: PictureSnapApp version 1.6.8
Post by: John Donovan on August 03, 2018, 10:17:27 AM
I just wanted to remind people that PictureSnapApp is $499 for the hardware communication enabled modes, which supports many instrument hardware interfaces for stage and FOV communication. These currently supported instrument interfaces are listed here:

JEOL SEM (EIKS)                  note: 7000 series JEOL SEMs only
FEI SEM (DCOM)
Cameca SX100/SXFive
JEOL 8800/8900 EPMA
JEOL 8100/8200 EPMA
JEOL 8500 EPMA
JEOL 8230/8530 EPMA
FEI TEM (DCOM)

For all other instruments not listed above, for example, Zeiss, Hittachi, Cameca SIMS, all LA-ICPMS, etc., PictureSnapApp can be downloaded *for free* and utilized in "Text Input" mode. This "Text Input" mode also includes the SEM and EPMA instruments listed above, that is if one is unwilling to pay the $499 for the hardware enabled version of PictureSnapApp!    :(

(https://probesoftware.com/smf/gallery/1_03_08_18_9_57_57.png)

In "text Input" mode there is no direct hardware communication with the instrument and instead, the user simply navigates using the OEM software (OEM software simply refers to the software that the instrument manufacturer provides with the instrument), and enters the stage coordinates of the image calibration points using the keyboard.

Once the image is calibrated, the user then simply double clicks on the image (as one normally would in the hardware enabled modes, to automatically drive the stage to the desired sample location), but instead of moving the stage, the software pops up a dialog with the calculated stage coordinates as seen here:

(https://probesoftware.com/smf/gallery/1_03_08_18_9_58_11.png)

One then simply enters these stage coordinates into the OEM software and drives to the designated sample position.  The point being that one can calibrate the "base map" image using easily identifiable features (the image calibration points) and then navigate to arbitrary sample locations with micron accuracy.

Please note that this Text Input mode still includes the Image Locator feature, which allows one to embed images captured using the OEM software, and then accurately display them on the "base map" image in PictureSnapApp as described in this topic:

http://probesoftware.com/smf/index.php?topic=1082.msg7245#msg7245

To utilize the Image Locator feature in Text Input mode simply:

1. Drive to the sample position for the desired image acquisition as described above using OEM software to drive the stage to the coordinates displayed in PictureSnapApp.

2. Then adjust the FOV (field of view) on the instrument using the OEM software, and acquire an image as usual, again using the OEM software. Then  save the acquired image as a JPG, BMP or GIF file format on the hard drive.  For ease of use, save the acquired image to a folder on the computer running PictureSnapApp, or to a shared (network) folder that can be accessed from the computer running PictureSnapApp.

3. Then adjust the FOV displayed in PictureSnapApp by using the up/down cursor keys, to adjust the displayed FOV to match the FOV displayed in the acquired image. For fine adjustments of the displayed FOV, hold the <shift> down while using the up/down cursor keys.

4. Then click the "Select Remote Image and Save to Current FOV" button in the Image Locator window and browse to the saved acquired image.

The acquired image will be loaded and displayed in the current stage position and FOV on the PictiureSnapApp main window. Again this Text Input mode of PictuyreSnapApp can be downloaded *for free* and utilized on *any* instrument with an X/Y stage!

You won't get a better deal at any store!    ;)

At the very least please download the latest PictureSnapApp software here:

http://probesoftware.com/download/PictureSnapApp.msi

and try it out in "demonstration" mode to get a feel for how it works. We think you will be quite pleased. And please do let me know if you have any questions at all regarding this new sample navigation product.  It's pretty cool if I do say so myself!   ;D
Title: Re: PictureSnapApp version 1.7.1
Post by: John Donovan on August 24, 2018, 05:21:25 PM
Because of the new secure connections in the Probe Software web site and forum pages, everyone will also need to download the latest PictureSnapApp.msi installer manually from here:

https://probesoftware.com/PictureSnapApp.html

and run the installer once to get the new secure connection download code.  After this one can update PictureSnapApp using the Help | Update PictureSnapApp menu as before.

Sorry for the trouble but going to https is pretty much required nowadays.
Title: Re: PictureSnapApp version 1.7.1
Post by: John Donovan on August 27, 2018, 11:52:33 AM
We made up a new 1 page flyer for PictureSnapApp.

Please see the attached PDF below and let us know what you think (remember you need to log in to see attachments).
Title: Re: PictureSnapApp version 1.7.2
Post by: John Donovan on September 13, 2018, 10:49:11 AM
Paul Carpenter recently tested the latest PictureSnapApp on his JEOL 8200 and reports that (after a few tweaks by us), it all seems to be working fine. Thank-you Paul!

So if you'd like to try PictureSnapApp on your JEOL 8900/8200/8500 please download the latest version (1.7.2) here:

https://probesoftware.com/PictureSnapApp.html

Once you install the software on a PC you can run it in "demo" mode or in "Text Input" mode without the hardware communication for free.

If you'd like to enable hardware support in PictureSnapApp for your JEOL 8900/8200/8500 (or JEOL 8230/8530 or FEI SEM or Cameca EPMA) instrument, go ahead and use the PayPal link in the above web page. 

Then send Probe Software the serial number that is generated the first time you make a connection to the instrument from the File | Stage Configuration menu, and Barbara will send you the registration code to allow you to complete the instrument communication connection.

See attached instructions for details.
Title: Re: PictureSnapApp version 1.7.3
Post by: John Donovan on September 15, 2018, 08:28:48 PM
Owen Neill also suggested using a red color (in addition to white and black) for text and annotations on the image. For gray scale images this seems to be a good idea.

(https://probesoftware.com/smf/gallery/1_15_09_18_5_30_35.png)

We also tweaked the code to deal with the fact that the JEOL SEM is actually an anti-cartesian stage orientation- just like the 8900/8200/8500/8230/8530 EPMA instruments.  Anti-cartesian meaning that the upper right of the stage coordinate system is the X/Y *minimum* limit.  That is the opposite of the Cameca stage orientation (Cartesian) which is where the upper right is the maximum X/Y limit.

For some reason we were laboring under the impression that the JEOL SEM stage was cartesian, but it is in fact, anti-cartesian.  We are also assuming that the JEOL TEM stage is also anti-cartesian and uses um units.  Can anyone confirm this?

Anyway, the latest PictureSnapApp 1.7.3 fixes this JEOL SEM stage orientation issue and has the red color option.
Title: Re: PictureSnapApp version 1.7.4
Post by: John Donovan on September 22, 2018, 03:57:07 PM
Owen Neil recently discovered that PictureSnapApp was causing an error when the app was closed from either the File | Exit menu or the main window close window control on 32 bit operating systems.

The app ran fine, but when it was closed by the user on 32 bit XP or 32 bit Win 7, it caused one of those "the application caused an unexpected error" messages.  The app closes just fine on 64 bit systems.  This did not occur in the past and so may have been a system update issue from a recent Microsoft update having to do with the GDI+ graphics.

Anyway it is fixed now in v. 1.7.4 so please update from the Help | Update PictureSnapApp menu and all should be fine.  No need to update PSA if you are using a 64 bit operating system such as Win 7 64 bit, but it won't hurt to update PictureSnapApp either.

Thank-you Owen for finding and reporting this issue!
Title: Re: PictureSnapApp version 1.7.4
Post by: John Donovan on October 03, 2018, 09:20:12 AM
We updated the PictureSnapApp web page a bit, added a new descriptive brochure and a download link here:

https://probesoftware.com/PictureSnapApp.html

From this page you can download the app for free, install it (in demonstration or text input mode) on any Windows PC. Then let us know what you think about the product.

If you like the app, you can continue to use it for free on any instrument in "text input mode". Or send us the serial number generated from the Stage Configuration menu dialog (when you select one of the supported instruments), and for $499 (PayPal) we'll enable the hardware communications for JEOL 8900/8200/8500/8230/8530 EPMA, Cameca SX100/SXFive EPMA, JEOL SEM (7000 series) and FEI SEM/FIB/TEM instruments.
Title: Re: PictureSnapApp version 1.7.4
Post by: John Donovan on October 11, 2018, 12:08:41 PM
We (again) updated the PictureSnapApp web page, this time to include some "testimonials" from our customers.

Click here to see what your colleagues are saying about PictureSnapApp:

https://probesoftware.com/PictureSnapApp.html

Title: Re: PictureSnapApp version 1.7.5
Post by: John Donovan on November 03, 2018, 10:19:33 AM
The latest version of PictureSnapApp (v. 1.7.5) now automatically displays the current stage limits in both the main and full view windows of PictureSnapApp as seen here:

(https://probesoftware.com/smf/gallery/1_03_11_18_10_17_55.png)

Thanks to Gareth Seward for the suggestion.
john
Title: Re: PictureSnapApp version 1.7.5
Post by: Gseward on November 05, 2018, 09:51:33 AM
John,

Thanks for this and for the continued and rapid incorporation of new ideas. The App gets better and better!

gareth
Title: Re: PictureSnapApp version 1.7.5
Post by: DavidAdams on November 06, 2018, 05:57:06 AM
Hi John,

Do you have any plans to incorporate the use of PictureSnapApp on non-E-beam instruments like LA-ICP-MS? Many of our researchers go from SEM to Probe to LA-ICP-MS in succession and I could see PictureSnap being very useful in running analyses on different instrumentation.

-dave
Title: Re: PictureSnapApp version 1.7.5
Post by: John Donovan on November 06, 2018, 08:00:09 AM
Do you have any plans to incorporate the use of PictureSnapApp on non-E-beam instruments like LA-ICP-MS? Many of our researchers go from SEM to Probe to LA-ICP-MS in succession and I could see PictureSnap being very useful in running analyses on different instrumentation.

Absolutely.

In fact Nick Botto at UC Davis uses PictureSnapApp for exactly this.  He runs the hardware enabled version of PictureSnapApp on his Cameca SX100 and runs the *free* PictureSnapApp in "text input" mode on their LA-ICP-MS.  In fact this is made rather easy by the fact that PictureSnapApp supports the "half-cartesian" stage orientations which are found on many LA-ICP-MS instruments.  That is cartesian in X and anti-cartesian in Y.

I guess this is because most LA-ICP-MS instruments use an inverting optical microscope, so they have the same stage orientation as the old ARL SEMQ microprobe!  At least these modern LA-ICP-MS instruments don't utilize 0.1 mm stage units like the old SEMQ did!   :)

In "text input" mode PictureSnapApp does not directly interface to the instrument, but instead one simply types in the stage calibration coordinates for the two or three calibration points using the keyboard, and then all is good.  Check the documentation for more info.  I've attached the PictureSnapApp installation (and instruction) documents below.  You should have Alan try it out on his system.  It's free!  What SEM system do you have?  If it's an FEI system, PictureSnapApp can directly connect to the hardware using a network connection.

Now if someone came to me with information on how to hardware interface to a LA_ICP-MS instrument, I would take a look and see what is involved. The hardware communication requirements for PictureSnapApp are very basic, simply read and set stage position and read FOV.  That is all.
Title: Re: PictureSnapApp version 1.7.5
Post by: neko on November 06, 2018, 11:07:52 AM
Hi Dave,

We've found success with using PSA on our multicollector upstairs. Which is a Nu Instruments LA-ICPMS with some laser ablation system hooked up to it, but they're not integrated other than I think the NU software controls the laser in tandem with the ICPMS, navigation is done by hand on a spot-to-spot basis, no automation (boo!). We got to beta-test the half-anti-cartesian mode as I was the one to discover it, so I can definitely say the software works well with that. Once everything was working properly, we were able to take the thin section maps upstairs, calibrate, and use them for navigation - the computer that runs the laser has XP and a tiny monitor, so we ran it on the other computer's second screen and just typed in coordinates manually. It was a vast improvement over the prior method of squinting at the thin section in relation to the targeting beam and guessing how far you needed to go to find your area of interest based on the relation to your scanned map.

My advice is to keep your maps constrained to about 4000 pixels on the longest edge, this seems to work well with RAM limited systems while still providing plenty of resolution. (Who loves 32-bit XP? We d*OUT OF MEMORY*)

If you have a 1080i screen the text labels are a little harder to read (someone donated an old 30" tv to our lab, which is our largest screen, and also displays the best color, and everyone *loves* seeing their maps all huge), but they look just fine on any non-interlaced signal.

This product, I have to say, is fantastic. I really couldn't be happier It's been a great year with this. Even using it in text based mode before we purchased it was such a major upgrade from the stabbing around in the dark it was well worth using, being able to double-click to drive is icing on the cake. Taking your maps to other instruments is getting ice cream with your cake.

John, I can get you information about the system we use here. It's a serial interface to control the stage + framegrabber for the microscope camera.
I'll see if there's anything special about the interface - it might be a generic motor control, might be something proprietary and as it's already out of circulation that's likely a dead end unless they by some miracle included an API. Also, you know what's really annoying about the inverted cartesian stage is they could have just inverted the video signal at the framegrabber level like the rest of the world. Ah well.

I will see if any of the other labs in our department that use LA run samples where mapping would be useful, and if they have newer lasers try to dig up some info on it for ya :) Some of them do stuff where everything's been plucked and aligned to a grid so it's simple enough to not need a map of anything other than "which grains are not of interest" eg sphene in the zircon mount.
Title: Re: PictureSnapApp version 1.7.5
Post by: Probeman on November 06, 2018, 12:24:14 PM
Yeah, memory can be an issue for very large images. Here are some posts on that issue:

https://probesoftware.com/smf/index.php?topic=368.msg7310#msg7310

Basically the memory for an image must be "contiguous" memory, that is unfragmented memory. On computers with limited memory sometimes that can be improved by re-starting the computer, as memory tends to become fragmented over time.  On my Win 7 system I can load very large images (10K by 10K pixels and even larger).
Title: Re: PictureSnapApp version 1.7.5
Post by: neko on November 07, 2018, 12:02:45 PM
It's definitely a Windows Xp issue and not PSnapApp, my two video cards have a gig of memory each but due to XP, it only addresses (i think) the first 250mb of each card, so if the image takes up too much memory, it bluescreens (only on two out of four monitors which I why I suspect it's a video card and not main memory issue). Just wanted to make a note since it's easier to prepare than be lucky - of course if you're running in text mode you can just run it on your laptop etc. and keep your images as giant as you like!
Title: Re: PictureSnapApp version 1.7.5
Post by: Probeman on November 07, 2018, 12:19:54 PM
It's definitely a Windows Xp issue and not PSnapApp, my two video cards have a gig of memory each but due to XP, it only addresses (i think) the first 250mb of each card, so if the image takes up too much memory, it bluescreens (only on two out of four monitors which I why I suspect it's a video card and not main memory issue). Just wanted to make a note since it's easier to prepare than be lucky - of course if you're running in text mode you can just run it on your laptop etc. and keep your images as giant as you like!

Hi Neko,
The expert we spoke to said some time ago regarding this issue told us that the image size limitation definitely comes from the main computer RAM, not the video memory.  That why I mentioned the memory fragmentation issue.  That's as much as I know about this!
john
Title: Re: PictureSnapApp version 1.7.5
Post by: John Donovan on November 07, 2018, 08:44:39 PM
...Just wanted to make a note since it's easier to prepare than be lucky - of course if you're running in text mode you can just run it on your laptop etc. and keep your images as giant as you like!

Hi Nick,
Absolutely.  In fact one could even go so far as to purchase a PictureSnapApp license for one's personal laptop and then one could go from one instrument to another interfacing to Cameca, FEI and JEOL instruments "on the fly" as they say!    The ultimate "microanalysis road warrior"!
john
Title: Re: PictureSnapApp version 1.7.6
Post by: John Donovan on November 14, 2018, 09:47:53 AM
The latest version of PictureSnapApp now automatically reads the current stage limits on FEI instruments when the application is started.  Here is what an FEI Quanta instrument shows for a 50 mm stage:

(https://probesoftware.com/smf/gallery/1_14_11_18_9_40_01.png)

PictureSnapApp now also checks for "locked" stage axes before attempting to move the stage.  If the locked axis is the Z stage axis and the "Disable Z Stage Control" checkbox is *not* checked, the app will now warn you that the axis is locked.

(https://probesoftware.com/smf/gallery/1_28_02_18_7_06_36.png)

If the locked axis the X and/or Y axes, the app will not allow stage motion until the locked axis is cleared.

Thanks to Gareth Seward for the suggestions!
Title: Re: PictureSnapApp version 1.7.7
Post by: John Donovan on March 18, 2019, 11:16:25 AM
We released a minor update of PictureSnapApp (v. 1.7.7) over the weekend.  No changes to the code, but we did add an appendix to the installation instructions for those interfacing to a JEOL 8230/8530 EPMA when there is no existing "external control" of the instrument. 

Basically one needs to turn on the "external control" in the JEOL PC-EPMA software.

See attached document and thanks to Jeff Chen for pointing this out.
Title: Re: PictureSnapApp version 1.7.9
Post by: John Donovan on August 15, 2020, 08:55:19 AM
In the latest v 1.7.9 of PictureSnapApp we've added a new "Current Stage Position" menu to the "Window" menu as shown here:

(https://probesoftware.com/smf/gallery/1_15_08_20_8_50_13.png)

This new menu works in all instrument modes including text input modes, to allow the user to type in a specific stage position to move to.  In text input mode, it simply moves the displayed current position cursor.
Title: Re: PictureSnapApp version 1.8.0
Post by: John Donovan on September 03, 2020, 01:23:45 PM
OK, so this is related to the above post on the Current Stage Position window in PictureSnapApp.

Basically, this window displays the current stage position when it is first loaded from the Window | Current Stage Position menu. Then one can enter a specific stage position into the text controls and click the Move To button to move the stage to that specific position.

(https://probesoftware.com/smf/gallery/1_03_09_20_12_57_53.png)

The thing is that the "Current Stage Position" only displays the actual current stage position when the window is first loaded from the menu.  So if you move the stage to a new position either using the instrument, or by double-clicking on the calibrated image in PictureSnapApp, the "current stage position" displayed in this window is not automatically updated (unless one closes the window and re-loads it from the Window menu).

So we made a change to PictureSnapApp v. 1.8.0 where the displayed stage position in this window is automatically updated if the instrument stage is moved in any way.

However (and this is where it gets interesting), if you want to enter a different stage position into these text controls in order to use the Move To button, they would immediately be overwritten as the fields are constantly being updated.  So we now detect if you are entering a new stage position in these text controls and do not update the displayed position until you are done entering the new stage position.  Got it?

I think it's pretty cool. So please update to v. 1.8.0 of PictureSnap App from the Help menu, or feel free to download the installer from the web page here and try it out and let us know what you think:

https://probesoftware.com/PictureSnapApp.html
Title: Re: PictureSnapApp version 1.8.1
Post by: John Donovan on March 23, 2021, 01:27:05 PM
Hi John,

Small "wish" for PSA - would it be possible to make the stage motor velocities editable? Our students absolutely adore PSA, but it does drive the stage at maximum speed, which is a bit rough on the motors. In PFE we can change the stage motor velocities in the motors.dat file, would it be possible to add something similar for PSA, either its own motors.dat file or something in picturesnapapp.ini?

Thanks!
Owen

Hi Owen,
Yes, this would be possible to do.  Give me a little time.
john
Title: Re: PictureSnapApp version 1.8.2
Post by: John Donovan on March 24, 2021, 01:59:24 PM
Hi John,

Small "wish" for PSA - would it be possible to make the stage motor velocities editable? Our students absolutely adore PSA, but it does drive the stage at maximum speed, which is a bit rough on the motors. In PFE we can change the stage motor velocities in the motors.dat file, would it be possible to add something similar for PSA, either its own motors.dat file or something in picturesnapapp.ini?

Thanks!
Owen

Hi Owen,
OK I implemented these new keywords for the Cameca (SX100/SXFive) here showing the defaults:

                      XMotorSpeedCameca=10000
                      YMotorSpeedCameca=10000
                      ZMotorSpeedCameca=10     

Note that the valid values for X and Y are 500 to 15000. For the Z stage axis it's between 10 and 200 for the SX100 and between 1 and 10 for the SXFive.
Title: Re: PictureSnapApp version 1.8.2
Post by: neko on April 14, 2021, 01:19:54 PM
PictureSnapApp Version Changes:

03/24/2021    Add INI keywords for modifying Cameca (SX100 and SXFive) stage motor speeds (Neill).  See new entries for:
v. 1.8.2          XMotorSpeedCameca=10000
                      YMotorSpeedCameca=10000
                      ZMotorSpeedCameca=10                       

Thanks for reading my mind and serving me the solution I was coming here to ask for. My stage has started having trouble with high speed operations and this is exactly what I needed.

Thank you, thank you, thank you. This remains one of the best pieces of software our lab has!

cheers,
Nick
Title: Re: PictureSnapApp version 1.8.3
Post by: John Donovan on June 12, 2022, 12:20:53 PM
Small tweak in the stage config dialog to display "typical" horizontal FOVs for FEI, JEOL and Cameca instruments:

(https://probesoftware.com/smf/gallery/1_12_06_22_12_17_49.png)

Update using the Help | Update PictureSnapApp menu to get the latest version.
Title: Re: PictureSnapApp version 1.8.4
Post by: John Donovan on June 16, 2022, 12:52:42 PM
We made a number of small changes to PictureSnapApp after the MAS free microanalysis software tutorial earlier this week. See the first post in this topic for compete details.

The main change is that we now display the current magnification of the instrument in the upper left corner of the main display window as seen here:

(https://probesoftware.com/smf/gallery/1_16_06_22_12_42_00.png)

This really only is useful for demo and text input modes since when connected to an instrument one can always see the instrument mag in the OEM application.  But maybe it will be useful anyway.

The other change is to allow the user to specify a starting or initial magnification in the PictureSnapApp.ini file. This is really only useful for instruments that have a fixed magnification.

Also, we added support for the right and left cursor keys to increment or decrement the mag by 2% as a extra fine adjustment.  And the cursor keys now work in both the main image window and the full size image window.

Update using the Help menu as usual.
Title: Re: PictureSnapApp version 1.8.2
Post by: John Donovan on August 09, 2022, 05:47:22 PM
Hi John,

Small "wish" for PSA - would it be possible to make the stage motor velocities editable? Our students absolutely adore PSA, but it does drive the stage at maximum speed, which is a bit rough on the motors. In PFE we can change the stage motor velocities in the motors.dat file, would it be possible to add something similar for PSA, either its own motors.dat file or something in picturesnapapp.ini?

Thanks!
Owen

Hi Owen,
OK I implemented these new keywords for the Cameca (SX100/SXFive) here showing the defaults:

                      XMotorSpeedCameca=10000
                      YMotorSpeedCameca=10000
                      ZMotorSpeedCameca=10     

Note that the valid values for X and Y are 500 to 15000. For the Z stage axis it's between 10 and 200 for the SX100 and between 1 and 10 for the SXFive.

I just wanted to make a quick note here on these Cameca stage speed parameters.

The valid ranges I had noted many years ago for the Cameca stage for the X and Y axes are from 500 to 15000, and as seen above we decided to set the default speed to 10000 because most people want to *slow down* their Cameca stages.

However, when I finally got around to updating the PictureSnapApp on our Sx100 instrument last weekend I was surprised to see PictureSnapApp complaining about the stage speed being out of range on start up (PictureSnapApp forces an initial stage move to the current position on startup, in order to force the displayed image to be centered on the current stage position).  This is in spite of the fact that several firmware updates ago, these ranges were perfectly valid.

So I tested the various Cameca stage speeds and found that our stage is now limited to stage speeds of 7000, that is X/Y stage speeds of 8000 or above will throw this stage speed out of range error on start up.

If you haven't have your Cameca firmware updated, these higher stage speeds may work just fine, but just FYI we've had our SX100 X/Y stage speeds set to 5000 for many years so we had not noticed this change in the maximum allowed stage speeds, which we can only assume Cameca may have introduced in a firmware update at some point.
Title: Re: PictureSnapApp version 1.8.4
Post by: John Donovan on July 21, 2023, 07:25:45 PM
Here's a poster we did for PictureSnapApp a few years ago that is worth taking a look at if you are interested in fast and easy sample navigation on an EPMA or SEM instrument and/or from one instrument stage to another (e.g., from optical to SIMS to SEM, etc.).

See attached (remember to login to see attachments).
Title: Re: PictureSnapApp version 1.8.6
Post by: John Donovan on August 04, 2023, 09:53:01 AM
We haven't been posting about recent improvements to PictureSnapApp (my fault), but v. 1.8.5 added the ability to enter a specific stage coordinate to "drive to".

More recently we just released v. 1.8.6 which adds two options in the Image Locator window. Previously the display of an embedded image looked like this:

(https://probesoftware.com/smf/gallery/1_04_08_23_9_45_31.png)

With v. 1.8.6 the user can now unselect display of the embedded image border and file name like this and show only the embedded image itself:

(https://probesoftware.com/smf/gallery/1_04_08_23_9_45_49.png)

Or one can unselect one or the other like this even when displaying all the embedded images:

(https://probesoftware.com/smf/gallery/1_04_08_23_9_46_07.png)

Or like this with the all the embedded images displayed without file names:

(https://probesoftware.com/smf/gallery/1_04_08_23_10_19_57.png)

Lots of combinations...
Title: Re: PictureSnapApp version 1.8.8
Post by: John Donovan on January 09, 2024, 09:11:53 AM
Owen Neill suggested a new feature that we have now implemented in v. 1.8.8 of PictureSnapApp to allow the user to import point annotations from another source:

(https://probesoftware.com/smf/gallery/1_09_01_24_9_01_02.png)

Previously you could only export point annotations in stage coordinates to a tab delimited text file, but now you can also import point annotations (in stage coordinates) from a tab delimited text file (using the same format). 

The file format can be seen by exporting some point annotations to a text file (<filename>.DAT). For example:

1   "test 1"    1.04269    -29.693    .000000
2   "test 2"    .686597    -28.230    .000000

Then opening the exported data file in any text editor such as NotePad. 

The format is very simple: the first column is the index of the point annotation (it is ignored when importing), the second column is the text annotation in double quotes, the next three columns are the X, Y and Z stage coordinates.  The columns must be tab separated (delimited).

If the image is calibrated only using two fiducial points, the Z stage coordinate will be the default Z stage position.  If the image is calibrated to three fiducial points, the z stage position will be interpolated based on the sample tilt.

Note that all annotations are stored in the .ACQ file in image coordinates (twips), but the stage coordinates will be updated if the image calibration is modified.

As usual you can update to v. 1.8.8 PictureSnapApp from the Help menu for free.
Title: Re: PictureSnapApp version 1.8.8
Post by: John Donovan on May 02, 2024, 10:01:37 AM
It is my impression that people who use PictureSnapApp absolutely love it and use it all the time for sample navigation, image annotation of points and fields of view (FOV), and also calibrated image embedding in images. But wait, there's more!    :D

In PictureSnapApp all images and annotations are calibrated to your stage coordinates and using three calibration points, can automatically handle sample rotations and also allow one to transfer their image sets to another instrument and easily and automatically convert all existing image and annotation coordinates to the stage coordinates of the new instrument so the previous annotations can be quickly re-located.

https://probesoftware.com/smf/index.php?topic=1088.0

Easily, with a few mouse clicks.

In about two weeks we are giving a webinar demonstrating PictureSnapApp (and the PictureSnap feature in Probe for EPMA):

https://probesoftware.com/smf/index.php?topic=99.msg12590#msg12590

And so I wanted to let everyone know that if they are interested in following along with Anette von der Handt in her PictureSnapApp presentation, you can download PictureSnapApp here:

https://probesoftware.com/PictureSnapApp.html

It's free to download and use in simulation (will emulate any instrument stage) or text input (for actual use on instruments interfaces we do not directly support) modes.  It can also be directly interfaced to JEOL EPMA and 7000 series SEM instruments and Cameca and FEI instruments for stage control and reading your current FOV for $499.  Such a deal... 

https://probesoftware.com/PictureSnapApp.html

It's really a cool little application and I think everyone should just play with it a bit.   When you download it, it's in Cartesian millimeter simulation mode by default, but you can configure it to any stage configuration you want.  See here for additional explanation and examples:

https://probesoftware.com/smf/index.php?board=34.0