Apex Control Types

When I wrote my 8-part Apex Programming Tutorial series, all of the coding examples were applied to outputs where the Control Type was set to Advanced. Control Types are pre-set shortcuts to program an output for a specific device, allowing less experienced Apex users with a simple entry form to fill in the desired settings, and the Apex does the programming for you behind the scenes. The EB832 EnergyBar comes pre-programmed with each output set for specific Control Types, so you can just plug your lights into outputs 1 & 2, return pump in output 3, heater in output 4, etc. to get your system up and running quickly. However, these pre-programmed outputs can be changed to any Control Type you choose.

To set a Control Type, first click the gear icon on the Fusion dashboard for the output you want to configure:
Screen Shot 2020-07-18 at 11.57.02 AM.png


The Control Type can then be selected from the dropdown list on the Output Configuration screen:
Screen Shot 2020-07-18 at 11.58.51 AM.png


There are 12 Control Types to choose from:
  • Advanced
  • Always
  • ATO
  • Chiller
  • Feeder
  • Heater
  • Light
  • pH Control
  • ORP Control
  • Powerhead
  • Return Pump
  • Skimmer
When you select a Control Type, the screen will change to show you the settings specific to that device. After you fill in the settings and save it, you can change the Control Type to "Advanced" and the screen will change to show you the underlying program code. You can toggle back and forth between the pre-defined Control Type and Advanced. This is actually a good way to learn Apex programming because you can see how the code is changed when you alter the fill-in fields with different parameters, then toggle back to the Advanced view. However, if you manually modify the Advanced code and then toggle back to the specific Control Type, your manual changes will be lost. If you want to alter the automatically-generated program code, you must leave the Control Type set to Advanced.

Below are screenshots of each Control Type, and then the automatically-generated code when switching it to Advanced. In screens where Fallback is mentioned, Fallback is the setting applied if the output's module is disconnected from the Apex, or if the Apex is not communicating with the module (such as when rebooting). Also, the Log checkbox is useful if you want to review a historic record of each time an output is turned on or off. This can be viewed in the Output Log screen.

Control Type: Always
Always should be used any time you want the output to remain On or Off 24/7. This is good for devices that you never want to turn off, or if you have an unused output and always want it to be powered off so if you plug something in it doesn't accidentally power on before you're ready.
Screen Shot 2020-07-17 at 2.58.53 PM.png

Here is the generated code for Always:
Screen Shot 2020-07-17 at 2.59.11 PM.png


Control Type: ATO
ATO should be used if you're configuring a non-Neptune ATO system. (Do NOT use this control type if you have the Neptune ATK. Please follow the instructions in my ATK Tutorial instead.)
With this Control Type you specify the low water and high water switch ports, and how long to wait before turning on the pump. These are typically float switches attached to a Breakout Box, but could also be optical sensors attached to the FMM module.
Screen Shot 2020-07-18 at 10.29.36 AM.png

Here is the generated code for ATO:
Screen Shot 2020-07-18 at 10.29.55 AM.png


Control Type: Chiller
Chiller allows you to specify the high temperature to turn on your chiller, and the low temperature to turn it off. You also need to specify which temperature probe to use if you have more than one. This Control Type could also be used for a cooling fan rather than a refrigerated chiller.
Screen Shot 2020-07-17 at 3.00.39 PM.png

Here is the generated code for Chiller:
Screen Shot 2020-07-17 at 3.00.52 PM.png


Control Type: Feeder
Feeder is used to control the Neptune AFS automatic feeder. Of all the Control Types, this one is probably the most convenient because programming the AFS can be complicated. While this Control Type is convenient, it does not allow you to coordinate other devices such as pumps, skimmers, or powerheads to shut down during automated feedings. For this I wrote an entire tutorial topic on Apex Feed Cycles which covers how to automate all your devices during feeding.

For the Feeder, you specify the time of day for the first feeding, how many times the AFS drum should rotate per feeding, how many times to feed per day, and if more than one feeding per day how long to wait between feedings. The Feed Cycle option is to choose which Feed button can be used to manually trigger the feeder outside of the scheduled times.
Screen Shot 2020-07-17 at 3.02.02 PM.png

Here is the generated code for Feeder. Please see my tutorial on Apex Timers for details on the OSC and If Time commands.
Screen Shot 2020-07-17 at 3.02.21 PM.png


Control Type: Heater
Heater allows you to specify the low temperature to turn on your heater, and the high temperature to turn it off. You also need to specify which temperature probe to use if you have more than one.
Screen Shot 2020-07-17 at 3.03.00 PM.png

Here is the generated code for Heater:
Screen Shot 2020-07-17 at 3.03.16 PM.png


Control Type: Light
Light allows you to schedule the on and off times for a light, and a temperature to turn it off if the water gets too warm. You also need to specify which temperature probe to use if you have more than one. Hysteresis is the time (in MM:SS) to wait before turning the lights back on once the temperature drops below the limit.
Screen Shot 2020-07-18 at 10.31.02 AM.png

Here is the generated code for Light:
Screen Shot 2020-07-18 at 10.31.25 AM.png


Control Type: pH Control
pH Control allows you to turn on or turn off a device based on the pH probe reading. This is useful for controlling CO2 feed in calcium reactors, or to turn off dosing of certain additives that impact the pH of your water. You need to select your pH probe if you have more than one, the high pH reading, the low pH reading, and whether to turn on the device when pH is low or high.
Screen Shot 2020-07-17 at 3.07.44 PM.png

Here is the generated code for pH Control:
Screen Shot 2020-07-17 at 3.08.00 PM.png


Control Type: ORP Control
ORP Control allows you to turn on or turn off a device based on the ORP probe reading. This is typically used to control an ozone generator. You need to select your ORP probe if you have more than one, the high ORP reading, the low ORP reading, and whether to turn on the device when ORP is low or high.
Screen Shot 2020-07-17 at 3.05.09 PM.png

Here is the generated code for ORP Control:
Screen Shot 2020-07-17 at 3.05.31 PM.png


Control Type: Powerhead
Powerhead allows you to configure the output to turn on and off on a repeating timed cycle. This is typically only used for powerheads which do not have any variable speed control. The times are specified in MM:SS format. The Initial Off Time is typically used to offset the cycle from another powerhead to create an oscillating flow pattern. If you only have one powerhead, the Initial Off Time is of little value, but keep in mind the total amount of time the output is off will be the combination of the Initial Off Time and the Off Time. For example, if you want the powerhead on for 1 minute and off for 1 minute, but you are using the Initial Off Time, then split the 1 minute between the Initial Off Time field and the Off Time field, such as 0:30 and 0:30.

The Feed Timer option will turn off the output when the selected Feed button is manually pressed, and the Feed Timer Delay is the number of additional minutes to remain off after the Feed timer has expired. See my tutorial on Apex Feed Cycles for more details.
Screen Shot 2020-07-17 at 3.08.56 PM.png

Here is the generated code for Powerhead. Please see my tutorial on Apex Timers for details on the OSC command.
Screen Shot 2020-07-17 at 3.09.10 PM.png


Control Type: Return Pump
Return Pump is pretty self explanatory. The Feed Timer option will turn off the output when the selected Feed button is manually pressed, and the Feed Timer Delay is the number of additional minutes to remain off after the Feed timer has expired. See my tutorial on Apex Feed Cycles for more details.
Screen Shot 2020-07-17 at 3.09.31 PM.png

Here is the generated code for Return Pump:
Screen Shot 2020-07-17 at 3.09.43 PM.png


Control Type: Skimmer
Skimmer is also pretty self explanatory. The Feed Timer option will turn off the output when the selected Feed button is manually pressed, and the Feed Timer Delay is the number of additional minutes to remain off after the Feed timer has expired. See my tutorial on Apex Feed Cycles for more details.

The Defer Time is the number of minutes & seconds to wait before turning on the skimmer, typically to allow the water level in the sump to normalize if the return pump was also shut down. This is to prevent skimmer overflows.
Screen Shot 2020-07-17 at 3.10.12 PM.png

Here is the generated code for Skimmer:
Screen Shot 2020-07-17 at 3.10.24 PM.png


I hope this article gives you better understanding of how Control Types can be used, and also provides a starting point to get into more advanced Apex programming. Be sure to read the tutorial series linked a the top of this article to expand your Apex programming skills.

Happy reefing!
About author
SuncrestReef
John Halsey is a reefing hobbyist with a Red Sea Reefer XL 425 in his living room since 2018 and 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.

Latest reviews

Excellent Information, Thank you
Another great reference and explanation. Thank you for taking the time to organize this in one place. I have found all of your articles so far very helpful in learning how to setup my own Apex.
Very well done...nice way to show the programming steps by selecting the type then showing the "Advance" tab ...good learning tool for new Apex users!!

rick
  • Like
Reactions: SuncrestReef
Great explanations here, very helpful.
  • Like
Reactions: SuncrestReef

Article information

Author
SuncrestReef
Views
2,500
Reviews
4
Last update
Rating
4.88 star(s) 8 ratings

More in Aquarium Equipment

More from SuncrestReef

Deltec
Top