How to control a laser projection ?

I found that there are DMX and ILDA.. So how to control a projection with processing? Is there a library? What hardware do i need?


  • This is my field of interest! There are many things to say.

    The webforum is a great resource for anything that has something to do with laser projectors. I strongly recommend you sign up there.

    Do NOT use DMX for laser projectors. If you do you're limited to some random "spaz and flail" patterns with limited control. It would completely nullify the usage of a computer and Processing though.

    Your other option is Ilda control. There are a number of commercial controllers (DACs) available. There are two kinds: USB and Ethernet. The USB DACs are the cheapest starting at around $100 (Riya DAC) and of course the price determines the quality. You might be tempted by the cheap cost of an iShow DAC but it simply won't work unless you have aa 32 bit computer, and badly at that...

    The main downside of USB DACs is that the drivers are usually provided in a C++ DLL file so you need to use jni or jna to get it to work which can be tricky. I never managed to do it with my Easylase DAC... But if you think you can do it then this might be an option. Just be careful that the controller you choose has an open API or SDK, some will only work with the software from the vendor (any pangolin stuff).

    Another downside is that USB cables can only be 5 m maximum to be reliable. This means you'll need lengthy amounts of db25 cable which is expensive.

    Ethernet controllers don't get this limitation, you can have hundreds of metres if you want.

    Internet protocols which the Ethernet controllers use are platform independent and are thus the best choice for processing. I recommend the etherdream controller as it's about the cheapest one available and can do DMX as well.

    There is no library for direct laser control yet, for either USB or Ethernet controllers. I'm however creating a library that can render Ilda files from Processing. These can be imported into most laser show software. They can also be placed onto an SD card and placed into some kinds of projectors. That can be an option for you if you don't want to spend a lot of money on an etherdream and laser with Ilda connector: generate files in processing, put them on SD card and control the laser with DMX with processing and a cheap USB 2 DMX dongle.

    I can always use some testers for the library. If you go with an etherdream and manage to stream frames to it, let me know and I will add it to my library.

    I use Processing mainly to bundle data from all my controllers (several midi controllers, my phone, on screen sliders and buttons, leap motion etc) and send them to my laser software.

  • edited October 2015 Answer ✓

    This is my program

    It's not yet finished but has a couple powerful features.

    The library is not available online.

  • Thank you so much.My English is poor. I can understand what you mean and that help me a lot. But is this method realtime?

  • No, my program is not real-time. If you want real-time, you need a controller, either USB or Ethernet, and find a way to talk to it with Processing. It's untrodden ground but it's something I've been wanting to do myself so I will try to help you.

    Another aspect I haven't rambled about is safety. You should be aware that anything over 5mW can cause permanent eye damage in less than 250 ms, which is the "default" blink reflex time for the eye. The power at which this happens can increase if you scan it fast enough (which is why projectors can be safe) but unless you can calculate it you should stick to the 10 mW/cm² rule (which means 5 mW total for an eye with a pupil of 7 mm).

    Do NOT point your laser to people's eyes. Do NOT assume that if you buy a laser it will be safe. Please look up regulations in your country before using your laser in public.

    That said have fun and wave your money goodbye.

  • Yes.I really want realtime.And I decide to use Ether dream.There are some examples used Openframeworks.But I prefer processing because it's much more easy.

  • Please keep me updated.

  • Thanks cmb. I was working on something like this back in the 90's using Visual Basic - I gave up on that platform when they switched to .net ( became way to difficult to output through the parallel/serial port and USB wasn't going to happen ). I wanted to try something using Processing because a) it's free and b) it's got a huge support base. I've been playing with your file for a bit and noticed a couple of things ControlP5 has been updated and they've deprecated a lot of the functions, specifically listbox. Using the previous 2012 version works. Processing 3 also introduces many errors... I just switched back to 2.21. I'm hoping to connect your program to dump a file to an Arduino Due, then use that to control my old show box ( it was designed to work with an Amiga 500 audio port running Pangolin )


Sign In or Register to comment.