Tag Archives: laser shows

It’s alive! And first blood…

A few days ago I received the galvo kit and tonight the laser arrived with a USB sound card and my new soldering iron. So I’ve decided to give a try and check if I could make the thing move.

With a signal generator I tried to draw lines as I could only drive one channel at a time. The lasers worked between 3 to 5V as advertised and the luminosity is somehow decreasing until 2.5V. It will probably be relatively easy to do a blanking mechanism, but controlling the power might be tricky. Also the first lesson was theses beasts are very sensitive, as I fried one without any real obvious mistakes… First conclusion: I will order some cheap heads to tune everything before switching to the small spot laser.

Here are some boring single axis tests, changing the frequency makes the spot appears as a continuous line or a moving dot.Drive_frequency_tests

Also I’ve tried to see how fine the beam could be focused at a 50cm distance. I’m quite satisfied to see that if everything goes right, the line could be around 1/2 mm wide. This picture was taken with a flash, so most of the speckle is gone. The apparent width of the beam with naked eye is much larger. That probably mean I will have to find a filter to put in from of the webcam.

beam_width Anyway I think the next step for this weekend is to build a Sound-card to galvo driver adapter to be able to draw some figures!

[<<Prev. – First steps]    [3D Scanner articles]   [TBD – Next>>]


Matlab ILD Files Format Reader (laser show animation)

When I started looking at how to find galvanometers for the scanner I quickly realized that my best chance would be to explore the laser show community to learn more about the subject. One of the topic that was coming back often was that the tuning of the “galvos” is an involved operation and to reach a good rendering one has to spend time learning hoe to do it.

Digging a bit more I discovered that the International Laser Display Association (ILDA) has defined a standard exchange format file (ILD extension) to ease the sharing of laser animations between the laserists.The association is closed to the public and most of the freely info available can be found in communities like the photolexicon site forum. The forum is really handy to grasp most of the aspects of laser shows: sample data files, home build setup, configuration and tuning, advices on the hardware…

One frame decoded with Matlab of “the Riddle” animation found in the Photolexicon site.

On this post I will concentrate on the ILD file format as it’s the main way the galvo movements data, color and blanking information are stored and transmitted. I found the latest ILD file format description that includes all the types of frames commonly used in the wild. The file format is pretty simple and mostly just a collection of coordinates stored with a header. This web page describes graphically all the frame format and also points at a internal feud in the community going on for years.

All comes from the fact that the color information was poorly integrated in the original format so most of the old files rely on some default palette to choose the color of each point. These default palettes are not completely standard and can change with the software implementation. So to solve the issues the ILDA introduced new format (Frame types 4  & 5) that define 24bits full color for each point.

laserboy trueColor
8bit Palette Frame (left) and true color palette on the right (source)

Long story short, I’ve created a ILD file decoder for Matlab with a few examples data files (see at the bottom of the post). I’ve not tested it with Octave but as I’m not using any specific functions it should be pretty much portable. The reader has been optimized to load all the points/colors of a frame with one “fread” call. This enable a very fast decoding (The Riddle file ~20Mb for 5120 images is decoded on my PC in less than 4 seconds).

In an future article I will explore more the galvo tuning principles using the ILDA test patern (available here). The interesting part is that the blue circle is defined outside the square but with a proper tuning is should appears tangent inside the circle. The ILDA used this trick to standardize the dynamic behavior of the scanners mirror servos.

ILDATest               Ilda_c2_proper
The left picture is the content of the ILDA test frame.
The right picture is the proper result expected from a well tuned scanner (source)

Note: All ILD pictures in this post were generated using the Matlab decoding package available HERE, all code are copyrighted, only usable for non-commercial purpose and provided as is with no guaranty of any sort,

[<<Prev. – Scanner Architecture]    [3D Scanner articles]   [First Steps: the galvo & laser – Next>>]