Introduction: Rechargeable Blue LED SAD Light Book

About: Autistic person who's interests include utility cycling, recreational cycling, cycling safety, electronics, gardening, Arduino, and LEDs.

Blue light therapy can be used to improve mood, improve sleep, treat jet lag, adjust bedtimes, and boost energy. Light therapy benefits students who start school early when it's still dark. This one can fit in your backpack, is dimmable, has an adjustable timer, and it doesn't cost too much to build. Using it in the morning can turn you into an early bird and using it in the evening can turn you into a night owl. You can use it while riding the bus.

AC or Li-ion battery powered
Wide range of input voltage: 8.4-24V
200 LEDs
Wide viewing angle
Power consumption: 14W
Battery life at full brightness: 1h 30min (using two 18650 2.5Ah batteries)
Brightness range: 256 levels
Diffused screen

Step 1: Materials

1 - hollowed out book with 8 x 6-1/4 x 1/8 of storage space
1 - clear plastic sheet larger than 8 x 6-1/4 x 1/8 with invisible tape
1 - 4 x 8 copper cladded board
1 - 3 x 1-1/4 copper cladded board
2 - 100nF capacitors
1 - 12-20V zener diode
1 - 1N4001 diode
200 - 0805 wide angle 470nm blue LEDs (120-130 degrees)
1 - AO3400 MOSFET
2 - 10M resistors
1 - 33k resistor
1 - 1k resistor
1 - 10k resistor
20 - 100R resistors
1 - on-off switch
1 - LM7805 regulator
1 - ATtiny85
1 - 8-pin DIP chip holder
1 - arduino (you only need this to program the ATTiny85)
1 - LM2577 DC-DC converter boost module
2 - 10k potentiometers
1 - DC power jack
1 - 9-24V power supply (18W or higher)
1 - 2 cell 18650 holder for protected cells (protected cells are slightly longer than unprotected ones)
2 - protected 18650 Li-ion batteries
1 - 3A slow blowing fuse (if using unprotected batteries)
4 - sets of stand-offs (1/8" think)
4 - sets of nuts and bolts (1/8" thick)

*all resistors and capacitors have 0805 packages

Step 2: Circuit

In this circuit, I programmed the ATTiny85 as a timer and PWM light dimmer. Q1 is the load switch for powering it. The high powered IRFZ44N handles the converter's inrush current. D1 protects the low powered Q1 by preventing its gate voltage from exceeding 20V. R5 protects Q2 through the array's voltage drop by allowing a small amount flowing through them, keeping the Vds of Q2 from exceeding 30V. You'll notice that even when the timer is off, they'll be dimly lit.

The LM2577 step-up converter keeps the LED array at 30-35V and allows us to use a wide range of supply voltages. It can be adjusted to a lower voltage if the current is too high or you need less light. I had the output voltage set to 32.3V, and the resistors were at 1.5V, giving 15mA. The DC jack was wired to allow dual power by connecting its middle pin to the battery's ground, the outer pin to the power supply's ground.

Step 3: Sketch for ATtiny85

This sketch programs the ATtiny85 into both a PWM dimmer and a lamp timer. VR1 sets the brightness level of the LED array in 255 steps, and VR2 sets the treatment time between 0 to 60 minutes, repeating every hour, which may be preferable if you work nights. You'll need to adjust the settings before you turn it on since the ATtiny85 reads it only in the beginning. If you want a different on/off period, change the value of periodMin.

You can learn how to program the ATtiny85 here:

int LEDPin = 0; // PWM input connected to digital pin 0
int brightPin = 2; // brightness potentiometer connected to analog pin 2
int timerPin = 3; // timer potentiometer connected to analog pin 3
long periodMin = 60; // sets the time period in minutes
long periodSec = periodMin*60; // calculates the time period in seconds
long period = 1000*periodSec; // calculates the time period in milliseconds

void setup()
pinMode(LEDPin, OUTPUT); // sets the pin as output

void loop()
int val1 = analogRead(brightPin); // read the brightness setting potentiometer
analogWrite(LEDPin, val1 / 4); // sets brightness levels of LED array from 0 to 255
int val2 = analogRead(timerPin); // reads the timer setting potentiometer
long on = (period*val2/1023); // on time in milliseconds
long off = (period-on); // off time in milliseconds
analogWrite(LEDPin, 0); // sets brightness of LED array to 0

Step 4: ExpressPCB Files

I designed the circuit boards using ExpressPCB and included a file for full-page printing. Please feel free to modify the design if you have a different component package. You can download ExpressPCB from this website:

For Linux, you can install WINE to use the program.

Step 5: Etch-resist for the Circuit Boards

Step 6: Circuit Board Etching

I used ferric chloride to etch the boards.

Step 7: Etch-resist Removed

Remove the etch-resist with acetone.

Step 8: Soldered Components

I hand soldered the SMD components in this step. Flux should be used before lining up the components which is the most tedious part of this step. A tweezer is needed to move the LEDs and a thumbtack can be used to hold the LEDs to the solder pads while soldering.

Step 9: Removed Flux Residue

Remove the flux residue with acetone.

Step 10: Wires With Strain Relief

Use hot-glue to strain relief the wires.

Step 11: Holes for Attaching Circuit Boards

Drill holes to fit the stand-offs and the DC power jack. To flatten the hole edges, use a Dremel.

Step 12: Screws for Circuit Boards and Battery Holder

Step 13: Wires With Cable Ties

Step 14: Transparent Cover for LEDs

Hot glue the transparent plastic sheet to the book. You will be using invisible tape as the diffuser, so we will need the plastic sheet to support it.

Step 15: Invisible Tape As a Light Diffuser

Cover the clear plastic with invisible tape.

Step 16: Division Markings for Potentiometer

Measure the voltage at the centre tap of VR2 at increments of 500mV. This would equal 10% or 6 minutes for 1 hour. Mark the divisions on the circuit board.

Step 17: Improvements

Use a 3- to 6-cell Li-ion battery holder: With a higher supply voltage, the light book becomes more efficient and runs cooler because the converter would require less current, and the load MOSFET is fully turned on.

Use through-hole components for the LED array: You might find through-hole LEDs easier to solder, and you don't even have to etch the board! Look for LEDs with wide beam angles of around 130 degrees and use a perf board instead. You may need a thicker book for even lighting.

Microcontroller Contest

Second Prize in the
Microcontroller Contest