↑ Return to Projects

Print this Page

OpenDMX

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.

Permanent link to this article: http://ricardo-dias.com/projects/opendmx/

46 comments

1 ping

Skip to comment form

  1. Daniel Varela

    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!

    1. admin

      Hi Daniel ;)

      Yes, you can use it, as it is exactly the one I have used.

      Best regards,
      Ricardo

  2. Cuervo González

    It Works, just awesome!

    Thks!

  3. tomek

    hej,

    same inside, but lovley wrapping http://www.flickr.com/photos/21731475@N08/3479007071/in/photostream

    great tutorial,

    1. Ricardo Dias

      Hi Tomek!

      Thanks for your comment. I loved the LED box… ;)

      Best regards,
      Ricardo

  4. Triesna

    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

    1. Ricardo Dias

      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

      1. Triesna

        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….

        1. Ricardo Dias

          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 :P ).
          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

      2. Triesna

        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

  5. pascal

    Is it galvanic save? Could it damage my pc?

    1. Ricardo Dias

      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

  6. pascal

    also is there a bigger image of the schema? Would you maybe sell it already built? just write me the price if so.

    1. Ricardo Dias

      Hi pascal

      I added a link on the schematics for a bigger picture.
      Sorry about that.

      Best regards,
      Ricardo Dias

  7. John Dorion

    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

    1. Ricardo Dias

      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

  8. Kimmo

    Pin 4 -> TX is probaply better for sending out data…
    Fixed things for me. Otherwise great info shared for all of us.

    1. Ricardo Dias

      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

  9. merijn

    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

    1. Ricardo Dias

      Hi merijn

      Glad to hear your success on this circuit! :) Keep going and giving back news.

      Best regards,
      Ricardo Dias

  10. kalti

    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!

    1. Ricardo Dias

      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

  11. davide

    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

    1. Ricardo Dias

      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

  12. Callum

    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

    1. Ricardo Dias

      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.

      1. Callum

        Ah okay thanks anyway, I’ve found this instead http://www.ebay.co.uk/itm/330702826105 it’s takes USB 2.0 through the FT232RL and then send it through a SN75176 out to some screw terminals all on one £6 board!

  13. Alex

    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.

    1. Ricardo Dias

      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

  14. Alex

    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.

    1. Ricardo Dias

      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

  15. JoeG

    I’m trying to use:
    OSEPP™ FTDI Breakout Board

    The OSEPP FTDI is a USB-to-serial (TTL) converter for serial communication with devices like the OSEPP Pro and Pro Mini boards. The board uses the popular FT232RL chip from FTDI.

    It apears to be what you are using.. yet I cannot seem to get it to work.. When plugged in Freestyler sees it and the RX Led flashes continuously.. but my lights do not seem to see a DMX signal. granted I’ve no terminator.. but I’ve also only a single light connected directly to the USB-to-DMX cable.
    Can’t get to a store tonight to get another XLR end, but once I can I’ll try making a terminator anyway.
    Any other suggestions?

    1. Ricardo Dias

      Hey JoeG

      It doesn’t appear to be a software related problem, as you see your RX flashing.
      I suggest you try to connect to a single fixture first. Double check if your wiring is correct.

      Best regards,
      Ricardo Dias

    2. Mark

      I had the same problem and i fixed it.

      First off all I had to use the TXD pin on the USB2SER module (FTDI chip from sparkfun).

      Then i used the schematics from the parallel port DMX controller from Kristof Nys to hook up the SN75176 chip.
      (link: http://users.skynet.be/kristofnys/dongle.htm)

      Note: PIN 4 from the SN75176 must be connected to the TXD port of the USB2SER module.

      And it worked!

      Hope this helps, kind regards Mark

      1. Ricardo Dias

        Hey Mark

        First of all, thanks for giving feedback.
        When you pick a different module, you should check the internal wiring (many of them have schematics freely available).

        The problem is with RX/TX signals. In this case, the PC is TX’ing (transmiting) and the fixtures will be RX’ing (receiving). There are boards that announce the TX/RX from the PC’s perspective and other boards do that from the perspective of the device you are connecting it to.

        By the way, thanks for posting it, I’m sure it will help many of other users facing the problem.

        Best regards,
        Ricardo Dias

  16. Tomas

    I have an usb-485 made with ft232rl that I use for other purpose, but when I try to use it with FreeStyler 3.5.2 it says to me “Open Failed”. If I open any other terminal software it works without any problem.
    Any idea? any solution? Com ports used are COM7 and COM8 (I have 2 usb-485)
    Thanks,

    1. Ricardo Dias

      Hi Tomas.

      As freestyler doesn’t allow you to select the COM port, you could try to change it to COM1.
      Verify if the drivers mentioned in the article are correctly installed.

      Best regards,
      Ricardo Dias

  17. christopher

    is it ok to use this one

    https://www.sparkfun.com/products/9716

    1. Ricardo Dias

      Hey christopher

      Yes, you can use that module ;) The FTDI chip is the same, just make sure the wiring is the same.
      Good luck and dont forget to give feedback ;)

      Best regards,
      Ricardo Dias

  18. enrique romero

    amazing!!!!!!……great job!!!!!……greetings and thanks from spain…..I will use this
    http://www.electan.com/programadorconversor-usb-serie-ftdi-sparkfun-p-3117.html

    1. Ricardo Dias

      Hey Enrique,

      Great to see it’s working for you.

      Best regards,
      Ricardo

  19. enrique romero

    hi ricardo ….. I have a problem with this project ….. I’ve ridden all …. I run freestyler Enttec selected open source R I FT232 chip detects perfectly …. the TX LED flashes. …. but when I connect my device dmx (work mobile head mh 150) ……… TX LED stops and everything falls …… I used the ST485cn ic ….. what may be the problem? moving head device? thanks

    1. Ricardo Dias

      Hello Enrique,

      I suggest you start by trying it in another device. It seems to me like a short-circuit issue.
      Can you double check if there are no short-circuits in your DMX cable?

  20. Brad

    Sweet setup. I made 2 and love it. Thanks for the info.
    Great job.

  21. Craig

    Where can i find a USB serial converter in Cape town south africa?

  1. New product: RD/USB2DMX » Ricardo Dias

    [...] OpenDMX [...]

Leave a Reply

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