Digital Telecine

The art challenges the technology, and the technology inspires the art.  — John Lasseter.

The Digital Telecine was a mechatronics project between me and my university colleague Andrew Bornstein. This project was requisitioned by our client Arthur Makosinski who obtained a stack of old 28mm films from an auction but has no means of displaying them because the projectors for these films were discontinued since the 1930’s. These films are valuable treasures that were printed as a form of education for the students; but over time they are now starting to decay. The goal for this project is to transport the film onto a digital form of media so the content can be saved for future generations to watch.

Learning How Telecine Machines Work

Telecine machines are basically projectors that are modified to capture images using a camera rather than displaying them on a live movie screen. One simple approach is to attach a camera in front of a projector and record the movie as it is playing. However, this causes some big issues with older films. Since the frame rate of older movie cameras is smaller, it makes it difficult for the two devices to sync properly. Another issue is that the projectors for these 28 mm films are no longer in production, therefore the device will have to be built completely from scratch. Mechanically syncing the frame rates of the devices will increase the overall complexity and cost.  After much consideration, we decided to capture the film frame by frame using a high definition camera and reassemble all the pictures into a movie with software. This will guarantee us the best picture result with the downside of taking a longer time to process. The challenge its to make this process as automated as possible so that a film can be transported overnight without any human supervision. 

Design Synopsis

Keeping a minimal design for simplicity is a great way to save on assembly time and costs. We wanted the bare minimum components required for this project such so we conducted some research on the matter. We ended up compiling a list of 6 essential components:

  • Film Gate – This device holds the film in place while the film image is being captured on camera
  • Stepper Motor Drive – High precision stepper motor attached to a sprocket that advances the film exactly one frame at a time.
  • Reel Up-Take and Out-Take – This is drive system unrolls the film on one reel and catches the film on the film on the other.
  • Film Tensioner – Custom device that applies an adequate amount of tension on the film. This is necessary for keeping the film from catching onto other moving components.
  • Light Source & Camera – LED light source with a soft filter to illuminate the film and a high definition camera to capture all the images.
  • Microcontroller – We used the Arduino microcontroller to monitor the device so that it can be run autonomously and safely throughout the night.

Film Gate

The function of the film gate is to align and straighten the film for camera capture. This device was mainly constructed out of aluminum. To prevent wear on the film, the parts were anodized after machining. Aluminum was chosen as per the client’s request as it is more durable than plastic. The springs used in this assembly are commercially available for purchase through Capital Iron™. In the entire assembly only two types of screws were used; both of them are standard ANSI Inch sized which makes it easier for the machine shop to make threading and holes. The mounting frame for the pressure plate is made out of transparent plexi-glass to expose the inner components. This makes it easier to assemble the film gate and it acts as a visual verification of how well the film is passing through the device

Stepper Motor Drive

The film transport mechanism is a sprocket coupled to a 5-phase stepper motor. The arc lengths between the teeth on these sprockets correspond to the lengths between sprocket holes in the 28 mm film. Accuracy in frame-to-frame movements is achieved by actuating the stepper motor through a number of steps that will progress the film on the surface of the sprocket by an arc length equal to a single frame (15 mm). The radius of the film sprocket is 23.87 mm (this is the radius at which the film rests). Advancing 36 degrees corresponds to the advancement of one frame on the film. Each step of the stepper motor is 0.09 degrees; therefore, advancing by 400 steps will progress one frame. The sprocket is composed of a series of independently machined layers. The layers are held together by two 1/8” steel pins, which are press fit into holes perpendicular to the layers of the sprocket.
Sprocket assembly

Reel Up-Take & Out-Take

reelsThe film reel drive system has two, keyed, stainless steel shafts that are driven through a set of aluminum pulleys by two DC motors. The shafts rotate inside brass bushings. Pulleys are used to drive the reels, as opposed to directly driving the shafts, to allow the film reels to slip if the film is put in excessive tension. The DC motors are supported by motor mounts made from 1/8” aluminium angle.

Film Tensioner

The film tension monitoring device for the system translates a rotational deflection of a spring-loaded potentiometer into a digital value for the control system. As the tension changes in the film and the bar rotates, the value of the potentiometer changes and can be translated to a relative tension value. The construction of a tension arm consists of a free spinning roller, and an aluminium arm that is attached to a potentiometer and a spring. The arm is fixed to the potentiometer using a set screw and the rollers are spaced correctly using three #10-32 washers.

Light Source & Camera

The LED light source is mounted on a block of aluminum with machined holes to hold it in place. The two #10-32 tapped holes on the bottom of the mount is used for securing the part on to the frame and the smaller #6-32 tapped hole on top is used for securing the circular LED array from a modified battery flashlight. The LED mount is assembled below the film gate to illuminate the film as it passes through the gate. The distance between the light source from the LED array and the white diffusion paper (attached to the bottom of the film gate), is exactly 3.5 inches away. This distance is necessary for the diffusion paper to completely diffuse the light source. During testing with the diffusion paper, it was found that the minimum distance required for complete diffusion to occur was 3.0 inches. Otherwise, outlines of the LED bulbs will be visible.

LED Light Mounting

The camera mount for this device was made for the Nikon J1 camera. It is adjustable in XYZ position to accommodate different camera and lens sizes. The mount consists of two metal plates machined out of aluminum and attached to the frame using #10-32 screws. The slotted holes allow the camera position to be adjusted for any camera lens height and size.

Camera Mount

Control System

The purpose of having a control system for the tension of the film is to maintain good film integrity as it gets transferred from one wheel to another. In older projectors that have this kind of system would be controlled and timed by mechanical parts. For this project however, we decided to setup a control system using motors and micro-controller logic. It turned out to be a very inexpensive option because machining mechanical parts are becoming more and more expensive. In order to maintain the perfect amount of tension on the film, the motors must react in different ways corresponding to different state scenarios. The three tension control states are neutral, too tight, and too loose.

  • Neutral – In this state the tension reading from the arm is at the desired set-point amount, therefore the motors should stay at rest.
  • Too tight – As the film is advanced, tension starts building up and pulls the tension arm towards the frame. The arm is attached to an extension spring, so the closer it gets to the frame, the more tension is applied to the film. In this state, the dc motor must unwind the film wheel counter-clockwise to release the tension on the film.
  • Too loose – When the film has been unwound too much the spring actuated tension arm will be pulled away from the frame. In this state the dc motor must rotate the film wheel clockwise to wind up and add the tension back onto the film.

Control System Logic


PID Controller SchematicThis tension control system is best implemented using a PD controller because there is enough feedback from the potentiometers to allow the motors to constantly correct the system and maintain a desired neutral state. The PD controller that was developed for this project actually started out as a PID controller but the integral term was later removed to simplify the controller and make it easier to tune and refine. The PD controller works by using an input signal from the potentiometer and determines the output PWM speed signal of the dc motors based on the set-point (desired input value), the proportional term kp , and the derivative term kd . Tuning the kp and kd values of a PD controller is a bit of a trial and error process. The way a PD control determines the output value is by using the error term (the difference between the setpoint and input) and the change from the previous error term (the derivative of the error). The proportional term in the formula is multiplied directly with the error term so it contributes to the largest correction of error. This generally makes the kp value the larger value in a PD controller. The kd term on the other-hand is multiplied by the derivative of the error. This allows the kd term to contribute to how fast the system will reach the set-point with the trade-off of overshooting the set-point and producing oscillating effects. The complete source code for this project can be found here.

#include "PDController.h"

PDController::PDController(double sampleTime)
   this->sampleTime = sampleTime;

void PDController::compute()

   /*Compute all the working error variables*/
   double error = Setpoint - Input;
   double dInput = (Input - lastInput);

   /*Compute PID Output*/
   Output = kp * error + kd * dInput;

   if(Output > outMax) Output = outMax;
   else if(Output < outMin) Output = outMin;

   /*Remember the input for next time*/
   lastInput = Input;

void PDController::setTunings(double Kp, double Kd)
        double sampleTimeInSec = ((double)sampleTime)/1000;
        kp = Kp;
        kd = Kd/ sampleTimeInSec;

void PDController::setSampleTime(int newSampleTime)
   /*set new sample time during operation*/
   if (newSampleTime > 0)
          double ratio  = (double)newSampleTime
                                          / (double)sampleTime;
          kd /= ratio;
          sampleTime = (unsigned long)newSampleTime;

void PDController::setOutputLimits(double Min, double Max)
   if(Min > Max) return;
   outMin = Min;
   outMax = Max;

   if(Output > outMax) Output = outMax;
   else if(Output < outMin) Output = outMin;



It has been suggested that use of this device be offered to the Canadian film archives. No device of this kind is known to exist in Canada. If other 28 mm films can be digitized, they can be enjoyed by everyone (not just those visiting or working in the archives, with access to extremely rare and specialized equipment). It is likely that the films stored in the archives are in no better shape than the ones held by our client Arthur Makosinski. We would be extremely proud, if this telecine device could play a part in preserving these films indefinitely in digital form.

One thought on “Digital Telecine

  1. Nice film transport mechanism.. I am trying to make a similar project. I will however, be scanning my film frame by frame using a negative scaner at very high resolution. I will store the high resolution stills for future use in display definition advancement, and make a high definition movie from the scanned images for current day high definition playback. I noticed the frame stability was not too good. I expect my method to eliminate this problem. I have seen another telecine effort using a digital camera with excellent frame by frame stability, (Movement almost zero).

    Thanks for some inspiration.


Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s