SimACo – controller created for freshwater aquariums. It was designed to make aquarium owner’s life easier. I did not want to overload controller with not very useful functions like camera to watch your aquarium fish in real time. The implementation of really useful functions allowed me to make SimACo relatively cheap and simple. That is why i called it SimACo – Simple Aquarium Controller.
If you want to buy it, go here.
The heart of controller is Microchip PIC18 series microcontroller. I am working on SimACo several years, this project is the biggest of all projects i ever made. So much work has been done until now. Now this project is finally completed and tested but new functions are constantly added. I removed all bugs i could find.
Now i will describe how controller can be useful for aquarium hobbyist like me.
Controller can do many repetitive aquarium maintenance jobs:
- Control LED lighting, including full dimming control.
- Control various high voltage devices, like water filter, air pump, CO2 valves, aquarium fluorescent or metal halide lights etc.
- It can automatically fertilize aquarium with liquid fertilizers using peristaltic pumps.
- Control the fan – designed to cool aquarium water in a hot summer days, speed can be adjusted automatically according to the aquarium temperature.
- Control the heater – heater can be turned off/on automatically according to the aquarium temperature.
- Aquarium water temperature can be measured and displayed with temperature sensor. System can also function and without the sensor, but in this case heater control, automatic fan speed control and temperature measurement functions will not work.
- Auto top-off function: aquarium can be refilled with water automatically from the reservoir if aquarium water evaporates.
- Also there is inbuilt alarm system: you will know when water temperature is too high or too low or liquid fertilizers goes to the end.
- All LED’s, devices, fan, dosing pumps channels are controlled separately, they all can be controlled automatically or manually.
- SimACo is controlled through WiFi – you can connect to your aquarium controller from any place of the world where is internet connection
- All main controller settings are automatically saved to non-volatile memory so there is no need to restore manually every setting after battery replacement.
- User can change LCD backlight brightness according the time of the day.
- Big feature is bootloader. Bootloader allows to update microcontroller program (firmware) through WiFi using Angry Fish application, so the special programmer is not needed.
SimACo main board has such channels (physical outputs to the controlled devices):
- Four channels for LED lighting control, named LED1-LED4;
- Four channels for 110V-230V devices control, named DEVICE1-DEVICE4;
- Four channels for peristaltic pumps control, named PUMP1-PUMP4;
- One channel for fan control, named FAN;
- One channel for temperature sensor connection, named SENSOR.
SimACo auto top-off board has such channels (physical outputs to the controlled devices):
- Two channels for float sensors, named RESERVOIR SENSOR and AQUARIUM SENSOR;
- One channel for water pump, named PUMP (in the auto top-off board).
SimACo has four fabric made boards: main board, WiFi connection board, buttons board and auto top-off board. Also other parts are needed: 12V power supply, high voltage supply cable from the mains, temperature sensor, 2×16 LCD display module, two float switches, dosing and auto top-off pump, USB cable and four flat cables with connectors. Main board is like motherboard in PC: all other parts are connected to it. Digital temperature sensor is based on Dallas semiconductor chip. LCD, buttons board and auto top-off board connects to the main board with flat cables. WiFi board is soldered directly into the main board. Here you can see all four boards separately:
|Main board v.1.0|
|WiFi board v1.0|
|Buttons board v.1.0|
|Auto top-off board v.1.0|
SimACo is controlled in two ways: through PC or using 5 push-buttons in the controller keypad. Using pushbuttons you will have access to the most frequently used settings. Full access to the all functions user can have through PC with Windows 7 or Windows 10 operating system. For first-time setup USB cable is needed to connect SimACo with PC. But for everyday usage SimACo connects to PC wirelessly through a WiFi module and no additional cables to connect with the computer are needed. So the PC, running Windows OS, is required. PC must have working WiFi module. If your PC does not have WiFi module, you can buy WiFi adapter. If you want to control your aquarium controller from anywhere you must have a router. With SimACo comes “Angry Fish” application designed to control all settings and functions.
Here you can see Angry Fish v.1.4 aquarium LED lighting control window:
Several functions and settings can be accessed with 5 push-buttons. Information is displayed in the 16×2 light crystal display. You can edit settings with pushbuttons scrolling through the menu and editing required parameter. There is also implemented “Fast Control” function: with one long press on buttons UP, DOWN, SELECT or ENTER you can quickly activate selected action. These actions can be: showing desired menu on LCD or changing LED, DEVICE or FAN channels modes.
When power cable is removed, controller will keep counting time using internal 3V battery.
Now about each function separately:
In nowadays more and more aquariums have LED lighting – lighting with light emitting diodes. LEDs help to reduce current consumption, this reduces your bills for electricity. But there are more useful aspects of LEDs. With diodes you can far better select the spectrum of light than with fluorescent, incandescent or metal halide lamps. Aquarium plants mostly needs blue and red light. So aquarium owner can mount in to the aquarium hood white, red and blue LEDs. White LEDs will be for the general aquarium appearance, blue and red LEDs will be useful for the plants. And here comes one more good property of LED lighting: they can be dimmed. It means that LED brightness can be adjusted from 0 to 100 percents. With dimming you can achieve practically unlimited lighting possibilities. You can reduce or increase each color’s brightness and that way achieve more different colors. SimACo for that purpose has four separate channels. So four chains of LEDs with different colors can be connected to SimACo. With SimACo in Manual mode you can adjust each color’s brightness whenever you want. Auto mode has even bigger possibilities: you can in small steps increase or decrease brightness of each color during selected interval of time. For example: you woke up at 7:45 o’clock in the morning. You want to make such regimes: sunrise imitation – full brightness eight hours – sunset imitation – moonlight imitation during night. You can set channel of red LEDs to reduce their brightness from 8 hour (100% brightness) to 18 hour (50%). So you set such time intervals (press to enlarge):
Table shows possible LED lighting configuration. Automatic control of all devices is configured using events. Every event has its own start time, end time, starting brightness, ending brightness and channel number assigned to that event. There are 15 events dedicated for LED lighting. In example LED lighting uses 10 events. Every event can have only one channel number but the same channel can be controlled with several events. Events even may overlap each other. For example LED1 channel can have 3 events assigned, LED2 -5, LED3 – 5 and LED4 – 2. So in this case all 15 events will be used.
All LEDs must be connected to power supply through additional devices, called drivers. Driver supplies constant current to LEDs circuit. There are several types of drivers: without control, PWM controlled, DC voltage 0-10V controlled, controlled using resistance, controlled using triac and mixed type. SimACo generates 5V PWM signal for LEDs control, so driver must have inbuilt PWM control an accept 5V voltage level. SimACo is designed to work with cheap Mean Well LDD-XXXX series drivers.
According to the manufacturer, LDD series drivers have such features:
DC/DC step-down converter
Wide input voltage: 9 ~ 56VDC
Wide output LED string voltage: 2 ~ 52VDC
High efficiency up to 97%
Built-in EMI filter, comply with EN5 5015 and FCC part15 without additional input filter and capacitors
Built-in PWM and remote ON/OFF control
Protections: Short circuit / Over temperature
Cooling by free air convection
Low cost, high reliability
Suitable for driving illumination LED
3 years warranty
Fully encapsulated with IP67 level for pin and wire style
Non-potted, optional conformal coating for SMD style
Additional power supply must be used, because these drivers are fed with direct current. Of course you can use drivers without control if they are designed to work directly from the mains voltage. But then you will lose ability to control led brightness, except they only can be switched OFF or ON. In this case you must connect drivers to DEVICE1-DEVICE4 channels.
Various aquarium devices
There are four channels four filters, pumps, lamps, heater, CO2 valve and other 230-120V devices control. All these channels have 3 modes: OFF, ON and AUTO. Channel DEVICE1 has additional OFF15 mode. Channel DEVICE4 have additional HEATER CONTROL mode. First three modes are analogous to LED channels modes. Only exception is that events in AUTO mode do not have brightness settings. In the board DEVICES outputs connects to the various aquarium equipment through the mechanical relay contacts. The reason why electronic relay was not used is that electronic relay can not fully turn off device, and this can cause aquarium fluorescent lamps flickering, when they are in the OFF state.
Channel DEVICE1 is designed for the water pump control. Selecting OFF15 mode SimACo disconnects the pump and then after 15 minutes pump will return to the previous state, wherever it was – OFF, ON or AUTO. This function is useful when you want to feed your fish because when you pour fish food in to the aquarium, pump can suck this food or pump’s water flow can toss food flakes all around.
DEVICE4 channel can control ordinary high voltage devices if mode is OFF ON or AUTO. But there is the fourth mode designed to control aquarium heater. User sets desired aquarium water temperature, SimACo turns heater off/on according to the water temperature. Most aquarium heaters comes with integrated temperature regulator. But the cheap heater regulators frequently are quite inaccurate. This this the main reason why i decided to implement this function – with sensor you can have accurate temperature control. Also using temperature sensor you can avoid simultaneous heater and fan work when temperature approaches near to the temperature, set by user.
Fan and sensor
FAN channel is designed for aquarium cooling in hot summer days. Standard 12V two wires fan can be connected to SimaCo. SimACo generates 0-12V constant (non PWM) voltage in the FAN output, it means that the fan speed can be adjusted. SimACo has additional chip to control fan with constant voltage. There are two reasons for this: constant voltage 2 wires fans are cheaper than PWM controlled fans, besides fan controlled with PWM makes more noise. Typically 12V fan can achieve it’s lowest speed at 2,5-3V. At lower voltage it simply will stop spinning, despite of that low voltage, say 2V is still present. There are 4 FAN channel modes: OFF, ON, AUTO and SENSOR CONTROLLED. In the last function sensor speed is controlled fully automatically: SimACo measures water temperature and regulates fan speed if the temperature rises above preset limit. Controller can run and without temperature sensor, but then the last mode can not be used. AUTO mode is still valid, user can set different fan speeds at the different time using events. For example, in the evening and morning when the sun is not very hot speed can be set 50% and from 12 to 16 hour speed can be set at 100%.
The user may want to reduce fan speed (the noise too) at night. So there is also function to reduce fan speed ant night even in SENSOR CONTROLLED mode despite of that aquarium temperature is above preset limit.
PUMP1-PUMP4 channels are designed to drive up to four 12V peristaltic pumps. Peristaltic pumps are small pumps, specially made to dose various liquids precisely. They perfectly fits for the fertilizers dosing. There are wide selection of them in Ebay.
Pumps must be connected to SimACo outputs PUMP1-PUMP4; containers with fertilizers must be used. At the beginning pump flow rate (ml/min), required daily dose amount (ml), pump start time (hours) must be set. User also can set fertilizer amount left in container. SimACo from flow rate and required dose amount automatically calculates time which is needed to spin the pumps. So you do not need to calculate time period manually. Fertilizing starts at the specified time. First spins the first pump. When it stops, then the second pump starts to spin, then the third and the fourth pump is activated last. When fertilizing is done, SimACo again automatically calculates amount of fertilizers, left in each container. User can set the alarming limit, when fertilizers amount is low.
Here you can see video how the automatic dosing works:
Auto top-off module (ATO) comes in separate board. ATO – this is automatic aquarium refill with water if aquarium water evaporated. Especially this occurs in the hot summer days when aquarium does not have the hood. In this case water must be refilled daily or at least weakly. This boring job can be automated with SimACo.
How it is done? You must have separate reservoir from where reservoir pump will pump the water in to the aquarium. Two float sensors (switches) and one pump is used with ATO module. Aquarium sensor will track aquarium water level. Reservoir sensor will track reservoir water level and will prevent reservoir’s pump from running dry. Many pumps can run only fully immersed in water else pump can be overheated. ATO module will refill aquarium everyday at time set if all these conditions are met:
- Aquarium sensor is in the LOW position (needs to be refilled),
- Reservoir sensor is in the HIGH position (there are enough water),
- ATO module is enabled.
If any of these conditions are not met pump will not run and will immediately stop if this occurs when pump is running. Also user can set max. time value (0,5 min to 25 min) during which aquarium must be refilled. This is needed to protect your aquarium from large overfilling in case if aquarium sensor started to malfunction. If aquarium sensor is in low position but the fill time limit has expired then controller will stop the pump. If everything goes OK pump will stop when aquarium sensor will rise.
There are several alarms, they alerts the user that something is going wrong. Alarms are:
aquarium temperature too low,
aquarium temperature to high,
temperature sensor fault,
fertilizers dose set is too low (dosing inaccuracy can occur, all four channels are monitored separately),
fertilizers amount left in container is low (all four channels monitored separately),
auto top-off: reservoir water level low,
auto top-off: maximum aquarium fill time expired (protection against aquarium overfill),
System fault – SimACo restarted (microcontroller program has stuck).
If any alarm is active, buzzer will sound. User can check for active alarms in controller LCD or in PC, connected to controller. Time, when buzzer will sound, can be selected as user wants. Also buzzer can be turned off permanently.
you can write to me in comments; Skype contacts and my email address are at the bottom of this page.
This page will be continuously updated after every change to aquarium controller. I will be very grateful if you will write your opinion about this project in the comment section below.