Press "Enter" to skip to content


Jobo motor base, in progress

October 11

I’ve been developing film in trays in the dark almost 20 years, which sounds more like a prison sentence than a term of experience. To be able to work in normal room lighting, I’ve made a few daylight hand-inversion tanks, and had good results with 4×5- but for 5×7 the tank size and solution amounts make this approach impractical.

I’ve always wanted to try a Jobo ‘Expert’ Drum, which uses a minimum of solution, and works by rotation instead of inversion. I finally found a deal on one (they are ~$500 new), and was excited about putting it to use. I was struck, using this thing for the first time manually, how unbelievably tedious it is to spin this drum for 10-15 minutes, and how awkward to get the chemicals in cleanly, and how much of a hassle to clean and dry between batches of negatives.   Out of desperation, I made all these cheap and ridiculous ancillary items – funnel and stand, converted skateboard roller base,  hair-dryer to dry the tank between uses, and a ridiculous crank-wheel- all just to be able to give this thing a proper evaluation.  Since I was already in over $300 over the drum, I didn’t want to waste a bunch more money if I was just going to go back to tray shuffling. (Trays cost under $15 and need no accessories.)


Parsimony on parade. Hands-free funnel stand out of CPVC pipe and 1/4 Plexiglas (the rubber feet give the threaded coupling clearance on the bottom of the stand. The funnel is pretty cool, it has an inline valve so it can be closed, preloaded with chemicals, and the drain rate adjusted it doesn’t back up or boil out out the daylight lid. The width of the D-handle was the perfect match for 1/4″ aluminum channel. The roller base is just a cheap skateboard, the board replaced with 1/4″ Plexiglas.  I thought it would be somewhat rust proof (it is a skateboard for fucksake). I don’t even get it wet really, but the rust stains are clearly there. I can’t figure out where the rust is coming from- I replaced the all the screws with stainless steel, and the trucks are some sort of plastic composite. Maybe the wheel bearings are steel.


The biggest problem about hand rotation is it takes both hands to spin  it. That’s an enormous investment of resources even for 15 minutes. No scratching your arse, no sipping tea. No getting other process chemicals ready. So, I made this crank wheel, and I was happy, for a while. At least I had one hand free.   It’s made from 8″ flue pipe cap, slightly crimped and wrapped with electrical tape to keep from scuffing the drum. The crimp gives a spring action that keeps it engaged with the tiny recess at the base of the drum. A cheap cabinet door knob is loosely fitted with a nylon spacer so it will freely spin while rotating.

Hey, why not motorize the thing? And so I became obsessed with evaluating every mechanical or electronic device I have for parts they might contain- in use or not. Printers, drills, belt sander, electric ice cream churn.  Looking for motors, shafts, gears, pulleys, power supplies, anything useful. I remembered my wife’s old $30 HP inkjet printer that she can longer get ink carts for, was able to salvage some surprisingly nice roller shafts from it. They even had the perfect feed wheels already on them. I made a base for them out of aluminum channel I had left from a camera project, and some 1/4″ Plexiglas and some assorted stainless steel hardware. I was hoping to use the logic board, power supply and motors from the printer too, but that was way beyond my skill set. Anyway, the motors were tiny and high RPM, and all of the torque-providing reduction gears were externally mounted in a chaos of plastic cages and complicated armatures.

I started looking around places like ServoCity,  Sparkfun, and Amazon for prototyping supplies, but I’m electronically illiterate, and had a hard time sizing the motor with the low amperage ratings of the inexpensive motor shields and drivers.

Proof of concept. Battery of batteries (8-D cells), motor clamped on rail for testing.
DC gear motor (Amico 12v .5A 300RPM high torque, from Amazon) and chain drive. (1/4″ plastic chain and aluminum sprockets from ServoCity). The reduction ratio isn’t right as pictured- I have a smaller 16T drive sprocket for the roller shaft, but the clamping hub was too big and encroached on the teeth so the chain didn’t have enough clearance. I had to order a smaller pin-style hub. Motor is ok- small, nice torque, hopefully more than enough for this drum. I can’t stall the shaft by hand, but the stall current of the motor might fry a 1.2A motor shield/Arduino combo. And of course the torque will plummet exponentially away from the shaft; for instance driving a large sprocket as pictured above. So not sure how well this motor will work. The internal reduction gearing is also quite loud, and even louder in reverse.
Roller shaft hasn’t been cut to length yet. If I ever do color, I will probably install a transfer sprocket on a third common shaft, so there’s a wet drive component going to the rollers, and a dry one going to the motor. That way this base can be set in a water jacket, and the motor platform moved high above it. That’s one of the few nice things about using aluminum and plastic parts.


Shaft detail (originally 8mm chromium steel from HP printer, since replaced with 8mm stainless steel shafts from ServoCity). Nylon self-lubricating bearings (from McMaster-Carr) are mounted to aluminum channel with  rivet sleeves, but they are not pinned so they can be removed easily. These nylon pillow blocks seem like a great idea: the housing and insert bearing are globe-shaped, so the bearing itself can swivel inside the bracket. It can tolerate some pretty crazy misalignment. Plus they are waterproof. But in use, they aren’t as free-spinning as sealed radial bearings, and not sure how well they will hold up to the speed required for the smallish roller wheels to drive the much larger drum at a 1:10 step.
The shaft collars are made from nylon spacers, re-bored until  just a hair undersized and friction-fit onto the shafts. I was going to pin the rivets, but it’s nice to be able to remove them easily at this point, and there’s enough of a slot in the mounting holes so they can move slightly, so the parallelism of the shafts is self-correcting when the drum is put on.  I’ll pin them after I’ve tested it a few times.
At top of the picture you can see part of one of the printer paper feed wheels, which has the perfect durometer rubber for this purpose- very grippy, 100% transfer of radial movement to the drum with no slipping. Not sure how well they will stand up to a really wet environment, they may quickly rot if used in a water bath.


Motor mounted in Cantex  junction box. I like these boxes, there are no factory knockouts, so they can be used as custom enclosures.  The sides slope, so I had to mill a plumb recess for the motor mount to keep its shaft level. That was probably too fussy- the chain drive allows for quite a bit of misalignment.
There’s still plenty of room in the box for the driver board, but may have to find a way to manage heat buildup. The board has nice heat sinks, but may have to at least cut some vents in the box for airflow. Still, the thing will only run for 15 minutes at a time, and no where near stall current, so it should stay fairly cool (I hope).
A little tight front to back, but lots of headroom. RioRand RRCCM2SPC Adjustable DC Motor Speed PWM Controller (~ $12 from Amazon) Tested it and it works. I hope the solder joints are strong, the wires do stress the terminal blocks a little. Might eventually get a small motor and program an agitation cycle with an Arduino, but I think just this will work well enough. Motor reversal is manual, but I the like real time speed control, without having to pre-program it. No mounting hardware came with the board, so I used motherboard mounting spacers  from my last computer build to attach the board to the j-box, just tapped them into the bottom of the box using the board as the pattern. The motor enclosure friction fits into a clamp made from aluminum angle, basically two parallel sections of 1/16″  angle stock set together slightly closer than the outside dimension of the box.
The deck for the motor is 6mm acrylic, attached to 5/8 channel that fit over the 1/2″ channel of the roller structure. The decks slides to allow for tension adjustment of the chain, and a knob on the left side locks it in place.

Still waiting on a few parts. Correctly sized hub for sprocket, a dc panel jack, and a real 12v power supply. I might eventually get a smaller motor, arduino board, motor driver… But at that point, I’m afraid I won’t be able to tell which is more true-  that I’m enjoying myself tinkering with this project, or that I’m simply trying to bury a failed experiment in busywork and money.

And already I’m sneaking back to tray development. Having used this for a half-dozen batches, I’m not a big fan of the drum. I came back from a walk with a dozen sheets of film to develop and was dismayed to realize how much I was dreading doing 3 batches of film in this thing. I usually look forward to developing film. The drum itself really is a neat piece of engineering,  and the results are consistent, but the steps are are very tedious, time consuming, and awkward. And I’m loosing about 1/2- 1 stop of film speed due to the constant agitation. Plus, it turns out I actually miss sitting in the dark. What else am I going to do for the 10 minutes the drum is spinning? Might as well shuffle film, and think about the pictures I’ve just took and a good way to print them. With the lights on, there are too many distractions.  Also, and this is probably my biggest complain with the drum, I can’t vary development for individual sheets in the same batch, which is very easy with trays.

To be fair, these are really meant to be used in a Jobo CPP processor, not manually as with all this nonsense above. The processor keep temps regulated, all the bottles of process chemicals get to bob in a water jacket, and draining and filling solutions is probably much easier. But even if I did have the space for one, no way I would shell out the $1000 or so  for a used one. Difficult to get parts for them, and I’ve heard the motors are weak. Of course, I’ll finish this project, since all I have left to do is attach a sprocket to the shaft and plug it in. But not sure how much I’ll actually use it.


December 11

It’s full bore monsoon season here, so decided to dust the project off, and actually try it out.



This sprocket arrangement is a compromise between torque and speed. 16T on the drive shaft, and 24T on the motor shaft. Should turn close to 60, but it’s only about 35 RPM under max load (1 liter of solution in drum). I’d settled on 20-30 RPM when using the hand crank, so this is about right.


I’m glad I waited to pin the rivets on the bearing flanges, because I wanted to try moving the shafts closer together. I went from 5″ on center to 3.5″. This seemed to substantially reduced the load. I had been worried that the drum could be unstable if the shafts were too close together, but no problems at all, no walking or creeping even after even slapping the tank and jostling it during rotation. But I did add a thrust bearing at the back of the drum, just in case. The problem is it’s really freaking loud. Almost have to use CAPSLOCK to hear myself typing.

Just tried it out in a session of 3 batches in a row and it works well, even filled with solution to capacity.  The reduction gears in the motor housing itself are what’s loud- not as loud as the steppers in my old M1 scanner, but pretty distracting! I cut up some rubber gasket material and mounted isolation pads under the motor enclosure and bearing mounts.  The base is like a tuning fork, and this helped deaden noise more than I expected, but it is still uncomfortably loud, especially in reverse.

So, it does work, and admittedly it’s a fair relief from hand cranking the drum. It’s light and easy to take apart for cleaning, and I just hang in on the side of a cabinet for storage. I think it will prove useful. I do want to eventually use a rechargeable battery as the power supply, right now using a 12v DC wall adapter. Plenty of room left on the upper tray for a battery pack. The power blinks here a lot, especially in monsoon/flood/landslide season. And this year is shaping up to be a real record setter.

January 2, 2015:


One more change, but pretty good one- swapped the motors out for a much quieter one, and used a new PWM board with a higher amp rating. The motor is a 12v car seat motor with a lead-screw shaft, but I was able to modify it a little to work with the sprocket and chain assembly.  I just removed the right angle transfer case, helical gear and lead screw shaft and cut down the plastic housing flush at the shaft. It’s so much quieter! I can actually hear the water sloshing around. Was a pretty simple swap, the motor was bigger, but fit really well in a 1 1/2″ Cantex Type-E conduit body. I had to ream out conduit coupling slightly to so the motor could mount in it, and  I had to modify the clamping rails, but the new board and pot and rocker switch were all the same size as the first board and everything was wired the same. There’s a dead zone at the start of the pot, but the range is much wider, probably 20-120RPM under load instead of 20-30 RPM.  Or that’s the safe range anyway- the motor was rated at 190 RPM, but that’s at the lead screw shaft, the motor shaft is actually 760 or so, so the drum would probably reach escape orbit speeds at full power. There’s not a lot of torque at the low RPMs, and the speed increases dramatically with no load, so this probably wouldn’t work well with an Arduino setup. The pot is nice for getting the speed just right in real time. I need to swap the sprockets around,  that will lower the speed range and increase the torque.




New 12v DC 1.5A motor- .

New PWM Speed DC motor controller board (Rio Rand Upgraded RRCCM6NSPC)-  .

Cantex UL access enclosure (local hardware store)-

Sprockets and chain (Servo City)-

8mm Base-Mount Nylon Bearings (McMaster-Carr)-


January 21

Trying out different drive components, pulleys and a timing belt. (XL series with neoprene belt, McMaster-Carr) There were relatively inexpensive, and helped reduce the noise even further. I think. Not sure why I’m obsessing over giving this thing a stealth mode. Probably just avoiding taking it to the next phase of making it programmable.   I do associate developing film with quiet meditative liquid tones, like a Koi pond, or a wee gargle of high rye whiskey, but I can still recognize obsession when it strikes. I made one final change back and forth between the chain and belt to settle it, and the timing belt is in fact much quieter, no question- I’d simply forgotten to account for the auto sound levels in the videos.

I also swapped out the makeshift thrust bearing for a real sleeve bearing to keep the drum from walking. Also, the cheap hose that came with the funnel was replaced in favor of some 1/4″ Loc-Line (also available from McMaster) which is great for holding the fill spout in the ideal position inside the lid while the drum is spinning. The 1/4″ is borderline, takes about 25 seconds to drain a liter of solution, which is a little slower than what the light-baffle bottleneck at the lid will allow.  I might try the 1/2″ eventually. The female inline valves are easily adaptable to almost any funnel, just need a MNPT-to -hose adapter with the barb sized to fit the funnel spout,  and hose clamp to secure it. I goofed and got the male valve, which was a little more work to adapt.  The radial-twist valve on the funnel shown above isn’t well suited to the arrangement, it pivots the whole Loc-Line hose, but it does allow swinging  the whole hose out the way when not using it.

Loc-Line coolant hose for easy aiming.

I doubt I’m going to go any further with this project. It’s working great, it’s quiet, and it’s really no trouble at all sipping tea and switching the motor direction manually during development. Certainly a lot easier than sitting in the dark and shuffling film in trays.


Edit: I thought the construction of the base was pretty straightforward but I get a lot of questions about it. The base was sized for the Jobo drums I use, 3006/3010. I don’t have any drawings but it is pretty basic:

  • A 11×13″ piece of 1/4″ Plexiglas was bored in the corners for 3/8″ stainless steel posts. I re-purposed these from some drawer pulls I had on hand, but any similarly-sized aluminum, stainless steel, or nylon post with threads tapped into each end would do. They only need to be long enough to provide enough clearance for the larger diameter shaft pulley).
  • The posts are attached to the base with 1/4-20 screws through some rubber feet.  Attached to the tops of the posts is a piece full-length 5/8″ aluminum channel on each end, about 10″ on center. I used flat head screws to attach the channel to the posts so they would be flush with the channel since the pillow blocks and motor tray mount over the channel, but the posts could be relocated outside of these areas to simplify layout a bit.
  • At one end of the channel two pairs of shaft pillow blocks are attached with 1/8″ aluminum rivets, at 3.5″ on center. I like a rivets because they’re low profile,  but obviously screws, speed nuts, post screws or just about any other hardware would work. The important thing is the shafts are parallel to each other, otherwise the drum will move laterally during rotation.
  • At the other end a motor platform is made from more Plexiglass 3/4″ aluminum channel (which is a nesting fit on the 5/8″ channel, but angle stock would work too) which is used for the sliding motor tray. To make the motor tray, two 6″ pieces of the 3/4″ channel are attached to another piece of 1/4″ Plexiglas so they nest over the lower channels and slide along it.  A 3/16″ x 1″ slot was cut in the side of the left piece of the motor tray channel, and a hole for a thumb screw tapped in the 5/8″ channel below that, which allows the tension on the belt to be adjusted.
  • The motor mounting hardware is just aluminum 1″ angle stock, attached to the motor platform close enough together to provide a friction fit for the motor housing. This keeps the motor firmly in place but also allows it to be slid laterally if needed to align the pulleys. I put on a thin foam pad on the bottom of the motor housing to reduce motor vibration.
  • For the drive I used  3/8″ wide XL pulleys, a 1.25″ OD for the motor and a 3.8″ OD for the shaft. The belt length is 18″ long.
  • At left between the pillow blocks there is a thrust bearing is attached to the channel rail. This is to keep the drum from walking laterally, it isn’t needed if the shafts are truly parallel and level. But it is a nice way to quickly set the drum in place.
  • As far as electronics, don’t ask. I have no idea if anything I’ve done here is safe or sound. Everything still works after 3 years of moderate use, but not sure if any of the parts I used are still available.
  • Some of the parts may be difficult to find (such as the neoprene shaft rollers that I got from an old inkjet printer), or may require some fiddling (such as modifying the motor, removing its transfer case, and fitting its worm shaft for a pulley). I won’t be any help finding easier workarounds for these issues, or with finding alternate sources for materials that are no longer available.
Updated version(s) here-