I would like to document the use of DigicamControl as bridge for a simple frame-by-frame capture workflow. This implementation also uses a NEMA17 stepper to advance the film.
The combination of Arduino/DigicamControl greatly simplify the camera control. Another advantage is opening up the range of cameras that can be easily control with Arduino, and using the computer storage for large-size captures, including raw.
My setup is a bit more complicated that the above, but while I get to the point that I document the scanner details thought that sharing the arduino code, wiring to the stepper, and implementation with DigicamControl would help greatly those who are Frankenstein-ing a projector or are in need to work with a stepper to move film.
I will keep the files in the framebyframe github and improve/update/add as needed. A pdf with additional information on the setup is part of the repository.
The Stepper is controlled with the TMC2208, which provides 1600 steps by turn capability. It makes the motor run very quietly. The wiring is quite simple. There are also Arduino shields for 3D printing that already have the socket for these controllers. For these motors to run well, having abundant power is the key. I am using a recycled ATX power supply 12V to power the driver/motor.
Stepper linear speed
Additionally, I implemented linear speed control (asceleration/descelaration) with reference on the paper by Atmel on the subject. The advantage is to be able to have faster turns, and keep the stepper extremely quiet.
This implementation does not use interrupts, which makes it a bit easier for those starting with Arduino.
DigicamControl + Arduino
DigicamControl (DCC) has an Arduino plugin. This software implements a sequence whereby the Arduino triggers a capture, and the store of the file triggers the Arduino to advance the film/turn the stepper. Additionally it implement other commands (Forward/Backward/LED On/LED Off). There are useful to test the mechanics and examples of implementation of additional commands that may be required by your built.
In summary, if you have a project where you need to control the transport with the stepper, take a picture with a DSLR or other camera that can be connected via USB to DigicamControl, this will greatly help you get going. In this case one turn = one frame, feel free to adjust the Arduino to fit your needs.
Hope this is helpful to all.