ILDA Quick Look Plug-in

So, when I came home from WWDC this summer, excited about all the new technologies, I quickly got started on a Quick Look Plug-in for ILDA files. I was super excited I quickly got it working, but I couldn't tell a soul due to that NDA thingy. : ( But Leopard is out now, so I can reveal it. It isn't very stable now, mostly due to an out-of-date version of ILDAlib that it is using; but I've added it to the LaserLine source, so anybody with a free afternoon can debug it and add colors and things. The drawing code should be pretty much verbatim to that in ILDAInspector, but it needs error checking and stuff on loading the files. Further, the project should reference the shared code portion of the source tree, not it's own copy of ILDAlib.

ILDA Quick Look Plug-in


Acclaim Lighting makes LED based lighting products. Some of their products include architectural lighting, high brightness fixtures utilizing Luxeon LEDs, and even lighting to cover a whole floor or wall. It all is controlled by DMX-512. Well--almost; the interesting fixture here is the X-Panel Frame. This device consists of 12 5x5 RGB LED arrays, arranged in a matrix. Due to the number of channels, it needs more than 512 channels so it supports "DMX-1000K," a protocol I am completely unfamiliar with. Fortunately, if you limit yourself to 6 X-Panel modules, DMX-512 works just fine, and the display size is just a bit limited.

Now, of course I was unwilling to use the recommended software provided by Acclaim; it didn't run on my platform of choice. Actually, I didn't even have a copy of the stuff. Nor could I find a USB DMX-512 interface. But I did have an idea.

The power of Cocoa allowed me to whip up a little application for my Mac in about two evenings. It took about 2 more days to finish up all the features. But what exactly does it do? First I made the whole display blink, then added some chasing features, and did some automated fading. Simple stuff, but it was lots of fun. It made me want to do more; so I wrote a little function that would translate from normal cartesian coordinates+color to the DMX data, reflecting the physical orientation of the device. An NSImageView configured as an image well later, and I could drag & drop photos and have them displayed on the LEDs. The resolution was low, and my scaling unoptimized, but video was the most fulfilling.

But fancy Cocoa programming does me no good without a way to physically control the device. Fortunately I happened to have my EasyLase USB interface handy. I wired up a level converter with some MAX-485 chips, according to the wiring diagram included in the manual. I had recently finished testing the DMX-512 portion of the EasyLase USB Driver for OS X, but this was the first time I used it with a real device : ). (if you need a copy, let me know)

Please excuse the low quality of the video, I just kinda hacked it together. The screen capture and live video are slightly out of sync, and the CCD in my digital camera simply isn't able to handle the brightness of the LEDs.

The video clip at the end is complements of Charlie Deets. Please don't laugh at the poor software interface design; it was just a toy.

Erdős Number == 5

Many mathematicians will be familiar with the Erdős number, a measure of "collaborative distance." Those outside of the math world might be more familiar with the Bacon number, from the Six Degrees of Kevin Bacon game, measuring the number of co-appearances an actor is from Kevin Bacon. An Erdős number is pretty much the same thing but for writing papers with mathematician Paul Erdős.

While I am not quite a mathematician, being a student of Computer Science, I have the opportunity to associate with those skilled in Mathematics. I took it upon myself to determine if I had a finite Erdős number. It turns out I do.

According to the instructions at the Erdős Number Project, I used the AMS MathSciNet Collaboration Distance search to find the answer.

I have documented my findings below; the last three lines of the table were determined via MathSciNet, the first two by personal knowledge. I was pleased to find my number is so low and am proud to declare my finding.

  person coauthored with to write
5 Joey Hagedorn Narayan Desai Directing Change Using Bcfg2
4 Narayan Desai Ewing L. Lusk MPISH: A Parallel Shell for MPI Programs
3 Ewing L. Lusk John Mackintosh Howie Combinatorial results relating to products of idempotents in finite full transformation semigroups
2 John Mackintosh Howie John L. Selfridge A semigroup embedding problem and an arithmetical function
1 John L. Selfridge Paul Erdős Some problems on the prime factors of consecutive integers

EasyLase USB

A few weeks ago the most adorable little Päckchen arrived on my doorstep from Germany. Inside was the EasyLase USB interface by JM Laser. The EasyLase is a USB device that has a 25-pin ILDA compatible DB-25 connector to output analog signals for laser projectors. It incorporates 12-bit DACs for the X-Y channels for superior resolution.

First output on Oscilloscope

In testing so far, it seems like it is going to be great, but there is plenty of coding to do yet to achieve the greatest performance. The card has plenty to give, and extra features like DMX512 In/Out--one less thing I need to buy!

Thus far, because the projector isn't quite finished yet, I've been testing with a Tektronix 2440 Oscilloscope. My friend Sean helped code a 3d Torus demo. It worked quite well, but I'm still having trouble with FTDI's D2XX driver for OS X version 0.1.0, perhaps the next version will solve some of the problems I'm having. Specifically, read and write calls are hanging when I know they shouldn't.

Galvanometer Frames

A while back I had the pleasure of speaking with a gentleman named Craig from the ECE Machine shop here at my university. I had the opportunity to talk to him because I was picking up some parts that he had machined for me out of solid aluminum!

I consider them stunning.

Key features include all-aluminum construction for optimal heat-dissipation as well as strategically placed mounting holes for circuitry or additional heatsinks. The should also provide flexible mounting surfaces for the galvos. It will be necessary to use thermal epoxy to glue the coils to the surface for maximum thermal conduction.

I really anticipate these will provide high-performance platforms for the rest of the components.

I am providing CAD drawings of the Base and Side parts in PDF format if you'd like to make them yourself as well. If you've like them in an editable format, just let me know.

subscribe via RSS