DMX+RDM Light With Arduino (No Libraries Required, Uses an RDM Chip)
by BeautifulProtocols in Circuits > LEDs
57 Views, 2 Favorites, 0 Comments
DMX+RDM Light With Arduino (No Libraries Required, Uses an RDM Chip)
This instructable shows how to design a DMX+RDM lighting device.
There is a lot of information available about DMX, but much less about RDM, which is extremely useful when developing professional lighting for installations where physical access is difficult, such as building façades. It is also essential for applications where you cannot physically access the fixture to set the DMX address using switches, such as pool lights, ornamental fountains, or lights embedded in pavement.
RDM opens up a wide range of possibilities in these scenarios, where a lighting operator cannot manually access the fixture to configure it. This is where RDM becomes powerful: it allows you to remotely set the DMX start address and manage your lighting devices without physical interaction.
The IS3720 chip is designed exactly for this purpose: a DMX+RDM receiver with an I2C interface. It eliminates the need to implement protocol handling and precise timing in firmware, as all of this is managed internally by the chip. This allows you to focus entirely on developing your lighting application, with the most complex parts already solved.
Supplies
- First, you will need the DMX+RDM receiver chip IS3720. It can be purchased from the INACKS website: www.inacks.com/is3720, and costs approximately $2.
- An RS485 transceiver is also required. You can use any compatible device (3.3V or 5V), as the IS3720 is 5V-tolerant. These typically cost $1.
- You will also need an Arduino. In this example, an Arduino UNO is used, but any Arduino with an I2C interface will work. It can operate at either 3.3V or 5V, since the IS3720 I2C pins are 5V-tolerant.
- A DMX+RDM controller is required, such as the Enttec DMX USB PRO. In practice, any compatible DMX+RDM controller can be used, as long as you are familiar with its software.
- You will also need RDM controller software compatible with your hardware. In our case, we use the Enttec RDM Controller (70531C), which works very well despite being a legacy tool. It can be downloaded here: https://support.enttec.com/support/solutions/articles/101000401521-rdm-kit-range-70511-70531-70532-70533-70534-legacy-product
- Finally, a DMX controller software is required. Any software compatible with your controller will work. We use Enttec PRO Manager.
Build the Circuit
The circuit is quite simple. Connect the Arduino UNO I2C interface to the IS3720, then connect the IS3720 to the RS-485 transceiver, and finally connect the transceiver to the Enttec device.
Do not forget to connect the pull-up resistors:
- On the I2C lines (2 resistors between 1 kΩ and 4.7 kΩ should work)
- On the RX/TX pin of the IS3720 (1 kΩ should work)
All pull-ups can go to 3.3V or 5V, as the IS3720 I2C and RX/TX pins are 5V-tolerant.
Write the Arduino Code
The firmware for the IS3720 is very easy and straightforward, and does not require any special libraries.
- At the beginning, configure the RDM data, such as your company name, product name, etc.
- Once the RDM configuration is complete, bring the RDM online. Your product will now be visible to RDM controllers.
- In the main loop, always check the DMX Start Address, as the RDM controller may change it at any time.
- Once you have the DMX Start Address, read the corresponding DMX channels.
That's all!
The Arduino code is attached. Review it and make any necessary modifications.
Downloads
Demonstration