Raspberry Pi OS


To get maximum performance from your hardware, please make sure you'll meet the following requirements.

Operating System

We recommend using the latest version of Raspberry Pi OS. Download the latest version from raspberrypi.org/downloads/raspberry-pi-os address.

Python Library

Turta_RelayController library is responsible for controlling onboard relays.

To install the library from the (PyPI) Python Package Index, enter the following command to the console.

pip install turta-relayhat

Add the following statement to the top of your Python code.

from turta_relayhat import Turta_RelayHAT

Then, create an instance of the Turta_RelayHAT class.

rc = Turta_RelayHAT.RelayHAT()

Now you're ready to access the library by calling the rc instance.


The library automatically initializes the required components when its instance is being created, so there is no need to do a manual initialization.

Basic Members

Set Relay

Turns the desired relay on or off.

set_relay(ch, st)
  • Parameters

    • Int ch: Relay channel. 1 to 4.

    • Bool st: Relay state. True or False.

  • Returns

    • None

Read Relay State

Reads the desired relay state.

  • Parameters

    • Int ch: Relay channel. 1 to 4.

  • Returns

    • Bool: Relay state. True or False.


You can copy the example code from https://github.com/Turta-io/RelayHAT/tree/master/Samples/Raspbian/Python address, and then copy it to the Raspberry Pi. There is one example of this sensor.

Relay Controller Sample App

This application demonstrates relay functions. It turns relays on and off in a loop.

To run the example:

  1. Copy the library and sample code to a folder on the Raspberry Pi.

  2. Open terminal, and go to the folder you copied the codes.

  3. Run the sample with the following command:

python RelayControllerSampleApp.py

Sample Code

import time
from turta_relayhat import Turta_RelayHAT
#Install Relay HAT library with "pip install turta-relayhat"

rc = Turta_RelayHAT.RelayHAT()

    while 1:
        #Toggle relay 1
        rc.set_relay(1, not rc.read_relay_state(1))
        print("Relay 1 state: " + ("On" if rc.read_relay_state(1) else "Off"))

        #Toggle relay 2
        rc.set_relay(2, not rc.read_relay_state(2))
        print("Relay 2 state: " + ("On" if rc.read_relay_state(2) else "Off"))

        #Toggle relay 3
        rc.set_relay(3, not rc.read_relay_state(3))
        print("Relay 3 state: " + ("On" if rc.read_relay_state(3) else "Off"))

        #Toggle relay 4
        rc.set_relay(4, not rc.read_relay_state(4))
        print("Relay 4 state: " + ("On" if rc.read_relay_state(4) else "Off"))

except KeyboardInterrupt:


When you run the sample, the relays turn on one after another and then turn off in the same order. The application also writes the relay states to the terminal. The example output should be like this:

Relay 1 state: On
Relay 2 state: On
Relay 3 state: On
Relay 4 state: On
Relay 1 state: Off
Relay 2 state: Off
Relay 3 state: Off
Relay 4 state: Off

To stop the Python script, just press CTRL + C.

Last updated