<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 3.2 Draft//EN”> My darkroom is actually a combined office/hobby room (conveniently located on the attic so it is very easy to make it a darkroom - only two very small windows). As it happens, I have a number of computers and a soldering iron over there, so it was a logical step to hook a couple of relays to a parallel port and control safelight and enlarger from my Linux PC.
Over time, I added a collection of scripts etcetera that helps me with developing film, printing teststrips, etcetera. I keep it all together in a couple of directories, and you can <a href=darkroom.tgz>download a snapshot</a> if you want to. If there is enough interest, I might start making actual distributions so please let <a href=mailto:cg@cdegroot.com>me</a> know when you’re using it!
There is no documentation in the snapshot, so here is a short description of the contents of the file:
- hardware/
- A couple of files from somewhere on SunSite (I don't remember the original filename - credits to a guy called <a href=mailto:reza@ucsd.edu>Reza</a>) that detail how to build a light switch with minimal hardware, hook it to the parallel port, and control it with C programs. If I can build it, everyone can - and I built it.
- src/
- C++ source code to control the switches in various ways. Building the
software here will result in the following programs:
- setswitch
- clearswitch
- toggleswitch
- clearswitch
- Commands to set, clear or toggle switches. A numeric argument specifies
the data line of the parallel port the relay is hooked to (I have
hardcoded the enlarger on line 0, the safelight on line 1). Example:
setswitch 0
Switches on the enlarger.
- magtimer
- Switches on the enlarger for a specified amount of time (you
specify the time in 1/1000ths of a second on the command line). Example:
magtimer 12000
Gives a 12 second exposure.
- drtimer
- For developing film, drtimer lets you specify times and
beeps (you need a soundcard for this). Big numbers on screen show
the countdown, and a beep every minute helps you keep track in the
dark when developing sheetfilm etcetera. You can mix a number of
arguments - times in 1/10th of a second and `+' characters for a
series of three consecutive beeps. Example:
drtimer 50 100 + 600
Counts down from 5 seconds, beeps, counts down from 10 seconds, beeps three times, counts down from 60 seconds, beeps. </dl>
- scripts/
- A collection of scripts using the C++ programs to give a higher level
interface. You need to hack these yourself to fit your working style and
chemicals.
- dev-roll
- dev-sheet
- Scripts for roll or sheet development. Roll development assumes a
daylight tank, and thus prompts via the screen. Sheet development assumes
darkness, and thus prompts with short sentences. Both take two arguments:
minutes and seconds of development, and guide you through the whole
process. This greatly enhances consistency, of course. Example:
dev-sheet 6 00
Guides you through the process of sheet film development with a development time of 6 minutes.
- hstops
- tstops
- qstops
- tstops
- Calculates times for a test strip around a given time (in seconds) with
intervals of half, third and quarter stops, respectively. Example:
hstops 10
Calculates the eight half stops around 10 seconds (2.5, 3.536, 5.0, 7.071, 10.0, 14.142, 20.0 and 28.284 seconds).
- teststrip
- Helps making a teststrip. Give spacing (h, t, q) and central time and
it will prompt you to hit enter for each exposure. So a test strip becomes
a matter of alternately hitting enter and exposing the next part of the
strip (note that I don't make cumulative test strips - I only uncover a
single part of the test strip, so that every part receives a single
exposure). Example:
teststrip h 10
Makes a test strip with half stops around 10 seconds (thus exposing for the times as given with the previous example).
- xdarkroom
- A script that you should modify to suit your needs. It kills of the fvwm95 task bar (because it would stay on top otherwise) and starts an xterm that just covers my 1024x768 screen completely. As the xterm has a black background with a dark red foreground, you can quite safely use this window when printing (set your screen to maximum contrast, and then turn down brightness until the background is really black). The shell started in the xterm reads the file darkroomrc, which has a number of aliases to make single-key actions possible. Instead of this script you can also use a virtual console with black background and red foreground, of course.
- darkroomrc
- Contains utilities and functions for the other scripts. Specifically, when used from darkroomrc. When included into a shell (with . darkroomrc), it comes up in the default mode that has a single programmed function key: F1 for B&W printing. When hitting F1 Enter, you enter this mode and get a different keymap: F1 for a 12 second exposure, F2 for a 9 second exposure, F5 for a drtimer paper development sequence (develop 60 seconds, drip 15 seconds, stop bath 30 seconds, drop 15 seconds, fix 60 seconds), F6 for switing on the enlarger, F7 for switching off the enlarger and turning on the safelight. So, a basic print of 12 seconds would be: F6 Enter, compose and focus, F7 Enter put the paper on the easel, F2 Enter, pick up the exposed paper, F5 Enter and start developing according to the beeps. This script, of course, is meant to be modified to suit your needs. </dl>
- sounds/
- Canned sentences for sheet film development. I generated these with
the text-to-speech facility of MacOS, recorded them on another Mac, and
converted them to WAV format in order to make them usable on Linux.
</dl>
You can compile and install everything by the three commands:
./configure make
and as root
make install
which will install in /usr/local/bin and /usr/local/lib/darkroom everything needed to make your Linux box your Darkroom Computer.
- dev-roll
- setswitch