Discover the FPP-3, a DIY film and paper processor using Arduino automation and 3D-printed parts. Explore features, setup, and benefits for film enthusiasts.
Processing was tedious and time-consuming with only a manual rotation device and a small JOBO 2520 drum. Determined to improve efficiency, I developed the Film and paper processor v3 (FPP-3), which streamlines the process, ensuring uniform and reproducible results with less effort and time, utilizing Arduino automation, and 3D printing. Here the story of the DIY project.
The Beginning
This adventure started after my last trip to the Dolomites in 2023. I ended up with more than 40 sheets of 4×5 film and several rolls of 35 mm film. At that time, I only had a self-made manual rotation device (which I called “Film Processor” v2, in short FP – 2) (see Fig. 1) and the smallest JOBO drum 2520. With this drum and the 2509 reel, a maximum of 6 sheets per batch can be processed. This means that you needed minimum 8 loads with processing times of at least 30 min.
I love developing films, it’s like therapy for me, but the manual work is tedious and you get tired. It is also difficult to maintain the same pace in order to keep a constant angular speed with three revolutions on each direction. These parameters are essential for uniform and reproducible development.

While developing these sheets, my mind started to imagine how to mechanize this process to minimize development time, improve consistency, and better dedicate some time to printing some of my best photographs. After some reflection, I concluded that I have a few options: either I start saving a lot of money to buy a new JOBO CPP-3 (over 4K Euros); or I buy a used JOBO system (e.g., CPA-2, CPP-2, CPE2 or CPP-3) which cannot be found for less than 2K Euros; or I must design and build an automatic system that suits my needs.
I like challenges, so I decided to try to build an automated successor to FP -2. I liked this option because it also allows me to expand and improve this primitive device so that I should be able to develop not only film but also photographic paper up to 40×50 cm.
The CPP-3 can of course do that too, but as I said above, you have to make a large initial investment, not only for the processor, but also for a set of large drums that allow you to develop multiple rolls of film or sheets and paper. JOBO offers several options for 4×5 and large formats, for example the Multitank 5 or the large Multi-Drum 3000 series (left). Unfortunately, JOBO does not manufacture the 2800 series (print drums) anymore.
I started reading in various forums and found valuable information (LFP-Forum, Photrio). For example, that the 2500 (film) and 2800 (paper) drum series are compatible, that the 2870 print extension module and the 2560 film drum extension module are definitely the same. That a print drum can be converted into a film drum by exchanging the cup for a funnel, etc. It is only necessary to pay attention to the core extensions, as the print drum (2831) is slightly longer than the film tank (2551). This modularity makes the JOBO system unique.
With this information, I was able to buy several components on eBay at a reasonable price and condition. Currently I have several tanks (2550 or now multi-tank 5, 2520, 2560 and 2830), a beaker, and several core elements (available as a set only in CatLabs). With these modules I can make various combinations fitting various needs.
Having the drums, I proceeded to design the device, which I called “Film and Paper Processor v3, abbreviated FPP-3“. There is a certain resemblance to the names used for the famous JOBO products, which I do not deny, however, the choice of letters describes exactly what this device is supposed to do.
Basic functions of the FPP-3
The conceptualization of the FPP-3 was inspired by the “less but better” paradigm introduced by Dieter Rams (the mastermind behind the beautiful Braun 8 mm Nizo camera). According to Rams, good design: is innovative, makes the product useful, is aesthetic, is durable, is unobtrusive, is honest, is long-lasting, is environmentally friendly, and is meticulous down to the last detail, among others. The features I envisage for the FPP-3 are:
- a simple control panel;
- few buttons to control motor start and stop, cycle time and rotation speed;
- possibility to develop film and paper up to 40×50 cm, and
- temperature control.

The control panel menu should be as simple as possible (Fig. 2). On the first attempt, no programmed development sequences will be programmed (e.g. for B&W, C41, or E6 films, or paper).
I envisioned one button for on/off and four keys in the keyboard to control the start (C), stop (D), and two to enter development time in minutes (A) or seconds(B). Numerical values are entered with the key (#) and corrections with (*). The angular velocity of the tanks will be controlled with the potentiometer hand-turning button. That’s all.
Components: Motor, Controler, and Tray
The main criteria for the selection of components were: the electronic microcontroller should be cost-effective, open source, and easy to learn, program, and maintain. The motor and brackets should be heavy-duty. The torque of the motor should be enough to maintain the angular speed of 75 RPM with the largest possible tank. the JOBO 2850 (2830+2870), with a full load of 4×5 or 120 film. The tray should be black and made of high-density polyethylene due to its durability, higher rigidity, 100% recycled, thermal characteristics, and drillable.
The decision for the controller was easy: the Arduino Uno controller with a keyboard, a potentiometer and a 4-line LCD (Fig. 3)

The first question that needed to be answered was how big a JOBO 2850 print drum should be. The only way to answer this question was to buy a drum and measure it (Fig. 4). JOBO does not provide drum dimensions in any user manual. Once I knew the maximum dimensions, I started looking for HDPE containers. The best option I found was a heavy-duty 30 l tray with a drain from DENIOS. The dimensions of the tray were close to the ideal.

The next question was, how powerful should the motor be to move a tank at 75 rpm (standard JOBO speed)? Using some knowledge of physics (moments of inertia of a cylinder, angular acceleration, torque, efficiencies, etc.), I concluded that the motor should have at least 1.5 Nm to avoid stalls, without safety factors. Searching the internet, I found the torque of the original engine used in the CCP2 JOBO processor.
This fact confirmed my estimation. With these parameters (i.e. maximum angular velocity and torque) I searched for a suitable motor and gears. The search for the motor took me weeks. By chance I ended up at an amazing company goBILDA that produces high-quality, heavy-duty motors, gears, and all kinds of components for building robots (Fig. 5). Two questions remain: how to build the motor mount and how to control a motor with an Arduino UNO?

Software
Writing the software to run the Arduino was a challenge because it was my first time programming a microcontroller in C. My previous experiences with Fortran helped me to organize the code, but the learning curve was steep. What helped me a lot were the amazing blogs by:
- DroneBotWorkshop: The master classes offered by Bill (thanks !) helped me to understand and program the operation of a 12V DC motor with an H-Bride, to set up a Keypad and a LCD display in Arduino. These tutorials were the best discovery I made in this project because I felt lost at the beginning.
- The Arduino Forum: On this site, I had the chance to ask direct questions to real experts (“gurus”) which helped me to understand how to devise an Arduino code to perform various operations. One of them suggested introducing motor or development states (e.g. motor running, motor stopped, input data, stop). Without their support, it would have taken me months to get the device working as I expected. Kudos to these amazing people who invest their time in helping students and amateurs like me achieve a goal just for their love of programming!
With his help, after a few weeks I had a prototype (Fig. 5). The code could move the engine back and forth, stop and start. Once this was done, refinements were programmed. For example, a potentiometer to control the angular speed of rotation, a countdown clock and the parameterisation of the rotation cycle.
I read in the amazing book THE ROTARY PROCESSOR MANUAL by John Tinsley, that a cycle should consist of three complete cycles for better results. Using this parameter, I devised equations to create acceleration/deceleration phases and one where the motor goes to maximum angular velocity controlled by the potentiometer. This allowed me to estimate the average angular velocity of the device. Based on the JOBO literature and Tinsley’s book I conclude that I need average angular speeds between 45 and 75 rpm to be able to develop film and paper. The details of these technical details can be read in the C code on my github.
External design
Finding a nice and functional layout for the controls mentioned above was a challenge. What I wanted was a minimalist system and the alternatives are almost endless. The JOBO systems were indeed a source of inspiration but the big systems are in my opinion (and others) too complicated for what I need. As the JOBO tanks have two colors (black and red), at least the color selection was easy.
The next decision was on which side the knobs should be: on the left like on the JOBO processors or the right? I decided to put them on the right (Fig. 6) because it seemed more comfortable to me. Once this was decided, the space allocation was the next phase.

To facilitate the process, I built a mock-up out of cardboard (Fig. 7). Many sketches and shapes were attempted, but in the end, I decided on a simple accessory consisting of two red plates and a black box on top to hold the main controls. This device is screwed to the tray. On the right side, a space was designed to house an acrylic plate for the circuitry (Fig. 8). The electronics cover was made of a nice perforated aluminum sheet. The structure holding the controls and the motor was made of aluminum metal profiles.
The potentiometer button was 3D printed in PLA by 3DDesign24 with a dxf design provided by Thingiverse (CC BY).

The tray lid was designed to hold a maximum of seven 1000 ml plastic bottles (e.g., Kaiser or JOBO bottles, Fig. 9). The position of the tank was another issue that was carefully considered. Basically there are two options: either the bottles are at the front of the tray (as in the JOBO processors) or at the back. With the experience gained with my simple manual processor (v2) and my workflow, I decided that it is more practical for me to have all the bottles for the solutions at the back. This means less effort during the different stages of film/paper development because there is no plan (or need) to have a lifting mechanism similar to the CPE-2. This decision makes the design simpler.


For the design of the different boards, I have used two open-source CAD programs, namely freeCAD and LibreCAD. The latter is much easier to use than the former but only for 2D drawing. Using LibreCAD I generated dxf files for the production of the plates. I selected 3 mm transparent polycarbonate plates for the circuit boards, black high-density polyethylene (3 mm) for the internal partitions and case covers, and 3 mm RAL 3020 PVC hard foam board for the tray cover and the side plates of the device. The final result can be seen in Fig. 10.

Materials and production price
Anyone interested can obtain the complete list of materials and unit costs, as well as detailed instructions for building the FPP-3. However, the total cost of the FPP-3 is much lower than that of a used CPE-2 on eBay. I have invested at least three months in planning and realization.
Building the FPP-3 was a great experience for me. I learned a lot! The construction was done in a period of three to four weeks (not full-time). The search for
suitable materials was, however, time-consuming.
First Test
The FPP-3 has now been tested with the following JOBO tanks: 2551, 2551 (new Multitank 5), 2830, and 2840. Ilford MGRC paper glossy (30×40 cm) was used for the 1st test (Fig. 11). The results were excellent.
The volume of chemicals caused me difficulties because the information from JOBO is sometimes contradictory. However, I found good information in these links (Classic-photo-supplies) and in John Tinsley’s book mentioned above.
The drums have to be accurately leveled (I leveled the inner side) and the coverage of the suggested minimum quantities. I provide at least 10% more than necessary to minimize errors.
As for the tested angular speeds (ω), good results have been obtained with 73 RPM average ω for the paper (reversing every 3 turns) and 60 RPM for the E6 chemistry. The water bath temperature is set to 39.8 C so that the solutions are at 38 C for color film. For paper and B&W, the water bath temperature is
set to 20 C.

Testing with the largest JOBO Drum (2850)
One of my original aims was to be able to make my own large prints, and if possible increase the efficiency of the process. To achieve this one needs a large JOBO drum like the 2850 (i.e. drums 2830+2870). The FPP3 was designed for this purpose since the largest drum that fits the CPE-2 (i.e. 2830+2820) is the drum 2840.
To test the device, I prepared two exposures on Ilford MGRC paper (glossy) 30×24 cm. I put them in the drum, added 200 ml developer, and let them run for 1 minute. Then 10 s with the stop solution and 1 min with the fixer. I set the average angular speed to 75 rpm. The results were very good as you can see in Fig. 12.
This experience was very pleasing. The ultimate goal was achieved. It was possible to develop large exposures in my improvised darkroom. This implies that the maximum size possible with my system is 40×50 cm. If I need larger (very exceptionally), I would have to send my scan to a professional lab like WhiteWall, as I have done a couple of times. For most of my prints, FPP-3 works!
The next challenge is to use FPP-3 to make color prints with 30×24 cm RA-4 paper. I will create a new blog entry to share my experiences.


The Logo
I decided to finish this blog with a picture of the logo I created for my device. I think this effort deserves this final step. The design is simple. It includes the name of the device and the name of its inventor. I used free LaTeX fonts and printed it on a transparent sticker with a laser printer. The result is quite pretty (Fig. 13).

Que genialidad!
Gran trabajo y excelente historia desde el concepto, pruebas, mejorías, y producto final! Me encantó.
Muchas gracias Pedro!