Arduino DMX Tester – Inexpensive Tester for Sending DMX-512

Hello All,
I work part-time (more of a hobby) in the lighting industry and use DMX since it is the industry standard for communicating or controlling devices (lighting fixtures, controllers, consoles, etc..)  I have seen commercial DMX testers on the market but I wanted to create my own.
I have been working on an idea to create a low cost (<$50), Arduino based DMX tester.
The tester would provide the following functionality:

  1. Simple input protocol for entering commands using 4×4, 16 button keypad.
  2. Support LCD display, 4 line x 20 character
  3. Output DMX for single channel or a range of channels at a set intensity level.

The Hardware:
I started with the following:

  1. An Arduino UNO board
  2. A 4×4, 16 button keypad (button matrix)
  3. A 4 line by 20 Character LCD display w I2C (Serial) Interface
  4. A low cost DMX / RDM Shield purchased from EBay (model: CTC-DRA-10-1, low cost, non-isolated)

PhidgetSBC3 based solar-powered weather station

The Input Commands:
I wanted to use a 4 x 4 (16) button key pad to input all the commands with a simple / easy to remember protocol (format).
Here is the basic command format:
Channel@Intensity
Start Channel-End Channel@ Intensity
Here is the actual input protocol using only a 4 x 4 – 16 button key pad:

Legend:
XXX = 1 to 512 Channel Number
III = 1 to 256 Intensity Level
Alpha-Numeric Key Mappings:
A = @ (at sign)
B = Bump (not implemented)
D = – (dash)
C = Clear
* = Wildcard value: 512 for channel and 256 for Full intensity
# = Execute
Code Development / Testing:
I developed / tested the code in several stages:

  1. Keypad input – 4 x 4 (16) button key pad (or switch array)
  2. LCD display – 4 x 20 Character LCD w I2C interface
  3. Verify/test the input commands (protocol) were working correctly using a state machine
  4. Add DMX master (sending) code

The Keypad
Hardware:
I had 3 types of key pads that I played with (switches on a PC board, membrane switch, soft-touch) See the pictures below.

Software:
I started with the Keypad library for easy matrix style keypad mapping.  See http://playground.arduino.cc/code/Keypad for more information.
I had to play around with the Row and Column mapping to get my Key Pad switch matrix to work. The pin-out in the documentation wasn’t correct on any of the keypads.  So once I determined the correct pin-out, the code worked perfectly.
Here is code snippet showing how to use the Keypad library:
(This is for the 16 switches on PC board)

The LCD display
Hardware:
I used a standard 4×20 character display with I2C (serial) interface which can be purchased from Ebay for about $10.00.

 

For more detail: Arduino DMX Tester – Inexpensive Tester for Sending DMX-512


About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top