First thread, though I’ve been reading the forums for a fair bit without registering. I wish that I had found this forum months ago. Here you have a treasure trove of research, test results and lived experience. There are other resources out there, but most are stale with discussions that started and ended in the 2000s or 2010s.
In late October I caught the film-scanning bug. My grandparents aren’t getting any younger and both sides of my family have bequeathed me their 8mm collections, mostly 3-inch reels of regular 8. I desperately wanted to scan at least one reel before Thanksgiving rolled around, so I looked at what was commercially available. Everything I found was either too expensive or garbage quality (Wolverine clones). Nothing in the middle; nothing around the $500 to $1000 range. I looked into paying a third party to scan the whole collection, but the average quote would have been in the $2000 range. Trapped between low-end consumer and enterprise-level equipment, what is an engineer to do?
Like so many others, I set out to design my own scanner. Like so many others, it would use a Raspberry Pi and an attached camera module. Unlike most others, I intended to make all non-moving parts printable on an average-sized 3D printer (anything with a 220mm or larger bed). No borrowing parts from projectors, no hacksawing metal tubes, tapping aluminum extrusions or other fancy metal work. Just some metric screws, low-quality bearings and stepper motors stolen from the carcass of an Ender 3, a thin LED backlight and a cheap Chinese M12 lens. I only wanted to scan 3-inch reels for now and I didn’t want to spend more than $100 on parts.
Within a week I had a prototype that spun! I tried using an Adafruit motor hat for the Pi, but I hated it. It was loud, slow and dangerous. Without adjustable motor current, some of my spare stepper motors overheated when holding position. I was able to work around most of the board’s limitations by purchasing Adafruit’s recommended steppers, tweaking Pi settings to increase I2C refresh rate, and refactoring my code over and over. Stepper noise/chatter and lack of motion smoothness, with or without microstepping, was impossible to overcome (the Pi makes a poor motor controller), but I was just getting started. I still thought I could make my self-imposed Thanksgiving deadline.
I iterated upon the design: adjusting the position of motors and rollers, settling on the HQ camera module, testing a bunch of cheap M12 lenses, and refining the gate. The LED backlight was working great, except the HQ camera AWB algo was choosing the wrong color temp. I found suggestions on this forum to tweak the tuning file to disable AWB and it worked, thanks cpixip! I abandoned the Adafruit motor board and adopted a generic GRBL-based CNC control board. This allowed me to use TMC2208 motor drivers, which solved the noise, heat and smoothness issues all in one fell swoop. Praise Trinamic! Unfortunately for me, GRBL is designed to enable all motors simultaneously and my design relied upon the latent resistance of one deenergized stepper. Deterred, but not demoralized, I quickly moved on to another option.
In my third round of designs, I focused on perfecting the gate and switching to a BigTreeTech SKR Pico for motor control. The SKR Pico runs Klipper, which was a new challenge. A lot of time was spent figuring out the Moonraker/Klippy API. I had a tiny PCB made for more safely connecting up the LED backlight. I also sent off the gate design to be printed in resin. Turns out a typical FDM 3D printer isn’t the right tool for some design challenges; who would have guessed? Thanksgiving was creeping closer and my code went through three major revisions, eventually converging on a double-threaded approach: one thread for motor control, one thread for OpenCV inspection and libcamera capture. That concept probably sounds awfully old-hat to a lot of people here, but it took a while for me to accomplish.
Now, with Thanksgiving breathing down my neck, did I have a working film scanner? Yes, but no. The lens I had built the entire thing around was a massive weak point and I hadn’t bothered to really look at alternatives the entire time I was developing the system. To be honest, bigger and better lenses just didn’t fit within my narrow requirements, so I ignored them. Now, as I spent hours struggling with fringe motor control issues, I realized the system’s output just wouldn’t be worth keeping. I needed to go back to the drawing board, but I had no time left on the clock.
Here’s some pictures of the last version of my 8mm scanner before I stopped working on it as of November 2022. I’m not happy with it and I don’t think I’ll release the files. I had plans to extend the capacity of the design past 3-inch reels by adding wings. I can also extend the camera track to accommodate a much better lens, like the Componon or Nikkor… but it’s not really my focus right now.
Again, to reiterate: I wish I had found this forum sooner. Much of the work I was doing had already been done by individuals here, and the same roadblocks I was running into they had encountered and conquered. I learned a ton working on this project, so now it’s time to start over.
I ran the numbers and I know now that if I break a few of my self-imposed rules, I can make something much better. I have already begun working on a new design and there’s a sketch in OnShape calling my name. It relies on a few parts from the OpenBuilds catalog.
Hope I can edit this post after I post it, not sure if the images will appear properly. EDIT: Oh good, I can.