
This project consisted in the creation of a USB interface that allows to control DMX-512 (RS485) devices in music shows. There are already some devices like these on the market, but the cheapest is around 50€ plus shipping, while the Martin dongle costs more than 1000€. I really wanted one, but I couldn’t afford those… So I decided to make my own device. The building of a “toy” like this can be trivial for some, and, at the same time, a head-ache for others. I must confess that I found it very simple, considering the accessibility to the products I needed.
Project Status
Progress: 100%
Time Spent: 15 hours
Cost: 30€
Tools Needed
- USB Serial Converter
- Canon/XLR female connector
- IC SN 75176
- 100Ω resistor
- Veroboard
- Box and screws
- Some wires
First steps
I came up with this idea while I surfed the Arduino website. Some people showed, not how to make the bridge between the software and the lights, but how to generate the DMX signal to comunicate directly with the machines, which was not exactly what I intended. I found this PDF in Google. Using only 1 Integrated Circuit, 1 resistor and the Arduino, I could transform it into an authentic DMX Interface. It is actually very simple. The IC is not that expensive and nothing to say about the resistor.
I mounted the circuit on my Diecimila and the protoshield, wired it to a LED PAR 64 DMX device I had here and it worked like a charm! Then I thought I would be japperdising all the functionalities of the Arduino, by using just the RX channel, that is from the FTDI chip. I would be using neither the digital channels, nor the ATMega.
I really needed one simplified circuit that had that USB to Serial converter (the FTDI chip). I discovered that there were an Arduino version that had exactly that. The Arduino USB Serial Converter. PERFECT! The circuit would be like the one on the left.
Assembly
1. Add 2 ‘headers’ to the Serial Converter
This is an important step, as these headers will hold our Serial Converter, so that it doesn’t shake and probably screw up with an
exhaustive use. It is quite simple, provided that you have the necessary tools. I recommend a product that is called “Handy-Hands” which allows you to hold the components, especially for precise solderings.
2. Cut the front part of the box to fit the USB conector and the XLR/Canon connector
In the image, you can see that the USB hole is a little “#%&$(#, as it was made with an x-acto. You should try to make it as clean as possible, using an hobby-drill, like Dremel or similar.
3. Drill the veroboard on the screws place
In the image, it is already drilled and with the screws. Everything shinny!
4. Soldering the Serial Converter to the veroboard
You should do this with maximum care, so you dont melt the FTDI chip, because you run the risk of burning it with the iron high temperature. Use the “handy-hands” to hold the components in place and follow my tips on “How to solder properly” on the Tutorials section.
5. Solder the IC and the resistor
Make shure to reserve some space in the prototype board for the Integrated Circuit and the resistor. Tou can use a IC socket, instead of soldering it directly. That makes it much easier if you need to replace the IC.
6. Wiring it up
6. Set the Canon/XLR in place
Drill a hole and screw the connector.
7. Wire the connector Canon/XLR
Following the schematics, make the necessary connections.
Close the box, and it is done!
Final notes – Software
The software that I recommend you to use is Freestyler. When it asks you what type of interface you have, chose Enttec OpenDMX. Plug in your DMX device and have fun!
FAQ (Frequently Asked Questions)
Does the circuit need an Arduino?
No. The circuit is composed of “USB Serial Converter” (which is a version of the Arduino, with no ATmega, only the USB -> Serial part – has the FTDI chip), the IC 75176 and a resistor.
What is the USB Serial Converter on the list?
It is this one: http://www.arduino.cc/en/Main/MiniUSB
Purchased here: http://www.sparkfun.com/commerce/product_info.php?products_id=8165
When you connect the interface to USB, the PC won’t recognize it, right?
It will recognize, as long as you have the FTDI drivers installed. Those come with the Arduino IDE program, because the chip is the same (FT232R).
Download link: http://www.ftdichip.com/Drivers/D2XX.htm
When you run Freestyler, how does it recognizes the hardware and its port?
You just need to chose the Enttec Open DMX interface.
I have the “Breakout Board for FT232RL USB to Serial”, will it also work, as it has the same chip?
Actually, this is not the same one I used. However, what really matters is the FTDI chip. It should work with no problems.


30 comments
Skip to comment form ↓
Daniel Varela
January 2, 2012 at 11:22 pm (UTC 0) Link to this comment
Is it ok to use this one:
http://www.sonigate.com/pt/product/show_details/1789/USBserial-converter
I don’t find the one you use available!
admin
January 3, 2012 at 9:43 pm (UTC 0) Link to this comment
Hi Daniel
Yes, you can use it, as it is exactly the one I have used.
Best regards,
Ricardo
Cuervo González
April 12, 2012 at 6:46 am (UTC 0) Link to this comment
It Works, just awesome!
Thks!
tomek
April 21, 2012 at 5:04 pm (UTC 0) Link to this comment
hej,
same inside, but lovley wrapping http://www.flickr.com/photos/21731475@N08/3479007071/in/photostream
great tutorial,
Ricardo Dias
April 21, 2012 at 5:22 pm (UTC 0) Link to this comment
Hi Tomek!
Thanks for your comment. I loved the LED box…
Best regards,
Ricardo
Triesna
June 2, 2012 at 5:00 am (UTC 0) Link to this comment
hi,
I have a dfrduino uno. I want to make those tools into device USB like the enttec OpenDmx. I do not understand about the arduino and programming. only I would like to have one tool to control lighting using my laptop. How do I create a lighting controller by using my dfrduino? If the above tool I can use? in addition to installing the enttec …can it be used only by installing a freestyler?
Sorry I have been a hassle you
your regard
triesna
Ricardo Dias
June 2, 2012 at 9:00 am (UTC 0) Link to this comment
Hi Triesna
First of all, everyone is free to comment and post doubts in the comments
I always try to answer as soon as possible.
I didn’t know DFRduino, but I did a little research and found out it is an Arduino “clone”. However, we should always be cautious with clones because they may work well in some situations while in others they are not even close to the original.
If you read the article you may have noticed that I did use the Arduino Duemilanove/Diecimila in a first stage, then I found that what I was using in that Arduino was just the USB to Serial converter (the FTDI chip, namely the FT232RL).
That said, after analysing the DFRduino schematics (http://www.dfrobot.com/image/data/DFR0001/Arduino%20Duemilanove%20Schematic.pdf), I noticed it uses the exact same integrated circuit from FTDI.
Please verify if it is present in your board (its a black small chip next to the USB socket with many pins), and if it is, you may use it the same way I used the original.
Regarding your question about Freestyler, you can use it in any software compatible with Enttec OpenDMX.
Let me know if that helped.
Best regards,
Ricardo Dias
Triesna
June 2, 2012 at 12:58 pm (UTC 0) Link to this comment
Yes … I bought a dfrduino production of dfrobot as you say. I’ve made a dmx shield as you are in compliance with the scheme that is in your web. The components that I use is the Max 485 resitor and 100 0hm.
1. Pin 1 (max 480) I connect with resistors.
2. Pin 2 I connect another resistor on the feet then I connect with the ground pin of the arduino.
3. Pin 3 and pin 8 I connect with 5 v.
4. I connect Pin 4 to pin RX on the arduino.
5. I connect pin 5 to Arduino ground
6. I connect Pin 5 to pin 1 on xlr connectors too.
7. I connect Pin 6 to pin3 on xlr connector .
8. I connect Pin 7 to pin 2 on xlr connector .
then I connect the arduino to my laptop using the usb. I open the freestyler512 and equipment I go on settup enttec dmx open but is not recognized. What is wrong?
thx for ur anwser friend….
Ricardo Dias
June 3, 2012 at 9:04 am (UTC 0) Link to this comment
Hi again
Just to make sure you have everything wired up correctly:
In MAX485:
Pin 1 -> 100ohm -> GND
Pin 2 -> GND
Pin 3 -> +5V
Pin 4 -> RX
Pin 5 -> GND
Pin 6 -> 3 on XLR
Pin 7 -> 2 on XLR
Pin 8 -> +5V
On XLR:
Pin 1 -> GND
But if it’s not being recognized in your PC, you should debug that part too, because that’s nothing to do with hardware wiring (as long as you didn’t a short-circuit by accident
).
Now, did you install the FTDI driver? Head to this page (http://www.ftdichip.com/Drivers/D2XX.htm) and download the one that’s suitable for your operating system first. Download and install before plugging it in.
Then, if you are in Windows, check in “Device Manager” if it shows up correctly and without warnings as a COM port.
I recommend you start debugging hardware only after you are sure software is ok.
Best regards,
Ricardo Dias
Triesna
June 2, 2012 at 1:12 pm (UTC 0) Link to this comment
saya menambahkan bahwa:
Saya telah menginstall arduino saya kedalam laptop saya. Saya juga sudah menginstal software enttec open DMX dan software freestyler512.
Bantu saya dengan kerendahan hati anda agar saya bisa membuat USB DMX Interface
thx
pascal
June 8, 2012 at 7:01 am (UTC 0) Link to this comment
Is it galvanic save? Could it damage my pc?
Ricardo Dias
September 8, 2012 at 3:01 pm (UTC 0) Link to this comment
Hello.
This version is not that safe, you must use good quality products in the DMX chain. However, I have several friends using this version for years without any problem.
The newest version of OpenDMX includes a separation between the two circuits, which helps protecting your computer. I’ll be making it available as soon as I have some time to write a full article about it.
Best regards,
Ricardo Dias
pascal
June 8, 2012 at 7:18 am (UTC 0) Link to this comment
also is there a bigger image of the schema? Would you maybe sell it already built? just write me the price if so.
Ricardo Dias
September 8, 2012 at 2:56 pm (UTC 0) Link to this comment
Hi pascal
I added a link on the schematics for a bigger picture.
Sorry about that.
Best regards,
Ricardo Dias
John Dorion
August 21, 2012 at 7:46 am (UTC 0) Link to this comment
Hello there,,,i have a question,,,,,i would “like” to be able to run,,say,,,freestyler,,,,,to control dmx lighting, but don’t quite understand..
If i use a usb >>>>dmx converter, will this let me control 1 fixture or many????
Considering i have say 3 fixtures on 3 different address,,would i be able to control each sepertly via software
Ricardo Dias
September 8, 2012 at 2:53 pm (UTC 0) Link to this comment
Hi John.
You will be able to control more than 1 at a time.
That is what DMX is about: create a chain of fixtures and control each independently (provided you give them different addresses)
Best regards,
Ricardo
Kimmo
October 30, 2012 at 4:07 pm (UTC 0) Link to this comment
Pin 4 -> TX is probaply better for sending out data…
Fixed things for me. Otherwise great info shared for all of us.
Ricardo Dias
October 30, 2012 at 8:13 pm (UTC 0) Link to this comment
Hi Kimmo.
Actually this is rather counter-intuitive… It’s correct as I posted, because RX/TX is from the receiver’s perspective, in the case of the module I used.
Best regards,
Ricardo Dias
merijn
November 21, 2012 at 8:45 pm (UTC 0) Link to this comment
read about this yesterday-night. today went shopping for the ic + resistor (stuff like a duemilanove i already had
laying around) and after some debugging… it works!
thank you!!
merijn
Ricardo Dias
November 21, 2012 at 10:49 pm (UTC 0) Link to this comment
Hi merijn
Glad to hear your success on this circuit!
Keep going and giving back news.
Best regards,
Ricardo Dias
kalti
November 25, 2012 at 11:33 am (UTC 0) Link to this comment
does this USB controller (http://store.arduino.cc/eu/index.php?main_page=product_info&cPath=11_15&products_id=143) will work as well as the one you used? Or will this one https://www.sparkfun.com/products/718 be a better choice?
Thank you for your support!
Ricardo Dias
November 26, 2012 at 8:08 pm (UTC 0) Link to this comment
Hi kalti
The first one that you pointed does not include the required FTDI chip. The USB-Serial conversion is made by an ATMega, which will have a different PID/VID. This is what the PC software is looking for when it searches for the interface.
I’ve already used the one from Sparkfun and can confirm that it works great! Bear in mind that the cheap USB mini connector is not very practical nor robust.
Best regards,
Ricardo Dias
davide
December 4, 2012 at 7:16 pm (UTC 0) Link to this comment
Boa noite primeiro de tudo desculpa escrever em portugues
segundo gostei muito do topico mas gostava de saber se esta https://www.sparkfun.com/products/9521 trabalha bem com esse esquema, obrigado e desculpa
Ricardo Dias
December 5, 2012 at 11:34 am (UTC 0) Link to this comment
Boas davide.
Não ha qualquer problema com o português… Podia ser em qualquer língua, desde que eu percebesse e pudesse responder
Analisei o esquema interno do produto que enviaste e usa o FT232RL, logo, desde que consigas acesso aos pinos TXO e RXI, funcionará.
Boas electrónicas
Cumps,
Ricardo
Callum
January 3, 2013 at 9:15 pm (UTC 0) Link to this comment
Hi,
I really like this tutorial, but is it possible to use a actual arduino (R3 Mega) instead of the serial converter, because it contains the same FTDI chip (i think)?
Thanks,
Callum
Ricardo Dias
January 3, 2013 at 9:35 pm (UTC 0) Link to this comment
Hey Callum.
Firstly, thanks for your comment
Arduino is Open Source Hardware and allows us to check its schematic!
I found it online and seems that the Arduino Mega R3 uses an ATMega8 to handle all the USB communications, not the FTDI chip. This means that it will probably have different VID/PID and thus will probably not work!
Best regards.
Alex
January 16, 2013 at 5:23 pm (UTC 0) Link to this comment
Hi,
Just like to point out that there should also be a 120 ohm resistor between the A and B output pins. While it will probably work fine without it is recommended (see datasheet for MAX485), and should extend it’s range a bit.
Thanks for the nicely detailed write-up.
Alex.
Ricardo Dias
January 16, 2013 at 9:10 pm (UTC 0) Link to this comment
Hey Alex.
Thanks for your feedback.
In any DMX512 system, there should be a terminal in the end of the chain. As you pointed out, a 120ohm resistor is what is used. Thanks for the info
Best regards,
Ricardo Dias
Alex
January 16, 2013 at 10:34 pm (UTC 0) Link to this comment
Hi Ricardo,
That’s what I would have said, you always terminate the end of the chain. However I’ve checked Maxim’s datasheet again and they have one at each end on all diagrams relating to the 485. Also to quote from it “To minimize reflections, the line should be terminated at both ends in its characteristic impedance”. Unless I’m missing something they seem to be clear on it. Perhaps it’s to cut reflections from and stubs?
Regards, Alex.
Ricardo Dias
January 16, 2013 at 10:38 pm (UTC 0) Link to this comment
Hi again.
Yes Alex, it should have 120ohm impedance terminals in both ends, so this is something to consider in the next versions.
Exactly, the terminals are used in transmission lines to attenuate (ideally cut off) reflections.
Best regards,
Ricardo Dias