Difference between revisions of "Relay Board Control"

From aquarium-doc
Jump to navigationJump to search
Line 14: Line 14:
* Low level communication via serial port to the board
* Low level communication via serial port to the board
* Watchdog for reading/writing to serial port
* Watchdog for reading/writing to serial port
* Semaphores for avoiding conflicting access to relay board
* HW functionality test before executing commands
* HW functionality test before executing commands
* Monitoring and repair of relay board states
* Monitoring and repair of relay board states
* Avoiding conflicting access to relay board
== Low level communication via serial port ==
This functionality is implemented in <code>RlyBrdCtrl/RlyBrdCmd.c</code>.
== Watchdog for reading/writing to serial port ==
This functionality is implemented in <code>RlyBrdCtrl/RlyBrdWtchDg.c</code>.
== HW functionality test before executing commands ==
This functionality is implemented in <code>RlyBrdCtrl/RlyBrdFdbck.c</code>.
== Monitoring and repair of relay board states ==
This functionality is implemented in <code>RlyBrdCtrl/RlyBrdMidLay.c</code>.
== Avoiding conflicting access to relay board ==
This functionality is implemented in <code>RlyBrdCtrl/RlyBrdHiLay.c</code>.

Revision as of 09:05, 25 December 2022

The following components utilise the relay board:

  • Refill Control: refilling of fresh water depending on water level
  • Feeder Control: stopping flow pumps, skimmer and actuating the feeder
  • Water Exchange Control: actuating the external pump for water exchange
  • Balling Control: actuating the pumps for mineral dosing


There are two requirements, which ask for a more sophisticated control of the relay board:

  • The dosing of minerals needs to be as precise as possible.
  • The communication with the board needs to be reinitialised and even reopened after certain periods of time.


The relay board control implements the following features:

  • Low level communication via serial port to the board
  • Watchdog for reading/writing to serial port
  • HW functionality test before executing commands
  • Monitoring and repair of relay board states
  • Avoiding conflicting access to relay board

Low level communication via serial port

This functionality is implemented in RlyBrdCtrl/RlyBrdCmd.c.

Watchdog for reading/writing to serial port

This functionality is implemented in RlyBrdCtrl/RlyBrdWtchDg.c.

HW functionality test before executing commands

This functionality is implemented in RlyBrdCtrl/RlyBrdFdbck.c.

Monitoring and repair of relay board states

This functionality is implemented in RlyBrdCtrl/RlyBrdMidLay.c.

Avoiding conflicting access to relay board

This functionality is implemented in RlyBrdCtrl/RlyBrdHiLay.c.