Arduino-controlled UV LED PCB Exposure Box




Why make an exposure box?

Like many Arduino lovers, once I began creating larger projects I obviously did not want to keep them on a fragile breadboard.  As many people do, I started to assemble my projects on cheap prototype boards.  While these boards were fairly rugged, their layouts were confusing to say the least and were basically organized chaos! So I learned how to etch my own circuit boards.  While there are several ways to go about making your own boards, with the two most popular being toner transfer method or the photo-resist method .. I chose to go with photo-resist using pre-sensitized boards.  This involves designing your board in software such as Eagle CAD, printing your circuit out on transparency film with a laser printer, exposing and developing the board with a light source, and finally etching the board with ferric chloride solution.  My very first board came out perfect to my surprise but it was pure luck.  As I made more boards I quickly found out that I never achieved the same results twice.  What I found out is that the exposure time and the distance between the board and the light source must be EXACT every time.  I was over or under exposing my boards most of the time.  I wanted to make my own fool-proof exposure box that #1 would expose each and every board in the exact same way with evenly-distributed light and #2 precisely time the exposure of every board down to the second.  I also knew that using UV light would greatly reduce the required exposure time.

It was well worth the effort!  I found that the perfect exposure time for any board was only 2 minutes – 15 seconds for a 4x3 PCB, which is generally the maximum size of nearly all of my projects.  This exposure box is specifically made for 4x3 inch boards, but can be scaled up if your projects demand larger boards.

So in the end I simply print and cut out the 4x3 transparency film, lay the film glossy side down in the exposure window, peel and place my blank PCB into the window (which fits like a glove), enter my exposure time, press START and walk away!

And again keep in mind that I designed this box especially for 4 x 3 inch boards.  You can easily scale the project up or down by simply adjusting the window size AND the number of UV LED's used.  I would estimate 9 LED's for every square inch of copper.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Next: Gathering Your Parts, Tools, and Software...

Here are some links to have on hand that you will need later

Eagle CAD Free Edition

The Arduino IDK

The project files and code will be supplied as a .zip file in the last step!

Step 2: Required Parts and Tools

You can make this project as elaborate as you wish.  I'll dedicate this step to listing all of the parts and tools that I used in my design.

Exposure box parts list:


Drill and small drill bit set
Dremel tool with cutting disc
Razor blade or Exacto knife
Needle-nose plyers
Phillips screwdriver
Breadboard (optional)
Hot glue gun
Soldering iron
PCB etching materials
Timer Board:
Jumper wires
Arduino Nano
Female and Male Pin Headers
DC Power Jack 2.5mm
Power switch SPST On/Off
16x2 LCD module
4 x Momentary Push Buttons, N.O.
2 x LED
4 x 1k ohm 1/4 W Resistors
2 x 680 ohm 1/4 W Resistors
Buzzer / speaker
1 x 1k ohm Potentiometer
1 x Reed Relay
1 x 2N4704 General Purpose NPN Transistor
1 x 220 ohm Resistor
14 - 20 VDC Wall Power Supply
1 x 7805 5V Fixed Voltage Regulator
1 x 7812 12V Fixed Voltage Regulator
2 x Regulator Heatsinks
2 x 0.1uF Ceramic Non-polarized capacitors
2 x 1uF Electrolytic Polarized capacitors
Proto OR Strip Board may be desired for push button panel
1 x Presensitized PCB 4" x 3" and developing/etching solutions


Approx 6" x 8" x 5" deep Plastic Project Box
Approx 5" x 4" Plexiglass 1/8" Thick
Scrap piece of plastic approx 5" x 4" flat - 1/4" thick for light board mounting
UV LED Light Board:
1 x Wire Screw Terminal
21 x 100 ohm 1/4W Resistor
63 x 5mm UV LEDs
1 x Presensitized PCB 4" x 3" and developing/etching solutions


Arduino IDK (
Eagle CAD (free version)

Step 3: Schematics and Features

How it's designed...

The control board's power supply takes a DC wall adapter voltage of at least 14 volt DC and creates two voltage rails using the 7812 / 7805.  12 volt supply drives the 63-LED board while 5 volt supply is for the Arduino and logic.  The 5 volt regulator is supplied by the already regulated and filtered 12 volt rail.  A RTC (Real Time Clock) chip was not really required for this project as using delay(); was suitable for a simple timer.  The button panel consists of a start button, minute select, seconds select, and clear button.  Power and status LED's and the 16x2 LCD module for displaying timer and messages are located on the top of the box, below the UV light window.

Light Board Schematic:

The UV light board has 7 Rows / 3 Columns of UV LED's with 3 within each 'cell'.  It is build on a 4 x 3 inch PCB.  Forward voltage to each LED is about 3.5 volts with each cell having a 100 ohm current limiting resistor.  The series/parallel circuit is driven off the 12 volt supply via a reed switch.  I used a reed switch instead of a switching transistor to avoid ANY voltage drop therefore acheiving the full brightness of the LED's.  With a potentiometer, you could add a brightness adjustment if you wanted to.

Assembling the light board...

Above are the schematic, PCB design, and an assembly video for the light board.  Eagle files and code will be provided in the final step.  The next steps go into the timer/control circuit board.

Step 4: Timer/Control Board Operation, Schematic, PCB

Actually the timer/control PCB was my first test subject using the UV LED window.  I simply powered up the light board for 2 minutes, 15 seconds with a 12 volt bench supply to expose the box's own control board.  The results were much better than I ever expected.!

Buttons Board Schematic

Design this any way you see fit.  I opted for a simple prototype strip board with the push buttons, resistors, and pin headers.  Drilled some holes and mounted it to the front of the project box.

Step 5: Choosing and Preparing the Enclosure

Preparing the Enclosure

The project layout is optional, but I decided to cut holes in the enclosure for the exposure window, the LCD display, and status LED's on the top as seen in the images.  The DC power and ON/OFF rocker switch holes were cut out on the side and setup button holes drilled on the front.  Use an exacto or razor blade to trace the outline of a 4 x 3 PCB on the top of the box.  Carefully cut this out with a dremel tool, and smooth the edges with swipes of a razor blade.  Cut another hole for the LCD below the exposure window for a secure and tight fit of the LCD module.  On the inside of the project box, apply some super glue around the edges of the exposure window cutout.  Carefully position the piece of plexiglass over the window cutout, making sure to leave some overlapping plexiglass on each side, and let dry.  Use a gluegun along the plexiglass edges for more stability.  Insert the LCD module into it's cutout window with it's ribbon cable/wires attached.  You can use hot glue, screws, or both to secure the LCD.  Using hot glue alone worked great for me as the LCD fit nice and tight into it's cutout.  As needed, drill / cut holes for your DC input jack, switch, status LED's, and push buttons.  I used a blue LED for a power indicator and a red LED for when a board is being exposed.  Choosing the right drill bit made a snug fit, with just a small amount of hot glue to secure the LED's from behind.

Now a 4x3 photo-sensitive PCB will fit like a glove in the window that you made.  The light board will later be secured inside the box aligned with the exposure window.

Step 6: Eagle CAD and Arduino Resources

I hope I've provided enough instructions to make this a fun and straight forward project to duplicate.  I'll be entering this into the Arduino contest so your vote would be greatly appreciated.

Below are the Eagle CAD files and Arduino code used on my exposure box.  I've attached some build progress and demo videos as well.

Why you should vote for this project in the Arduino contest!

While I find each and every Arduino project super cool no matter how complicated it is, many times the final product will be transferred from the breadboard to some sort of DIY circuit board.  We can all agree that proto/vero boards are fairly rugged but cumbersome.  Having a custom PCB exposure box in your arsenal guarantees that with a little patience you CAN get very rewarding results making high quality circuit boards, and cost a fraction of what a board house is going to charge you.

Final demo video and other's I made along the way...

Another demo video...

Making the UV LED light board...

Project CAD and Arduino Files:

Feel free to contact me if any assistance is needed as I am happy to help!

Arduino Contest

Participated in the
Arduino Contest

1 Person Made This Project!


  • Made with Math Contest

    Made with Math Contest
  • Multi-Discipline Contest

    Multi-Discipline Contest
  • Robotics Contest

    Robotics Contest

16 Discussions


1 year ago

VERY sorry for not answering questions. Shortly after posting this I ended up in the hospital for a very long stay. I accidentally came across my own instructable today and just now noticed the comments. I'll try to answer some of the questions above.

Reed Relay (JP7): This was classified as a "reed relay" but was a 4 pin, small relay. It had a tiny coil in it with a SPST contact. The schematic does not clearly show this at all. JP7 was connected to the SPST contacts to supply 12V to the UV Light Board. A better solution would be to use a general purpose NPN with it's base controlled by any digital pin. Use a 1k resistor inline with the digital pin and base. Ground the emitter. Connect the light board GND to the collector and the positive terminal of the light board to your 12V source.

The distance between the LED's and the board was not an exact science but it was approximately 4 to 5 inches. Although I would expect distances up to 10 inches to work fine with longer exposure times.

Yes, I did use the Nano simply for the ease of plug and play, and it made it easy to replace if it ever failed!

LCD Pins: If memory serves, I did not require all 16 pins on the LCD module. If I were to do it all over again, I would definately just use one of those I2C converters for these LCD modules in order to simplify the design to only 4 pins (power, ground, SCL, SDA).

Other mentioned pin headers:

JP7: switched 12V power to the light board

JP4: GND and 12V going to the light board

JP8: just an auxillary switched 12V source. I included this in consideration for possibly making 2 layer boards using two light boards. It's not used in this design.

Sujith KK

1 year ago


please explain about the purpose reed relay used in the circuit

1 reply
stefaniedSujith KK

Reply 1 year ago

nice to be ignored is it not, i want to ask the same question since a reed switch is a 2 wire switch operated by magnets but i wont as i to would be ignored

Sujith KK

1 year ago

Is it possible to do the same circuit with arduino uno using the same program


3 years ago

I newbie for arduino. I have just made UV box. But i have some question. Can you explain for me:

1. Can you share your shematic or board to connect LCD with timer board ( i have LCD 1602 but it have 16 pin and your timer board use 12 pin)

2. Map to connect between boards.

3. Reed relay?

On timer board :

JP5 - ?

JP7 - ?

JP4 -?

JP8 -?

On button panel board

JP1 -?

JP3 - ?

3. What is light board?

4. What height from uv led to pcb?



4 years ago on Introduction

I newbie for arduino. I have just made UV box. But i have some question. Can you explain for me:

1. Can you share your shematic or board to connect LCD with timer board ( i have LCD 1602 but it have 16 pin and your timer board use 12 pin)

2. Map to connect between boards.

On timer board :

JP5 - (connect to UV LED BOARD ?)

JP6 - (connect to BUTTON PANEL?)

JP7 - ?

JP4 -?

JP8 -?

On button panel board

JP1 -?

Jp2 - connect to TIMER BOARD on JP6 ?

JP3 - connect to TIMER BOARD on JP3?

3. What is light board?

4. What height from uv led to pcb?



4 years ago on Introduction

Nice! I'm doing the same project for photoresist developing, but with a pair of 9W Philips UV lamps (got those on yard sale for $3). Your instructable inspired me to make a timer/control system.

P.S. Really like your case.


5 years ago on Step 4

What is the better distance between each UV led?

Also i would like to know what is the proper distance from the leds lights board to the upper plastic plate?


6 years ago on Step 6

Why don't you make a standalone arduino? It's much cheaper than a $10 arduino nano.

5 replies

Reply 6 years ago on Step 6

Good question! I sent a BOM to some suppliers. The quotes to make a simple atmega168AU clone was around $15. Can you suggest a cheaper way?

The Nanos do make for convienent 30 pin IC socket plugins tho :)

Jon Drelic1974

Reply 6 years ago on Step 6

I'm busy designing a similar control board with an atmega328 minimum circuit as I have a few chips lying around. Makes reprogramming it a little more finicky without on-board USB, but it'll be the cheapest solution I can manage - less than £5 with the chip, socket, crystal and 2 caps. Might even go crazy and add a resistor and momentary switch for a reset button :)

I did my LED array on stripboard but I like the look of yours much better. I'll probably use mine to make one of yours

relic1974Jon D

Reply 6 years ago on Step 6

Throw a UART on that bad boy, they're not much. 6 pins for an ISP header :)

I'd love to see your board when you are done. I used 850nm LED's, 2 minutes exposure time for a 4x3 board.

Jon Drelic1974

Reply 6 years ago on Introduction

You're right it would probably be worth it just so I don't risk damaging pins on the atmega pulling it out and putting it back in again. Or risk putting it in the wrong way :)

Does your array get pretty warm when its been on for a minute or two? mine does and I'm thinking I might want to put a cooling fan and maybe a thermistor in to get some circulation, but if yours doesn't I'll leave it out

relic1974Jon D

Reply 6 years ago on Introduction

No it doesn't get hot despite 63 LED's. But it's on a thick board of copper with a wide ground plane. You could use a 60W CFL bulb @ 12 inches away for about 8 minutes to expose the board array I supplied.


6 years ago on Introduction

Thanks for sharing! This should get featured :D