Literature on the Stackshot (
https://cognisys-inc.com/stackshot-macro-rail-package.html ) says its
smallest step size is 2 micrometers.
The smallest step a 9600 DPI scanner (Canon 9000F) needs to do is 2.64
micrometers.
The smallest step a 4800 DPI scanner (Canon 8800F) needs to do is 5.29
micrometers.
Of the three, the Stackshot has the smallest steps, at least on paper.
Plus the Stackshot has a sturdy rail and mounting system that is sized
to take the weight of a mirrorless camera + lens. In comparison a
scanners rail system is weaker, plus it is not sized to support the
extra weight of a camera and lens, plus mounting is more problematic.
Therefore, on paper, your arrangement of using these scanners to move
your camera does not offer benefits compared to the Stackshot.
What I would recommend you instead is to find an USB-attached stepper
motor controller that you can easily direct with text commands from
Linux. That you can then trivially make it do steps from a command line.
Trinamic is a german company who does very nice work on providing very
smooth movement control for stepper motors (and also BLDC motors). They
- or someone using their parts - might have something that allows you to
control it from a serial port that you can then attach to Linux (I am
assuming Linux is a requirement for you?).
As for mechanism, you might find someone has made a mechanism for this
exact purpose (focus stacking is an easy-to-implement but high-value
niche hobby or research project). Or if you don't, then it is not
terribly difficult to find mechanical parts normally used by hobbyists
for building home CNC machines, and whip up a linear actuator mechanism
(rail + carriage, pushed by a threaded rod turned by a stepper motor).
With a little engineering work, using precision parts and fine
microstepping enabled by Trinamic drivers and stepper motors, you might
perhaps be able to achieve even smaller step sizes than your
factory-made Stackshot.
2022.01.14. 17:35 keltezéssel, Joel Penner írta:
Hi everyone,
Thanks for the feedback everyone! Thanks for the info Povilas about
the genesys backend. I do have some scanners that use it. Would you
have some pointers for how to issue those commands to a scanner via
the backend?
You're right Ralph, it might be easier to control them directly. I had
thought of the buffer approach as well, maybe I'll experiment with that.
Thanks,
Joel
On Tue, Jan 4, 2022 at 12:47 PM Ralph Little <[email protected]> wrote:
Hi,
On 2022-01-04 9:05 a.m., Joel Penner wrote:
> Hello,
>
> I am doing microscopic focus stacking with mirrorless cameras. I
have
> a Cognisys Stackshot rail that I am doing this with, but I also
have a
> bunch of Canon 9000F & 8800F scanners, so I am wondering whether I
> could use the precision these devices have to move a camera
forward by
> small increments.
>
> I have already been experimenting with attaching a stepper motor
to a
> microscope, controlled by a Big Easy Driver and a Raspberry Pi.
This
> person used a scanner for focus stacking by connecting a scanner
motor
> to an external driver:
>
>
https://petapixel.com/2013/01/24/focus-stacking-macro-photographs-with-a-hacked-flatbed-scanner/
>
<https://petapixel.com/2013/01/24/focus-stacking-macro-photographs-with-a-hacked-flatbed-scanner/>
>
> This would work for me, but would it be possible to manually
move the
> scanner imaging head with SANE and the scanner's firmware and
> circuitry? Basically, I would need SANE to move the scanner imaging
> head forward by a tiny increment, pause for a few seconds for the
> camera to take a photo, move forward again and so on. I just need
> total control of where the scanner imaging head is moved to and how
> small the increments are. My goal is to use this rig to do
timelapse
> microscopic focus stacked images of plant growth.
>
> Ideally, the scanner imaging head light would be turned off too
but I
> could also use tape or disconnect the LED array. I have other
scanner
> models as well if the firmware or drivers of these Canon scanners
> isn't suitable.
>
> Any ideas would be appreciated, thanks!
>
> Joel
This *might* be possible if the usual movements that the scan head
would
make are sufficient for your need.
What you can definitely do is to arrange for the scan head to move
from
home quickly to a start position and have the head move more
slowly to
an end position (speed depending on the requested resolution) after
which the head would usually return to the home position. By
controlling
the rate at which the scan data is received from the machine, you
might
also be able to get the scan head to pause when the scan data
buffer is
full. Within the SANE API, those are really your options.
Some scanners have a more high-level control, such is the case
with the
protocols that are handled by the pixma backend. I see that
Povilas has
answered regarding the genesys backend and the scanners that are
supported there. The genesys controllers provide much more control
over
the hardware. Even then, using the SANE API is going to be quite
limiting, but you could use the genesys code to directly control a
genesys scanner.
Honestly, you might be better off harvesting the components from the
scanner and using an arduino or something. ;D
Cheers,
Ralph