Super Bright LED Light PROTO 1

Posted: March 21, 2015 in Projects

Hey, I got it finally working!



I found a piece of plywood from garage, so I decided to put all parts there. In the picture one can see what did I use. In first I need to admit, that I wanted to use two different transistor to make Darlington pair, but I found it much more easier to just use TIP120. I will make another version where I use low and high power transistors as Darlington pair. Another part is that DC Booster, which is bought from Ebay. It is a step up booster, for maximum of 34 V and 6 A. I will also make one step up booster by myself and it is most likely much smaller and more suitable for my project, but this will be done after basic things are alright.

Working principles

Basic schematics for the assembly

Basic schematics for the assembly

Proto 1 is exactly connected as above schematics shows. And yes, I know it is a crap, but I just wanted to see if LEDs will turn on. Luckily everything worked just like it should and I got it running.

Code for UNO:

    int ledPin = 9;          // LED connected to digital pin 9
int analogPin = 3;   // potentiometer connected to analog pin 3
int val = 0;                // variable to store the read value

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

void loop()
val = analogRead(analogPin);        // read the input pin
analogWrite(ledPin, val / 4);          // analogRead values go from 0
//to 1023, analogWrite values
//from 0 to 255


Yeah, first light!

Yeah, first light!


More coming when I have time to write. (:



High Power LEDs


When I received my high power LEDs from China, I realized that LEDs are SMD components. I have no chance to test or run them without making printed circuit board. Thus, I ordered 10 pieces positive acting presensitized pcb boards from Ebay. I am going to make pcb by myself with some help from instructions.


I decided to make schematics for LED control board using PADS, because we have been using that software in school. I have heard that Eagle is also good and I am going to try that in some day.

Main goal was to fit maximal amount of LEDs to 100 x 150 mm pcb. I did calculus and found out that 88 LEDs fit to that size. Early goal was to have 100 LED, but I think 88 Led is enough. Basic schematic was made.

Led control board



There are two connectors, one is operating voltage which is calculated more in-depth later, but it is approximately 30 V and other connector is ground. One resistor is limiting current and another one is just for case if I did some early calculus wrong. In this way I have more space when creating final design.





There is final layout design for this LED control board. All LEDs are 1 mm to 2 mm from each other and sides are full of mounting holes for good thermal connection. Nearly whole upper side of the board is ground level. I have really no clue if it good or bad pcb, but lets just try that, because it looks fine to me. LED control board(CopperPour) is the one which is printed to transparent sheet.

PCB making

I read a few instructables for making your own PCB at home. Here are some good tutorials and I do not go in-depth details about my process.



I printed my layout.pdf to  a two transparent sheets. Then I taped those sheets together for getting thicker contrast different for printed and non-printed area. After that I placed printed sheet and presensitized pcb board to an empty photograph frame. In that way sheet and board will stay firmly in place. I used ordinary LED light of our kitchen and I placed that picture frame about 15 cm  under the light. The first pcb board was exposured about 20 min and it was not enough, so the second one was exposured for an hour and then it worked.


Transparent box contains sodium hydroxide and red one contains Natriumpersulfate


I buyed 100% NaOH, which is also known as sodium hydroxide. I made about 12 % liquid. Then placed that exposured pcb board to the liquid and after 5 min all the exposured lacquer was gone.



When develop was done it is time to etch all the copper away. So I poured 0,5 l water and 100 g Natriumpersulfate and placed board to the liquid. I heated liquid a bit over the skin temperature for having faster etching. Etching took about 2 hours. Result is shown below and as one can see it right and left corners are not etched corretly. That is because I was too rapid in development.


Etching is done, look corners at bottom!


After etching I removed all the remaining lacquer with nail polisher.


Final board



The first completed pcb turned out to be badly designed. LED measures were about 0,1 mm wrong, so I could not fit all the LEDs side by side. In that manner I made another design and I remake all the pcb process for making new pcb board. It turned out fine. Here is the new layout


LED control board R3)POUR)

Now when we have much bigger cap between signal and ground level it is easier to put LEDs on place with soldering paste. I used small plastic bag to make cone where I placed soldering paste. In that way it was really easy to apply proper amount of  soldering paste to component pads. You need to be careful with the amount of soldering paste, it is very easy to use too much of it. Fairly good advice would be to use half of the size of the component pad which is going to be soldered, that is very little! Here is picture of my assembly.


Soldering paste is in it place and now it is time to place LEDs



Everything seems to be fine for soldering!


I do not have any special oven for heating soldering paste, so I used normal cooking oven which have recirculated air option. So I heated oven to 250 Celsius degree and placed two baking trays inside. One tray on top shelf and other one on bottom shelf for interrupting heat radiation.


PCB at the middle shelf.

After one minute I notice that flux inside solderin paste became to dissolve. Unfortunately at the same time LEDs transparent plastic bulbs became larger, so it seemed that this plastic compound did not withstand so much heat… Nevertheless I decided to go further with soldering and approximately after 4 minutes tin alloy was properly melt.


Soldering paste will get shiny when it is ready.


I found 1,5 mm drill bit from my home, so I used ordinary drilling machine with it. I know that 1,5 mm is kind a big hole, but I did not want to buy smaller drill bit. Drilling went okay, because I design big pads for those holes.


Drilling done!

Throught hole soldering

No need for resistors, because darlington pair TIP120 which I use,  limits current in that value which I want. More about this in next posts.



Super brigth led light will include ~100 LEDs which consume 1 watt per LED. That is why there will be a lot of dissipating heat. I made simple over temperature protection circuit which will shut down LEDs when a certain temperature is reached. I believe 70 degrees in Celsius is good because high power LED maximum working temperature is 120 C.


thermistorI made simple schematics for protection circuit. I used 10 kΩ NTC thermistor and one 3,3 kΩ resistor. Used thermistor is TTC05 series and model is TTC05103. From datasheet one will see that thermistor is 10 kΩ when temperature is 25 C also thermistor is ~ 1,5 kΩ when temperature is 70 C.

Arduinos analog pin will have the same voltage which is over resistor R1. In 25 C temperature Arduino will get U = ( 5 V * 3,3 kΩ ) / ( 10kΩ + 3,3 kΩ ) = 1.24 V which correspondes ADC value of X = 1,24 V / ( 5 V / 1023 ) = 254. In this manner when temperature reaches 70 C voltage U will be 3,51 V, so ADC value will be 718.

Proper code for Arduino could then be like this:

int ledPin = 9;      // LED connected to digital pin 9
int analogPin = 3;   // potentiometer connected to analog pin 3
int val = 0;         // variable to store the read value
int thermistor = A0;
int temp = 0;
void setup()
  pinMode(ledPin, OUTPUT);   // sets the pin as output

void loop()
  val = analogRead(analogPin);   // read the input pin
  temp = analogRead(thermistor);
  if (temp < 700){
    analogWrite(ledPin, val / 4);
  }  // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
  else {
    analogWrite(ledPin, 0);
    delay(10000); // When over temp occures, LEDs will be turned off for 10 secs

I used same code which is used in my latest post and I made some modifications. When temperature reaches ~ 70 C LEDs will be turned off for 10 secs. That should decrease temperature enough, I will make more depth measurements when I receive LEDs.



Schematics which is used for a test


Voltage over resistor R1 when room temperature approx. 27 C. LEDs are litt up.


Voltage over R1 when temperature reaches approx. 70 C. LEDs turned off for 10 seconds.


The main idea of this test was to find out if my transistor 2SC3198 is fast enough for PWM. I made an easy schematic for a circuit which is shown in the picture.


Circuit analysis

My chinese Arduino is powered with USB and breadboard power lines with stable 5 V DC adapter. Potentiometer R3 is connected to analog input pin A3. Voltage source for potentiometer is taken from Arduino 5 V power port.

Transistor 2SC3198 base is connected via R1 to Arduino output pin D9. There are two LEDs and resistor R2 in serial at transistors collector. Emitter is connected directly to the ground.

LED threshold voltage is 1,7 V and transistor saturation voltage VCE is according to datasheet something between 0,1 V to 0,25 V. I wanted to drive transistor to saturation point, so voltage which is need to be in resistor R2 is 5 V – 1,7 V – 1,7 V  = 1,6 V. If we select 100Ω resistor then current throw LEDs is 16 mA which is suitable, because I am not sure about the type of my LEDs. Ohm’s law is U = R * I, so I = 1,6 V / 100 Ω = 16 mA. I have assumed that VCE could be zero, but it is always positive voltage, so 100Ω will do fine, but I will not get the maximum power from LED. That is why, 100Ω is not optimum, but it will protect my circuit.

For Arduino I/O pin 40 mA current is maximum. Transistor can handle 50 mA base current so digital output pin D9 can be connected directly to transistor base.


int ledPin = 9;          // LED connected to digital pin 9
 int analogPin = 3;   // potentiometer connected to analog pin 3
 int val = 0;                // variable to store the read value
void setup()
 pinMode(ledPin, OUTPUT);   // sets the pin as output
void loop()
 val = analogRead(analogPin);        // read the input pin
 analogWrite(ledPin, val / 4);          // analogRead values go from 0
 to 1023, analogWrite values
 from 0 to 255

This is a basic code for this test. Code can be written shorter, but in this format the syntax is very easy to read.


Everything worked just like it should and here are some pictures of the setup.


In this picture potentiometer is adjusted so that, LEDs are light up, but the power is at the lowest.


In this picture potentiometer is adjusted so that, LEDs are light up and the power is at the highest.

No comments!

At first I need to say how dummy I have been. I always believed that Chinese Arduino replicas would work just like the real deal, but meh..

NHduino uno


The specification for this NHduino UNO is given:

  • Flat ATMEGA328P package
  • CH340G USB driver
  • Compatible with Arduino

This information is everything which is given by Ebay user, but I think it is enough. Lets just hope Chinese guys have done good work and NHduino works just like real Arduino Uno r3.

Setting up the NHduino

I have not been familiar with Arduino platfrom before, but I have realized that it is quite an easy to use. After receiving my Arduino board from China, I started to go throw Arduinos Getting Started Guide and quickly I found out that this Chinese arduino, named as NHduino UNO was something else.

Installing drivers for NHduino was real pain in the ass, but after one hour research I found the solution. Here are the steps to get your own ChinaDUINO to work properly on windows 7.

  1.  Follow the instruction in Arduino Getting started guide.
  2. At the fourth step you will realise that your computer does not recognize your Duino.
  3. Look from your microcontroller which USB driver chip you have on it. In my NHduino it is labelled as CH340G
  4. If you have the same chip then download this driver: CH340G driver
    1. I am sorry that file is in my google drive, but I did remember where I found that. It was some forum…
  5. will include SETUP.EXE and after executing that, your DUINO should work properly.

For some reason when I tried to update microcontroller drivers manually from Device Manager and I tried to use that .inf file, but it did not work. Executing setup.exe worked for me and I did not need to find any other solutions.

Measuring output pins

After accomplishing proper driver installation I decided to make easy program to detect if every pin is working at least some how. I opened Blink example in Arduino software and adjusted it little to see that every digital output would give some signal.

Code, picture from the setup and schematics:

 the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(1, OUTPUT); pinMode(2, OUTPUT);
  pinMode(3, OUTPUT); pinMode(4, OUTPUT);
  pinMode(5, OUTPUT); pinMode(6, OUTPUT);
  pinMode(7, OUTPUT); pinMode(8, OUTPUT);
  pinMode(9, OUTPUT); pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);  
// the loop function runs over and over again forever
void loop() {
  digitalWrite(1, HIGH);   
  // turn the LED on (HIGH is the voltage level)
  digitalWrite(2, HIGH);   
  digitalWrite(3, HIGH);   
  digitalWrite(4, HIGH);   
  digitalWrite(5, HIGH);   
  digitalWrite(6, HIGH);   
  digitalWrite(7, HIGH);   
  digitalWrite(8, HIGH);   
  digitalWrite(9, HIGH);   
  digitalWrite(10, HIGH);   
  digitalWrite(11, HIGH);   
  digitalWrite(12, HIGH);   
  digitalWrite(13, HIGH);   
  delay(1000);           // wait for a second
  digitalWrite(1, LOW);    
  // turn the LED off by making the voltage LOW
  digitalWrite(2, LOW);    
  digitalWrite(3, LOW);    
  digitalWrite(4, LOW);    
  digitalWrite(5, LOW);    
  digitalWrite(6, LOW);    
  digitalWrite(7, LOW);    
  digitalWrite(8, LOW);    
  digitalWrite(9, LOW);    
  digitalWrite(10, LOW);    
  digitalWrite(11, LOW);    
  digitalWrite(12, LOW);    
  digitalWrite(13, LOW);    
  delay(1000);            // wait for a second


After testing output pins everything seemed to be fine. Lets just assume NHduino works just like real Arduino uno r3. Also Power LED and pin 13 LED were working properly. If one can program via ICSP, avrdude can be called with right parameters and to see that fuses, signatures etc. are correctly. You can google more if you feel the need.

Setting up SainSmart


This board installed Windows 7 drivers automatically and worked like real Arduino Uno. I think it includes same USB chipset than it is in real Arduino.

Hopefully this post helps you to set up your Chinese duino platfrom.



I got an idea about making super bright led light. It should be quite an easy project for a start, because it is only turning light on and off, right?

For practice I decided to use Arduino microcontroller to control brightness of the light. I made one school project where I used AVR microcontroller and one Hall-sensor to measure a lead battery state and condition, so I try to implement that kind of monitoring system to this project also. In short the aim of the project is:

  • 10 000 lm led lamp
  • Brightness control
  • Powered by battery
  • Monitor system for battery
    • Charge
    • Condititon / Life
  • Portable
  • Adjustable from spot light to broad light

Block diagram

I used app in Google Drive to make simple block diagram for the upcoming project.


The block diagram is in alpha design, so I will not comment it deeply. One can find from schematics:

  • Arduino Uno which controls everything
    • Arduino outputs:
      • Leds
      • Display
    • Arduino inputs:
      • Potentiometer for brightness
      • Over temperature protection
      • Hall-sensor data

More detailed information of the system will be given when I make schematics.

Shopping cart

I did not have any equipment for performing this project, so I need to purchase some items. I am a student, so I did not have a big budjet. That is why I ordered everything from Ebay China. Based on my block diagram I ordered these:

  • 100 pcs, 1 W, ~100 lm, High power led bead
  • Two Arduino uno rev 3 replica
    • NHduino with CH340 usb controller
    • SainSmart with ATMEGA16U2 usb controller
  • Current sensor module
    • ACS712 chip
  • 4 Digit 8 Paragraph led display board
  • Transistors BJT
    • 2SC3198
    • 2SC2236
    • Power transistor 2N3055
  • LM7805 regulator
  • 10K Potentiometer
  • Red light On / Off switch
  • DC-DC Boost converter
    • 10-32V to 12-35V, 6A
  • 10K NTC Thermistor
  • Resistor kit
  • Capacitor kit
  • Breadboard

I have soldering machine, multimeter and some wire from my own.

In short, that is the early design of my project. Turning led on and off was too easy, so I need to make some enhanchements. Lets name this project as Super Bright Led Light aka. SBLL.


Meaning of this blog

Posted: December 30, 2014 in Info

I am starting my first electronic project, so I thought, why not to share my experience. At the same time, I will understand better things that I do, when I need to explain it clearly in written text. Also my English grammar will hopefully get better. 🙂

In short, the blog will give some assistance for me in my hobby electronic projects. Lets hope that this blog can help someone in similar projects.