Introduction: Automated Film Developing Tank

About: Retired scientist and tech exec still in love with inventing and building useful and useless gadgets

I recently got back to film photography after 20 years, and discovered that gone are the days of dropping off your film at the local drugstore. What to do?There were places for film developing online, but I was not keen on paying postage both ways. I eventually found a local photo shop to do the film developing, but they totally botched it up. Lesson learned, I thought, I will just have to develop the rolls myself.

Developing your own black and white film is not hard, but it is tedious. One has to agitate or stir the film every 15 to 30 seconds, watching the clock for many minutes - not a great task for someone fundamentally lazy and distractable. The automatic development systems for sale are way out of my pay grade. No worries, there must be many DIY projects online. Indeed they are, but they tend to involve lots of wiring, soldering, fabricating mechanical parts, programing Arduinos and so on. These projects often also had complicated human interfaces via touchscreens or smartphones with way too many options. I just wanted to pour in the chemicals, push a button, and do other stuff until the timer buzzed.

Doing some basic surfing, it seemed that film development automation systems fall into two general categories:

  1. rotating the development tank on its side on rollers
  2. manipulating the reel of film inside the upright tank via the stir stick

Option 1 has some serious disadvantages - the design has to provide adjustments to accommodate different size tanks, and controlling the temperature of the chemicals is complicated (most designs do not provide temperature control). I discarded this design option out of hand.

Option 2 seems more simple: temperature can be easily controlled by standing the tank into a water bath, and the size of the tank is not an issue as long as one sticks to a single manufacturer. Unfortunately, almost all the DIY projects I found were using cheap plastic servos (for radio controlled model use) for agitation, and had flimsy mountings to the tank. I decided I could do a better design myself!

These are the design goals I came up with:

  • be able to use multiple sizes of Patterson tanks (Patterson is a popular brand)
  • able to do continuous or intermittent agitation
  • use of-the-shelf components as much as possible
  • solid, uncomplicated mechanical design
  • simple to program
  • assemble and fabricate with hand tools, at least as an option
  • reasonable cost

In the end I believe I succeeded in mostly meeting all these goals. Let me know what you think in the comments.



Supplies

Parts:

NEMA 17 42-40 stepper motor with cable - Stepper motors are strong with very precisely timed movements, so perfect this application. Unlike most DC motors, they are built in standard sizes and specs, and have become very cheap due to the popularity of 3D printers and CNC routers. I bought mine from Amazon, but they are available online under many brand names from different sources.

ZK-SMC02 stepper motor controller/driver - this Chinese controller does not require building or programing skills. It comes preloaded with a number of work cycles perfect for this application. It is a reasonable quality product and available from many sources online.

4" ABS sewer pipe coupler fitting - Perfect size to fit the top of a Patterson tank and available at any plumbing supply store

12 Volt power brick, 4A minimum capacity - generic Chinese product with many brand names on eBay, Amazon, lots of places online. Make sure you get the 5.5 x 2.5 mm power plug version (or if different size plug, get the matching size socket below.

5.5x2.5mm power socket - or match the size of plug on your power plug above) available online from many sources

4 pieces 3mm x 10mm bolts (for mounting motor) - from hardware store

The total cost of the parts was about $60.


Tools:

screw driver

crazy glue

3D printer

or

woodworking tools to make top and bottom panels (hand tools or CNC router)

Step 1: Fabricate the Mounting Plates and Drive Bush

First, we need to make top and bottom cover plates to mount the motor and the controller. We also need to make an adapter bush for the motor shaft to the stirrer of the Patterson tank.

There are a number of options: the easiest is to use a 3D printer with the attached STL files to print them. The files can also be used to cut out the plates from suitable materials using a CNC router or laser cutter. Lastly, the pieces can be fabricated from wood using hand or power tools.

On the 3D printer, using good quality PLA filament will work fine. The plates are not under a lot of stress in this application, and crazy glue works just fine to glue the pieces together. Of course, ABS filament can also be used; but not PETG, as it does not glue well.

Looking at the bottom plate, one side is smooth with 4 holes for the mounting screws of the motor. The opposite side has a circular rim with two small pegs facing inward. the purpose of these pegs is to mate with the serrated edge of the Patterson tank funnel and so keep the unit from rotating when the motor spins. If the plates are hand made, the builder needs to come up with a different method to keep the machine from rotating, since the profile and pegs would be difficult to make. One option may be to drill small holes in the plate at the correct locations and make pegs from small nails or wire to engage with the serrations.

The adapter bush can be also made from wood as will be shown in a later step.

Once the plates are fabricated, the assembly of the machine can begin.

Edit: For our European friends who cannot easily buy the 4" ABS fitting, I have added a new .stl file to print the pipe. Please keep in mind that I did not test fit this part of the design, so let me know if it works.

Step 2: Hand Making of the Parts From Wood

Since the parts all use metric dimensions, it is easier to continue using those measures.

Use thin plywood to make the plates, 4mm (3/16") would be ideal. For the bottom plate, locate the center point, and draw 3 concentric circles: 20mm, 119mm and 128mm in diameter. Next, draw two perpendicular lines trough the center point. Measure 21mm from the center point on both sides along each line, and drill 4mm holes for mounting the motor.

Drill out the 20mm (13/16") hole in the center and cut out the 128mm circle. Drill two small holes at the intersection of the 119mm circle and one of the lines - these holes are for the small nails for the pegs as described in step 1.

For the top plate, draw another 128mm circle on a piece of plywood. The cutout for the controller module is a 75mm x 40mm rectangle. The exact location is not critical, it looks best if centered. You should also drill a hole for the power connector - size it according to the part you purchased.

To make the motor shaft adapter 3/4 dovel wood can be used. Cut a piece 20mm long and drill a 5mm (3/16") hole though the center length-wise. Next, use a 10mm (3/8") drill to enlarge the hole 10mm deep. The smaller hole should slide onto the motor shaft, while the larger should fit the Patterson stir stick that came with your tank. Some fiddling with a file or sand paper may be necessary to make each end fit.

You may want to rattle can paint the wooden components to keep the protected from accidental chemical splashes.



Step 3: Mount the Stepper Motor

It is probably easier to attach the shaft adapter to the motor first. Engage the smaller hole with the shaft and slowly press on the adapter. A piece of wood can be used to tap it on, but don't get carried away, it should not take a huge amount of force. Get it close to the bottom of the shaft, but try not to jam it against the case of the motor. One way to ensure a good fit is to put card stock (an old greeting card will do) as shim between the motor case and the adapter at the end of its travel as you press it on. When you remove the card, the gap will be perfect.

The motor is mounted on the smooth side of the bottom plate using the 4 small metric bolts. Engage the big hole in the plate with the raised area around the shaft on the motor - it should fit snugly. Screw in the bolts to hold the motor, but don't tighten them too much or you will crush the 3D printed plate.


Step 4: Mount the Locator Plate

If you handmade the plates from wood, skip this step.

With 3D printed plates, there is an additional plate called the 'locator', which is not essential to the function of the machine, but helps to center the bottom plate in the case (the ABS pipe piece).

The locator plate simply slips over the motor to sit flush against the bottom plate. Because of the wire connector on the motor, you may have to wiggle the plate around to clear the connector. Alternatelly, the motor can be unmounted and remounted with the plate in place.

Step 5: Install Controller in Top Plate

Begin with stripping the two power wires on the power socket about half inch. Twist each bare wire tighly and fold them in half to create a larger surface to grab for the wire clamps on the controller. You can also tin these wires if you have access to a soldering iron.

Feed the socket through the smaller hole in the top plate and secure with the nut. Push the body of the controller through the rectangular opening in the top plate - it should just clip in.

Flip the top plate around so the electrical connections can be made. All the connections to the controller are screw terminals The red and black wires from the power connector go to the green plug connector which sticks out slightly from the body of the controller. Pay attention to the polarity - the red wire goes to Vin, the black to Gnd. Secure these wires with the screw down terminals.

Test the power connections by by connecting the power supply to a wall socket and the power plug to the socket on the top plate. The light for the controller display should illuminate with some info displayed. If the display does not light up, check the polarity of the power connections.

Step 6: Stepper Motor Connections

The stepper motor usually comes with a wire loom of 4 wires with a 6 pin connector for the motor end and a 4 pin on the other. Cut the wires about 6" from the 6 pin connector and strip each of the 4 wires 1/2" back and twist and fold the ends in half. Again, you can apply solder to strengthen the stripped ends.

Unfortunately, there is no consistency in the wire colors used between manufacturers, or even the same manufacturer at different times. This can make explaining the correct connections challenging.

I would recommend starting with connecting the wires to the controller straight, without crossing the wires in the ribbon cable - my guess is that in most cases this will work with the cable provided with the motor. Test the connections by plugging the cable into the motor (the connector cannot be plugged in wrong), and powering up the controller. Push the 'CW' (clockwise) button to make the motor spin. If the motor does not spin, you need to google for solutions, typically by swapping some of the wires.

Don't worry if the motor spins in the wrong direction as for this application it does not matter.

While you are working with the controller, check that the slide switches on the back are set as shown in the photo. This switch controls the number of micro-steps per one revolution of the axle. Understanding about micro-steps is not essential, but setting the switch correctly will ensure that the program values used later in this description will have the correct timing.

Step 7: Gluing the Case

Crazy glue seems to be the choice of the 3D printing community for stitching things PLA together. Certainly, gluing the bottom plate to the 4" ABS pipe with crazy glue is no problem. I was not so keen on using a permanent glue on the top plate, in case I ever have to remove it later. One could use silicone for a less permanent connection to be safe.

Step 8: Programing

Programing the controller is not difficult, but the instruction sheet that comes with it is far from clear. I found a YouTube video from OneGeekGuy, which did a good job walking through the method and the steps necessary. Here is the link:

https://www.youtube.com/watch?v=w4IOMUTZa48&t=1137s

(Mode 9 is covered around 16:30 in the video).

The controller has 9 work modes with 12 functional parameters that can be set up. With each work mode, only a few parameters are used, and the rest can be left in the default mode. I will only describe how to use mode 9 as this is best suited for film development.

Mode 9 lets the user set up a repeating pattern of agitation rotations with the number of repetitions to be executed by the machine. This means we can control the direction and length of each agitation cycle, the pause between agitation cycles, and the overall length of the agitation process. Once programmed, the machine will execute the cycle automatically. It looks complicated, but only takes a few minutes to set up, and the settings are stored even with the power off.

The following functional parameters need to be set:

F01> work mode selection. Set to P09

F02> Forward rotation pulses. Each rotation requires 1600 steps( remember we are using a stepper motor). I wanted 10 rotations, so I set this to 16000.

F03> Forward RPM set to 100 to start

F04> Reverse rotation pulses. I set this also to 16000 for 10 rotations.

F05> Reverse RPM set to 100

F07> Delay after forward rotation cycle. I set this to 5 seconds

F08> Delay after reverse rotation cycle. 5 seconds

F06> Cycle times (how many times to repeat the forward/pause/reverse/pause cycle). Set this to the value your developer requires. To explain, let's say each cycle takes 25 seconds to complete, and the developer needs 5 minutes, to calculate the total cycles divide 5 minutes by 25 seconds - 20 cycles.

I am using a mono-bath developer, so overall development time is not critical for me. This is ideal because I can just start the machine and come back later with the development all done.

However, for other developers, one may have to be more accurate. In these cases, calibrating the cycle time may be a good idea - the rotary knob on the controller can be used to speed up or slow each cycle. You will also need to change chemicals and time with a stopwatch or smartphone, but at least avoid the arduous tast of agitating the tank.

Step 9: Feedback

I hope you enjoyed building this project. I welcome feedback and suggestions. Happy development!