Introduction: Scan View-Master Reels to Digital Video. Its the View-ReMaster!
For this project, I made a View-Master Reel scanner. I call it the View-Remaster.
In short, this will scan in 3D View-Master reels and create a side-by-side (SBS) video that I can watch on YouTube. So I have been scanning in a reel every week on my Reel3D YouTube channel. Cool name right??
The Reel3D channel is here, take a look at the scans I have done so far. New video every week!
I've been wanting to create a reel scanner for a long time. I've had these 3D View-Master slides since I was a kid. Recently I dug them out and began thinking about how to scan them in to make a digital video. It actually took me about 6 months to make this project from idea to working prototype. I'm actually still working on it tweaking little things here and there. Funny thing about engineering, you can always find a way to improve your design.
The actual scanning of the slides was a fairly straight forward concept. The part I was worried about was the image processing. But I jumped in anyway and would figure that out when I got there.
For the scanning mechanism, the hardest part for me was getting the right lens for the camera to capture a slide. It was basically a trial and error. Tried 25mm 30mm, 12-50mm, and a combination of extension tubes to get the right level of zoom. I found that the 30mm with a 5mm extension tube was the best solution. It provided a 'macro' like image with little distortion. The second most difficult item was the reel support. This is the part that the reel sits on and has magnets to hold the reel down flat. I must have printed out a dozen of these things with very small adjustments each time. Every time I changed something, I saw a way to make it just a bit better.
I used an Arduino Nano to control the positioning of the slides and the background light to illuminate the slide. I thought I needed RGB LEDs so I could do some color correction for the older slides that don't have KodaColor and have faded. But found that I get little improvement from this because the USB camera has auto-white-balance and it does a pretty good job with color fade adjustments by itself. But I can still adjust the brightness using the FastLED library. I also started with the ring LED and later moved to the Jewel LED for more even light distribution on the slide. The entire scan process is automated so it will align to the 1st slide and then start scanning each slide automatically. But, you have to manually set the slide on the scanner so there is no way to scan in a batch of reels at this time.
I then have to run the captured slides through a processor to stitch the individual slides together. This is all custom code. It will automatically rotate the slides, create a side-by-side (SBS) image, and use OCR to automatically create the text for each slide. Finally, I open a project in DaVinci Resolve and change the root directory to the slides captured. It will automatically change the video content and I can just press the render button to create the video. Each video is exactly the same length, timing, and audio. So at least that part is easy.
The full video of the build is here on my CodeMakesItGo channel
- You will need a camera. I chose the 8mp camera so I can scan in at 4K. Nice thing about these cameras is that they ate manual focus. This way I can be sure they will always be focused on the slide.
- To create a fake macro effect, you can use extension tube. These will change the focal point of the camera and create an inexpensive macro lens.
- The brains of the operation will be controlled by the Arduino Nano.
- You will need one position sensor so that the Arduino knows when the slide is aligned and where each slide is located.
- I used little magnets to hold the reel in place.
- A RGB ring LED to backlight the slide.
- A solid state switch to turn on and off the spotlight.
- A 3D printer because you need one anyway
- Cardboard VR goggles
- Stepper motor and controller
- 12" Aluminum rod to mount the cameras
- Spot light
Step 1: Get to Printing!
There are several parts that need to be printed. All of the parts to print are attached and were designed in Fusion 360. It will take about a full day to print everything. Which is good news for you, I had to do this multiple times just to get everything to work correctly. It finally does and now you have the working version.
Also, if you want to make modifications, let me know and I'll send you the Fusion 360 files instead.
Step 2: Gather the Fun Bits
While your printer is hard at work, gather up the remaining material.
We will need the following hardware:
- Arduino Nano will be our main controller
- Jewel LED, pictured is a Ring LED but I found the Jewel works better. It provides a more even background light.
- The 28BYJ-48 stepper motor with controller
- Position sensor
- Screws to secure the stepper motor, sensor mount, and reel support.
- Polyethylene sheet to diffuse the LED
- And (not pictured) a bearing for the reel support to rotate with.
Step 3: Reel Support Magnets
The snap ring will help hold the reel flat against the reel support. Because some reels are bent or not completely flat, I used strong magnets to help hold the reel flat while scanning.
I used a dab of super glue to hold the magnets in the printed parts. Be sure they are all positioned in the same orientation so that they will be attracted to the reel support. This isn't as easy as it sounds. Best way is to let two magnets attach together. Then mark the out side of them both with a permanent marker. When placing them into the snap ring and reel support, be sure that the black dots are showing for the snap ring and not showing for the reel support.
Step 4: Reel Support Gear
Mount the helical gear to the backside of the reel support. Be sure to get it as centered as possible. Doesn't have to be perfect, but then again it does. I used super glue because I think it works really well for PLA parts and we just used it to glue in the magnets so why not.
At this point the reel support is complete, set it aside and let it rest.
Step 5: Stepper Motor
Install the stepper motor and attach it with two screws and nuts. I just used any 2 matching pair I had in my parts bin. Because the mounting tab is so close to the motor I had to grind down one side of the nuts so that it can fit against the stepper motor. Nice thing is now the nut will not spin and I can cinch the stepper motor up from just the top side of the platform.
Step 6: Backlight LED
Solder wires to the IN, PWR, and GND on the Jewel LED, then pass the wires through to the back side and smoosh down the LED in its position on the base. The Base will have a small cut out that the Jewel should fit perfectly in.
Step 7: Position Sensor
I used some old computer screws to munt this part. Sorry I don't know the sizes of these. Trial and error. But anything you find that works...will work. After fixing the sensor mount to the platform, mount the position sensor to the sensor mount.
Step 8: Light Diffuser
Time to test your skills and cut out a circle the best you can. If you are super cool maybe you have a CNC or laser cutter that can do this. I am not, so had to do it with a coping saw. And the result shows a human cut this out. I used the inner and out trim rings we printed as a template. As long as it fits fairly well in the base it should be ok. We will hide the imperfections with trim pieces we used as a template. Again, just glue down the trim pieces to the diffuser. You don't have to glue the diffuser down to the platform unless yours it not sitting flat enough or you just want to.
Step 9: Reel Support Attachment
Press the bearing into the center of the platform and secure it with the bearing holder. Not sure why I have no pictures of the ball bearing, I honestly don't have anything against ball bearings.
Then pass a long screw through the center as the axel. Long enough to also pass through the reel support and reel mount.
- While holding the screw in from the backside, place the reel mount over the axel.
- Then place the reel support on top of the reel mount.
- Finally add the nut onto the axel to secure them all together.
- Screw in the axel until the nut is flush with the reel support.
- The reel mount should now spin freely.
- Cut the screw afterwards to clean it up.
Step 10: Arduino Time!
Connect all of the wires and install the Arduino as pictured. There is a little cutout in the platform for the USB port to stick out. Also mount the stepper motor controller in the bottom corner of the platform. Dress up the wires to your preference.
Here is the pinouts:
- PD2 -> stepper motor controller 1
- PD3 -> stepper motor controller 2
- PD4 -> stepper motor controller 3
- PD5 -> stepper motor controller 4
- PD6 -> Optical sensor input
- PD7 -> Jewel LED input
- PB2 (D10) -> Spotlight toggle
Step 11: Test Fix Test
At this point we should see everything working.
After flashing the Arduino code. The backlight should turn on.
Using the Arduino IDE serial monitor, you can send it commands to test its functionality.
The are the serial commands to send, each one expects the enter key followed by the command:
"N" = move to the next slide
"A" = align to the first slide
"S" = stop
"U" = Step up
"D" = Step down
"B<value>" = Change the brightness to the specified value. 0 = off, 255 = brightest. Example "B255"
"L<value>" = turns on\off the external spotlight. 0 = off, 1 = on. Example "L1"
"C<R>,<G>,<B>" = Changes the LED RGB color. Example "C255,255,255" for white.
Step 12: Camera Mount
Insert the 12" aluminum rod into the platform and secure with 2 screws. The are 8x32 screws at 1/2" length. You will need 6 of these if you use two camera mounts. You can also use threaded inserts if you have them.
Next, slide on the camera mounts. These are generic camera mounts and work for my cameras but may not work perfectly for your setup.
Then attach the camera to the mounts. You will have to spent some time adjusting them so that you get a good view of the slide. I used a 30mm lens and a 5mm extension tube for the slide camera and a 5-50mm adjustable lens for the reel camera.
I've attached results of the camera position for my setup. I have to leave a little room (border) around the slide so that it is easier for the software to crop it out.
Step 13: Spot Light
I used generic photo LED light that I had for YouTube videos. But you should be able to use any light. I also added a couple folds of parchment paper to help soften the light a little bit.
To control the light I used a switch that I can trigger from the Arduino. This can be any relay but I used a solid state relay and it works perfectly. The spotlight is needed to get good results of threshold images and OCR the text. We control the spot light with the Arduino so that we can turn it off while the backlight is on, making the slide colors just a bit more vivid. Then we turn the spotlight on while the backlight is off to get a good slide frame. We use the slide frame to crop the slides and rotate the image if needed.
Step 14: Time to Scan
The project is basically done at this point. It will take a little bit of fine tuning for camera adjustments and lightning. After that follow these steps:
- Run the Capture application
- Adjust backlight brightness and test on multiple slides
- Run the automated capture for the reel
- Run the Process application
- The Process app will adjust the OCR text, threshold images, rotation, and creates the final slides.
- Once the final slides are created I touch them up with a standard photo touchup application
- Finally, I create the video with DaVinci Resolve.
The Capture and Process applications I'm using are on the GitHub page https://github.com/CodeMakesItGo/View-Remaster
Feel free to create your own as the interface to the scanning platform is pretty easy to use. If you did not watch the video, it will demonstrate the Capture and Process application much better than I can here. Plus its a cool video...I think.
Step 15: Watch Video