What’s the essence of a darkroom? That’s right – light! Seriously though, I think good light makes all the difference in darkroom work. First and foremost, it’s just pleasant to have ample and good-quality light to work with. But it’s also essential for judging print quality and properties such as hue/color balance, toning etc. In this post, I’m showcasing my current darkroom lighting setup and I will also discuss some lessons learned and loose ends/issues.
Let’s start with the situation and requirements. We moved to our present house last year and as a consequence, I got a new darkroom. It’s a combined darkroom-study-hobby room, so multi-purpose, really. This means I need to have pleasant light to do desk work by, ample light when doing things like SMD soldering or other fine-detail work, and of course safelight for B&W printing and if at all possible, RA4 color printing. But more on the color bit later…
Then there were some additional items on my wish list. I wanted high-CRI lighting for decent color reproduction, and moreover, I wanted to be able to choose color temperature at least to some extent, so I could judge color prints under low color temperature conditions (typical indoor/artificial/living room lighting) and high-temperature quasi-daylight conditions. I wanted the lights to be remote-controlled, because it’s just very convenient to not have to walk to the light switch every time when going between white and safelight during a printing session. For B&W printing, I use red safelight because it’s the most universally safe (try using Fomabrom or Fomaspeed under an OC safelight and you’ll know what I mean), and I want this to be as bright as possible without inducing fogging issues. And evidently I wanted everything to be dimmable, because it’s just nice to be able to adjust the lighting level on requirements, to be able to even out the lighting across the room and to adjust the safelight intensity to actually safe levels.
Oh, and I wanted the lighting fixtures to look halfway decent. It doesn’t have to be top-notch Swedish design or anything, but the LED strips taped to the ceiling and wired up with a messy spiderweb topology in my previous darkroom were not something I wanted to replicate in our new home. So somewhat non-intrusive lighting fixtures and a minimum of cables all across the room, please.
For a light source, I settled on LED strips because of their availability, ease of use and also because they generally don’t present much of a heat dissipation problem. I could have opted for COB LEDs, but I would have had to deal with heat sinks and probably fans (with their acoustics, dust dispersal/airflow and durability drawbacks) and I wanted to steer clear of that. Moreover, LED strips are already a decent step towards diffusion due to their nature, and their longitudinal orientation matches the rectangular shape of a typical desk, workbench or sink. So strips it is.
I opted for so-called CCT dual-white strips for the white light, which are LED strips with alternating cool-white and warm-white beads. Since I like ample light, I opted for 240 LEDs per meter, and to keep current levels manageable I went for 24V instead of the more common 12V strips. I found some strips on AliExpress that looked promising, so I just got those. They tout a high CRI (>95), which was essential to me. Allegedly, these are the spectra for the LEDs used – if these measurements are anywhere accurate, it’s pretty good for low-cost LEDs!


For the red ones, I dug deep until I found strips that are 660nm instead of 620nm as most red LEDs are. In my previous darkroom, I used generic 620nm red strips which were only (somewhat…) safe when filtered with two layers of rubylith. So this time round, I went for a longer wavelength and I even got strips with LEDs that were supposed to have no secondary emission peak in the green band, as most red LEDs do have. This is the red LED spectrum from the datasheet I was kindly sent by the seller on my request:

And as a bit of an experiment, I even added an orange LED strip to see if RA4 printing with a color safelight is possible. Yes, I have been extremely skeptical of this due to the high sensitivity of color paper, but there’s this convenient dip in its sensitivity that is promising for safelights. In the old days, you’d use a low-pressure sodium (LPS) lamp to exploit this dip – and in fact, the dip was probably positioned in such a way to carefully match the 589nm emission peak of LPS lamps. Here’s what this dip looks like in the Fuji Crystal Archive Supreme datasheet:

LPS was not part of my plan; if you’re so inclined, you could get a Duka safelight which uses an LPS lamp. I’m not going to go there, because this is just ancient technology with long startup-times and uncertain availability of replacement bulbs. Of course, it’s not dimmable and just not a very consistent part of the rest of the setup I was planning. So I opted for LEDs here as well, and I managed to find some 600nm LED strips. Note: most orange or yellow strips have a more yellow (towards green) emission band (565nm-575nm or so), but this rapidly puts us into the steep part of the green-sensitive layer of the color paper. So it really needs to be 595nm or something very close to this.
As to the physical part of the deal, I kept things very simple and bought some aluminum H-profiles of suitable dimensions, taped two profiles together for each lighting fixture and taped the LEDs into the profiles. The red and orange strips went in the top slots so the safelight would always bounce against the ceiling. The whole contraption can easily be suspended by some wires; the fixtures don’t weigh much at all. I made three of them: one over the desk, one over the dry worktop and one over the sink area.
To connect each fixture to the driver module, I repurposed some RJ45 connectors because they’re reasonably small, pre-assembled cables are easily available and they can carry sufficient current for this application provided we don’t go too crazy on this – hence the 24V instead of 12V power supply. Here’s what it all looks like:


With the fixtures assembled, there was the task of driving them. Like I said, I chose to run everything on 24V to keep the current manageable especially for the white channels, which are power-hungry. For red and orange, I could only get 12V strips, so I divided these in half for each fixture and put the halves in series to get the same 24V rating. No problems there. For driving them, I just picked a simple 24V SMPS off the (Chinese) shelf (the strips have the necessary current limiting resistors onboard anyway!) and used low-side N-channel MOSFET switching to be able to turn them on/off and for dimming purposes.
I designed a remote-controlled light unit around the Microchip ATMega328PB, which very conveniently resembles an Arduino Nano from an Arduino perspective, so I could use the Arduino environment for rapid development. For the LED drivers, I used AO3400 SMD N-channel MOSFETs driven direct from PWM pins on the 328PB. Also I incorporated an nRF24L01+ module on each light unit and the necessary step-down converter and regulator to make the necessary 3.3V logic supply from the 24V LED power supply. And then there’s some protection circuitry, programming connectors, status LEDs and whathaveyou. I even provided for an onboard DS18B20 temperature sensor for thermal shutdown purposes and an I2C ‘auxiliary’ connector for future upgrades, but neither are currently used. Here’s a schematic, if you’re curious:

Based on the schematic, I laid out a PCB:

Because of chronic impatience and a high degree of maker-movement adherence, I make my PCB’s at home, which has the benefit of being able to make one, revise if necessary, and then make some more if I like them, without having to wait for at least a week for my stuff to get here from China. Parties like JLCPCB will make a much better quality PCB than I can, but the ones I make work OK enough, even if they’re not always very pretty. Here’s what the assembled end result looks like:


Now for the One Controller that Rules Them All – because my three driver modules are radio-controlled, and without a controller, they basically do…nothing. The master unit is actually somewhat simpler and mostly a case of ‘parts bin engineering’. It’s made of bits and pieces I had lying around anyway. It could have been much smaller, sleeker and more efficient, but this was the shortest connection between two points. Here’s the schematic:

It’s built around an ESP8266 experimenter board (a Lolin clone), to which I added an MCP23017 module. Only 4 GPIO’s are used on this one, and these are hooked up to external inputs through a buffer circuits with small signal MOSFETs. The inputs actually come from a hacked remote control device I used in my old darkroom. Why use this if there’s also an nRF24L01+ radio module onboard that’s needed to control the LED driver modules anyway? Well, I just liked the remote control unit, so I wanted to keep using it! It’s quite convenient to use in the dark, has just the right size…it’s kind of hard to beat overall.
There’s also a relay onboard which I mostly added so I could switch on existing light circuits in the room. I thought it would be nice to be able to remote-control the regular ceiling lights (generic embedded 230V LED spotlights wired to a wall switch). Maybe, one day, but for now, it’s not really necessary, so it’s not used. Manufactured and assembled, this is what the control unit looks like:

So much for the hardware. The rest is all software, and I could go very deeply into that, but I’ll leave that until someone really wants to know. I’ll just summarize what it does.
The whole idea is that I have 4 lighting programs (because I’ve got 4 inputs I can toggle using the remote control unit), which works out as (1) bright room lighting, which is all white LEDs on full power, (2) selective white lighting; I programmed this to be the warm white LEDs on the CCT strips only, (3) red B&W safelight and (4) orange RA4 safelight. Multiple programs can be active at the same time; for instance, I can have the B&W safelight on and toggle the warm white room light on or off parallel to it. Moreover, when toggling a program on/off, it actually dims from zero to the set intensity or vice versa, instead of actually switching instantaneously. When going from dark/safelight conditions to normal light and vice versa, I find this more comfortable. Besides, the IKEA LED bars in our kitchen do this trick, so why shouldn’t my contraption do the same? (Actually, my units dim smoother than the IKEA ones! Hah!)
I’ve been using this setup for a few months now, and yesterday I added a little extra gimmick. The master/controller is ESP8266-based, so in principle, it has WiFi. I didn’t use it previously, but I decided it would be nice to make a web interface to control the lights. Here’s what it looks like, in all its simplistic glory:

It shows the four programs that I mentioned before, and also the four light colors across the three different LED drivers: there’s red, yellow, cool white and warm white. The #0 unit is above the dry workbench, #1 is over the sink area and the #2 bar lights my desk. Each individual program can be composed out of any combination of light intensities from these colors and these units. For instance, red safelight is 0x08 red over the sink area and 0x10 (= 16 decimal, so twice as bright as 0x08) over my desk and the dry workbench, as these turned out the be the maximum safe levels when I tested it.
The grey boxes around the four programs are what you’d expect them to be: they act as buttons that toggle the programs. Yes, I can control my DIY darkroom lights from a browser. It’s completely and utterly unnecessary, but boys will always like toys!
Here’s some photos of what the finished project (insofar as I ever actually finish anything…) looks like:


Right, looks pretty perfect, doesn’t it? Well, perfect…nifty, in any case. No? Well, there’s some issues to sort out, and maybe some that are so fundamental that they cannot be sorted out. Here they are:
- The orange safelight for RA4 really isn’t safe enough. I was optimistic at first: I dialed the orange intensity way down to 1 or 2 (out of 255), and this seemed to be safe. And in a way, it is, but only for a very brief time. Used for more than 20 seconds or so before the paper goes into the developer (after that, it becomes far less sensitive), the color on the RA4 paper will shift and ultimately an ugly cyan cast emerges in the whites. Yet, even at this low intensity, the light is still plenty bright; once accustomed to it, the whole room is perfectly visible along with everything in it. This makes me regret that I hooked up the MOSFET led drivers to the 8-bit PWM outputs of the 328PB controller. With 12bit or 16bit PWM, I could have dialed the orange down even further and probably hit a spot where visibility is still useful, and the light is also sufficiently safe to process paper under for somewhat extended times. I’ll probably revisit this bit at some point, but so far, I settle for doing RA4 in the dark as I’ve always done, which works a treat.
- The red safelight is also not as safe as I had hoped to be. The spectrum on the 660nm LEDs was very promising, but I find I had to dim down to 8 to 16 out of 255 to get sufficiently safe levels for papers like Fomabrom. Warmtone papers are way less fussy (they’re generally about 2 stops slower than bromide papers), so I could get away with far more light when using them, but I also use faster bromide papers. The other day I cut some rubylith filters and inserted them into the LED profiles; you can actually see this on the photos. I have not tested this intervention, but I have good hopes it will allow for higher brightness levels that are still safe. I might add another layer of filter material, which is easy to do. For now, I can live with the lower-than-desired light level, which is still quite bright, but…to be continued!
- The remote control unit is nice to use, but not as nice yet as it could be. There turns out to be an unwanted side-effect of hacking it. It used to run at a combination of 12V (for the radio receiver) and 5V (the onboard controller) natively if memory serves, and I run it at 5V only in my application. This, however, dramatically reduces the sensitivity of the receiver and the range of the remote control. So I might just re-do the remote control part and use the RF24 module instead for this. I have another device in the house for which I made an RF24-based remote control (it’s a stereo channel switcher and volume control unit for our living room TV/audio stuff) and that works quite well, so I might do something similar for the darkroom lights. This also opens up all sorts of possibilities for more intricate lighting programs and differentiation between various use cases, such as different red light intensities for processing paper vs. developing ortho/xray film. It’s not a high priority at this point, but I’ll probably pick this one up one day.
But that’s the nitpicking part. Overall, I’m very happy with how this has turned out. It pretty much ticks all the boxes and the system is overall a joy to use. The white light is just great for…well, anything, really. Even for color printing, it works surprisingly well for judging print color. Plus, it was a lot of fun (and also a lot of work) to design, engineer and build this, which of course makes it all the more rewarding if it works as intended.