Introduction: Automated 35mm Slide Digitizer

My parents were avid travellers and photographers and took thousands of 35 mm slides documenting our many trips when I was growing up. I was bitten by the same bug, and have fully "documented" my travels in the 70's and 80's with 35 mm slides. For years we would watch our travel slides projected onto a screen using a Kodak Carousel projector. The slides were organized in carousel trays holding either 80 or 140 slides.

Over the last 30+ years, the slides have only been seen a few times as it requires a dark room and some setup (projector, screen, etc.) I decided it was time to convert the family slides into digital images that could be easily viewed on a PC or TV and shared with my childeren and grandchildren. The result is this project.

The goal was to "automatically" digitize over 40 boxes of slides stored in carousel trays, without having to remove the slides from the trays if possible, while maintaining close to the original slide sharpness and dynamic range. The concept was to modify a standard Kodak Carousel projector to enable a digital camera to focus through the front of the projector directly onto each slide after it dropped down from the carousel tray. The slides are back illuminated with a LED white light source. Once the camera snaps the picture, the projector automatically advances to the next slide and the process repeats itself. This Instructable provides all the details for accomplishing this.

The following is an overview of the steps needed:

  • Modify a Kodak Carousel Projector enabling a digital camera to focus directly onto the slides;
  • Build an LED illuminator which fits into the back of the Kodak projector in place of the original light source and condensing optics;
  • Build an Arduino-based controller that synchronize advancing the slides, waiting for the camera to stabilize, triggering a digital camera, and keeping count and stopping the process when the 80 or 140 slide tray is complete;
  • Load software into the Arduino Nano;
  • Modify a (commercially available) wired remote camera shutter trigger enabling the controller to trigger the camera;
  • Modify the Carousel remote control to enable the controller to advance the slides;
  • Set up the projector, camera (tripod mounted), and electronics. Use the camera optical zoom to maximize the size of the slide, and start the process.
  • Use an off-the-shelf software package to batch post process the raw digital images (flipping, cropping, labelling) for easy viewing.

Modifications to the Kodak Carousel projector are easily reversible enabling it to be returned to its original state. Although this project describes the modifications to a Kodak Carousel projector, the techniques can probably be adapted for other old-school slide projectors. The process also works with a bulk loader, but the process has to be manually ended by pressing the reset button.

Important note: The goal is to use a digital camera to focus on the slide inside the Carousel projector (no projection lens). I wanted as many camera pixels on the slide as possible for best results. I recommend a zoom lens to magnify the slide as much as possible. You also need the camera to be able to focus as close to the slide, less than about 18 inches if possible. A macro lens should work the best. If your digital camera does not have interchangeable lenses and you don't have a zoom lens or your camera/lens combination won't focus in to about 18 inches, this approach to digitizing slides may not work for you. Some testing out lenses, zoom levels, and spacing to determine all this is suggested. There is no reason to think that this approach would not work with a cell phone.

All mechanical designs and modelling were completed with Autodesk Fusion360.

Supplies

The major items required are a Kodak Carousel Projector (with remote hand control), a digital camera with zoom for recording the slides (with new SD card), an LED backlight mounted in the projector, and the Slide Digitizer Controller with miscellaneous cables. (Note that the Carousell Projector lamp does not have to work since it's being removed, but the slide advance mechanism must work.) I was able to purchase a Kodak Carousel projector for this project on Craigslist for under $30 if you don't already have one.

The table is a list of all the items and materials needed to complete the project along with a suggest acquisition source. I believe that everything is available on Amazon.

In addition, the following tools are needed:

  • 3-D Printer with filament (black, white, and silver PLA)
  • Soldering iron, solder, soldering wick
  • USB cable with Mini-B connector for programming the Arduino Nano
  • Miscellaneous hand tools

Step 1: Modify Kodak Projector

The Kodak projector modifications are straightforward and reversible. Before you start , you might want to take a look at the Kodak projector maintenance manual, available for download or review. Here's the link:

  • https://www.manualslib.com/manual/89449/Kodak-Ektagraphic-Iii.html

If you are not familiar with the Carousel projector, you should review this manual.

First, remove the projection lens from the body of the projector. "Turn the focus knob to the horizontal position. Push the knob toward the top of the projector as you withdraw the lens." See page 19 of the manual.

With the projector unplugged, remove the lamp module from the back of the projector. See page 22 of the manual. "Push the lamp-module release button and remove the lamp module. Note: There is an additional safety latch, which reduces the chance of an accident with a loosely inserted lamp module, that may cause some resistance. To release the latch, you may need to apply extra effort when you pull out the module." See the figure.

The figures shows the small metal tab (or "latch") located on the lamp module. This tab prevents the module from being pulled all of the way out of the projector, which is required for this project. Using a flat blade screwdriver inserted between the module and the projector chassis side wall near the tab, simply twist the screwdriver while pulling on the module. It will come right out.

There are no other modifications to the projector. We will modify the remote hand slide advance controller later.

Step 2: Build the LED Backlight Illuminator

The purpose of the backlight assembly is to back illuminate the slide transparancies with a high color temperature white light source. The slides from the carousel trays drop down into the projector just in front of the backlight illuminator. The digital camera, located in front of the projector, is focused on the slide and takes the picture. More on this later.

The backlight Illuminator is designed to fit snugly into the back of the Kodak projector, replacing the original lamp assembly. The 3D printed illuminator housing has three parts: the LED base where the LEDs are attached, the LED side housing, and the front diffuser. All are printed using PLA material, however any material should work fine. Mounted to the LED base are LED strips, each containing 3 white LEDs. The goal is to use as many LEDs as possible. The LED strips are wired in parallel.

The first step is to 3D print the three mechanical parts. The .stl files are included here. The LED diffuser should be printed in white material with a 0.2 mm layer height (100% in-fill). The diffuser is designed to be thin enough for good light transmission but thick enough to provide good diffusion of the LED light for uniform illumination of the slide. I found that the best compromise between light transmission and illumination uniformity is a diffuser that is about 1mm thick (0.040"). The other 3D printed parts can be printed with a larger layer height to save time. I used black filament to minimize stray light.

Once the LED support plate is printed, the LEDs need to be added. Item 2 in the parts list are the recommended LEDs, although others could be used. They are 12V daylight white LED strip lights in a ribbon tape with a peel-off adhesive backing. Separate about 15 3-LED segments as shown in the figure. Use 8 strips running in the long direction keeping a consistent orientation. Peel and stick. Next, run three strips perpendicular to the others in the gaps between LEDs. Connect up the positiive terminals to the positive terminals and negatives to negatives for each LED strip. Use thin single stran wire for the negative terminals and insulated wire for the positives to prevent shorting.

Attach the LED base to the side housing with 4 #2 self tapping screws. Add 4 more LED strips to the sides of the housing, and connected them up to the other strips.

The LED illuminator is connected to the Controller module with an RCA audio cable (why not?). I cut off a male connector at one end and soldered the two terminals to nearby LED strips inside the illuminator cavity.

Its a good idea to test the assembly with the diffuser off to make sure all the LEDs illuminate. The ones I made draw about 250 mA at 12 volts DC.

If all the LEDs are lighting up, then attach the diffuser to the side housing using four #2 self tapping screws. You might adjust some of the internal wiring to eliminate any LED shadowing on the diffuser to maximize illumination uniformity.

Step 3: Build the Controller

The Controller powers the backlight, synchronizes slide advancement, and triggers the camera. It also keeps track of the number of slides completed, stopping the process at either 80 or 140 depending on the front panel switch setting. There is also a reset button enabling the process to be manually stopped if the trays are not full or if using a bulk loader. The Controller is designed around an Arduino Nano. The housing is 3D printed (Prusa i3 MK2.5S) and was designed with Fusion 360.

The first step is to print the three chassis components. The .stl files are below; the picture shows the recommended printing orientation. Note that brims are used on the upright parts (due to the small contact area on the print bed). To highlight the front panel text, set up the slicer to stop at 2.8 mm to switch to a black filament (your slicer may enable this). The total thickness of the front panel is 3.4 mm. I used a silk silver PLA filament from Sunlu for the enclosure since it looks like aluminum.

Circuit Description

The schematic diagram of the Controller is shown (captured in KiCad 6.0). As can be seen, 12VDC power comes into the enclosure using the Arduino Nano shield power connector. The shield is modified slightly, see below. 12VDC goes to the main power and the LED backlight switches. The output of the power switch provides switched power to the Arduino Nano expansion shield, which powers the Nano, and the green LED (through a 10k resistor). The LED backlight switch powers the LED RCA jack center terminal and the white LED (through a 10k reisistor).

The Nano expansion shield provides +5VDC and ground to the Nano and to the two channel relay module. The inputs to the Arduino Nano are the slide quantity switch, and the start and reset buttons. Outputs from the Nano drive the "End" LED indicating the end of the process, and the provides digital inputs to the two relays.

Note that both sets of relay outputs are simply switch closures. They are only connected to the RCA jacks, and not connected to the any of the internal grounds. It is important to keep the relay outputs separate from the controller electronics to minimize the chances of transients from the projector getting into the camera inputs possibly causing permanent damage.

Building the Controller

Install the front panel components. The On-Off Power and LED Backlight switches are DPDT. The slide quanitity switch (80 or 140) is SPDT. Next install the three RCA jacks (bend out the housing ground tab to make it easier to solder later). Install the two momentary NO push buttons. Finally, install the three LEDS. Use the green LED for power, the white LED for the backlight, and the red LED for the "End" indicator. Orient the three LEDs with the cathode side (flat side of LED) upwards to ease wiring. Use a small dab of super glue or hot glue to hold the LEDs in place.

I suggest completing as much wiring on the front panel as possible before assembling to the base. String a ground wire across the 3 LED cathods, one side of two push buttons, the top side of the slide quanitity switch, and the ground side of the LED RCA jack. Solder a 2k resistor to the red LED anode lead, and two 10k resistors to the green and white LEDs. Use heat shrink tubing to prevent shorts. Remove one female end of of a breadboard jumper wire and solder it to the other side of the 2k resistor (red LED). Solder the other ends of the 10k resistors to the middle terminal of the two DPDT switches. Add modified breadboard jumper wires to each of the two push button switches and the center post of the slide quantity switch. Finally, run a wire from the center pole of the LED backlight switch to the center terminal of the LED RCA jack. Follow the schematic. Attach the front panel to the base using #2 self tapping screws.

The Nano Expansion Shield needs to be modified to enable power to the Nano and Relay Module to be switched. Remove the input power jack from the board using solder wick. Once removed, bend the positive terminal upwards so that it will not connect to the board when reinstalled. Reinstall the power jack. Solder a wire to the bent-up positive terminal on the power jack and run it to the input power switch and backlight switch per the schematic. Attach a second wire to the circuit board where the terminal was connected. This wire goes to one of the center pins on the main power switch, as indicated in the schematic. In this way, both switches are energized when 12VDC is applied to the power jack, but the Nano and relays are not powered until the main power switch is turned on.

I found that on occasions one of the relays would not toggle even though the relay LED would blink. I figured out that more engergy storage was needed, so I added a 100 uf capacitor to the 5V pin that comes from the Nano. Solder capacitor to the Nano shield as shown on the figure.

Screws and nuts (5/8" #2) are used to secure both the expansion shield and relay board to the bottom of the chassis. Install the Nano to the shield before installing the board. Otherwise it is a tight fit! You can program the Nano from the outside of the chassis.

Complete the wiring of the Expansion Shield using breadboard jumper wires as indicated in the schematic. Finally, use breadboard jumper wires to connect the input side of the relay board to the appropriate pins on the Nano shield. The relay outputs are wired directly to the RCA jacks on the back of the front panel. Make sure that Relay #1 (towards the center of the enclosure) goes to the Camera Advance RCA jack, and Relay #2 (towards the back of the enclosure) goes to the Projector Advance RCA jack. When you're done, check each input and output from the Nano shield is correctly located.

Plug in the 12VDC power into the side panel and turn on the switches. Verify the LED backlight goes on, and the Nano and expansion shiled LEDs are illuminated. Add stick on rubber feet to the bottom of the Controller chassis.

Step 4: Assemble the Cables

A total of 3 cables are required:

  1. Interconnect cable between the Controller chassis and the LED Illuminator backlight. This assembly of this cable is described in Step2;
  2. Interconnect cable between the Controller (male RCA) and the Kodak Projector (DIN);
  3. Interconnect cable from the Controller (male RCA) to the digital camera (male RCA).


Controller to Projector Cable

A cable is needed between the Controller and the Carousel projector to remotely trigger the tray advance mechanism. The controller end of this cable is a male RCA audio plug. The other end is a male DIN connector which plugs into the back of the Carousel Projector. Normally, the projector remote control plugs into this connector and is used to advance the slides manually. There are two ways to make this connection. One is to cut off the DIN connector from a remote control and splice it onto an audio cable, as shown in the figure. This cable simply connects from the Controller directly to the projector. This is distructive to the projector remote control.

An alternative approach is to add a female RCA audio jack to the projector remote control and wire it in parallel with the slide advance wires. The yellow wire should be wired to the ground of the jack, and the red wire to the center (although it doesn't really matter). Connect a standard audio cable from the Controller to the remote control. The DIN male plug from the remote control plugs into the projector similar to normal operation. The remote control will operate normally with the projector. See the pictures.


Controller to Digital Camera

A remote manually controlled shutter trigger device is required for whatever digital camera is used. I purchased one from Amazon for my Olympus OM-D E-M10II. Pry open the shell of the shutter trigger housing and find a suitable location for a female RCA audio plug. Drill a 1/4" hole for the plug, and insert. (You may have to bend the RCA plug terminal a bit to make sure the cover still fits.) Some of the remote triggers have two positions: part way down for focus, full way down to trip the shutter. We need to connect the plug to the shutter trip wire. Determine which wire is connected to the shutter trip vs. the autofocus, and solder two wires. See the pictures.

The remote shutter tirgger is connected to your camera. You can test it after the mod to make sure it still triggers your camera. An RCA audio cable (male on both ends) is connected between the Controller and the camera remote trigger device.

Step 5: Upload Software

The Controller sofware is below. Connect the USB interface between your computer and the Controller. Upload the sketch like you would for any other Arduino project. (If you purchased a less expensive Chinese Nano you will probably need to upload custom USB interface software to your computer. Depending on which Nano you buy, you should be able to download the USB drivers here: https://www.elegoo.com/blogs/arduino-projects/elegoo-arduino-nano-board-ch340-usb-driver . You may have to play around with the loading....I did. I finally got it to work when the moon was full and I was standing on my head!)

A word about the software. I am not a software engineer, so don't look too carefully at the code. It should work as is. I'm sure it could be refined and made "better". The code is very straightforward, so feel free to modify it. You may want to play around with the delay times between the slide advance and the camera shutter trigger, depending on how fast your digital camera performs an autofocus. (Or manually focus your camera and turn off autofocus.)

Once the Nano is loaded, you can test the Controller to make sure everything works before connecting up your camera and projector. Apply 12VDC (see parts list) to the Controller via the side power connector. Plug in the LED back light illuminator. The LED backlight should come on when the backlight switch is turned as well as the white LED on the front panel. Turn on the main power and you should see the Nano and expansion shield red LEDs come on. Push the Start button and you should hear the two relays click one at a time with a delay between clicks. If this happens, the software is loaded and working.

Step 6: Set Up for Digitizing Slides

Once you've assembled all the components, you are ready to set up for shooting the slides. The following steps should help:

  1. In Step 1 the lamp module and projection lens were removed from the Carousel projector. Place the LED illuminator (Step 2) into the back of the projector (diffusion screen forward towards the slides!) and push it into the cavity just behing where the slides drop down. See figure.
  2. Locate a sturdy table in an out-of-the-way place. It will take some time to shoot all your slides, and you don't want people tripping over the cords or tripod. Position the Carousel projector near the edge of the table facing out.
  3. Attach your camera to a sturdy tripod, and point the camera down the barrel of the Carousel projector towards the LED illuminator. Adjust the height of the camera to be close to the height of the projector. Approximately level the camera.
  4. Connect the male RCA plug from the LED backlight into the LED jack on the Controller (right hand RCA jack).
  5. Connect the camera remote trigger to the Controller (left hand RCA jack)
  6. Connect the projector DIN plug into the back of the projector, and the RCA plug into the Controller (center RCA jack).
  7. Connect the 12VDC power into the controller.
  8. Turn on the Controller and LED backlight. Verify the backlight is on. Push the start button and verify that the projector advances, your camera is triggered, and the process repeats. If so, press and hold the reset button on the controller until the process stops. Everything works! If not, you'll need to troubleshoot. (Did you load the SW into the Nano?)
  9. Install a carousel tray onto the projector, and advance the tray to load a slide for alignment and focus. Select either 140 or 80 on the Controller front panel depending on which size tray you are using.
  10. At this point, you need to align the camera to the slide, maximize the size of the slide in the camera viewfinder by zooming in as much as needed, and focus the image. Note that the image will be upside down and backwards!
  11. It is important that the image of the slide in your camera is not rotated relative to the camera. (Otherwise the final images will be rotated, and the cropping process will remove parts of the slide. Adjust the projector's rear right foot until the image in the viewfinder is square to the camera viewfinder. It is worth taking a few minutes to get this right.
  12. Adjust focus if needed. Your camera may autofocus on every slide, which is fine. Or, you can adjust the focus manually and turn off autofocus.
  13. Center the slide horizontally in you camera's display. I found it is easier to move the projector rather than the camera mounted on a tripod. Adjust the camera height and pitch angle to center the slide image.
  14. Finally insert a new SD card in your camera (if needed) and make sure your camera battery is charged.
  15. Move the carousel tray back to zero.

A few comments on your Camera Setup

I could not fill the viewfinder with my zoom lens, and had to go to a 2X digital zoom. It is not clear if this reduces the resolution or not, but the digitized pictures look pretty good, even under a magnifier. If I didn't use digital zoom, I had to more aggressively crop the images. See next step. The bottom line is you want to use as many camera pixels as possible when you digitize your slides.

Make sure the camera is in focus. You may have to move the camera farther away from the projector to achieve optimal focus. My camera has a mode where it is auto-focus with manual input. There is a several second delay after each slide is advanced to allow time for your camera ato autofocus. This delay can easily be adjusted in the code.

I found that fixing the camera ISO to about 200 gives the best quality (clear quality degradation above ISO 600).

I set my camera in a mode that fixes the f/# at around 5.6 or 8. The exposure time is modulated for each slide exposure. I wanted enough depth of field in case the camera is not exactly parallel to the slide, so I set a higher f/#.

At this point you are ready to go. Press the start button and stand back. Go get a cup of coffee! You've worked pretty hard to get to this point.

Step 7: Post Processing

I recommend that before shooting hundreds of slides you test out the post processing steps below. You may find that your digitized pictures are tilted or skewed or that some changes to your camera set up might result in a better result. I suggest taking maybe 15 pictures, tranferring them to your computer hard drive, and get familiar with the steps below.

The first step is to download the software you will used to manage the post processing. If you don't have a capable software package for batch processing cropping and flipping, I suggest you try IrfanView. It is free and is very capable. Here is a link: https://www.irfanview.com/main_download_engl.htm or https://www.fosshub.com/IrfanView.html

Once the ....setup.exe is downloaded, finish the download process.

The postprocessing steps I use are shown in the figures. Here's a summary:

  1. Move the images from your camera SD card to a directory where you plan to store the final digitized slides. Within that directory, I suggest two subdirectories one for the raw images from your camera, and a separate directory where the the post processed final images will be stored.
  2. Open IrfanView
  3. Select Open (upper left green icon)
  4. Navigate to your "raw" image file. Select any slide to use to set up the cropping values. (I pick a slide that has easily visible edges.) 
  5. IrfanView will show the picture full size. With your mouse, click on the upper left corner and drag to the lower right. Adjust the box to how you want your pictures to be cropped. This cropping frame will be how all the slides are processed. The cropping values are entered below.
  6. Open the Batch Conversion window by pressing 'B' on your keyboard. See picture. There is lots going on in this window.
  7. Select the “Batch Conversion Rename result files”
  8. Select the file output format you want. I used .jpg.
  9. Select “Use advanced options for bulk resize”
  10. Browse to the directory where you want the pictures to be saved.
  11. Select "Advanced". This will open a new window wtih lots of capabilities. I only used two: crop and flip.
  12. Check the "CROP" box
  13. Enter the cropping values from the previous step. In this case the values, from the left top of the picture are 97, 193, 4420, 2966. (XY position of the upper left corner, width and height of the image)
  14. Select “Vertical Flip”. There are a ton of things you can do to sharpen, brighten, etc. if you want. (I could not get the “Auto-crop borders” to work)
  15. Once the Advance Settings are complete, press OK button (lower right), which will bring back the Batch Conversion window
  16. Select “Name pattern” and enter whatever you want. In the example, the digitized slides will be .jpg format and will be named start with Tanzania 1000
  17. Select the pictures you want to be batch processed by highlighting the images in the upper window. Or, select "add all".
  18. Verify the output directory where they are to go.
  19. Click “Start Batch” .
  20. Once the batch process is complete, verify that the images are where you want them and they are titled and numbered correctly.
  21. If everything is correct, you're done!

I found that some of the slides were oriented vertically (90% are horizontal). Since the post processing cropping is a batch process and is the same for every slide, it will not handle vertical slides properly. After unsuccesfully trying to figure out how to automatically crop both horizontal and vertical slide orientations, I finally gave up and rotated the vertical slides into a horizontal position. So much for not having to remove any slides from the carousel trays!

After you have completed this process on all your slides, remove the LED backlight and replace it with the lamp assembly. The Carousel projector is again fully functional.

The final pictures in thisstep are a picture of a 35 mm slide, the same slide back lit using the illuminator from Step2, and the digitized version of the 35 mm slide. Overall, a very good result.

Step 8: Final Thoughts


I had fun and challenges with this project, but it may not be for everyone. There is a lot to assembly and set-up. It might be easier to send all your slides to a company that digitizes your slidesfor you. But, if you want a challenge that involves 3D printing, electronics, programming, photography, image manipulation, and patience, then give this a try! I think the total cost of materials needed just for this projects, not including the projector or digital camera, is about $50 (and you'll have lots of extra parts left over).

What would I do differently if I was starting over? I would have purchased a macro lens enabling the slide image to better fill the camera viewfinder without using 2X digital zoom.

Overall, the final quality of the digitized slides is very good, better than I expected. I am very satisfied with the result and, for the first time, can share old pictues with kids and grandkids!

Thanks for getting all the way to the end!

Microcontroller Contest

First Prize in the
Microcontroller Contest