My DIY Lumia 5.2 LED based build

I made one more tweak this afternoon that I think is pretty crucial for this build. The PCBs that I used from O2Surplus have a built in fan controller (arduino nano). O2 had programmed it to have the fan speed scale exactly with the power of the chosen channel. Only 1 can be used, and in my case i chose channel 1 because that is the channel that will always be on if/when the light is on at all. When using 3 pin fans (which come stock with the heatsink), they dont appear to start until you get above 25% or so power. This means that while ramping the lights, the fans dont even kick in until above 25% power...IMO thats not good. Because the fans are basically dead silent up until 50% anyway, I decided to modify the arduino code to ramp the fans to 50% if the light is on at all (even 1%). Once the power is ramped above 50%, the lights scale with the power again.

Here is the new source code if you happen to buy this board and want to use the same programming as I am:

<pre class="code">// Reads the PWM signal duty cycle and frequency from Analog pin A0
// and outputs the same PWM duty cycle to pin D10 @ 25Khz for quiet cooling fan control.
// last updated 1/29/2016 by Aaron Kovacs

#include &lt;TimerOne.h&gt;

#define READ_PIN A0
#define PWM_OUTPUT 10
//#define BUFFER_POWER 8 // used to provide &quot;overtemp ON/OFF Control&quot; on O2Surplus BFMiniA6211 six channel driver boards only. Please comment out for other boards.
int dutyValue = 0;
int inputState = 0;
static double duty;
static double freq;
static long highTime = 0;
static long lowTime = 0;
static long tempPulse;

void setup(){
//pinMode (BUFFER_POWER, OUTPUT);
pinMode(READ_PIN,INPUT);
Serial.begin(9600);
Timer1.initialize(40); // 25Khz PWM = (40). Raised even higher for use with smaller NanoBox cooling fans.
Timer1.pwm(PWM_OUTPUT, 0);
}

void loop(){
// this section of the code determines the input's (A0) frequency/duty cycle(true 0 - 100%)
// A 25KHz copy of the original input signal is then sent to pin D10 as an output.
// The serial monitor can be used to display the input duty cycle and the signal status of the output.
readPWM(READ_PIN);

int dutyValue = (duty);
dutyValue = map(dutyValue, 0, 100, 0, 255);
int inputState = digitalRead(READ_PIN);

if (tempPulse &gt; 1){
analogWrite(PWM_OUTPUT,dutyValue);
Serial.print(&quot;Duty % = &quot; );
Serial.println(duty);
}
if (tempPulse &lt; 1 && inputState == 0) {
digitalWrite(PWM_OUTPUT,LOW);
Serial.print(&quot;Input_State = &quot;);
Serial.println(inputState);
Serial.println (&quot;Cooling Fan - OFF&quot;);
}
if (tempPulse &lt; 1 && inputState == 1) {
digitalWrite(PWM_OUTPUT,HIGH);
Serial.print(&quot;Input_State = &quot;);
Serial.println(inputState);
Serial.println (&quot;Cooling Fan - ON&quot;);
}
}

//Takes in reading pins and outputs pwm frequency and duty cycle.
void readPWM(int readPin){
highTime = 0;
lowTime = 0;

tempPulse = pulseIn(readPin,HIGH);
if(tempPulse&gt;highTime){
highTime = tempPulse;
}


tempPulse = pulseIn(readPin,LOW);
if(tempPulse&gt;lowTime){
lowTime = tempPulse;
}


freq = ((double) 1000000)/(double (lowTime+highTime));
duty = (100*(highTime/(double (lowTime+highTime))));
if (duty &gt; 1 && duty &lt; 50){
duty = 50;
}
//digitalWrite(BUFFER_POWER, HIGH);
}

</pre>
 
I'm curious to see if I could get away with using the HLG series Mean Well power supplies instead.

I know they're constant current, as are the LDDs, but I prefer the enclosed setup and no high pitched whine.
 
jbadd99;1108308 wrote: How is this build faring?
Hey guys. The build was on hold while I was in the process of moving.. I did complete the build of the LED fixture though before putting the whole tank build on ice. I am happy to report, I moved into the new house, and the whole project is back in progress!

Sent from my Nexus 6 using Tapatalk
 
civics14;1116592 wrote: Good to hear and congrats!!
It appears I never did post a vid of the unit in operation. I will have to do that. I have not had it running in months so it would be good to test it to make sure everything is still in good working order. I will try to get a vid up soon.

Sent from my Nexus 6 using Tapatalk
 
You asked for it, so here it is.

Also I noticed AFTER i shot this that the two LED clusters on the left side were not working (some wires got pulled out during the move!). So only 4 out of 6 LED clusters were firing. The **** thing is so bright i didnt notice :). The video really doesnt do the colors and brightness justice. It seems to tone down the brightness accordingly, so to the camera, there is very little difference between low and high settings. The camera has a really tough time capturing this sort of light apparently, but at least it gives you an idea of what this thing is all about. its pretty bad a$$ IMO, and one of the best DIY projects I have ever completed.

[ame]https://youtu.be/tDwNEnYSN74[/ame]
 
FWIW,



I did a build identical to yours, but with four clone multichips that I got for a significant savings.



It's been up and running for about a year now.  The only thing I would change is I would stagger your lights instead of a straight line across the heatsink, which will help reduce the shadowing caused by the chips being spaced.



The thunderstorm setting on the BFmini is pretty cool, though.



No par readings, but my coral has ridiculous growth, especially my acros.
 
Back
Top