SimACo – simple aquarium controller

SimACo controller logo

SimACo is the SIMple Aquarium COntroller mainly created for freshwater aquariums. But all controller’s functions can be used also in marine aquarium. My main idea was to make a simple, easily controllable, reliable and relatively cheap device which helps to make aquarium owner’s life easier. Buying separately all required fabric-made controllers for aquarium is expensive so this controller is cheaper alternative and it has all main functions required to control freshwater aquarium equipment. Controller is not overloaded with not very useful functions like camera to watch your aquarium fish in real time. SimACo best fits for the users which like DIY and have basic electrical and IT skills and know what the wire is:). Soldering is not needed because all boards are assembled.

If you want to buy it, go here. In the picture below you can see all SimACo parts:
SimACo controller parts


Now the second controller’s version is created; hardware equipment, software and firmware  is completely finished and tested. New functions are constantly added. The heart of the controller is Microchip PIC24F series microcontroller.

Below you can see all aquarium equipment which can be connected to controller:

SimACo controller electric connection diagram

Controller can do many repetitive aquarium maintenance jobs:

  • Control LED lighting. Four channels available so you can control four different colors LEDs manually or automatically. In manual control mode user can turn LEDs off or on; when LEDs are on, LED brightness for each channel can be set from 0% to 100%. In automatic control mode controller can change LED brightness uniformly through a selected period of time. This means you can simulate sunrise, sunset or moonlight effects when LEDs are uniformly dimmed for example from 0% to 100%. Also LED brightness can be set to stay constant through a selected period of time.
  • Turn off/on automatically high voltage devices, like water filter, air pump, CO2 valves, aquarium fluorescent or metal halide lights etc. Four channels available. Each channel has inbuilt separate timer which has 1 minute resolution. Timers allows to turn on/off aquarium devices several times per day. Also manual control available where you can turn on/off channels manually.
  • Aquarium water temperature is measured using temperature sensor. Sensor uses DS18B20 digital chip. SimACo controller can also function and without the sensor, but in this case heater and fan will not be controlled automatically according to the aquarium water temperature.
  • Control 12V DC or 120-230V AC fans to cool aquarium water in a hot summer days. Fans can be set to turn on/off for the period of day despite of aquarium water temperature or they can be controlled by SimACo temperature sensor: fans will be turned on automatically when water temperature rises.  12V fan speed can be adjusted automatically according to the aquarium temperature – fan will turn slower or paster according to the water temperature.
  • Control the heater – heater can be turned off/on automatically according to the aquarium temperature. Most fabric-made heaters have inbuilt temperature controller but often this controller is not precise. With SimACo temperature sensor you can control temperature very precisely.
  • It can automatically fertilize aquarium with liquid fertilizers using peristaltic pumps. Four types of liquid fertilizers can be dosed. User selects dosing hour, dosing amount in mililiters and days at which fertilizers will be dosed. Controller automatically calculates the time needed to keep pump activated. After dosing fertilizers amount left in containers is calculated. Also manual dosing available: select fertilizer type, dosing amount and press button “Start manual dosing” – fertilizer will be dosed immediately.
  • Top-off function: aquarium can be refilled with water automatically from the reservoir if aquarium water evaporates. Two modes available: Auto top-off and manual top-off. Automatic mode allows you refill aquarium every day at the time selected. Manual mode lets you to refill aquarium immediately. Water level is monitored in aquarium and reservoir with water using two float sensors. For a better protection from aquarium overfill (if float sensor fails) there are limited fill time protection – top off will be stopped if aquarium fill time is exceeded.
  • Measure water PH and control CO2 valve if you are using one. If carbonate hardness in aquarium is stable then controller can adjust CO2 level in in the water by measuring PH level and turning CO2 valve on or off. Also controller can shut down CO2 at night when plants do not need it.

Additional features:

  • SimACo is controlled through WiFi – you can connect to your aquarium controller from any place in the world where is internet connection. For this you must have Windows computer or Android device with installed Angry Fish application (it’s free).
  • All main controller settings are automatically saved to non-volatile memory so there is no need to restore every setting after battery replacement or blackout.
  • Controller has incorporated bootloader. Bootloader allows to update microcontroller’s program (firmware) through USB cable using Windows Angry Fish application when new firmware and software versions available.
  • if you want to change parameters for the particular channel, you can easily identify in Angry Fish application or LCD screen which channel you are editing. For this there are implemented two features: 1. descriptions for LED, 120V-230V devices and dosing pumps channels can be set; 2. each channel has it’s own icon which can be changed with icon corresponding real device connected to the channel.
  • Controller has inbuilt alarm system: you will know when water temperature is too high or too low; when water PH is too high or too low;  levels of liquid fertilizers in containers are low; level of water in top-off container is low; aquarium top-off time exceeded and others. If alarm exists, buzzer will beep warning the user that action must be taken. The levels of alarms are flexible and can be configured by user.

Basic SimACo version has two boards: main board and buttons board (5 buttons keypad). Also there is 16×2 LCD module. Main board is like motherboard in PC: all aquarium equipment is connected to it. LCD and buttons board connects to the main board with flat cables.

SimACo main board has such channels (physical outputs to the controlled devices):

  1. Four channels for LED lighting control, named LED1-LED4;
  2. Four channels for 110V-230V devices control, named DEVICE1-DEVICE4;
  3. Four channels for peristaltic pumps control, named DOSING PUMP1-DOSING PUMP4;
  4. One channel for fan control, named FAN;
  5. One input for temperature sensor connection, named SENSOR;
  6. Two inputs for water top-off float sensors, named RESERVOIR SENSOR and AQUARIUM SENSOR;
  7. One channel for top-off water pump, named AUTO TOP-OFF PUMP.

Also several expansion boards available: MOSFET LED driver board to control LED strips with a constant 12V or 24V voltage; LDD driver board to control LED lighting made of LED modules which requires constant current; PH sensor board which allows to measure water PH. Also there is a 3D printed front panel which is created to hold LCD module and buttons keypad – you do not need to drill a holes in a box where controller will be mounted.

3D printed front panel with mounted LCD module and keypad.
SimACo panel with mounted LCD and buttons board front SimACo panel with mounted LCD and buttons board back
  Main board v.2.0
 SimACo controller main board top view  SimACo controller main board bottom view


  Buttons board v.1.0 (keypad)
SimACo controller buttons board top view SimACo controller buttons board bottom view


Mean Well LDD-XXXH driver board v.1.0 (for LED lighting)
 LDD-XXXH driver board - top  LDD-XXXH driver board - bottom  Mean Well LDD-XXXH driver board is preapared to solder up to four LED drivers.Mean Well LDD driver


  MOSFET driver board v.1.0 (for LED lighting)
MOSFET driver board v.1.0 for LED strips (top) MOSFET driver board v.1.0 for LED strips (bottom)
PH sensor board v.1.0
PH sensor board v.1.0 - top PH sensor board v.1.0 - bottom

There are three ways to control SimACo:

  • wireless WiFi connection. This type of control is most convenient. Using Windows computer or Android device with WiFi connection you can change SimACo controller settings, view your aquarium devices status. For this you will need to install Angry Fish application designed for Windows or Android operating systems from the download section. You can connect to controller from your Windows/Android device directly (Android/Windows device — SimACo) but even better is to have a router.  Through a router (Android/Windows device — router — SimACo) you can control your aquarium controller from anywhere.
  • through a buttons keypad. With keypad you can control mostly used SimACo functions. Information is displayed in the simple 16×2 light crystal display. You can edit settings with pushbuttons scrolling through the menu and editing required parameter.
  • USB cable. You will need USB cable and computer with Windows OS for controller’s firmware update.
    In order to start to use controller you must to configure WiFi connection first. WiFi connection configuration can be done also using Windows PC and USB cable. Or use Android device to configure WFi, in this case USB cable will not be needed.
Windows/Android device connection to SimACo controller through WiFi

Windows/Android device connection to SimACo controller through WiFi

Here you can see Angry Fish application for Windows screenshots:​

There are Angry Fish application for Android screenshots:

Controller has implemented “Fast Control” function: with one long press on buttons UP, DOWN, SELECT or ENTER in the 5 buttons keypad 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.

LED, Device and 12V Fan channels in AUTO mode are controlled using events. Every event has its own order number, channel type, start time, end time, starting brightness/speed (for LED/12V fan), end brightness (for LED). There are 50 events in total. These events will be shared between four LED channels, four 120V-230V devices channels and one 12V fan channel. Every event can have only one channel type but the same channel can be controlled with several events. For example LED1 channel can have 3 events assigned, LED2 -5, LED3 – 5, 120V-230V DEVICE1 – 2 and 12V FAN channel – 1 event. So in this case 16 events will be used and 34 will remain unused – they can be configured to control other aquarium equipment.

Now about each function separately:


LED lighting

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):

Aquarium controller events example

Table shows possible LED lighting configuration.
All LEDs must be connected to power supply through additional devices, called drivers. Driver is needed for two purposes: it supplies constant voltage/current to LEDs circuit and allows to dim LED lighting. Manufacturers make several types of drivers: without control, PWM controlled, DC voltage 0-10V controlled, controlled using resistance, controlled using triac and mixed type. SimACo generates 3.3V PWM signal for LEDs control, so driver must have inbuilt PWM control an accept 3.3V voltage level. SimACo has two LED driver boards: MOSFET driver board and Mean Well LDD drivers board. Each board has four channels.

  • MOSFET driver board is designed to be used with LED strips or LED modules which requires constant voltage 12V or 24V power supply.
    LED moduleLED strip
  • LDD driver board has four Mean Well LDD-XXXX series drivers soldered in. Board must be used with LEDs which requires constant current power supply. This board mostly can be used with powerful LED (1-3W) strings, connected in series or COB LEDs. COB mostly requires about 36V power supply.
    LED module with heatsinkCOB LED
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 part 15 without additional input filter and capacitors
Built-in PWM and remote ON/OFF control
Protections: Short circuit / Over temperature
Cooling by free air convection
Compact size
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

MOSFET and LDD driver boards both connects directly to the main board. Also additional power supply is required to supply power to the LEDs. Power supply voltage and current must be selected according to the selected LED lighting type, voltage and consumed current. If you already have complete LED lighting system which is fed from the wall socket, then you can connect it to the any DEVICE1-DEVICE4 outlets. But then you will lose ability to control LED brightness using controller and you will only have the ability to switch your LEDs OFF or ON at the time, set by you.

120V-230V devices

There are four channels for filters, pumps, lamps, heater, CO2 valve and other 120-230V devices control. All these channels have 3 modes: OFF, ON and AUTO. OFF and ON modes allows manually to turn devices of or on. AUTO mode allows to switch devices automatically at a time set by user. DEVICE channels also have their specialized functions:

  • Channel DEVICE1 is designed for the water pump or filter control. Selecting OFF15 mode SimACo disconnects the filter and then after 15 minutes filter 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, filter can suck this food or filter’s water flow can toss food flakes all around.
  • Channel DEVICE2 is designed to control your aquarium 120-230V cooling fans. For this purpose you must set this channel to FAN CONTROL mode. SimACo controller constantly measures aquarium water temperature. If this temperature will rise to high, controller then will turn on the fans. When temperature will drop to the normal level, controller will disconnect fans automatically. Also you can turn off the fans for the desired time interval despite of your aquarium water temperature. This allows to prevent the noise going from the fans at sleep time.
  • Channel DEVICE3 has CO2 solenoid control mode. This mode must be used in tandem with PH sensor. CO2 solenoid can be turned on/off automatically to support desired aquarium water PH level. Also CO2 solenoid can be shut down at night to save CO2 gas.
  • DEVICE4 channel HEATER CONTROL is 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.

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.

Temperature sensor

Temperature sensor is based on DS18B20 chip. It continuously measures aquarium temperature and shows it in Angry Fish application or LCD display. Temperature sensor is required if user wants to control water temperature automatically :

  • cool aquarium water with 110-230V fan block (channel DEVICE2 in FAN mode) or 12V fan (channel 12V FAN in SENSOR CONTROLLED mode);
  • heat aquarium water with heater (channel 12V FAN in SENSOR CONTROLLED mode).

12V Fan

12V 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. 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 at night even in SENSOR CONTROLLED mode despite of that aquarium temperature is above preset limit.

PH sensor

SimACo is designed to measure aquarium water PH level and support constant aquarium CO2 level by controlling CO2 solenoid (valve). Also SimACo can be used only for PH measurement without solenoid control. To use water PH measurement function an additional PH sensor board must be used. PH sensor board has 50 ohm BNC connector to connect PH sensor.
CO2 level and PH value are directly related through carbonate hardness value – KH. If KH value is stable and PH value is known then CO2 value can be easily calculated from these 2 values or found from the CO2/PH/kH table. Normally in a planted aquarium 30ppm CO2 value must be supported. 
SimACo supports two CO2 level scenarios. First scenario is to support required CO2 level 24 hours/day. This scenario helps to support aquarium water PH stable. Other scenario: CO2 level is only supported at daytime; CO2 valve will be shut down at night. This helps to save CO2 gas but water PH in this case will fluctuate during 24 hours period. Also SimACo has inbuilt PH sensor calibration function because sensor must be calibrated every month to measure PH level precisely. For calibration two PH buffers must be used with low PH and high PH values.


Aquarium fertilizing

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. For precise dosing i suggest to buy a pump with a low flow rate.

Aquarium dosing (peristaltic) pump

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 knowing 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

Auto top-off module (ATO) – 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.
auto top-off mounting example
How it works? 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. 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. ATO module will refill aquarium everyday at time set if all these conditions are met:

  1. Aquarium sensor is in the LOW position (needs to be refilled),
  2. Reservoir sensor is in the HIGH position (there are enough water),
  3. Aquarium refill time has not expired,
  4. 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. 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.

Alarms system

There are several alarms, they alerts the user that something is going wrong. Alarms are:
aquarium temperature low limit exceeded,
aquarium temperature high limit exceeded,
temperature sensor fault,
water PH low limit exceeded,
water PH high limit exceeded,
PH sensor calibration error,
PH board 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. Some alarms reset automatically when problem is removed, other requires manual reset.

Here you can see a several pictures of the assembled and working SimACo controller:

SimACo aquarium controller mounting example 1 SimACo aquarium controller mounting example 2
SimACo aquarium controller mounting example 3 SimACo aquarium controller mounting example 4

My contacts:
you can write to me in comments; Facebook link 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.

Leave a Comment

Your email address will not be published. Required fields are marked *