brian@ucsd.EDU (Brian Kantor) (03/30/88)
We've recently inherited a Polaroid Palette Film Recorder from another department, and I've been wringing the secrets out of it slowly by attaching it to a terminal and playing with it. I'd thought of trying to worm the secrets out of the basic program that comes with the widget, but a quick glance at it showed that no sane person was ever going to figure out THAT program. Note: Polaroid will sell you (for $50) a set of diskettes for writing programs in 'C' on an IBM-PC to drive the thing. I thought this was a) useless, and b) too expensive, so I didn't order them. They don't have a technical manual that explains how it works or how to interface to it yourself. The device is a monochrome binary display with some rather widely-adjustable scan rates, a colour filter wheel, a shutter-control relay, and an RS-232 serial interface. It expects composite video in. The way it works is it is a display that you can control with software. You have the ability to blank the display, select one of 5 colour wheel positions (Red, Green, Blue, Clear, or Blind), turn jitter on or off, and control the shutter relay. You send it commands at 300 baud, and it will respond with a "R" followed by carriage-return when it has completed the action you requested. The commands I've figured out so far are: C unblank (enable) display D blank (disable) display K "raster fill" (jitter) on (blend pixels) I "raster fill" (jitter) off S shutter open (close relay circuit) T shutter close (open relay circuit) N returns firmware version (V.2.8 on mine) M returns current filter wheel position M0 filter wheel BLIND (black) M1 filter wheel RED M2 filter wheel GREEN M3 filter wheel BLUE M4 filter wheel CLEAR W0 Maybe a reset? Additionally, the following command letters return the "R"eady reply, but I can't see what they're doing: J, W, X, Y. "E" returns "4", and "P" returns "3". I've found that I can adjust the scan rates to display both IBM-PC monochrome and NTSC video; right now I'm using it on a Sun-1 colour display board (the green channel + sync tied together with a T-fitting). To get greyscale, you have to integrate the exposure over time. I've found that about two minutes per colour fully saturates the instant-print film I'm using. Here's the algorithm for doing 24-bit (8-bits each RGB) colour display prints on a Sun colour board using the Palette on the green+sync channel: Send the Palette W0, D, M0. tell the user to pull the slide or open the shutter foreach colour (red, green, blue) { set the Sun colour map to all zeros load the $colour raster into the sun display set the filter wheel to $colour enable display - send the Palette "C" for (i=255, i > 0, i--) { set SunColourMap[i] = R0,G255,B0 sleep for 1/2 second } disable display } set filter wheel to BLIND tell the user to replace the slide and pull the print, or close the shutter What this does is expose the brightest pixels of the image for 128 seconds, and each successively less-bright pixel for 1/2 second less until all are exposed. It then repeats this for the other two colours. If you wish to be exceedingly clever, you can vary the 1/2 second delay to adjust for gamma correction or variation in colour sensitivity of the emulsions. A lookup table for each of R,G,B or some complex formula may prove best. I haven't done it yet. You have to do it this way because the Palette CRT display is binary - it cannot show or record greyscale directly. So: does anyone out there have any more ideas or data on this thing? I always like to make good use of free equipment! :-) Brian Kantor UCSD Computer Graphics Lab c/o B-028, La Jolla, CA 92093 brian@ucsd.edu