Super-8 Filmscanner
About the Project
How it Works
The machine is set up in a similar manner to how old magnetophones handle their tapes. The film is fed through a film gate where a light illuminates the picture from behind. A camera with a macro lens (not shown) captures a high-resolution and high-bitrate photo of each frame. The film is held by two spools with teeth that perfectly grip the sprocket holes of the film. A stepper motor is used to make precise movements, positioning each frame in front of the camera. All movements of the machine are controlled by an Arduino microcontroller.
For each film frame, the stepper motor rotates 10°, aligning the current frame with an illuminated backdrop. Then, an electrical signal triggers the camera through its remote control port. Two DC motors assist in winding up the film and maintaining tension, resulting in neatly wound film on another spool.
To provide user control, a small controller box with 9 push buttons is connected to the machine via a cable. This allows the user to pause the process, rewind, fast forward and adjust the film frame if necessary. The entire setup is housed in a tool case for easy transportation, storage and a more aesthetic appearance. It features a USB-B port for convenient software updates, a 2.5mm jack to connect the camera, and a 2×16 LCD screen on the front for user information and software debugging purposes.
The output is an SD card containing digital copies of each film frame. These raw files can be further processed on a computer to create a video file, offering complete control over color and brightness adjustments.
Current Flaws
Currently, the setup is in the prototype stage.
As of now, the software is functional, but it still has a few bugs that need to be fixed to enhance user experience. One major issue is that the buttons on the controller box only work when the motors are spinning. This limitation arises from my use of the delay() function in the Arduino software. Instead, I should have utilized the millis() function, which allows the running of simultaneous processes. However, I am finding it challenging to grasp the concept and implementation of this function. Therefore, using the delay() function was a temporary solution to achieve the desired outcome.
Additionally, I plan to revisit the film gate as there is a minor problem with maintaining precise focus on the film. Some frames appear slightly blurry compared to others. To address this, I intend to incorporate four more rolls into the film gate to increase tension and hopefully eliminate any misalignment issues.
Another major flaw with the current setup is that everything is mounted on a sheet of Plexiglass. This is not ideal for the stepper motor as it tends to heat up a lot. I have actually destroyed a stepper motor in the past due to prolonged use on this setup. A metal plate would be a better choice as it would effectively distribute the heat over a larger area working as a heat sink.