Modbus RTU Relay
| ||
Overview
Hardware Test
RS485 Test
- Connect the USB TO 485 and the target board to A --> A and B --> B via cables as shown below:
- Download the SSCOM and open it on the computer. Open the corresponding port number, set the baud rate as 9600, and click Multi-String to open the Multi-String Sending window, click the corresponding function to send the corresponding command.
- If you need to send other commands then select HEX to send, plus check select ModbusCRC16 checksum, enter the first six bytes of the command, and click send then the CRC checksum will be added automatically.
- For more detailed control commands, you can see them in the "Development Protocol".
From September 2021, the V2 version development protocol will be adopted. V2 version modifies the previous incompatible Modbus instruction and is fully compatible with Modbus protocol.
There is no difference between the hardware of V1 and V2 versions. Customers who have purchased the V2 development protocol before can contact customer service to upgrade the firmware.
Demo Test
Note: RS485 can not be directly connected to the serial port of the Raspberry Pi, otherwise it may burn the device, you need to add 485 level conversion, the Raspberry Pi is recommended to use with the RS485 CAN HAT module, NUCLEO-F103RB, and Arduino is recommended to use with the RS485 CAN Shield module!
Raspberry Pi
Open the Raspberry Pi terminal and input the following commands to enter the configure interface:
sudo raspi-config Select Interfacing Options -> Serial, disable shell visit, and open the serial port hardware
And then reboot the Raspberry Pi:
sudo reboot
Open /boot/config.txt file, and find the following configure sentence to enable the serial ports. If there is none, you can add it at the end of the file.
enable_uart=1
For Raspberry Pi 3B users, the serial port is for Bluetooth and needs to be removed.
#dtoverlay=pi3-miniuart-bt
And then reboot the Raspberry Pi:
sudo reboot
If you want to insert the RS485 CAN HAT into the Raspberry Pi, connect the A and B ports of the Modbus RTU Relay module and the RS485 CAN HAT module.
If you use other 485 devices, you need to make sure A-A and B-B.
Run the following commands:
sudo apt-get install unzip wget https://files.waveshare.com/upload/f/f9/Modbus_RTU_Relay_Code.zip unzip Modbus_RTU_Relay_Code.zip cd Modbus_RTU_Relay_Code/Python3 sudo python3 main.py
SRM32
The STM32 demos are based on the NUCLEO-F103RB and the RS485 CAN Shield module.
Find the STM32 program file directory and open the STM32 project. Note that before using the computer to ensure that the keil5 software has been installed, download the demo to the development board can be downloaded.
Normal operation of the relay module will turn on and then turn off in turn. The serial port will output the command sent.
Arduino
The Arduino demos are based on the NUO PLUS and RS485 CAN Shield modules.
Use Arduino IDE to open the demo, select the corresponding development board, and then download the demo.
The relay module will turn on and then turn off in order to run normally. The serial port will output the commands sent.
Development Protocol V2
From September 2021, the V2 of the development protocol will be adopted. The V1 is not compatible with Modbus commands and now the V2 is fully compatible with the Modbus protocol.
There is no difference in hardware between V1 and V2. Customers who have purchased the V1 version but need to use the V2 development agreement, can contact customer service to upgrade the firmware.
Function Code
Function code | Description |
---|---|
01 | Read the state of Relay |
03 | Read the address and version |
05 | Write a single Relay |
06 | Set baud rate and address |
0F | Write all Relays |
Control Single Relay
Send code: 01 05 00 00 FF 00 8C 3A
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0x00: the broadcast address; 0x01-0xFF: device addresses |
05 | 05 Command | Command for controlling Relay |
00 00 | Address | The register address of controlled Relay, 0x0000 - 0x0008 |
FF 00 | Command | 0xFF00: open Relay; 0x0000: close Relay; 0x5500: flip Relay |
8C 3A | CRC16 | The CRC16 checksum of the first six bytes |
Return code: 01 05 00 00 FF 00 8C 3A
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0x00: the broadcast address; 0x01-0xFF: dives addresses |
05 | 05 Command | Command for controlling relay |
00 00 | Address | The register address of controlled Relay,0 x 0000-0 x 0008 |
FF 00 | Command | 0xFF00: open Relay; 0x0000: close Relay 0x5500: flip Relay |
8C 3A | CRC16 | The CRC16 checksum of the first six bytes. |
Examples:
[Device with address 01]:
Relay 0 ON: 01 05 00 00 FF 00 8C 3A
Relay 0 OFF: 01 05 00 00 00 00 CD CA
Relay 1 ON: 01 05 00 01 FF 00 DD FA
Relay 1 OFF: 01 05 00 01 00 00 9C 0A
Relay 2 ON: 01 05 00 02 FF 00 2D FA
Relay 2 OFF: 01 05 00 02 00 00 6C 0A
Relay 3 ON: 01 05 00 03 FF 00 7C 3A
Relay 3 OFF: 01 05 00 03 00 00 3D CA
Relay 0 Flip: 01 05 00 00 55 00 F2 9A
Relay 1 Flip: 01 05 00 01 55 00 A3 5A
Relay 2 Flip: 01 05 00 02 55 00 53 5A
Relay 3 Flip: 01 05 00 03 55 00 02 9A
Control All Relays
Send code: 01 05 00 FF FF 00 BC 0A
Byte | Meaning | Description |
---|---|---|
01 | Device Address | 0x00: the broadcast address; 0x01-0xFF: device address |
05 | 05 Command | Control relays |
00 FF | Address | Fixed 0x00FF |
FF 00 | Command | 0xFF00: Relay on 0x0000: Relay off 0x5500: Relay flips |
BC 0A | CRC16 | The CRC16 checksum of the first six bytes |
Return code: 01 05 00 FF FF 00 BC 0A
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0x00: the broadcast address; 0x01-0xFF: devices address |
05 | 05 command | Command for controlling Relay |
00 FF | Address | Fixed 0x00FF |
FF 00 | CRC16 | 0xFF00: Relay open; 0x0000: Relay close; 0x5500: Relay flip |
BC 0A | CRC16 | The CRC16 checksum of the first six bytes |
Example:
[Device with Address 01]:
All relays open: 01 05 00 FF FF 00 BC 0A
All relays closed: 01 05 00 FF 00 00 FD FA
All relays flip: 01 05 00 FF 55 00 C2 AA
Read States of Relays
Send code: 01 01 00 00 00 08 3D CC
Bytes | Meaning | Description |
---|---|---|
01 | Device address | 0x00: the broadcast address; 0x01-0xFF: device addresses |
01 | 01 Command | Command for checking states of Relay |
00 00 | Initial Address | Fixed 0 x 0000 |
00 08 | Command | Fixed 0 x 0008 |
3D CC | CRC16 | The CRC16 checksum of the first six bytes |
Return code: 01 01 01 00 51 88
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0x00: the broadcast address; 0x01-0xFF: device addresses |
01 | 01 Command | Command for checking states of Relay |
01 | Number | The number of bytes returned |
00 | State | The state of Relay Bit0: The state of the first Relay; Bit1: The state of the second Relay; Bit2: The state of the third Relay; …… Bit7: The state of the eighth Relay |
8C 35 | CRC16 | The CRC16 checksum of the first six bytes |
Examples:
[Device with Address 01]
Send: 01 01 00 00 00 08 3D CC
Return: 01 01 01 00 51 88 //Close all Relays
Send: 01 01 00 00 00 08 3D CC
Return: 01 01 01 01 90 48 //Open Relay 0 and close other Relays
Send: 01 01 00 00 00 08 3D CC
Return: 01 01 01 41 91 B8 //Open Relay 0 and Relay 6, close other Relays
Write States of Relays
Send code: 01 0F 00 00 00 08 01 FF BE D5
Bytes | Meaning | Description |
---|---|---|
01 | Device address | 0x00: the broadcast address; 0x01-0xFF: the device address |
0F | 0F Command | Write Relay Status Command |
00 00 | Relay start address | Fixed 0x0000 |
00 08 | Number of relays | Fixed 0x0008 |
01 | Number of bytes | Fixed 0x01 |
FF | Relay Status | Bit0: control the first relay; Bit1: control the second relay; Bit2: control the third relay; …… Bit7: Control the eighth relay |
BE D5 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Return code: 01 0F 00 00 00 01 94 0B
Bytes | Meaning | Description |
---|---|---|
01 | Device address | 0x00: the broadcast address; 0x01-0xFF: the device address |
0F | 0F Instruction | All Register Control Instructions |
00 00 | Address | Fixed 0x0000 |
00 08 | Number of relays | Fixed 0x0008 |
54 0D | CRC16 | CRC16 checksum of the first 6 bytes of data |
Example:
[Device with Address 01]
All relays on: 01 0F 00 00 00 08 01 FF BE D5
All relays off: 01 0F 00 00 00 08 01 00 FE 95
0-1 ON; 3-7 OFF: 01 0F 00 00 00 08 01 03 BE 94
Relay Flash ON/OFF Command
Send code: 01 05 02 00 00 07 8D B0
Bytes | Meaning | Description |
---|---|---|
01 | Device address | 0x00: the broadcast address; 0x01-0xFF: the device address |
05 | 05 Command | Single Control Command |
02 | Command | 02 for flashing on, 04 for flashing off |
00 | Relay Address | The address of the relay to be controlled, 0x00~0x08 |
00 07 | Interval time | Delay time is data*100ms Value: 0x0007, delay: 7*100MS = 700MS |
8D B0 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Return code: 01 05 02 00 00 07 8D B0
Bytes | Meaning | Description |
---|---|---|
01 | Device address | 0x00: the broadcast address; 0x01-0xFF: the device address |
05 | 05 Command | Single Control Command |
02 | Command | 02 for flashing on, 04 for flashing off |
00 | Relay address | To control the relay address, 0x00~0x08 |
00 07 | Interval time | Delay time is data*100ms Value: 0x0007, delay: 7*100MS = 700MS |
8D B0 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Example:
[Device with Address 01]
Relay 0 is open: 01 05 02 00 00 07 8D B0 //700MS = 7*100MS = 700MS
No.1 relay out of the way: 01 05 02 01 00 08 9C 74 //800MS
No.0 relay flashes off: 01 05 04 00 00 05 0C F9 //500MS
No.1 relay flashes off: 01 05 04 01 00 06 1D 38 //600MS
Set Baud Rate Command
Send code: 00 06 20 00 00 05 43 D8
Bytes | Meaning | Description |
---|---|---|
00 | device address | 0x00: the broadcast address; 0x01-0xFF: the device address |
06 | 06 command | set baud rate and address |
20 00 | command register | 0x2000 sets the baud rate, 0x4000 sets the device address |
00 | parity | 0x00: no parity check, 0x01: even parity check, 0x02: odd parity check |
05 | baud rate value | the corresponding baud rate value: 0x00: 4800 0x01: 9600 0x02: 19200 0x03: 38400 0x04: 57600 0x05: 115200 0x06: 128000 0x07: 256000 |
43 D8 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Return code: 00 06 20 00 00 05 43 D8
Bytes | Meaning | Description |
---|---|---|
00 | Device address | 0x00: the broadcast address; 0x01-0xFF: the device address |
06 | 06 command | set baud rate and address |
20 00 | command register | 0x2000 sets the baud rate, 0x4000 sets the device address |
00 | parity | 0x00: no parity check, 0x01: even parity check, 0x02: odd parity check |
05 | baud rate value | the corresponding baud rate value: 0x00: 4800 0x01: 9600 0x02: 19200 0x03: 38400 0x04: 57600 0x05: 115200 0x06: 128000 0x07: 256000 |
43 D8 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Examples:
[Device with Address 01]
Set baud rate 4800: 00 06 20 00 00 00 83 DB
Set baud rate 9600: 00 06 20 00 00 01 42 1B
Set baud rate 115 200: 00 06 20 00 00 05 43 D8
Set Device Address Command
Send code: 00 06 40 00 00 01 5C 1B
Bytes | Meaning | Description |
---|---|---|
00 | device address | 0x00: the broadcast address; 0x01-0xFF: the device address |
06 | 06 command | set the baud rate and device address |
40 00 | command register | 0x2000 sets the baud rate, 0x4000 sets the device address |
00 01 | device address | set the device address as 0x0001-0x00FF |
5C 1B | CRC16 | CRC16 checksum of the first 6 bytes of data |
Return code: 00 06 40 00 00 01 5C 1B
Bytes | Meaning | Description |
---|---|---|
00 | device address | 0x00: broadcast address; 0x01-0xFF: device addresses |
06 | 06 command | set baud rate and device address |
40 00 | command register | 0x2000 sets baud rate, 0x4000 sets device address |
00 01 | device address | the device address set; 0x0001-0x00FF |
5C 1B | CRC16 | CRC16 checksum of the first 6 bytes of data |
Examples:
[Device with Address 01]
Set device address as 0x01: 00 06 40 00 00 01 5C 1b
Set device address as 0x02: 00 06 40 00 00 02 1C 1A
Set device address as 0x03: 00 06 40 00 00 03 DD DA
Read Device Address Command
Send code: 00 03 40 00 00 01 90 1B
Bytes | Meaning | Description |
---|---|---|
00 | Device address | 0x00: the broadcast address; 0x01-0xFF: the device address |
03 | 03 command | read the device address command |
40 00 | command register | 0x4000: read the device address, 0x8000: read the software version |
00 01 | bytes | fixed 0x0001 |
90 1B | CRC16 | CRC16 checksum of the first 6 bytes of data |
Return code: 01 03 02 00 01 79 84
Bytes | Meaning | Description |
---|---|---|
00 | device address | 0x00: the broadcast address; 0x01-0xFF: the device address |
03 | 03 command | Read the software version and the device address command |
02 | bytes | return bytes |
00 01 | device address | set the device address as 0x0001-0x00FF |
79 84 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Examples:
[Device with Address 01]
Send: 00 03 40 00 00 01 90 1B
Return: 01 03 02 00 01 79 84 //address 0x01
[Device with Address 02]
Send: 00 03 40 00 00 01 90 1B
Return: 02 03 02 00 02 7D 85 //address 0x02
[Device with Address 03]
Send: 00 03 40 00 00 01 90 1B
Return: 03 03 02 00 03 81 85 //address 0x03
Read Software Version Command
Send code: 00 03 80 00 00 01 AC 1B
Bytes | Meaning | Description |
---|---|---|
01 | Device address | 0x00: the broadcast address; 0x01-0xFF: the device address |
03 | 03 command | Read the software version and the device address command |
80 00 | Command register | 0x4000: read the device address, 0x8000: read the software version |
00 01 | Bytes | Fixed 0x0001 |
8F CA | CRC16 | CRC16 checksum of the first 6 bytes of data |
Return code: 01 03 02 00 C8 F0 B8
Bytes | Meaning | Description |
---|---|---|
01 | Device Adress | 0x00: the broadcast address, 0x01-0xFF: the device addresses |
03 | 03 Command | Read the software version and the device address command |
02 | Bytes | Return bytes |
00 C8 | Software version | Convert to decimal and move the decimal point to the left by two places to indicate the software version 0x00C8 = 200 = V2.00 |
F0 B8 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Examples:
Send: 00 03 80 00 00 01 AC 1B
Return: 03 03 02 00 C8 F1 00 //0x00C8=200=V2.00
Development Protocol V1
From September 2021, the V2 of the development protocol will be adopted. The V1 is not compatible with Modbus commands and now the V2 is fully compatible with the Modbus protocol.
There is no difference in hardware between V1 and V2. Customers who have purchased the V1 version but need to use the V2 development agreement can contact customer service to upgrade the firmware.
Command Format
The command contains 8 bytes:
- Byte 1: Device Address
- Byte 2: Function code
- Byte 3 4: Address of register (big-endian)
- Byte 5 6: data of register (big-endian)
- Byte 7 8: CRC16 cheksum (little-endian)
Function Code
Function code | Description |
---|---|
01 | Read the state of Relay |
03 | Read address, revision |
05 | Write single Relay |
06 | Configure baudrate, address |
0F | Write all Relays |
Control Single Relay
Send code: 01 05 00 00 FF 00 8C 3A
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0 x 00 is broadcast address;0x01-0xFF are device addresses (Device address is 01 by default) |
05 | 05 Command | Command for controlling Relay |
00 00 | Address | The register address of controlled Relay, 0 x 0000 - 0 x 0008 |
FF 00 | Command | 0 x FF00: Open Relay; 0 x 0000: Close Relay; 0 x 5500: Flip Relay |
8C 3A | CRC16 | The CRC16 checksum of the first six bytes. |
Return code: 01 05 00 00 FF 00 8C 3A
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0 x 00 is broadcast address; 0 x 01-0 x FF are dives addresses |
05 | 05 Command | Command for controlling relay |
00 00 | Address | The register address of controlled Relay,0 x 0000-0 x 0008 |
FF 00 | Command | 0 x FF00: Open Relay; 0 x 0000: Close Relay 0 x 5500: Flip Relay |
8C 3A | CRC16 | The CRC16 checksum of the first six bytes. |
Examples:
[Device with address 01]:
Open Relay 0: 01 05 00 00 FF 00 8C 3A
Close Relay 0: 01 05 00 00 00 00 CD CA
Open Relay 1: 01 05 00 01 FF 00 DD FA
Close Relay 1: 01 05 00 01 00 00 9C 0A
Open Relay 2: 01 05 00 02 FF 00 2D FA
Close Relay 2: 01 05 00 02 00 00 6C 0A
Open Relay 3: 01 05 00 03 FF 00 7C 3A
Close Relay 3: 01 05 00 03 00 00 3D CA
Flip Relay 0: 01 05 00 00 55 00 F2 9A
Flip Relay 1: 01 05 00 01 55 00 A3 5A
Flip Relay 2: 01 05 00 02 55 00 53 5A
Flip Relay 3: 01 05 00 03 55 00 02 9A
Control All Relay
Send code: 01 05 00 FF FF FF FC 4A
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0 x 00 is broadcast;0 x 01-0 x FF are devices address |
05 | 05 command | Command for controlling Relay |
00 FF | Address | Fixed 0 x 00FF |
FF FF | Command | 0 x FFFF: Open Relay; |
FC 4A | CRC16 | The CRC16 checksum of the first six bytes |
Return code: 01 05 00 FF FF FF FC 4A
Byte | Meaning | Description |
---|---|---|
01 | Devices | 0 x 00 is broadcast address; 0 x 01-0 x FF is device address |
05 | 05 Command | Command for controlling |
00 FF | Address | Fixed 0 x 00FF |
FF FF | Command | 0 x FFFF: Open Relay; 0 x 0000: Close Relay; 0 x 5A00: Flip Relay; |
FC 4A | CRC16 | The CRC16 checksum of the first six bytes. |
Example:
[Device with address 01]:
Open all Relays: 01 05 00 FF FF FF FC 4A
Close all Relays: 01 05 00 FF 00 00 FD FA
Flip all Relays: 01 05 00 FF 5A 00 C7 5A
Read States of Relays
Send code: 01 01 00 FF 00 01 CD FA
Bytes | Meaning | Description |
---|---|---|
01 | Device address | 0 x 00 is broadcast address;0 x 01-0 x FF are device addresses |
01 | 01 Command | Command for checking states of Relay |
00 FF | Address | Fixed 0 x 00FF |
00 01 | Command | Fixed 0 x 0001 |
CD FA | CRC16 | The CRC16 of the first six bytes |
Return code: 01 01 01 00 51 88
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0 x 00 is broadcast address; 0 x 01-0 x FF are device addressese |
01 | 01 Command | Command for checking states of Relay |
01 | Number | The number of bytes returned |
00 | Queried State | The state of Relay Bit0: The state of the first Relay; Bit1: The state of the second Relay; Bit2: The state of the third Relay; …… Bit7: The state of the eighth Relay; |
8C 35 | CRC16 | The CRC16 checksum of the first six bytes. |
Examples:
[Device with Address 01]
Send: 01 01 00 FF 00 01 CD FA
Return: 01 01 01 00 51 88 //Close all Relays
Send: 01 01 00 FF 00 01 CD FA
Return: 01 01 01 01 90 48 //Open Relay 0 and close other Relays
Send: 01 01 00 FF 00 01 CD FA
Return: 01 01 01 41 91 B8 //Open Relay 0 and Relay 6, close other Relays
Write Relay
Send code: 01 0F 00 00 00 01 94 0B
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0x00 is the boradcast address;0x01-0xFF are device addresses |
0F | 0F Command | Command for writing Relay |
00 00 | Address | Fixed 0x0000 |
00 01 | Command | Bit0: Control the first relay; Bit1: Control the second relay; Bit2: Control the third relay; ... Bit7: Control the eighth relay; |
94 0B | CRC16 | Fixed 0x01 |
Return code: 01 0F 00 00 00 01 94 0B
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0x00 is the boradcast address; 0x01-0xFF are device addresses |
0F | 0F Command | Command for controlling all Relay |
00 00 | Address | Fixed 0x0000 |
00 01 | Command | Bit0: Control the first relay; Bit1: Control the second relay; Bit2: Control the third relay; ...Bit7: Control the eighth relay; |
94 0B | CRC16 | The CRC16 checksum of the first six bytes |
Example:
[Device with address 01]
Open all Relay: 01 0F 00 00 00 FF 15 8B
Close all Relay: 01 0F 00 00 00 00 55 CB
0-1 Open;3-7 Close: 01 0F 00 00 00 03 15 CA
Flash ON/OFF Relay
Send code: 01 05 02 00 00 07 8D B0
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0 x 00 is the boradcast address; 0 x 01-0 x FF are device addresses |
05 | 05 Command | Command for controlling signle Relay |
02 | Command | 02 is the command for closing Relay in the current time,04 is the command for opening Relay in the current time |
00 | Address of Relay | The address of Relay controlled |
00 07 | Delay | The Delay time is Data*100ms Data: 0 x 0007,Delay: 7*100MS = 700MS |
8D B0 | CRC16 | The CRC16 checksum of the first six bytes. |
Return code: 01 05 02 00 00 07 8D B0
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0 x 00 is the boradcast address;0 x 01-0 x FF are device addresses |
05 | 05 Command | Command for controlling single Relay |
02 | Command | 02 is the command for closing Relay in the current time,04 is the command for opening Relay in the current time |
00 | Address of Relay | The address of Relay controlled |
00 07 | Delay | The delay time is the data*100ms Data: 0 x 0007, Delay: 7*100MS = 700MS |
8D B0 | CRC16 | The CRC16 checksum of the first six bytes. |
Example:
[Device with address 01]
Relay 0 flash on: 01 05 02 00 00 07 8D B0 //700MS = 7*100MS = 700MS
Relay 1 flash on: 01 05 02 01 00 08 9C 74 //800MS
Relay 0 flash off: 01 05 04 00 00 05 0C F9 //500MS
Relay 1 flash off: 01 05 04 01 00 06 1D 38 //600MS
Set Baud Rate
Send code: 00 06 20 00 00 05 43 D8
Byte | Meaning | Description |
---|---|---|
00 | Device address | 0 x 00 is the boradcast address; 0 x 01-0 x FF are device addresses |
06 | 06 Command | Set baud rate or device address |
20 00 | Command register | 0x2000: Set baud rate,0 x 4000:Set device address |
00 05 | Baud rate | Baudrate: 0 x 00: 4800 0 x 01: 9600 0 x 02: 19200 0 x 03: 38400 0 x 04: 57600 0 x 05: 115200 0 x 06: 128000 0 x 07: 256000 |
43 D8 | CRC16 | The CRC16 checksum of the first six bytes. |
Return code: 00 06 20 00 00 05 43 D8
Byte | Meaning | Description |
---|---|---|
00 | Device address | 0 x 00 is the boradcast address; 0 x 01-0xFF are device addresses |
06 | 06 Command | Set baud rate or device address |
20 00 | Command register | 0 x 2000: Set baud rate, 0 x 4000 Set device address |
00 05 | Baud rate | The baud rate 0 x 0000: 4800 0 x 0001: 9600 0 x 0002: 19200 0 x 0003: 38400 0 x 0004: 57600 0 x 0005: 115200 0 x 0006: 128000 0 x 0007: 256000 |
43 D8 | CRC16 | The CRC16 checksum of the first six bytes. |
Example:
[Device with address 0 x 01]
Set baud rate as 4800: 00 06 20 00 00 00 83 DB
Set baud rate as 9600: 00 06 20 00 00 01 42 1B
Set baud rate as 115200: 00 06 20 00 00 05 43 D8
Set Device Address
Send code: 00 06 40 00 00 01 5C 1B
Byte | Meaning | Description |
---|---|---|
00 | Device address | 0 x 00 is the boradcast address; 0 x 01-0 x FF are device addresses |
06 | 06 Command | Set baud rate or device address |
40 00 | Command register | 0 x 2000: Set baud rate, 0 x 4000: Set device address |
00 01 | Device address | The device address,0 x 0001-0 x 00FF |
5C 1B | CRC16 | The CRC16 checksum of the first six bytes. |
Return code: 00 06 40 00 00 01 5C 1B
Byte | Meaning | Description |
---|---|---|
00 | Device address | 0x00 is the boradcast address;0 x 01-0 x FF are device addresses |
06 | 06 Command | Set baud rate or device address |
40 00 | Command register | 0 x 2000: Set baud rate,0 x 4000: Set device address |
00 01 | Device address | Set device address, 0 x 0001-0 x 00FF |
5C 1B | CRC16 | The CRC16 checksum of first six bytes. |
Example:
[Device with address 0 x 01]
Set device address as 0 x 01: 00 06 40 00 00 01 5C 1b
Set device address as 0 x 02: 00 06 40 00 00 02 1C 1A
Set device address as 0 x 03: 00 06 40 00 00 03 DD DA
Read Device Address
Send code: 00 03 40 00 00 01 90 1B
Byte | Meaning | Description |
---|---|---|
00 | Device address | 0 x 00 is the boradcast address; 0 x 01-0 x FF are device addresses |
03 | 03 Command | Read Device address |
40 00 | Command register | 0 x 0200: Read software revision, 0 x 0040: Read device address |
00 01 | Device address | Device address |
90 1B | CRC16 | The CRC16 checksum of the first six bytes. |
Return code: 01 03 01 01 31 88
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0 x 00 is the boradcast address; 0 x 01-0 x FF are device addresses |
03 | 03 commands | Read software revision or device address |
01 | Number of bytes | Number of bytes returned |
01 | Device address | Devicess |
31 88 | CRC16 | The CRC16 checksum of the first six bytes. |
Example:
[Device with address 01]
Send: 00 03 40 00 00 01 90 1B
Return: 01 03 01 01 31 88 //Device address 0x01
[Device with address 02]
Send: 00 03 40 00 00 01 90 1B
Return: 02 03 01 02 71 CD //Device address 0x02
[Device with address 03]
Send: 00 03 40 00 00 01 90 1B
Return: 03 03 01 03 B1 F1 //Device address 0x03
Read Software Revision
Send code: 01 03 20 00 00 01 8F CA
Byte | Meaning | Description |
---|---|---|
01 | device address | 0 x 00 is the boradcast address; 0 x 01-0 x FF are device addresses |
03 | 03 Command | Read software revision or device address |
20 00 | Command register | 0 x 4000: Read device address, 0 x 8000: Read software version |
00 01 | Device address | Device address |
8F CA | CRC16 | The CRC16 checksum of the first six bytes. |
Return code: 01 03 01 64 F1 A3
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0 x 00 is the boradcast address; 0 x 01-0 x FF are device addresses |
03 | 03 Command | Read software revision, read device address |
01 | Number of bytes | number of bytes returned |
64 | Software version | Converting to decimal and shifting the decimal point two places to the left indicates the software version. 0x64 = 100 = V1.00 |
F1 A3 | CRC16 | The CRC16 checksum of the first six bytes. |
Example:
Send: 01 03 20 00 00 01 8F CA
Return: 01 03 01 64 F1 A3 // 64 = 100 =V1.00
Resources
Document
Demo codes
Softwares
Related application
FAQ
1、If the module does not respond to the command, verify that the baud rate and device ID are correct. You may also try Restoring the factory settings.
2、If the above steps do not resolve the issue, please submit a ticket to contact the Waveshare technical support team.
{{{5}}}
The temperature range of the relay component is -40°C- +85°C. The humidity is 40-85%RH.
{{{5}}}
The temperature range of the relay component is -40°C- +85°C Humidity is 40-85%RH
{{{5}}}
Support
Technical Support
If you need technical support or have any feedback/review, please click the Submit Now button to submit a ticket, Our support team will check and reply to you within 1 to 2 working days. Please be patient as we make every effort to help you to resolve the issue.
Working Time: 9 AM - 6 PM GMT+8 (Monday to Friday)