I made this project because I have to manage some big open area sites over DMX 512 protocol. Of course, you can use a notebook computer with DMX software, but when the field is rocky and wet, it isn’t very suitable. I named it “phone” because you can “talk” to DMX devices and “listen to” communication in DMX Universe.
It’s based on Arduino ATmega328. It has a rechargeable Lion battery and can work with DMX Universe without external supply.
I implemented two main functions:
Working with the DMX tester is very easy because of the touchscreen LCD display that I used.
First, you have to chose SEND or READ (sniffing) function.
You have to choose an address from DMX Universe and then a value by touching directly the corresponding places on touchscreen display. For entering values you have two modes “Digital” and “Analog”, choose them with touchscreen.
In “Digital” mode you set exact DMX value using the virtual touchscreen keyboard from 0 to 255.
In “Analog” mode you set values by turning the three potentiometers. In this mode you can change values in chosen DMX addresses fast. Each potentiometer corresponds to a row on the display: 1/4, 2/5, 3/6 depending of which three addresses are set to “Analog” mode.
On the display you see 6 DMX addresses, but you can choose and set values to many different address (max value of addresses are set in program code)
On the LCD you can also see the result colors of the 2 of the sets of three addresses if the addresses represent colors of 2 RGB LED lamps.
You can choose up to 6 addresses and then you will see in real time the values that are being sent to the chosen addresses in the DMX Universe.
You can download the code at the bottom of this page and you can also download the Arduino libraries that I have used in this project.
First, you have to calibrate your touchscreen LCD with “spfd5408_calibrate.ino” from Adafruit library – “SPFD5408-master\examples\spfd5408_calibrate” and in rows 73-76 in the program code replace with your correct values.
My LCD needs the codes for color to be inverted, if your LCD doesn’t need this, delete the symbol “~” everywhere before parameters for color in the program code.
For entering DMX addresses and values, you have to input all three digits and they are accepted automatically. Example: for value 5, you have to input 005.
Calculating the values of analog inputs for potentiometers is in the function “scale(int value)”, row 522. If you have a problem to reach the value 255 or 0, correct the values in row 526 in the program code.
If you have any comments or questions, you can leave them in the comments.
Universal plastic box. I have spent a lot of time making all holes in the right places and sizes, especially the screen opening.
I used Arduino nano 3.0 with ATmega328 because ATmega168 doesn’t have enough memory for the program code. The Arduino nano is mounted on a prototype shield I/O extension board to make connecting the touchscreen display easy.
Touch Screen LCD
2.4 inch TFT LCD Touch Screen Shield for Arduino UNO R3, 240×320 resolution
DMX RGB driver
I used a pre-assembled DMX RGB driver to have the possibility of connecting directly a RGB LED lamp. The driver works with PWM and it’s suitable for
constant voltage LED lamps.
Charger pcb board
For charging the Lion battery, I use a charger board from an ordinary Lion power bank.
Used libraries archived in 7z
Download the code
If I could help you saving time by reusing my ideas, consider contributing this project.