Dosing Pumps (6 channels)

Reading time: ~15 minutes ยท Execution time: ~10 minutes per channel (calibration + setup) ยท Audience: reef aquarists who supplement trace elements, Balling, Kalkwasser, or other programmed liquid solutions

๐Ÿ”ต Advanced Guide โ€” not part of the 01-08 onboarding path. Tackle this if you have a JoyReef dosing pump (or compatible controller flashed with Doser firmware) installed and want to automate the supplementation of liquid solutions.


1. What you are about to do

A peristaltic dosing pump is a small device with N pumps (typically 6 channels in the JoyReef system) that dispense very precise volumes of liquid into the tank, automatically, in doses programmed over time. They are the standard tool for:

The JoyReef dosing pump has 6 independent channels: each channel has its own pump, tube, and solution container. The user configures each channel separately.

In this guide, you will configure:

โš ๏ธ Dosing pumps can cause damage if misconfigured: 10ml of Kalkwasser is beneficial, 100ml can cause a pH crash. Always calibrate the pumps before programming real doses, and start with conservative quantities.


2. What you need

Doser Hardware

JoyReef Portal

Balling Solutions (example for those starting from scratch)

If you want to use the dosing pump for the Balling method, you need 3 solutions:

Solution Contains Effect in Tank
Balling A Calcium Chloride (CaClโ‚‚) Increases calcium
Balling B Sodium Bicarbonate (NaHCOโ‚ƒ) Increases alkalinity/KH
Balling C Sodium Chloride (NaCl) โ€” pure salt Balances excess ions

Standard proportions and concentrations can be found in online calculators (search for "Balling light calculator"). You'll need 3 channels of the dosing pump (one per solution), and sometimes a 4th for Mg.


3. How the dosing pump works

Peristaltic Pumps

A peristaltic pump is a small motor with a rotor that squeezes a tube in sequence, "squeezing" the liquid forward. Advantages:

Limitation: the flow rate varies slightly over time (tube wear). This is why you need to recalibrate every 2-3 months.

Calibration (ml/60s)

้ƒจใฎๅ˜ไฝ for dosing pump precision is milliliters dispensed in 60 seconds. Example: your pump, with a fixed run, dispenses 22 ml in 60 seconds โ†’ calibration = 22 ml/60s.

JoyReef uses this value to calculate how long to keep the pump on to dose the desired amount. Example: you want to dose 11 ml โ†’ JoyReef turns on the pump for 30 seconds (= 60s ร— 11/22).

Without calibration, the system does not know how much liquid is coming out. You must calibrate each channel individually (pumps are never 100% identical).

Automatic Programming

Once calibrated and with the daily amount decided (e.g., 30 ml/day of Balling A), JoyReef automatically distributes that volume into N doses spread between the "first dose" and "last dose" times.

Example: 30 ml/day, 6 doses, 08:00-20:00 window โ†’ JoyReef performs 6 doses of 5 ml each approximately every 2 hours between 08:00 and 20:00.

Why distribute: dosing 30 ml all at once makes parameters rise too quickly (shock); distributing in small doses keeps levels stable throughout the day.

Container Monitoring

For each channel, JoyReef tracks how much liquid remains in the container. When you configure it, you set the total capacity (e.g., 2000 ml) and the current level (e.g., 1800 ml after a refill). Each dose performed is automatically subtracted.

When the level drops below a threshold (default 10%), the portal shows a "Low" alert.

๐Ÿ’ก There is no physical level sensor: the system "keeps count." You must manually update the level after each refill by clicking "Mark Full" or "Set Level."


4. Step 1 โ€” Configure the dosing device (channels and containers)

Before using the actual dosing page, you must declare to the portal how many channels you will use and the container capacity.

Open the device edit page

  1. Go to Config โ†’ Devices from the left menu
  2. Find your dosing pump in the list (it will have a name like "Doser - Main Tank")
  3. Click on it โ†’ the device edit page opens
  4. Scroll down to the "Doser" section

You will see two sub-sections:

"Channels" Section

For each pump (1-6) there is an "enabled" checkbox. Check only the pumps you actually use. If you use only Balling (3 solutions), check only pumps 1, 2, 3. Unchecked pumps will not appear in the rest of the portal.

"Containers" Section

For each enabled pump, you find 3 fields:

When finished, click "Save Configuration". Green confirmation banner.

๐Ÿ“ท PLACEHOLDER-DOSER-DEVICE-CONFIG

๐Ÿ–ผ๏ธ Image to insert here (Dosing device configuration): screenshot of the /devices/{id}/edit page, "Doser" section, with 3 channels enabled (Balling A/B/C) and containers filled in (capacity 2000, quantity 1800).


5. Step 2 โ€” Open the dosing pump page

  1. In the left menu, click "Dosing Pumps" (pump icon)
  2. You see the list of dosing pumps on the account, with Online/Offline status and assigned tank
  3. Click on the dosing pump โ†’ the "Doser: [name]" page opens

On the page, you see a header with MQTT status/online/last update, and a large "Pump" section with a "Channel" selector.

You will work on ONE CHANNEL AT A TIME: choose pump 1 from the selector, configure it completely (calibration + container + manual test dose + schedule), then move to pump 2, and so on.

๐Ÿ“ท PLACEHOLDER-DOSER-PAGE-EMPTY

๐Ÿ–ผ๏ธ Image to insert here (Empty dosing page): screenshot of the doser page at first access, with the channel selector, and empty Calibration/Container/Manual Dose/Schedule sections.


6. Step 3 โ€” Calibrate each pump (essential)

Do not skip calibration. An uncalibrated pump uses the default value (~25 ml/60s), which can deviate by 30-40% from the actual flow rate of your specific pump.

What you need for calibration

๐Ÿ’ก Tip: calibrate with the same solution you will be dosing. Viscous solutions (Kalkwasser, some trace elements) have a slightly different flow rate compared to water.

Procedure

In the "Calibration" section of the page:

  1. Insert the pump tube into the small empty cup (or directly into the measuring cup)
  2. Prepare the solution in the container as you will use it (not dry)
  3. Click "Start 60s"
  4. The pump starts. Wait ~70 seconds (the system includes a small margin)
  5. The pump stops on its own
  6. Precisely measure the ml collected in the measuring cup
  7. Enter the measured value in the "Measured ml (60s)" field
  8. Click "Save Calibration"

The value is sent to the device. The section now shows updated "Current: XX ml/60s".

When to repeat

๐Ÿ“ท PLACEHOLDER-DOSER-CALIBRATION

๐Ÿ–ผ๏ธ Image to insert here (Calibration in progress): screenshot of the Calibration section with "Measured ml (60s)" field = 22, "Save Calibration" button ready.


7. Step 4 โ€” Configure current container level

In the "Container" section, you see:

After doing the first calibration (which consumed some liquid), or after each refill, update the current level:

๐Ÿ’ก Refill convenience: every time you top up the container, open the dosing pump page, go to the correct channel, click "Mark Full". 30 seconds a week saves you from the "why did the dose stop?" mystery.


8. Step 5 โ€” Perform a manual test dose

Before scheduling, perform a manual dose to verify end-to-end.

In the "Manual Dose" section:

  1. Enter a small, safe amount in the "ml to dose" field (e.g., 2 or 5)
  2. Click "Dose Now"
  3. You see a banner: "Command sent. Waiting for confirmation from the doserโ€ฆ"
  4. After a few seconds (= time proportional to ml, based on calibration), the pump physically starts
  5. You see the liquid rise in the tube and reach the tank
  6. Green banner: "Confirmed: pump X dose Y ml (Z s)"

If you see this sequence, the pump works end-to-end. โœ…

โš ๏ธ If it's the first time you use that channel, perform a longer "priming dose" (e.g., 10-20 ml) to fill the tube from the container to the tank. The tube is filled once and for all; subsequent doses will all be effective.

โš ๏ธ Test with safe solutions: for the FIRST test, consider leaving the tube in the cup, not in the tank, until you are sure it works as expected.

If it doesn't work


9. Step 6 โ€” Program automatic doses

"Automatic Programming" section.

Step 1: activate

ใ‚’ใ‚ฏใƒชใƒƒใ‚ฏ the "Active" toggle of the section โ†’ it turns green.

Step 2: set the daily quantity

In the "Daily Quantity (ml/day)" field, enter how many ml of solution you want to dose each day (e.g., 30 for Balling A in a 200L tank with medium consumption).

๐Ÿ’ก How to calculate the daily quantity? For Balling: use an online Balling calculator entering the actual net volume of the tank, current and target KH/Ca, and it will give you ml/day of each solution. For trace elements: follow the manufacturer's instructions (usually X ml/100L/day).

Step 3: set the number of doses

In the "Doses per Day (1โ€“24)" field, choose how many doses to spread the total into:

Below you see the automatic calculation: "Per dose: X ml".

Step 4: set the time window

JoyReef calculates the intermediate times automatically, distributing them uniformly.

๐Ÿ’ก When to dose? For Balling: during daylight hours (e.g., 08-20), so plants/corals immediately consume what has been dosed. For Kalkwasser in the ATO line: at night (when tank pH is lowest, Kalk raises it). For trace elements: indifferent.

Step 5: choose the days

Under "Days" there are 7 buttons (Mon-Sun). Select the days to perform the doses:

Step 6: save

Click "Save Schedule". Waiting banner, then confirmation "Schedule saved and confirmed by the device."

๐Ÿ“ท PLACEHOLDER-DOSER-SCHEDULE

๐Ÿ–ผ๏ธ Image to insert here (Filled schedule): screenshot of the "Automatic Programming" section with 30 ml/day, 6 doses, 08:00-20:00, all days selected, calculation "Per dose: 5 ml" visible.

Verify the "Dose plan"

In the "Pump" โ†’ "Scheduled Doses" section, you should now see the list of scheduled doses for the next day. Check that the times make sense.


10. You have more than one channel to configure

Repeat sections 6 through 9 for each channel you use. Each pump is independent: each has its own calibration, container, and doses.

Practical tip:


11. If something goes wrong

"The doser did not confirm" after Dose Now

The pump rotates but no liquid comes out

Dosed volume doesn't match expected (e.g., doses 5 ml, 3 ml come out)

I see scheduled doses but nothing starts

Container "Low" or "empty" but it's full

The level is only "estimated". After each refill you must update it manually (sec. 7) or click "Mark Full". The container status won't self-correct.

Pump always "busy"

A previous dose has not finished (or was not confirmed). Wait a few minutes. If it persists beyond 5 minutes, restart the doser.

I want to stop a dose in progress

Temporarily turn off the doser (power) or deactivate the channel from Edit Device. There is no granular "stop dose" in the current UI.


12. Next step

You have your pumps configured, calibrated, and maybe your first cocktail of solutions dosed daily. For the next few weeks:

If your dosing pump has 3 free channels, consider automatic KH titration (automatically measure KH using a sample pump, a reagent pump, and a drain pump, plus a pH probe): it's the next guide.

โžก๏ธ Guide โ€” Automatic KH Titration (coming soon)

๐Ÿ’ก Tip for refill: always prepare 2 containers for the solution you use most (e.g., Balling A): one in use, one ready reserve. When the first empties, just swap the tube, mark full in the portal, and you have time to prepare a new one without rush.