SnailScanToo or 2

Interesting approach! My own implementation is using self-made tension sensors (basically a movable arm connected to a standard potentiometer, here are some old images of this construction) on the pickup and supply tables + a movement stepper driving a sprocket gear stolen from an old S-8 projector.

Film advance is triggered by a serial movement command specifying the amount of movement needed to advance to the next frame. This comes from the RP4 which has detected the sprocket hole position in the current frame.

Once that movement is triggered, the Arduino starts accelerating the movement stepper in order to advance the frame (TIMER1 interrupt driven). Due to this movement, the tension on pickup-spool is reduced and correspondingly, the tension on the supply spool is increased. This is of course noticed by the tension sensors - their reading is input into two PID controllers which drive the steppers for the pickup and supply plates. The two PIDs run in an interrupt loop of TIMER2 which drive the pickup and supply steppers as well.

In my setup, it is rather easy to change (independently) the tensions on the pickup and supply side - the RP4 can command a different zero position of the tension sensors. In fact, the supply plate works with less tension than the pickup plate. This is needed because the sprocket gear’s pins are smaller than the sprocket hole of the film. So I need to make sure that the sprocket pins always align on the correct side of the sprocket

While there is no need to monitor the spool ratio in my approach, the tension steppers only react to the movement of the film stepper. So you always introduce a little delay/jitter in the actual tension. Your idea of interlacing can in principle deliver a much smoother ride in term of tension variation - which might be important in order to minimize the risk of slipping on the capstan.

Thanks for sharing the insights into your Pico-programming. I was actually hoping to avoid C/C++ programming when using the Pico ( :innocent:), but it seems not to be possible when tight timing is required. I think I stick for the time being with my Arduino - it works ok with the small standard spools of 15m film length (3 min/3") up to 240 m length (40 min/10") ones. But the tuning of the PID parameters of the controllers was quite a challenge…

1 Like