- Joined
- Oct 3, 2019
- Messages
- 720
- Reaction score
- 730
New Toggle Box in a nutshell:
- Top quality illuminated low profile buttons. Buttons are IP67 waterproof and dustproof.
- All-in-one design. Plugs in directly into Apex AquaBus, does not require additional module or a DIN-6 connector
- Daisy chaining to other Apex modules
- Powered via AquaBus. Does not require a separate power supply
Most of you know me for my reef gear repairs. But this post will be different, yet my best tradition to provide unique content
Those of you who use an Apex controller, are probably already aware that it has a port for 6 switch inputs. Many, including myself, use those inputs for a variety of float switches to indicate if a top off or a dosing container is empty. But they can also be used to manually signal your Apex to do something or stop doing it. So, you can have an actual physical button, which when pressed, turns off a pump or turns on a light, etc. This is where we get into the world of what is known in this hobby as “toggle boxes.”
These toggle boxes typically consist of up to 6 physical buttons or switches, which are wired to the 6 inputs switch port on the Apex head unit. Just mount it near your tank, then press a button to activate a feed cycle and shut off the flow pumps or do a water change and shut off the return without getting into the Apex fusion interface.
I really needed it for my new set up for all those reasons and I even tried some of the available toggle box options on the market today. However, I was still not happy with the end result.
First, I already had all of my inputs on the head unit taken up by the float switches (ATO, Cal/Alk/NO3 dosing containers, you name it. This means that before I could add a toggle box, I’d need yet another PM1 module, which would have to be mounted, taking up limited space and adding to the wiring mess.
Second, all available button switches were either momentary (turn off the moment you release it) or as a toggle switch, which I personally find less visually appealing.
Third, all available button switches looked a bit cheap, too small for my fingers and don’t illuminate when pressed.
So, I decided to build my own… the FixReef style!
I had to find the buttons I really liked. Large, beefy, illuminated and of very high quality. These are actually rated for high current switching and because of that have a strong mechanism inside. You get that satisfying click and resistance when you push it every time. They are also water resistant, come with a rubber seal so you can press them with your wet fingers and not worry about ruining the toggle box.
But where do I get the power to illuminate these buttons? After all, you can’t get any reasonable power over the Apex 6 switch port wires. Some previously suggested using a dedicated power supply for the toggle box… Are you kidding me? Another power supply? More outlets required? More wire hell? Not going to happen!
What if I use the available 12v of the AquaBus power? And while at it, eliminate the need for an extra PM1 module? Ah, now we are getting to the heart of this not your typical toggle box.
Some of you may already be aware that the Apex AquaBus protocol has been documented out there. There is a way to have something like a simple Arduino to emulate some basic Apex modules, such as an EB8 or… a PM1. So, I figured I’ll grab an Arduino, which is conveniently just the right size for a toggle box footprint and add the switch buttons to it somehow.
Just having an Arduino with a ball of tangled jumper wires is not very appealing to me. So, I built a custom Arduino shield.
This shield would house all the electronics needed to communicate with the Apex gear over the AquaBus, but it would also have all the switch buttons right there on the shield board. Zero wires, zero clutter inside the box. Simple design means fewer things that could break or fail on me. Of course, I had to deal with properly protecting the Arduino and implementing the button illumination circuit correctly. And in the end, it all worked out somehow.
Finally, I designed a custom 3D printed enclosure for the box. It’s printed with PETG for durability in silver grey to match my other Apex gear on the board.
On the outside, you get your standard two USB/AquaBus ports. One – to connect to your existing Apex module. Another – to daisy chain any other Apex modules to it. The port layout is similar to the Apex feeder instead of a more typical stacked dual USB port due to space constrains.
On the inside is the sandwich of the Arduino board and the custom shield with the buttons on it. In this implementation, I chose to have the bottom row of “latching” switch buttons. They stay on until pressed again to release. The top row consists of “momentary switch buttons. They only stay on for as long as you press them. This gives me a variety of options between just signaling my Apex to turn on something off for a predefined length of time or until I press the button again. They also have different LED colors so that I remember what is what.
So, there you have it. A custom toggle switch box with high quality illuminated button switches which plugs into any available AquaBus port and does not require any additional wires for power.
Using the box is fairly straightforward. Just plug it into your apex with a supplied USB cable. It will show up as a PM1 module and will have PM1 switches available. Then in Fusion or over your local Apex head unit connection, program your outlets or any other equipment to act when a switch button is pressed.
For example, I would like to use my latching switch button #4 called
Code:
SWX2_4
Code:
If SWX2_4 CLOSED Then OFF
Code:
If SWX2_4 CLOSED Then ON
Momentary switch buttons can be used to trigger a function which times out after a predefined period of time. For example, I can activate a feed mode by shutting down all power heads, lights, etc.
This can be accomplished with first creating a virtual outlet and then programming each individual equipment to react to the virtual outlet.
For example, I would like to use my momentary switch button #1 called
Code:
SWX2_1
Code:
FeedMode
Code:
Fallback OFF
Set OFF
If SWX2_1 CLOSED Then ON
Defer 010:00 Then OFF
Then for each of my power heads, I add
Code:
If Output FeedMode = ON Then OFF
This can be replicated for any number of devices. Also, you can have a combination of different behaviors based on the buttons pressed. For example, the same power head can be turned off with the latching button #4 until the water change is done and with the momentary button #1 for 10 minutes in feed mode.
I've been running these on my system for a while now and they are extremely handy for basic daily tasks. I wish I did this years ago.
I have made a few extra boards and can print enclosures on demand. If you would like one of these for yourself, I will make them available to purchase, just drop me a note.
Currently I have a limited number of switch buttons and button LED colors in stock. I have GREEN latching buttons on the bottom row and BLUE momentary buttons on the top layer. I also have BLUE latching buttons on the bottom row and RED momentary buttons on the top layer. I can get more colors if there is demand.
Last edited: