CM Home technical documentation Buy
Two RS485 lines are available on CM-Home. This lines are opto-isolated from the CPU and available on screw terminals as shown below.
The ports are visible by Linux on /dev/ttyUSB0
(left port) and /dev/ttyUSB2
(right port) and can be
managed by software like any other serial line.
The DE signal required to get the bus is managed in hardware by the FTDI FT4232 chip.
Send and receive chars using the left RS485 port. To do the same on the right port change /dev/ttyUSB0
in /dev/ttyUSB1
.
#!/usr/bin/python
import serial
import time
ser = serial.Serial(
port='/dev/ttyUSB0',
baudrate=115200,
timeout=1,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
ser.flushOutput()
ser.flushInput()
rx_counter=0
tx_counter=0
while True:
tx_counter=tx_counter+1
ser.write("Tx counter = %d | Rx counter = %d\n\r".encode('utf-8') % (tx_counter,rx_counter))
print("Tx counter = %d | Rx counter = %d" % (tx_counter,rx_counter))
a=ser.read(1)
if a:
rx_counter=rx_counter+1
ser.write("Tx counter = %d | Rx counter = %d | Received: %s %02x\n\r".encode('utf-8') % (tx_counter,rx_counter,a,ord(a)))
print("Tx counter = %d | Rx counter = %d | Received: %s %02x" % (tx_counter,rx_counter,a,ord(a)))