[sane-devel] Controlling scanner imaging head movement manually as mount for camera-based focus stacking?

Joel Penner joelcpenner at gmail.com
Sat Jan 29 20:21:35 GMT 2022

Thanks a lot for looking into this, it'll be helpful as I build more focus
stacking set-ups! :)

- Joel

On Tue, Jan 18, 2022 at 5:29 PM HuBandiT at gmail.com <hubandit at gmail.com>

> 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 <skelband at gmail.com> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/sane-devel/attachments/20220129/ca7250d0/attachment.htm>

More information about the sane-devel mailing list