The JOBO CPE2 heats its water bath from one spot and relies on convection to spread the heat. When I measured my machine with five probes, the readings at different places in the bath stayed about 2.3 °C apart on average — some positions were steady, but at different temperatures, and some were still creeping up after an hour.

The obvious fix is to move the water. This upgrade puts a small 24 V circulation pump on the bottom of the bath, in a printed TPU holder, plus printed clips to keep its silicone tubes in place. Below is what I used, and what the temperature logs looked like before and after.

The video shows the whole installation, including the search for a suitable power supply.

The pump: Rotek A01VP, 24 V

I used a Rotek WPDC-6.7L-10M-24-VP (A01VP housing; the order matches Rotek article PUM409). It is a compact brushless DC centrifugal pump rated for continuous duty.

ParameterManufacturer value
Supply24 V DC (working range 18–26 V)
Maximum flow / maximum head6.7 L/min / 10 m water column
Current at maximum flow1.11 A at 24 V
Inlet / outlet barb13.4 mm / 7 mm outside diameter
Medium temperature≤ 40 °C submerged, ≤ 95 °C mounted outside
Wetted materialsPolypropylene, PEEK bearing, silicone seal
Noise≤ 30 dB(A) at 1 m

Source: Rotek A01VP datasheet, page 1. Maximum flow and maximum head are the two ends of the pump curve, not one operating point; the real flow in my bath was not measured.

Things to keep in mind:

  • It is not self-priming. The inlet must stay under water; do not run it dry.
  • 40 °C is the limit when submerged. That is fine for C-41 and E-6 baths, but leaves no margin above that. Mounted outside the tank, the pump tolerates much hotter water.
  • Use a separate 24 V supply rated for at least 1.5 A, and keep its connections dry and away from the bath. Mind the polarity — the red lead is positive.
  • A 24 V pump keeps mains voltage away from the water.

TPU pump holder

The pump sits under water on the bottom of the bath, in a TPU 95A “sock”. The sock’s flat bottom can be glued down, or bolted through its two M4 mounting holes. The pump’s mounting plate is pushed into the sock and stays there — the soft TPU is also meant to keep the pump’s vibration away from the tank.

The pump model and the holder are on Ko-fi:

Printed tube clips

Silicone tubes in a warm bath like to float and wander. The clips hold them against the tank wall. Each clip has two parts:

  • a rigid PETG holder, glued to the wall;
  • a flexible TPU clip that slides into the holder and grips the tube.

TPU tube clip seated in its PETG holder

A TPU clip glued directly to the wall does not stay on: TPU bonds poorly, and the clip’s arms peel the glue every time a tube is pushed in. In the two-part design, the clip’s base is captured in an undercut in the holder, and the holder’s walls carry the spreading force of the arms, so the glue joint only sees PETG.

Part9 mm tube12 mm tubePrint
TPU clip20.2 × 14.4 × 15 mm23.2 × 17.4 × 15 mmTPU 95A, standing on its C-shaped end, ≈ 25–30 min
PETG holder26.8 × 18.3 mm footprint29.8 × 18.3 mm footprintPETG, standing on the end stop, ≈ 20 min

No supports needed. The model is driven by one parameter — the tube’s outside diameter — and was tested from 9 to 16 mm. Print one pair as a fit test before gluing; the clip should slide in without force. Use an adhesive that bonds PETG to the tank material at bath temperature.

Before and after: what the probes recorded

I logged the machine again on 11 and 12 October 2026, with the pump running continuously: one heat-up from room temperature and a separate one-hour run near working temperature. The “before” data is the 25 September test without a pump.

This is not a matched before/after test. The probe positions, starting temperatures and run lengths differ, and the probes were not calibrated against each other. Read the comparison as two snapshots of the same machine, not as a precise measure of what the pump did.

Heating speed: about the same

Bath and bottle heating before and after installing the pump

The pump does not add heat, and the heat-up rate barely changed. Over the 28–35 °C range, the five probes warmed at 0.35–0.42 °C/min without the pump and 0.35–0.36 °C/min with it. Coming from about 23.5 °C, every probe reached 39 °C after 42–52 minutes.

The difference is in how evenly they arrived. Without the pump, one bath probe above the heater never even reached 38 °C in 55 minutes. With the pump, all five rates were within 0.011 °C/min of each other and the traces ran almost parallel.

Five-channel heating ramp with the Rotek pump running

Position (with pump)Rate, 28–35 °CFirst reading ≥ 39 °C
S1 — bath near heater0.349 °C/min41.9 min
S2 — bottle0.357 °C/min48.9 min
S3 — another bottle0.349 °C/min44.2 min
S4 — far end of bath0.353 °C/min51.8 min
S5 — under the drum0.346 °C/min44.6 min

Holding temperature: bottles together, but the thermostat shows

Bath and bottle stability before and after installing the pump

This is the interesting part. Without the pump, each probe was fairly steady, but the probes disagreed with each other by up to 2.5 °C. With the pump, the three bottles stayed close to one another — 0.15 °C apart on average — but the whole bath now visibly rises and falls.

Five-channel one-hour stability record with the Rotek pump running

Position (with pump, 62 min)Mean ± SDRange
S1 — bath start38.51 ± 0.61 °C37.56–39.81 °C
S2 — bottle 138.41 ± 0.24 °C37.94–38.81 °C
S3 — bottle 238.41 ± 0.25 °C37.88–38.81 °C
S4 — bottle 338.30 ± 0.19 °C37.88–38.63 °C
S5 — bath end37.93 ± 0.52 °C37.19–38.94 °C

Three warming pulses appear in the hour, roughly every 23 minutes: the bath near the heater swings by about 2 °C, the bottles by about 0.9 °C. The heater’s on/off state was not logged, so I can’t prove it from these traces alone, but the shape looks like the CPE2’s own thermostat switching: with the water mixed, its sensor now sees the average bath rather than a warm or cold pocket, and its hysteresis shows up in every bottle at once. The bath end (S5) still read about 0.6 °C below the bath start (S1) the whole time.

What this means in practice

  • The pump evens out the bath, not the control. Bottles at different positions now get nearly the same temperature, which is the main point of the upgrade.
  • The stock thermostat becomes the weak link. A swing of ±0.4 °C in the bottles is outside the ±0.15 °C that Kodak specifies for C-41 developer. The next step is a better temperature controller.
  • Measure in a bottle, not in the bath. The bath probes swung more than twice as much as the bottles; the liquid’s own thermal mass smooths the cycles. Check readiness with a thermometer in the chemistry itself, as JOBO’s manual advises.

The full analysis, raw logger files and the earlier no-pump test are in the CPE2 temperature article.

What’s next

  • A laminar shower bar for the 1500 drum: a printed bar fed by the same pump that pours warm bath water over the drum in calm, separate streams. It is designed but not yet print-tested.
  • A matched test: the same probe positions with the pump on and off, with calibrated probes and the heater state logged.

Not affiliated with JOBO or Rotek.