8mm film scanner Kotokino Mark IV

Okay. I sort of promised some time back that I won’t be publishing a new version of the 8mm scanner, after I had converted it to use a single lens reflex (SLR) camera instead of a digital pocket camera. But then I decided to do just one more modification, because keeping the camera stable wasn’t easy when it was resting on a horizontal bed.  But here it is!

I decided to rotate the system so that the film runs horizontal and the camera is perched above it on a 3D printed  stand. This way the camera’s weight is keeping it stable. It meant a redesign of almost all of the 3D printed parts, so this time I made the set complete and uploaded it to Thingiverse, should anyone want to grab the parts and start experimenting. I’ll also give the schematics and Arduino code for that purpose.

The Box

The box is made of floor laminate. It’s easy to get and cheap, yet durable. I designed the corners so that the corner dimensions are independent of the box size. My box is 30 * 40 * 20 cm and it works nice. You need some height to it, because the lamp arrangement needs at leat 12 cm of height – you have to put the lamp away from the film so as not to bring out film grain. 

The Kotokino Mark IV

The black tape is eye candy – not having a laminate cutter or a bandsaw I got the edged sawed off almost neatly. But with the corners, it’s really sturdy and works perfect for the needs.

The Camera

My sons sold me a hand-me-down Canon 1000D, an entry-level camera. I then went online and got a macro reverser ring. With that installed, you can just screw it in the filter thread and attach its bayonet to the camera frame. Before doing that, it’s a good idea to set the aperture to f/8 by first setting it in the camera, then pressing the test button, and with the button pressed, removing the lens. This helps you get better depth of field.

My lens is a standard 18-55 mm focal length zoom. I set it at 24mm, because going all the way to 18 mm makes the image I grab from the film frame fill the entire frame in the SLR. That makes it hard to adjust the location of the film frame, and even with the zoom at 24mm, I get a nice 3000 pixel wide and 2100 pixel high image. That is then scaled down in final editing, because I am not aiming at HD video.

The good thing about SLRs is that they all have a remote shutter jack. This makes it very easy to create a system that grabs a picture when the frame is in place.

The switch is in the open position here – the white bar moves with the film gate

The switch wires lead to a 2.5mm mono jack, and even the polarity doesn’t matter – when the switch closes, the camera takes a picture. To minimize jitter of the system, and to enable 22 shots per minute, the mirror must be moved into the permanent up position. In the Canon that happens when you press the SET button.

In this picture you can also see the white bar that is attached to the hook of the film gate. The frame size is 4.3mm x 3.5mm, hence movement is delicate. I couldn’t recreate that accuracy except by buying a broken Bolex camera, disassembling it, and attaching a servo to the film gate to replace the clockwork of the camera.The rotation is smooth, but there is a small cam that makes the white part move up and down. When up, it takes the picture, and film is moved when the part is down.

The camera battery has to be replaced by a system that powers it directly and not via battery, because at best the camera can get 700 images per charge, and there are 4,000 in one film. This time I didn’t print a whole camera battery replica, but just two bars of 5 cm length, the ends of which I wrapped in wire and led the wires out from the battery compartment.

The Arduino and the Power

The Arduino code was very much simplified from the previous one, because I no longer needed to govern the camera via a hacked USB port. Therefore I only have this in the code now:

// Include servo library 
#include "Servo.h"

//set servo names
Servo myGateServo;
Servo myTransportServo;

//set variables as needed
int filmTransportPin = 6;
int filmTransportButtonDown = false;
int frameCounter = 0;
int servoPotPin = 3;
int sensorValue = 0;
float servoSpeed;

void setup() {

//enable serial monitor
Serial.begin(9600);
// define A0 as the potentiometer pin
pinMode(A0, INPUT);
// Attach gate servo signal to pin10
myGateServo.attach(9);
// Attach transport servo signal to pin8
myTransportServo.attach(8);
pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
// This sets the film gate servo speed 1585 = 23 frames/min
myGateServo.writeMicroseconds(1580);
// just wait for 10 milliseconds
delay(10);
// read the input on analog pin 0:
sensorValue = analogRead(A1);
// Convert the analog reading
//(which goes from 20 - 1023) to a servoSpeed (500 - 2000):
servoSpeed = map(sensorValue, 20, 1023, 500, 2000);
// print out the value you read:
Serial.println(servoSpeed);
//define a minimum value for the servo speed
if (sensorValue < 200) {
servoSpeed = 1200;
}
//rotate the servo at the set speed
myTransportServo.writeMicroseconds(servoSpeed); //1505
delay(20);
}

The potentiometer is merely used to govern the speed of the film takeup spool servo. It is set low when scanning and must be adjusted even lower during the run, when film accumulating on the takeup spool increases the diameter of the spool, hence it has to slow down as the scan goes on. It can also rotate full speed counterclockwise for easy film rewind.

This is the wiring:

You need to click on it to see it all.

Power is delivered via a 12V/2A supply. It is then split four ways using buck down regulators to arrive at 5V for the Arduino, 6V for the servos, 8.3 V for the camera and 12V for the lamp. I led the lamp via the same system even if it doesn’t need toning down, because all four elements have a separate switch. This enables me to pause by turning off the servos, or reboot the Arduino or camera if need be.

The Lamp and the Film Aperture

The lamp is now a 12V halogen with a 3400 K color temperature. This matches one of the white balance profiles on the camera, which removes the need to adjust images in Blender when I assemble the 4,000 separate images into a video file.

The light is rigged under the top of the box. There is a piece of 80 gram copy paper to act as a light disperser. I have tried different paper weights, but that regular copy paper seems to do well. There is a 10mm hole on top of which I have printed a film trough:

The first, short version of the film trough

The film trough is now a little longer, because I had to make it wider due to the splicing of the film at the middle. There is always a splice, because 8mm film is 16 mm film shot once, rotated, shot on the other side, then split along the middle and spliced to have 8mm film of twice the original length. The new, wider but longer trough keeps it aligned better.

The lengthwise alignment is now managed through moving the film gate assembly along the film. This way I can start the film run, wait until the first frames appear, and move the entire film gate and servo assembly lenghtwise. After this it is easy to focus the camera, and then just run the system. Grabbing 4 minutes of film, theoretically some 4,200 frames, takes about 2½ hours.

In Conclusion

This project has been a really interesting one. You need to remember I had not seen a live Arduino when I started this work, so I was teaching myself as I went. Getting a servo to turn, a switch to be read, getting it all synchronized has been most educating, and has had direct consequences on my teaching.

There is now a course called Innovation and Project Work (10 ECTS points, so rather large), in which students are encouraged to take on a real life problem of their own and design a solution to it. Quite a few teams have used Arduino, or lately, ESP32, to produce a real life manifestation of their idea. I call this IBL, Innovation based learning, as a step further from PBL, Problem based learning. I have seen a marked increase in student motivation when the issue to solve doesn’t come from the teacher, but from the students’ own innovation and idea harvesting processes. The motivation that some teams have exhibited on this course far exceeds any other course I have presented in nearly 20 years of teaching at Haaga-Helia University of Applied Sciences.

This was manifested in my mistake on one course implementation, where the students needed a microchip that could take in eight bits from eight sensors, then turn that into one byte to send to Arduino, and I gave them a chip that worked the exact opposite. For two weeks, they tried to get the chip to work, so when I realized my own mistake with the chip and confessed to it, I fully expected them to lynch me for two weeks of wasted time. Instead, they said, no problem, give us the other chip. It worked (of course) and the team just went on as if nothing had happened. This is their final product, a true work of art:

The best practices from the Innovation course were taken a step further when we fielded a new course, called IoT Experimental Project Course (5 ECTS), where the students take what they learned before and apply the processes and tools to an Internet of Things project. Some of the ideas there are really creative, and the will of the students to see their IoT device work has been great to see.

Epilogue: the Name of the Scanner

My father started documenting life in May 1956. He first rented a camera, which was common in those times. He bought his own camera, a Bolex D8LA, in 1962 and used it to shoot almost 7 hours of film between 1962 and 1975. When he passed away in 2008, I acquired the camera and all the related things, because I was the only one who had used it in the 1970s besides my father. My brother and I had the entire set of films scanned professionally, and got more than 130 gigabytes of video files. I have shot film since 2011, usually one roll per summer.

The original films we then donated to the Helsinki City Museum, along with the scans, because most of the material depicts the life of a family of a civil servant in Helsinki. They were overjoyed to get such a load of high grade films, as they called the lot. We have been working with them since that time, reviewing the films and providing background information, location data, and person identification, which will all bring even more value to the films.

I still use the camera. I had it serviced because one of the lenses was stuck due to lack of use – it’s the tele lens, rarely used because it is really a tele. All other features worked, incredibly even the exposure meter. You can still get film these days. There was a cache of Agfa stock around, which was then relabeled and sold by a few vendors, but that stock ran out a year or so ago. So, at the moment, you can get film from this site. Black and white is cheap easy to get from Fomapan, at around 15 euros per roll and 25 euros for development, but color is expensive at 75 euros per 4 minutes including development.

Using the camera is important to me, because it was such a important part of my father’s interests. The video below shows how my mother was employed by my father to do opening titles – I can recognise her handwriting, and it is her hand that appears. Kotokino Mäyränkivi means the Mäyränkivi Home Movies Company, Mäyränkivi being the name of the building we lived in in the 1950 and 1960s in Helsinki.

Hence, the scanner is called Kotokino Mark IV.

Kotokino Mäyränkivi

0 thoughts on “8mm film scanner Kotokino Mark IV”

  1. This system is simply amazing! I am going to try to build one. Thank you very much for taking the time to share this wonderful project.
    If I understand correctly, you still have to manually decrease the speed of the servo connected to the takeup spool during scanning, is that right?
    In the first version, you had a “film transport switch” that would close if the film moved too fast after the gate and went too tight. Why did you replace it with a potentiometer?
    I was wondering if it would be possible to use a laser sensor to get the system fully automatic. Let’s say you let the film loose behind the takeup spool and when the film goes tighter, it passes in front of the laser sensor that sends a signal to stop the rotation of the servo for a certain amount of time so that the film gets loose again. What do you think?

    1. Hi there and thanks! It’s been a fun project.

      I decided to take out the tightness switch at the same time I took out the code for governing the camera. The SLR has a remote jack so it was easy to simplify everything. The potentiometer makes it easy to rewind the film too by turning it anticlockwise. No I just adjust the speed of the takeup spool to account for the amassed film diameter getting larger as it runs.

      As for lasers governing the takeup spool, I don’t see it very easy, as the laser would have to view the film sideways and it’s a very narrow image that way.

  2. Hi,
    Do you have more pictures to detail the project, because I would like to do this verys intersting project but I have some difficulty to make and assemble all the part.
    Thanks,
    Cédric

    1. Hi! Glad to know you are interested in this. I must take pictures of this when I get access to the University again, because it is now off limits due to the Corona situation. I will post them in the blog when I get more pictures.

      1. Thank you very much for your return, I look forward to your return on the photos you can take.
        Thanks again
        Cedric

        1. I hope the pictures solved your issues. Don’t hesitate to contact me if I can be of more use.

          1. Yes, your pictures are very interresting,
            I have another mechanism to move the film, I will try to adapt it to your project.

  3. How did you mount the camera? I need tomount a lens/machine vision camera assembly to look down a projector I’m using but I am at a loss of modular, machano type stuff that can be assembled into a precise and solid mount.

    1. I have all the parts custom built, modeled in a 3D environment called Blender, then 3D printed using PLA material. See the latest blog post as for how I mount the camera.

      You may want to have someone model you the requisite parts and print them out. It isn’t expensive anymore, and modeling is easy for stuff like this. Blender is also open source and free.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.