This module controls a SainSmart 16-channel USB-HID programmable relay using node.
$ npm install
$ ./sainsmart-relay16
Available commands:
on <N> - Turn relay N on
off <N> - Turn relay N off
test - Run a test pattern to ensure all relays are functioning
reset - Reset the device state, turn off all the relays
If you run into a missing libusb.h during npm install
on Ubuntu, try:
sudo apt-get install libusb-1.0-0-dev
Currently node-hid will segmentation fault if the current user does not
have access to the HID device. You may use sudo
or follow the instructions to add udev rules.
$ ./sainsmart-relay16 test
Detected devices: [ { vendorId: 1046,
productId: 20512,
path: '0007:0009:00',
release: 0,
interface: 0 } ]
Segmentation fault (core dumped)
$ sudo ./sainsmart-relay16 test
Detected devices: [ { vendorId: 1046,
productId: 20512,
path: '0007:0009:00',
manufacturer: 'Nuvoton',
product: 'HID Transfer',
release: 0,
interface: 0 } ]
You can use this module without sudo by following the steps below:
-
Copy the udev rules file to /etc/udev/rules.d.
sudo cp 51-sainsmart-usb.rules /etc/udev/rules.d/
-
Disconnect and reconnect the device from USB.
-
Run the command without sudo!
$ sainsmart-relay16 test
Detected devices: [ { vendorId: 1046,
productId: 20512,
path: '0001:0008:00',
manufacturer: 'Nuvoton',
product: 'HID Transfer',
release: 0,
interface: 0 } ]
Search Amazon for "SainSmart 16-CH USB HID Programmable Control Relay Module + Relay". The unit looks like this:
You will also need a 12V power supply (~1A) connected to the blue connector on the main relay board. Do not connect anything to the green connector on the USB HID board.
- Another node version with a slightly different API: https://github.com/underbluewaters/sainsmart-16-hid
- There's a python port of this project at https://github.com/tatobari/hidrelaypy if you prefer Python over node.