[Discontinued] iMatic RJ45 Ethernet/Wi-Fi Control Board with integrated 16-Ch DC 12V Relay
  • Lifetime customer support

  • US Shipping Priority

  • 15-Day Money Back Guarantee

Brand: SainSmart SKU: 101-70-C01

[Discontinued] iMatic RJ45 Ethernet/Wi-Fi Control Board with integrated 16-Ch DC 12V Relay

SKU: 101-70-C01 2 reviews Variants ID: 45100984276

Oops, 0 In Stock

This is SainSmart iMatic with RJ45 remote control 16 channels WiFi relay model. It works with the 16 channel relay to help you realize controlling your other devices remotely.This Model helps you to avoid complicated wiring processes and save you much time to accomplish your goal. You can feel free to enjoy the remote controlling of your other devices with the SainSmart 16 channel relay by using our codes and App. 

Please note that the SainSmart iMatic with RJ45 remote control 16 channels WiFi relay model with the fixed IP of You must to modify the gateway address, AKA the router IP address, to be

16 Channel Relay:

This is a 12V 16-Channel Relay interface board, Be able to control various appliances, and other equipment with large current. It can be controlled directly by Micro-controller (Raspberry Pi, Arduino , 8051, AVR, PIC, DSP, ARM, ARM, MSP430, TTL logic) .

  • Control switches remotely together with 16 Channel relay.
  • RJ45 interface, via RJ45 telecommunications connection for network control.
  • Support for 16 Channels relay which means you could control more to 16 different devices at the same time.
  • Unique dual TCP connect control, corresponding with above trait, local as TCP server
  • Accept client control, when connect to remote server as TCP clientSainSmart 16 Channel DC 5V Relay Module for Arduino Raspberry Pi
  • Supply core module detailed information, application program demo,
  • Support customized smartphone App (iOS, Android)

Apps for iOS , Android and MFC:

  • App for iOS: For control your  SainSmart iMatic remote control 16 channels WiFi relay model from your iPhone, iPod or iPad, iMatic is available in APP Store.


  • App for Android: iMatic is available in Google play.


Source Codes Address:
  • 1 x SainSmart iMatic with RJ45 remote control for Arduino Relay Android iOS
  • 1 x SainSmart 16 Channel DC 12V Relay Module for Arduino Raspberry Pi



Customer Reviews
4.5 Based on 2 Reviews
5 ★
4 ★
3 ★
2 ★
1 ★
Write a Review Ask a Question

Thank you for submitting a review!

Your input is very much appreciated. Share it with your friends so they can enjoy it too!

Filter Reviews:
Gunter H.

No API, but good Board

I wrote a small API to handle this board. https://github.com/sunchezz89/relayboard-controller


Control protocol

Hi all, After I have downloaded the small exe example for command this relay board, I have made a small sniffer to checkout the exact bytes which are sent and received from the board. 1. First of all you have to know there can be only one TCP/IP connection to the board (this is ok because it would avoid conflicted commands sent from multiple sources). 2. To get the relay statuses you need to send the bytes (.NET style) { 88, 1, 16, 0, 0, 0, 0, 105 }. 3. We receive back 8 bytes where last 2 bytes represents the exact relay statuses. So I made a reverse of the byte array and converted into a BitArray (.NET). Then simply check if the bit is set or not. Bit set (1) = relay ON, bit is not set (0) = relay off. 4. Changing the relay state is not very intuitive (or maybe I missed something) but anyway here is how my send method looks like (C#) where relayNumber is from 0 to 15: public static RelayStatus SetRelayState(RelayStatus state, int relayNumber) { byte[] command = new byte[] { 88, 1, 17, 0, 0, 0, 1, 107 };//ON for relay 1 command[6] = (byte)(command[6] + relayNumber); command[7] = (byte)(107 + relayNumber); if (state == RelayStatus.OFF)//we want to set relay to OFF { command[2] = 17; } else//We want to set relay to ON { command[7] += 1; command[2] = 18; } using (TcpClient client = new TcpClient()) { client.Connect(RelayBoardIP, RelayBoardPort); var connectedStream = client.GetStream(); connectedStream.ReadTimeout = 1000; connectedStream.Write(command, 0, command.Length); if (connectedStream.Read(command, 0, command.Length) != 8) throw new Exception("We didn't received back 8 bytes"); return GetRelayStates(command.Skip(5).Take(2).ToArray())[relayNumber]; } } You should receive back 8 bytes with the relay statuses as described before. Hope it helps...