For Inspiration: A beautiful 15-liter reef tank.

This photo is from the Reef2Reef archives courtesy of @Fletch10_uk ©2019, All Rights Reserved.

Note From the Editor:

This article is Part 3 of a series.

Here is a quick Table of Contents for all the articles:

Part 1 Introduction
Part 2 Timers
Part 3 Automatic Top-Off Kit (ATK)
Part 4 Power Monitoring
Part 5 Virtual Outputs
Part 6 Alarms
Part 7 Feed Cycles
Part 8 Lunar Schedule and Lighting Profiles (Conclusion)

This week Neptune announced the new ATK Version 2. The information and troubleshooting steps in this article apply to both the original ATK and Version 2.

All of the articles in this series by the same author were originally part of several presentations made to a local aquarium club on programming your Neptune Apex Controller. The article is reprinted with permission from the author.

Because this topic will be of great interest to some readers but no interest to others who have not automated their systems, R2R will run these programming articles every Friday until we come to the end of the series.

Photos, images, and diagrams included in this article below are all courtesy of the author, @SuncrestReef ©2019, All Rights Reserved.


ATK Programming and Troubleshooting

The ATK (Automatic Top-off Kit) is Neptune’s integrated ATO solution for Apex environments. It is sold as a bundled package of components that can be plugged in and quickly programmed through a task wizard in Fusion.

However, as I participate in Neptune’s Community Forums and the Neptune Facebook group, I have seen many people reporting problems, frustrations, complaints, and general confusion over the ATK setup or operation. Other than the lack of Trident availability, it seems to be the 2nd most complained-about product Neptune makes.

I have personally had no problems with my ATK over the past year, though it did take some time to figure it out and discover some tricks to make it more reliable and to customize how I use it. I hope this tutorial will give you a jump start to skip over the initial problems most people experience.

Here is what’s included with the ATK:


The basic operation of the ATK is to tell the PMUP (Practical Multi-purpose Utility Pump…only Neptune would create an acronym that spelled backwards describes the actual device) when to turn on or turn off based on the water-level optical sensor. As a failsafe, a second optical sensor is mounted just above the first one in case the first one fails. A float valve acts as another failsafe in case both optical sensors fail, and lastly there is a built-in timer that acts as a final failsafe to turn off the pump if it runs too long.

While Neptune’s documentation walks you through the ATK setup, they don’t really provide a lot of information about the resulting programming created by the Fusion ATK Setup task. This tutorial will explain each line of code, how to troubleshoot the ATK, and how to modify and enhance the programming for additional features.

Before running the ATK setup, I highly recommend renaming your FMM module and each of the optical sensors (and any other sensors you might add to the remaining two ports on the FMM) so when you run the setup task, the names of modules and sensors presented to you for selection are obvious.

After running the Fusion ATK setup task, the output connected to the PMUP contains this programming: (the names of your optical switches may not match my example).

Fallback OFF
When On > 005:00 Then OFF
Defer 000:10 Then ON
Defer 000:04 Then OFF
Min Time 060:00 Then OFF

Let’s walk through each line:
  • Fallback OFF — instructs the Apex to turn off this output if the Apex ever gets disconnected from the FMM. This could also apply if the Apex locks up and becomes unresponsive (which rarely happens). This just basically means don’t run the program if the Apex unit isn’t in control of the situation.
  • Set OFF — This sets up the output’s register to default to OFF if no other conditions are met.
  • If ATK_LO OPEN Then ON — ATK_LO is the lower optical sensor plugged into port 1 of the FMM. This is the primary sensor that should do all the work under normal circumstances. If the water is lower than this sensor, it will report OPEN so the pump should be turned On. If the water level is even with the center of the sensor, or if the sensor is completely submerged, it will report CLOSED so this line of code would evaluate as False.
  • If ATK_HI CLOSED Then OFF — ATK_HI is the upper optical sensor plugged into port 2 of the FMM. Like the ATK_LO sensor, if will report OPEN if it’s above the water level, and CLOSED if it’s level or submerged in water. This would turn off the pump if the lower sensor failed to do its job.
  • When On > 005:00 Then OFF — As described in the previous tutorial, the When command is a failsafe that will move the ATK PMUP output sider from AUTO to OFF on the dashboard. This will prevent the ATK from running again until you manually move the slider back to AUTO. This typically represents an error condition you should investigate to determine why the pump ran for too long. This will be discussed in the next section.
  • Defer 000:10 Then ON — Also described in yesterday’s tutorial, the Defer command causes a delay before turning on the pump until the water level has been detected as continuously low for at least 10 seconds before turning on the pump. This avoids rapid on/off fluctuations caused by water ripples triggering the optical sensors.
  • Defer 000:04 Then OFF — Same as above, but wait for 4 seconds once the water level has filled sufficiently before turning off the pump.
  • Min Time 060:00 Then OFF — Also described in the previous tutorial, the Min Time command forces the ATK to wait at least 60 minutes before allowing the pump to turn on again.
Here’s an illustration of the ATK when the water level is normal:


As water evaporates, the lower sensor reports OPEN and triggers the pump to turn on. Once the water level returns to normal, the lower sensor will report CLOSED and the pump should turn off:


If the lower sensor fails for some reason and the water continues to fill up, the upper sensor will report CLOSED. This should cause the pump to turn off:


If both the lower sensor and the upper sensor both fail, the float valve will pinch the tubing to stop the water flow:


While this should prevent a flood in your house, it will not turn off the pump since this is a simple mechanical valve and does not communicate with the Apex. In this situation, the pump will continue to run until the When timer expires, then the pump is turned off and the ATK tile itself is changed from AUTO to OFF:


You should also receive an alert from Fusion for this error condition.


If your ATK isn’t working as expected, here are some basic troubleshooting tips:

1. Make sure the PMUP output tile is set to AUTO on your dashboard. It's amazing how many people forget this one basic principle of Apex operation!


2. Manually move the PMUP slider to the ON position to confirm the PMUP powers on and pumps water. If it doesn't move any water, verify the 24v power adapter is firmly plugged in to the FMM and that it has power. Also confirm the PMUP is fully submerged in the ATO reservoir, and that the tubing is not kinked or blocked. Remember to move the slider back to the AUTO position before continuing to the next steps.

3. For testing purposes, delete the Min Time 060:00 Then OFF, or change it to 000:01. This will allow you to perform testing immediately without waiting an hour in between tests. After testing, remember to add that line back to the programming since it’s there as a safeguard.

4. There’s a delay in updates displayed on the Fusion dashboard screen. To see near immediate changes in switch and output states, use the http://apex.local interface rather than Fusion.

5. Ensure your optical sensor plugs are firmly seated in the FMM sockets. You really need to push them hard until they “click” into place.

6. Ensure your FMM module is correctly identifying the optical sensors. Go into the FMM module settings, click Configure, then confirm outputs 1 and 2 are both detected as Optical Sensors.


7. Wipe off your optical sensors if they are dirty.

8. When you’re testing, dip the lower sensor in the water and verify that the tile on your dashboard changes from Open to Closed:


9. If it doesn’t, then either the sensor is defective, not fully plugged in, in the wrong port, or not configured as an optical sensor. Do the same test with the upper sensor.

10. If you submerge the lower sensor, but the upper sensor on the dashboard changes state, then your wires are in the wrong ports of the FMM. I’ve heard a couple people say the “1” and “2” labels were mixed up during manufacturing.

11. Remember that the Defer statements cause a delay before turning the pump on (for 10 seconds) or (off for 4 seconds). For testing purposes, you can lower the Defer timers, or delete them. Just remember to set them back to the normal values after testing is completed.

12. Enable logging on the PMUP output. This allows you to review its operation later, or to remotely check in on its activity.


Neptune also has a troubleshooting section on their web site:

Customizing your ATK programming

The standard programming created by the Fusion ATK Setup task is fine for most people, but there are a lot of extra features you can add by customizing your programming. I have made the following changes to my ATK programming:
  • Added an additional optical sensor named FW_LOW inside my 75-gallon RO/DI storage tank to turn off the ATK if the water level is too low.
  • Added a virtual output named Maintenance to disable the ATK while I’m conducting maintenance. I’ll cover virtual outputs in another tutorial.
  • Lowered the When command timer from five (5) minutes down to three (3) minutes. In my sump, the ATK should never need to run for more than about 1-2 minutes, so three would be abnormal.
  • Lowered the Min Time command timer from 60 minutes down to 30 minutes.
Here is my customized ATK_PMUP output code:

Fallback OFF
If Output Maintenance = ON Then OFF
When On > 003:00 Then OFF
Defer 000:10 Then ON
Defer 000:04 Then OFF
Min Time 030:00 Then OFF

That's all for this installment. Check back next time for a tutorial on Power Monitoring!


We encourage all our readers to join the Reef2Reef forum. It’s easy to register, free, and reefkeeping is much easier and more fun in a community of fellow aquarists. We pride ourselves on a warm and family-friendly forum where everyone is welcome. You will also find lots of contests and giveaways with our sponsors.


Author Profile: @SuncrestReef

John Halsey is a reefing hobbyist who keeps a Red Sea Reefer XL 425 in his living room. He is new to reefing with just over one year of experience, but has been successful in keeping a healthy mixed reef by following best practices learned here on R2R as well as actively participating in his local aquarist club--PNWMAS--in Portland, Oregon. John retired from his 30-year career in IT support, and put that technical expertise to good use by automating much of his aquarium equipment with an extensive Neptune Apex system.