This script requires pyserial.
pip install --user pyserial
Install from pip:
pip install --user dmx485
Install from source:
python setup.py install
This should work with any FTDI RS485 dongle or any of the similar knock-offs.
FTDI to RS485 cheap dongle:
https://stevenbreuls.com/2013/05/diy-usb-dmx-dongle-interface-for-under-10/
First create an instance of dmx.DMX_Serial(), then start the background thread. Once that is running the dongle will begin sending a full DMX universe. To change the value of a channel use set_data(). This function takes a bytes() object with 512 bytes, each representing a single DMX channel. It will be sent on the next DMX refresh.
import time
import dmx
sender = dmx.DMX_Serial()
sender.start()
for i in range(200):
if i % 2:
sender.set_data(bytes((255,)*512))
else:
sender.set_data(bytes((0,)*512))
time.sleep(1)