12V Lighting Controller

This project aims to provide a generic, high-power controller to automate 8-channels of 12V lighting. Several controllers could be used to control many more channels/lights though. The lighting being controlled is not safety critical, so the power for this lighting is via the mains power network in our home.

This means that the lights will not work during a power cut and this is a deliberate design decision. This controller will not be used for emergency lighting and safety lighting, which have their own protected power supply.

With two controllers as described here, it would be possible to automate all of the upstairs lighting in our current home and this is our test case. Much of the lighting is already 12V MR16 lamps, each currently on a separate transformer.

Design Options

Single Power Supply

The advantage of a single, high current power supply is that it is more efficient and lower cost. The disadvantage is that long cable runs result in voltage drops at the bulbs. With many LED bulbs this is not such a problem as they have in-built constant current limit circuits and can operate over a wide voltage range. In many cases it also doesn't matter that the bulbs are a little bit dimmer than they could be. With halogen lighting, this will extend the bulb life. Our projects and experiments to date, have shown it to not be an issue.

The alternative is to have lots of smaller transformers but this would mean switching mains voltages, something we are trying to avoid with this project. For this reason we have decided to use a single 12V switched-mode power supply rated 120W.

This controller provides 8 digital switched outputs, each typically rated at 12W maximum (i.e. 1A load max) and protected by a 3A fuse. This is not a hard limit though. Each channel could safely switch higher currents if need be. The key things to ensure are:

  • The sum of the lighting loads doesn't exceed the transformer rating when all the lights were switched on at the same time.
  • Each power transistor has an adequate heatsink.

This typically means each of the 8 controlled outputs could have three ~4W MR16 LED lamps attached, meaning this project will be able to control up to 24 such lamps. As an example our current kitchen which is fairly large has 15 such lamps in the ceiling. In reality, these could be switched via a single channel with this controller but we have two groups of bulbs in our kitchen ceiling anyway.

12V dc or 12V ac?

Transformers that provide 12V ac output are more readily available and tend to be lower cost. There are less options available when switching ac voltages though.

Most LED bulbs are designed to operate from a 12V ac supply but there are also many that will work from a 12V dc supply too. It is best to check the specification of each bulb before you buy them and attach then to a project like this.


12V Regulated Power Supply

12V switched mode PSU
This is a typical 12V 10A regulated power supply, used for a wide range of applications. Typically, devices like this have internal fans which is something we would like to avoid due to the associated noise.

12V 8.5A PSU
This is a fanless 12V regulated power supply rated at 8.5A.

Power Transistor Switching

2N3055 power transistor
We are using 2N3055 power transistors power transistor for this project as it capable of switching 15A with a suitable heatsink.

The power transistor is capable of fast switching, so we can also use Pulse Width Modulation (PWM) to enable dimmable lighting and brightness control.

The case is the collector, so all 8 channels can all be linked by the case to a common +12V rail.


ILQ74 quad opto-isolator
The ILQ74 opto-isolator is used to provide optical isolation on the digital inputs. This means the controller is truly generic and can be interfaced to pretty much anything, including a Raspberry Pi.

Automotive 8-way fuse holder
In common with all the other 12V designs used in our home, we are using automotive blade fuse holders and fuses to protect each output form short-circuits and excessive loads.


Off-the-shelf heatsink
The power transistors need a good heatsink. If used driving a 20W halogen MR16 bulb (~1.8A load), the power transistor will get quite warm without a heatsink. Unfortunately, the off-the-shelf heatsinks can be quite expensive and we need eight of them.

Our circuit design enables us to use a common 12V connection between the power transistors (tab/case is the collector), so we are mounting all 8 transistors on some 5mm thick aluminium plate, which will act as a shared heatsink. This will large enough to ensure it that a passive (i.e. no fans required) heatsink is sufficient.

We also plan to mount a temperature sensor in the centre of the heatsink, to monitor the heat generated and we will using this to test various loads and load configurations. We aim to be able to handle a maximum load of 50W on a channel with our chosen heatsink and will be testing with a 50W halogen MR16 bulb.

Heatsink layout
To facilitate temperature measurement, we have mounted the power transistors radially. A 1-Wire temperature sensor will sit in a hole in the middle of this heatsink. We used a template to mark the layout on piece of 5mm thick aluminium plate which is 152mm × 152mm.

Aluminium plate marked out
This is the aluminum plate with the hole positions marked with a centre punch. These are then drilled out to 3mm in diameter. The bolt holes for the transistors are then enlarged to 4mm and the holes for the pins are 6mm.

Transistors all mounted
This is the aluminum plate with the all the transistors mounted. The centre hole is for a 1-Wire temperature sensor.


Like our optically isolated input boards, we are using a 10-way IDC header for connection to this board.

10-Way IDC header
An optional 10-way IDC header can be mounted on the board though.

10-Way IDC socket
A matching 10-way header socket is used to link this board to other devices. In the case of the Raspberry Pi, we use an adaptor board to provide 16 digital inputs.

Header pins
Header pins are designed to support a 5V or 3.3V signal:
  1. Output 1
  2. Output 2
  3. Output 3
  4. Output 4
  5. Output 5
  6. Output 6
  7. Output 7
  8. Output 8
  9. +V - not used but present for compatibility
  10. 0V


Each controller will be enclosed in a case and will expose the heat sink to the outside.

Control & Automation

We are initially using an Ethernet I/O board to drive this power controller.


Why are we doing this? For the simply reason that we want to use intelligently controlled 12V lighting throughout our next home. To prove the viability of this, we are well into the process of converting all of the upstairs lighting in our current home to 12V and will be using these controllers to automate it.

If you wanted to place the controller(s) somewhere distant in your home, then it makes a lot of sense to use a remote, networked processor (Arduino, Raspberry Pi, etc.), to minimise the length of 12V wiring to the lighting.

The only reason why we think this 12V dc approach works is because of advances in LED lighting. This means you can properly light a room using much less power than you needed to use in the past (using incandescent bulbs and compact florescent bulbs). This has made a 12V dc solution viable.

This project covers 12V dc lighting only. We also have 230V ac mains powered lighting in our home but we use other methods (such as Z-Wave) to control this. We also plan to install Philips Hue devices to add additional functionality (colour changing and mood lighting) in our home.


Using this wired approach, we can fully automate all of the upstairs lighting in our home (assuming two 8-channel controllers) for less than £60. The costs are as follows:

  • 2N3055 transistor × 16 = £13.60 (eBay)
  • ILQ74 quad opto-isolator IC × 4 = £7.00 (Maplin)
  • Vero/strip-board = £2.09 (Maplin)
  • 8-way fuse holder = £4.70 (Vehicle Wiring Products)
  • Blade fuse × 8 = £1.20 (Vehicle Wiring Products)
  • 12V dc transformer × 2 = £30 (T.B.C.)

The above costs don't include the aluminium plate (heatsink), enclosure/case, wiring (which would be needed anyway), and miscellaneous nuts, bolts, etc. We are also using existing I/O capability spare in our Home Control System (HCS). If you wanted to add the control processor, then you could use a Raspberry Pi.

Interesting Links

Share ...
We are on ...
Facebook Twitter
YouTube Flickr Follow us on Pinterest