Warning

This documentation is actively being updated as the project evolves and may not be complete in all areas.

NoyitoPowerSerial / NoyitoPowerHID Driver

jumpstarter-driver-noyito-relay provides Jumpstarter power drivers for NOYITO USB relay boards in 1, 2, 4, and 8-channel variants.

Two hardware series are supported:

  • NoyitoPowerSerial — 1/2-channel boards using a CH340 USB-to-serial chip (serial port, supports status query)

  • NoyitoPowerHID — 4/8-channel “HID Drive-free” boards presenting as a USB HID device (no serial port, supports all-channels status query)

Both use the same 4-byte binary command protocol (A0 + channel + state + checksum).

Installation

pip3 install --extra-index-url https://pkg.jumpstarter.dev/simple/ jumpstarter-driver-noyito-relay

If you are using NoyitoPowerHID, the hid Python package requires the native hidapi shared library. Install it for your OS before use:

OS

Command

macOS

brew install hidapi

Debian/Ubuntu

sudo apt-get install libhidapi-hidraw0

Fedora/RHEL

sudo dnf install hidapi

Board Detection

To determine which driver to use, check whether the board appears as a serial port or a HID device:

  • Serial port (/dev/ttyUSB*, /dev/tty.usbserial-*): Use NoyitoPowerSerial (1/2-channel CH340 board)

  • No serial port / HID only: Use NoyitoPowerHID (4/8-channel HID Drive-free board). Confirm with lsusb — the NOYITO HID module appears with VID 0x1409 / PID 0x07D7 (decimal: 5131 / 2007).

NoyitoPowerSerial (1/2-Channel Serial)

Hardware Notes

  • Purchase: NOYITO 2-Channel USB Relay Module (Amazon)

  • Chip: CH340 USB-to-serial

  • Baud rate: 9600

  • Default port: /dev/ttyUSB0 (Linux) — may appear as /dev/tty.usbserial-* on macOS

  • Channels: 1 or 2 independent relay channels on one USB port

  • Supply voltage: 5 V via USB

Configuration

Parameter

Type

Default

Description

port

str

(required)

Serial port path, e.g. /dev/ttyUSB0

channel

int

1

Relay channel to control (1 or 2)

all_channels

bool

false

Switch both channels simultaneously

Example configuration controlling both channels independently:

export:
  relay1:
    type: jumpstarter_driver_noyito_relay.driver.NoyitoPowerSerial
    config:
      port: "/dev/ttyUSB0"
      channel: 1
  relay2:
    type: jumpstarter_driver_noyito_relay.driver.NoyitoPowerSerial
    config:
      port: "/dev/ttyUSB0"
      channel: 2

API Reference

Implements PowerInterface (provides on, off, read, and cycle via PowerClient).

Method

Description

on()

Energise the configured relay channel

off()

De-energise the configured relay channel

read()

Yields a single PowerReading(voltage=0.0, current=0.0)

status()

Returns the channel state string, e.g. "on", "off", or "partial"

CLI Usage

Inside a jmp exporter shell:

# Power on relay 1
j relay1 on

# Query state of relay 1
j relay1 status
# on

# Power cycle relay 2 with a 3-second wait
j relay2 cycle --wait 3

# Power off relay 1
j relay1 off

NoyitoPowerHID (4/8-Channel HID Drive-free)

Hardware Notes

Configuration

Parameter

Type

Default

Description

num_channels

int

4

Number of relay channels on the board (4 or 8)

channel

int

1

Relay channel to control (1..num_channels)

all_channels

bool

false

Fire every channel simultaneously

vendor_id

int

5131

USB vendor ID (override if needed)

product_id

int

2007

USB product ID (override if needed)

Example configuration for a 4-channel board (channel 1) and an 8-channel board (all channels simultaneously):

export:
  relay_4ch_ch1:
    type: jumpstarter_driver_noyito_relay.driver.NoyitoPowerHID
    config:
      num_channels: 4
      channel: 1
  relay_8ch_all:
    type: jumpstarter_driver_noyito_relay.driver.NoyitoPowerHID
    config:
      num_channels: 8
      channel: 1
      all_channels: true

API Reference

Implements PowerInterface (provides on, off, read, and cycle via PowerClient).

Method

Description

on()

Energise the configured relay channel(s)

off()

De-energise the configured relay channel(s)

read()

Yields a single PowerReading(voltage=0.0, current=0.0)

status()

Returns the channel state string, e.g. "on", "off", or "partial"

CLI Usage

Inside a jmp exporter shell:

# Power on relay channel 1 of the 4-ch board
j relay_4ch_ch1 on

# Power cycle with a 1-second wait
j relay_4ch_ch1 cycle --wait 1

# Power off
j relay_4ch_ch1 off

# Power on all 8 channels simultaneously
j relay_8ch_all on