# DIY LED Pendants brainstorming. Multichip? Vero18? help me!



## Kampo (Nov 3, 2015)

so been researching lighting for a bit for my 120 Gallon 60x18x27 build i'm working on. its going to be setup as a anubias tank with a riparium above the tank. want to light both the tank and the ripirium with some hanging lights. original plan was getting a couple 30" beamswork 2 row 3watt lights building a box so light spill in front and behind the tank would be controlled and suspending it a couple feet above the tank. I was unsure how much light would make it to the bottom of 47 inches, tank is anubias only but still want solid growth so need 30-40 par at the substrate.

I have been seeing some multichip LED projects and they seem like something I might be able to accomplish, especially a VERO18 build which keeps my not so great soldering skills away from the lighty bits. would you guys think 2 VERO 18 5600k CRI90 chips with 50 degree reflectors hung 2ft above my tank would push enough light down to the substrate? also I really want to have it programmable with sunrise sunset, but i'm not seeing a easy but cheap method like the TC420/sunsetter option I was looking at with the beamswork option. any thoughts? open to ideas.


----------



## jeffkrol (Jun 5, 2013)

TC-420 and apparently most "strip" dimmers can be used w/ LDD drivers.
Unfortunately it is a "little bits" solder.


----------



## Kampo (Nov 3, 2015)

yeah I might go that route. would love someone to kinda give me some direction here is what i'm thinking just not most up on electronics to make confident component choices. also the bluefin mini or storm controllers caught my eye but also not completly sure of what I need to get that all up and running. 

I see a lot of the people who used the VERO led arrays mixed the 2700k and 5600k LEDs. if I got just the 5600k CRI90 leds would it look washed out?


----------



## jeffkrol (Jun 5, 2013)

Almost by definition, high CRI LED's will not render things washed out.
Most mix color temps for 1)sunrise/sunset effects and 2) supplement high photosynthetic red w/out toning the tank too warm.

Component choices are relatively easy as to the drive hardware (power supplies exceeding voltage needs of the LED's, LDD-h drivers, controller ect.)


50 degree lenses 2ft above the tank gives you a "cone" at the water line of 22".. requiring 3 to cover the 60" tank..

Now using a Kessil as a "baseline" since it is the best "COB" I can pick..you shouldn't have much a problem w/ getting PAR down there IF it is fairly close to equiv (fairly big claim but not out of the realm of possibility)








SPECTRA

forcing the calculator to a 50 degree lens and at 42" (106cm approx) calc estimates PAR at 60-ish..w 34W of LED's..

Doesn't seem out of the realm of possibility..

http://www.plantedtank.net/forums/20-diy/661818-diy-bridgelux-vero-18-led-build-2.html


> I took a preliminary PAR reading of one Vero 18 with the Brooke-W and at 1000ma and 2ft high I got 165 PAR. This was done open air. For reference my old 9x Rebel ES cannon with 6x 6500K, 1x cool blue, 1x red, and 1x hyper violet got 150 PAR at that same distance in the tank with 60deg optics. At 1000ma the Vero 18 is only running at 33% power as it can go up to 3000ma. My goal is 60 PAR @ 3ft from substrate.


5000k 90CRI.. driven at 1000mA 29.5V 3885 lumens..
(29.5W effective)
*BXRC-50G4000-F-24*
BXRC-50G4000-F-24 Bridgelux | Optoelectronics | DigiKey

$11.21 each.. Get 4 if you are in doubt.. 
36V power supply (150W) 4 LDD-h's @ 1000mA, optics, heat sinks and controller
40 or 60 degree..
LED reflector family OP07520-C1C - LUMOTRIX


And no, 2 is not enough for FULL coverage and that PAR..
Each pendant "unit" will probably run $40-$60 (chip,lens,driver,heat sink)..

LPF6768-ZHP Bridgelux Pin Fin LED Cooler ø67mm
LED Heatsink R186-70 - heat sinks
NX501105 Aavid Thermalloy | Optoelectronics | DigiKey
$25 passive heat sink.. ..not cheap..
some choices...but not necessarily easy nor cheap-ish.


----------



## Kampo (Nov 3, 2015)

awesome thanks for the info, gave me something to think about. 

now i'm assuming i'd be better off getting a 48V powersupply and say a 3up board with some 1000ma drivers to drive it compared ot 3 seperate drivers that have AC input?


----------



## jeffkrol (Jun 5, 2013)

Kampo said:


> awesome thanks for the info, gave me something to think about.
> 
> now i'm assuming i'd be better off getting a 48V powersupply and say a 3up board with some 1000ma drivers to drive it compared ot 3 seperate drivers that have AC input?


well it can turn into a wash...but the main difference usually comes down to dimming protocol.. Most "all in 1" do any one or all of the following : pot dim, 10v PWM or 0(1)-10V.
Few, if any, do 5V PWM.. so some of your choice depends on controller..
There are plenty of "conversion" boards (PWM-10v, ect.) out there but just adds to the expense..
48v is only needed for any future needs.. 36 is fine for any # of Vero18's and any # of drivers in parallel as long as you don't exceed amp draw capability..

Voltage adds in series.. amps add in parallel..
Again LDD-s require a voltage differential so add 3V to whatever the V(f) of your chip is..
Vero 29's and some Luminous devices COBs would require higher than 36V ps w/ LDD's..

LDD's are buck regulators. They will increase (to ps max) or decrease voltage till the amp draw is in line w/ their specification..
Getting larger than necessary voltage only adds a bit to waste..

CORRECTION: Some of the 5V PWM will do 10V PWM....


----------



## Kampo (Nov 3, 2015)

ok talking with O2Surplus on the driver/controller end to see what he has avail that might fit my needs. 

just a random thought I had if I go the full blow sunrise/sunset option it might be nice ot have some warm light on another channel.

lets say I go back to the idea of 2 sets of lights 1 5600k 1 2700k split apart 30 inches, giving each about 30 inches to cover, prolly actually would want to cover a bit more to make sure plants that will be growing above the tank a foot or 2 above get full coverage. so 90 degree reflectors 2 ft above the tank should give about a 38inch spread. the leds would then be in a 3 sided box that would block light spill outside the tank to the front and sides of the tank, this box would either be painted white on the inside or lined with say foil for reflectivity to bounce the light to the plants behind the tank.

running the Vero 18 5600k at 1000ma and the vero 18 2700k say 50% would yield 90 watt across the array or around 10-11k lumens (I know lumens aren't the best measure) so i'm thinking enough light


----------



## jeffkrol (Jun 5, 2013)

Why not go way "out of the box" and use some dual chips (2 channel ww/cw on board..)
SI-N8B1816E0WW Samsung Semiconductor, Inc. | Optoelectronics | DigiKey

These are 2700/5000k chips but supposedly have some w/ higher cool white..

$16/chip.. 2000 lumens 500mA at 35.5V approx..17.75W each..
Not stocked though..

Doing visible color temp mismatches w/ too much separation gives a "blotchy" rendering.

http://electroiq.com/blog/2016/10/s...cale-packaging-for-spotlights-and-downlights/


----------



## Kampo (Nov 3, 2015)

jeffkrol said:


> Why not go way "out of the box" and use some dual chips (2 channel ww/cw on board..)
> SI-N8B1816E0WW Samsung Semiconductor, Inc. | Optoelectronics | DigiKey
> 
> These are 2700/5000k chips but supposedly have some w/ higher cool white..
> ...


i'll look into that chip, this was a chip I was looking at though which kinda does what your saying as well. 60 watt CREE RGB WW W chip only 1 channel though

[Ebay Link Removed] Cree XP-E Multichip LED 60 Watt Red Green Blue Warm White Light 24-26V 1-2A | eBay[/url]

unclear if the Warm White is the high CRI version Cree makes or not. but I imagine with the RGB it will be fairly well covered spectrum wise.


----------



## jeffkrol (Jun 5, 2013)

The Samsung is still a "premium" chip @ $1/watt. Citizens makes one for stage lighting. Even higher cost.. Could be others out there [email protected] Alibaba. Actually sure they have some Chinese clones.


----------



## jeffkrol (Jun 5, 2013)

Note to mods..can't edit post from tablet


----------



## Kampo (Nov 3, 2015)

I like that option. downside is it would be a pain to drive fairly high Voltage so can't wire them in series. and from what I understand bad to run in parallel. so to get the needed light output I'd prolly need at least 10 drivers prolly more actually since I wouldn't really want to have to have full light on the warm channel just to hit the par level I want.

unless i'm missing something that is


----------



## jeffkrol (Jun 5, 2013)

48v PS, 2 LDD's per chip. 39 +3 =42v @250mA x2 LDD's only go down to 300 mA. Not sure if that is a problem or not. Native beam angle is 140 degrees.


----------



## Kampo (Nov 3, 2015)

while on the topic of alternate leds to look at.

came across these guys

https://blueacro.com/acrostar/

there fresh water 24 watt chip array with there mini driver seems tempting.3x24watts dual channel run by one driver. 

anyone mess with these before?


----------



## O2surplus (Jan 31, 2010)

Those arrays are really nice. They're made by a guy called "Theatrus" ( he posts on RC and is a sponsor on the NBR forum). If money's no object, I'd go with a few of the AcroStar Half-Mega Daylight arrays. They'd provide more color temp tunability than two different colored Vero's. Plus those arrays are designed to work with reflectors right out of the box. Makes your build that much easier.


----------



## Kampo (Nov 3, 2015)

O2surplus said:


> Those arrays are really nice. They're made by a guy called "Theatrus" ( he posts on RC and is a sponsor on the NBR forum). If money's no object, I'd go with a few of the AcroStar Half-Mega Daylight arrays. They'd provide more color temp tunability than two different colored Vero's. Plus those arrays are designed to work with reflectors right out of the box. Makes your build that much easier.


ok cool nice to hear its good stuff. price differene if I was running the Veros a 1000mah there not that much off watt for watt once you factor in sourcing reflectors and such for them.

any opinion on there driver setups? if I went with 3 there mini driver seems like a nice compact setup. would still need to do the dimming control. any recomendations? should I stick with the bluefish mini like I was talking to you about? Did you have any altrante driver ideas that might have some Pros over the options thru them?


----------



## jeffkrol (Jun 5, 2013)

O2surplus said:


> Those arrays are really nice. They're made by a guy called "Theatrus" ( he posts on RC and is a sponsor on the NBR forum). If money's no object, I'd go with a few of the AcroStar Half-Mega Daylight arrays. They'd provide more color temp tunability than two different colored Vero's. Plus those arrays are designed to work with reflectors right out of the box. Makes your build that much easier.


Need to talk to him about putting a blue on a ww channel...  
No deep red, no cyan..
r9 deficient and cyan dip not addressed. Not any different than the Samsung..
Except for the lead time Samsung would still be a personal favorite..
Odd for me to say that.. favoring color supplementing.. 

to o/p
Bump: Controller is based on need/want w/ heavy on the want more than anything.
your base design needs only 2 channels.. 
modified TC-420 (or any modified strip dimmer/programmer)
Typhon
Hurricane
Storm
Storm-x
bluefish
Bluefish mini
robotank
ect..


do you want "remote" capability.. To be honest, most of the time one "set and forget"..so a lot is "want" not need..
That said none would be a bad choice..


----------



## Kampo (Nov 3, 2015)

O2surplus said:


> Those arrays are really nice. They're made by a guy called "Theatrus" ( he posts on RC and is a sponsor on the NBR forum). If money's no object, I'd go with a few of the AcroStar Half-Mega Daylight arrays. They'd provide more color temp tunability than two different colored Vero's. Plus those arrays are designed to work with reflectors right out of the box. Makes your build that much easier.





jeffkrol said:


> Need to talk to him about putting a blue on a ww channel...
> No deep red, no cyan..
> r9 deficient and cyan dip not addressed. Not any different than the Samsung..
> Except for the lead time Samsung would still be a personal favorite..
> ...


I kinda agree on the channel distrobution of the acros. the planted tank strip actually seems a bit better for our uses but no optics on those. that said one of those would make a sweet nano tank light if one rigged one up neatly. I really wish that array with Cree LEDs i'm lookin at on ebay was 5 channel. that would be the ticket would essentially be a kessel at that point completly tuneable color

set and forget is fine. although the ability to be able to override and turn lights on when out to do some work in the tank at ungodly hours would be nice, then have it time out and go back on schedule, I work nights so I do a lot of fish tank stuff on the weekends when everyone is asleep, I I prolly 50% of the time forget to turn the light back on timers when i'm done...won't notice till my plecos aren't keeping up with algea that I never turned the timer back on.

I see the typhoon mentioned often as a popular method in older threads, is anyone still making a complete setup for one? saw mentioned in your TC420 thread that they are only marginally more expensive than a tc420? is that if your were DIYing one or is someon selling a more or less complete deal like the storms that is just wire up and good to go?


----------



## jeffkrol (Jun 5, 2013)

Typhon is 4ch, no box, push buttons. TC-420 5ch, box,. USB computer programmable, needs work.
Main differences.
Both are 8 bit dimming. Typhon can be reprogrammed though. Just an Andrino.
Steve's hurricane is still 4ch, w box, 12 bit dimming.
Basically a reprogrammed, boxed Typhon.

I currently have 4 dimmer types and each has its plus and minuses.. That said, awaiting a Bluefish mini to make it 5..


----------



## O2surplus (Jan 31, 2010)

jeffkrol said:


> Need to talk to him about putting a blue on a ww channel...
> No deep red, no cyan..
> r9 deficient and cyan dip not addressed. Not any different than the Samsung..
> Except for the lead time Samsung would still be a personal favorite..
> ...



Ok Jeff.... If you could pick the perfect mix of Luxeon C leds for an array with a similar design to what Blue Acro provides for a Fresh water planted tank, what would it be? Give me an idea and I'll design and manufacture it. I've got the tools and equipment to get it done. Jon's tank won't be ready for a few months and I'm in need of a new challenge. :smile2:

to the OP.... do a search on Fleabay for TDK/Lambda 48V power supplies. They're far better quality than the MeanWell or similar Chinese knock-off offerings. I managed to snag a used but very clean 21amp model for $100. That's more power than I'll ever need, but might be something for you to consider, since you want to power lighting on additional tanks in the future.


----------



## jeffkrol (Jun 5, 2013)

Ch1 [email protected] 5000k [email protected] bluest cyan bin available.
Ch2 3 @ 2700 2 660nm red

opps corrected errors..



> * MIXING LIST
> ----------------------------------------
> PhilipsLumileds Luxeon-Rebel PLUS (5000K) [120°] x3
> PhilipsLumileds Luxeon-Rebel PLUS (2700K) [120°] x3
> ...


minor correction use one 4000k in place of one 5000k

Ch1 [email protected] 5000k [email protected], [email protected] bluest cyan bin available.

Problem comes in on "look" 4000k effective vs 7000k..
You penalize CRI @D6500

Let me know if you can get cooler color temps than 5000k for the Luxeons.will adjust

Decided to try for ideal.. Some odd reason Luxeon III
Royal blue is superior to Rebel Royal blue
Ch1 3x2700k, 1x deep red
ch2 2x rebel cool white 1x luxeon III royal blue 1x cyan



> * MIXING LIST
> ----------------------------------------
> PhilipsLumileds Luxeon-Rebel Cyan (490-510nm) [120°] x1
> PhilipsLumileds Luxeon-Rebel DeepRed (650-670nm) [120°] x1
> ...


Makes no sense..


> * MIXING LIST
> ----------------------------------------
> PhilipsLumileds Luxeon-Rebel RoyalBlue (440-460nm) [120°] x1
> PhilipsLumileds Luxeon-Rebel Cyan (490-510nm) [120°] x1
> ...


----------



## Kampo (Nov 3, 2015)

as far as heatsinks did a bit more poking arround. I see a lot of the reefguys who do these types of setup use CPU heatsinks, stock intel heatsinks being a popular choice. I kinda like the form factor of them as well. the top frame the way its built would be a perfect spot to apoxy some sort of hook or mount to hang it like a pendant.










not sure if he bottom contact circle is large enough will need to look at the exact dimensions of both the array and the heatsink, looks like it will have solid contact under the led bits though fine so should be good right? 










also in responce to the "perfect acro" talk. I think Jeff is on the right track I did notice when I was looking at the strips I asked the question unknowingly a few months ago of them when I saw one of there ads come accross my facebook stream. and there fresh water strip was described as "2x warm white + 3x 90CRI white + single 720nm red sound? Gives a nice red and blue peaks, with 720nm as well (not visually bright at all)" sounds like jeff is going for the same layout in the acro mold with 1 more red on the warm channel and a blue on the cool channel and I like that idea.


----------



## O2surplus (Jan 31, 2010)

I just finished designing a solder footprint for the Luxeon C. That thing is tiny, but I'm confident that I can solder it LOL. I'm gonna design a layout that mimics BlueAcro's Mega Z array. I'm thinking that we need a minimum of 4 control channels to make this array worthwhile. 

Jeff- The C's are available in a variety of colors including the new "Mint", as well as "Warm" & "Cool" White. Got an idea of the number of leds, colors, how they should be mixed across 4 channels? Keep in mind that I'd like to design the arrays in such a way that 2 could be wired in series per driver channel & driven by a 48V - 60V power supply.

Here's the new "C" footprint. It measures 2mm x 2mm.


----------



## jeffkrol (Jun 5, 2013)

I like to approach this in the "simplistic" way.
First what would be "ideal"?
7 channels
R,G,B,WW,CW, UV,IR..
Next what could be combined or eliminated..
IR (>700nm) probably only important for crop plants and in our use not terribly important to be 1)controlled separately, just lump it in red or 2)inc. at all..
UV (<400nm) .. never is really needed. Possibly can influence red pigment production but.....just lump it in "blue" (which includes >400nm) or skip..

So that leaves 5..

Wrapping blue in w/ cool white is one most logical choice. cool white already ha a high component of blue and is usually best w/ added low K or red diodes..

so you have CWB,WW,R,G

Your worst case parameters limit each channel per chip to 6 to 8 diodes.
Assume you are shooting for 16 per board 

so how about ch1 5CW,1B
ch2 5ww
ch3 2 deep red, 1 red
ch4 1 lime, 1 cyan

A bit of interpolation.. green for lime



> * MIXING LIST
> ----------------------------------------
> PhilipsLumileds Luxeon-Rebel Blue (460-480nm) [120°] x1
> PhilipsLumileds Luxeon-Rebel Cyan (490-510nm) [120°] x1
> ...


----------



## flyfshrmn98 (Oct 20, 2011)

O2surplus said:


> I just finished designing a solder footprint for the Luxeon C. That thing is tiny, but I'm confident that I can solder it LOL. I'm gonna design a layout that mimics BlueAcro's Mega Z array. I'm thinking that we need a minimum of 4 control channels to make this array worthwhile.
> 
> Jeff- The C's are available in a variety of colors including the new "Mint", as well as "Warm" & "Cool" White. Got an idea of the number of leds, colors, how they should be mixed across 4 channels? Keep in mind that I'd like to design the arrays in such a way that 2 could be wired in series per driver channel & driven by a 48V - 60V power supply.
> 
> Here's the new "C" footprint. It measures 2mm x 2mm.


Interested in seeing how these turn out. Would be interested in trying some on my 90 gallon paludarium. Is 4 channels the max per board? I've got a bluefish mini so have 6 to play with


----------



## Kampo (Nov 3, 2015)

I like that layout Jeff. Only downside I see is putting the blue on Cool White Channel is you lose the ability to use blue heavy light for night/ moon lighting, not sure if I would do that personally. But there are some who like to have that option. Not sure how one would avoid that though without going to 5 channels.

I think I'm going to build a lower power practice fixture with a cheaper 50/50 reef chip for a cube mbuna tank I'm not completely happy with lately to get my feet wet while I wait till next month to really dig into this setup and while I now wait and see what comes of this new array. Really appreciate the help of you guys. I think I'm finally getting my head around the basics of LED lighting


----------



## jeffkrol (Jun 5, 2013)

That was a personal choice.. prefer cyan or white for moonlight..



Not sure if the lime/cyan/white would do it, but hey..worth a shot.. This is "experimental"..










Addendum: Est w/ ch3 and 4 off..


----------



## Kampo (Nov 3, 2015)

is that pic with cyan moon lighting? and if so I can see what your saying and I kinda like it, so can see where your going with it.


----------



## jeffkrol (Jun 5, 2013)

Yea but consider it more of a "simulation" since it is not my tank and I believe it was a RGB strip w/ b/g fired up for it..


----------



## O2surplus (Jan 31, 2010)

Making some progress.... 4 channels with 6 leds per channel. Don't mind the wiring traces.... I haven't pick out a connector yet. I designed the overall layout to match the Vero 29 Mechanical footprint. The array is laid out to fit inside and work well with a Ledil Angelina reflector. More to come......:smile2:


----------



## Kampo (Nov 3, 2015)

Random thoughts from the peanut gallery on channel distribution. now this is based on no numers other than gut feel but why not something like

CH1 WW WW WW WW CW CW CW CW CW (not sure if 8 was doable on the channel if your going with 2 in series)
CH2 5 Reds
CH3 5 blues
CH4 5 Greens


theory being CH2-4 combined full light will give basically white if the right LED color spectrums are setup, when added to the CH1 Whites it should give full spectrum balance, with adjustment on coming from the RGB if different color temps are wanted.

other theory how hard would it be to go 5 channel with the thought of 3 being strung together? then just go 4 LEDS each of WW CW RGB on there own channels.

if 6 per channel is needed. another thought again just my uneducated idea. 
Ch1 WW WW WW CW CW CW
CH2 5 Reds then a WW
CH3 5 Blues then a CW (maybe a 10k? or other blue heavy white?)
CH4 5 Blues then a CW (green heavy white? is that mint?)

the reasoning on the second layout is same as the first, but with the thought that i can't think of any reason you would need any color without some white mixed into it anyway so putting 1 white on each of the RGB channels will allow for spectrum adjustment, while still putting enough White LEDS on the board.


----------



## Kampo (Nov 3, 2015)

well was poking around on evil bay...and found this. So my last idea above might kinda be recreating the wheel, no idea of the quality of the leds though...but if it really takes 1amp per channel this thing is 150 watts if fully powered up? just thought it was a kinda crazy chip, optics on it would be equally crazy I would guess looking at dimensions










channel 1:XPE white 6000K 29-31V 350-1000MA 
channel 2:XPE green 525NM 29-31V 350-1000MA 
channel 3:XPE red 620NM 22-26V 350-1000MA 
channel 4:XPE blue 470NM 29-31V 350-1000MA
channel 1:XPE warm white 3000K 29-31V 350-1000MA 
SIZE:82*66*20MM


----------



## flyfshrmn98 (Oct 20, 2011)

Kampo said:


> well was poking around on evil bay...and found this. So my last idea above might kinda be recreating the wheel, no idea of the quality of the leds though...but if it really takes 1amp per channel this thing is 150 watts if fully powered up? just thought it was a kinda crazy chip, optics on it would be equally crazy I would guess looking at dimensions
> 
> 
> 
> ...


You never know if those chips on evilbay are the real deal or not. Likely a cheap knock-off
I would personally not want warm white and cool white on the same channel so you can adjust intensity of each to adjust the overall look of the tank warm and cool wise. I've got a bluefish mini controlling my diy led build with warm white, cool white, red, blue, cyan, and violet. Nice to control all individually. Definitely interested in these chips


----------



## jeffkrol (Jun 5, 2013)

O2surplus said:


> Making some progress.... 4 channels with 6 leds per channel. Don't mind the wiring traces.... I haven't pick out a connector yet. I designed the overall layout to match the Vero 29 Mechanical footprint. The array is laid out to fit inside and work well with a Ledil Angelina reflector. More to come......:smile2:


Yea!!!

anyways, starting layout:

ch1 5CW (6000-7000k),1B
ch2 6ww
ch3 2 deep red, 1 red, 1 orange red, 2 amber 
ch4 2 lime, 3 cyan, 1 cw (6000-7000K)
(ch4 alt. 1 lime, 2 cyan, 3 cool white

alt est:


> * MIXING LIST
> ----------------------------------------
> PhilipsLumileds Luxeon-Rebel Blue (460-480nm) [120°] x1
> PhilipsLumileds Luxeon-Rebel Cyan (490-510nm) [120°] x2
> ...


----------



## O2surplus (Jan 31, 2010)

Spent a few hours polishing this design up a bit....



Now we'll have our choice of 4,5,6,7, or 8 independent channels! I chose to forgo the use of a pretty wire harness for the flexibility of plain old solder pads. The Pcb measures 49mm in diameter. Take a look and let me know what you guys think?


----------



## flyfshrmn98 (Oct 20, 2011)

O2surplus said:


> Spent a few hours polishing this design up a bit....
> 
> 
> 
> Now we'll have our choice of 4,5,6,7, or 8 independent channels! I chose to forgo the use of a pretty wire harness for the flexibility of plain old solder pads. The Pcb measures 49mm in diameter. Take a look and let me know what you guys think?



That looks great. Definitely would be interested in 6 channels


----------



## jeffkrol (Jun 5, 2013)

> or 8 independent channels!


 

Anyways the palette..










ch1,2 6CW (6000-7000k),
ch3 3ww
ch4 3 deep red
ch5 3 cyan
ch6 3 far red.
ch 7 3 blue
ch8 3 neutral white

ok..


----------



## O2surplus (Jan 31, 2010)

Ok Jeff... You're up to bat again. Seeing that I've got the Leds divided up into 8 groups of 3. What do you suppose would be the best led color/channel mix? From the color palate that you posted above, would it make sense to use at least 1 of each color wavelength in groups of 3, i.e. a "red" group( 1 far red, 1 deep red, 1 red ) , an "orange" group" (1 red orange, 1 amber, 1 PC amber), a "green group"(1 mint, 1 lime, 1 green), a "blue group" ( 1 cyan, 1 blue, 1 royal blue). Then fill the other 4 channels with a equal mix of cool & warm white leds? I'm using the BlueFish mini right now, so 6 control channels would be perfect for me. In the future, I'm planning to switch to a custom built/programmed ESP8266/PCA9685 based controller with 8 channels.
:grin2:


----------



## jeffkrol (Jun 5, 2013)

See above.. done..

Technically more of a 7 channel design..to get to 6 channel just group 3 w/ ch8 ...

Estimated CRI w/ blue channel dimmed is over 95

*ch1 6CW (6000-7000k or greater but not more than 8500),
ch2 3ww (2700k) 3 4000k white
ch3 3 deep red
ch4 3 cyan
ch5 3 far red.
ch6 3 blue
*
rough estimate.. as I said dimming blue increases CRI..


> * MIXING LIST
> ----------------------------------------
> LED Blue (470nm) [120°] x3
> LED Cyan (490nm) [120°] x3
> ...


Blue @ 33%


> * MIXING LIST
> ----------------------------------------
> LED Blue (470nm) [120°] x1
> LED Cyan (490nm) [120°] x3
> ...


----------



## Kampo (Nov 3, 2015)

O2surplus said:


> Ok Jeff... You're up to bat again. Seeing that I've got the Leds divided up into 8 groups of 3. What do you suppose would be the best led color/channel mix? From the color palate that you posted above, would it make sense to use at least 1 of each color wavelength in groups of 3, i.e. a "red" group( 1 far red, 1 deep red, 1 red ) , an "orange" group" (1 red orange, 1 amber, 1 PC amber), a "green group"(1 mint, 1 lime, 1 green), a "blue group" ( 1 cyan, 1 blue, 1 royal blue). Then fill the other 4 channels with a equal mix of cool & warm white leds? I'm using the BlueFish mini right now, so 6 control channels would be perfect for me. In the future, I'm planning to switch to a custom built/programmed ESP8266/PCA9685 based controller with 8 channels.
> :grin2:


This is looking really cool. I was thinking on it on my drive to work. Curious to see what Jeff comes up with. I pictured Channel 1&2 bein Cool White Channel 3 & 4 Warm White like your thinkin 02 I think, but was unsure what to do with the other 4 channels. I was thinking Red Mix Blue Mix Green Mix and maybe a 12k White Channel?

Edit I see Jeff has it coverd only change i'd see to his layout is making WW and NW on the same channel pair so they could be combined if run in 6 channel mode.


----------



## jeffkrol (Jun 5, 2013)

Notes: had to use 680 red instead of the 700. Whites are of course phosphor dependent. Diodes were 1W so PAR w/ 2 or 3 w drive current will be 2 or 3x as much..

Pretty much can dial infinite CRI's and tones...xcept violet.. )
no independent royal blue since it is the pump for all whites..


Not sure it is best to group the rgb channels close (since rgb=W) or intersperse them..
Leaning toward interspersed..

Like 12, 4:30,7:30 ish RGB


----------



## Kampo (Nov 3, 2015)




----------



## O2surplus (Jan 31, 2010)

jeffkrol said:


> Technically more of a 7 channel design..to get to 6 channel just group 3 w/ ch8 ...
> 
> Estimated CRI w/ blue channel dimmed is over 95
> 
> ...




Alrighty then! I'll finish the board up and add the led color positions to the silk screen before a I send the design off to China for production. Looks like Digikey has most of the Luxeon C colors in stock, so ordering them won't be problem. Just gotta wait till after the holidays. The wife and kids have been rough on daddy's wallet lately- LOL.


----------



## jeffkrol (Jun 5, 2013)

O2surplus said:


> Alrighty then! I'll finish the board up and add the led color positions to the silk screen before a I send the design off to China for production. Looks like Digikey has most of the Luxeon C colors in stock, so ordering them won't be problem. Just gotta wait till after the holidays. The wife and kids have been rough on daddy's wallet lately- LOL.



Yea!!!

BTW. did some digging on one of the less beaten paths.. Took me awhile to remember their name..
https://reefll.com/index.php?route=product/product&path=59_61&product_id=237

Got to one up the Russians..


----------



## O2surplus (Jan 31, 2010)

One up the Russians eh? Where did I put that atomic weapon?
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
..

.
.
.
.
Ah! Here it is! 8 x 14!


----------



## Kampo (Nov 3, 2015)

O2surplus said:


> One up the Russians eh? Where did I put that atomic weapon?
> 
> Ah! Here it is! 8 x 14!


god you would need liquid nitrogen to cool that thing at 1amp

Bump:


O2surplus said:


> Alrighty then! I'll finish the board up and add the led color positions to the silk screen before a I send the design off to China for production. Looks like Digikey has most of the Luxeon C colors in stock, so ordering them won't be problem. Just gotta wait till after the holidays. The wife and kids have been rough on daddy's wallet lately- LOL.


sounds good  looking foward to it!


----------



## Kampo (Nov 3, 2015)

hey just throwing this out, before we got into all the talk of this custom array I did toss an email off to Blue Acro fishing to see if they had any ability to customize there spectrum. just got this response.



> We can customize the spectrum for the 48W as well, based on a symmetrical 2 channel (2x8) or the four channel design we have for reef lighting. What arrangement would you be looking at? I'd generally recommend the neutral whites + a few warm whites, with or without lime/blue/royalblue/red LEDs as a single accent / spectral rounding.


----------



## O2surplus (Jan 31, 2010)

Kampo said:


> hey just throwing this out, before we got into all the talk of this custom array I did toss an email off to Blue Acro fishing to see if they had any ability to customize there spectrum. just got this response.



BlueAcro is a one man show. As such, their led mix is completely customizable, since all the leds are placed by hand before soldering,:wink2:


----------



## Kampo (Nov 3, 2015)

so as far as the array this thing by my napkin math run full power (with dimmed blue like Jeff said for max CRI) would be arround twice as bright as a VERO 18 at any given current input. i'm guessing 2 of these would easily light my tank the way I want? or would I need to do 3 just for coverage and dimm?


----------



## jeffkrol (Jun 5, 2013)

Vero is 20W- 60W for 1A to 2A
If one assumes photons/ watt is fairly equivalent then it just boils down to which has more "power"..
Depending on bin and actual implementation (heating can hurt efficiency) it can slide either way to which is more efficient..

Just assume photns/watt is equivalent w/ "maybe" a 10-15% hedge for the Veros..i.e 110l/w vs 121l/w


----------



## O2surplus (Jan 31, 2010)

We're off to China for production.....

The design grew a little bit. It's 88mm in diameter now. I added solder pads for some really nice quick release wire connectors around the original 49mm outside diameter. This adds to the production expense but will make the Array much easier to configure in the long run.
:smile2:


----------



## Kampo (Nov 3, 2015)

Looks awesome. My amature observation, Are those jumpers to combine channels?


----------



## mistergreen (Dec 9, 2006)

oh, interesting. What's the heat sink on this like?
Will it need a Peltier cooler?


----------



## ichy (Apr 6, 2015)

If you want to go real simple how about a COB?
You of course don't get the individual channel control, but you get dimming and pretty darn simple/easy to do.

I was going to throw the Yuji cob in glass globe and hang over my discus tank, but the Ecoxotic strip light came up for $60 so I jumped on that.


----------



## jeffkrol (Jun 5, 2013)

mistergreen said:


> oh, interesting. What's the heat sink on this like?
> Will it need a Peltier cooler?



KIS.. 

https://led.cdiweb.com/ProductDetail/MODULEDGIGA152100BHBG-MechaTronix/574068/

or related.. For $79 you can passively cool a 225W chip..
https://led.cdiweb.com/ProductDetail/COOLBAYTERAA-MechaTronix/582154/


----------



## ichy (Apr 6, 2015)

O2surplus said:


> We're off to China for production.....
> 
> The design grew a little bit. It's 88mm in diameter now. I added solder pads for some really nice quick release wire connectors around the original 49mm outside diameter. This adds to the production expense but will make the Array much easier to configure in the long run.
> :smile2:


are you going to make these commercial available?


----------



## O2surplus (Jan 31, 2010)

Kampo said:


> Looks awesome. My amature observation, Are those jumpers to combine channels?


Sort of... they're 0 ohm resistors. They can be easily un-soldered to take the board from 4 to 5,6,7, or 8 channels.



mistergreen said:


> oh, interesting. What's the heat sink on this like?
> Will it need a Peltier cooler?


 I like Jeff's offering! Any heat sink designed for use with the BridgeLux Vero 29 should work. This array should be driven to <75 watts.



ichy said:


> If you want to go real simple how about a COB?.


:smile2: we had the COB discussion a couple pages back. Don't get me wrong... I love'em, but where's the fun?





jeffkrol said:


> KIS..
> 
> https://led.cdiweb.com/ProductDetail/MODULEDGIGA152100BHBG-MechaTronix/574068/
> 
> ...


Awesome find Jeff! and not terribly expensive either!



ichy said:


> are you going to make these commercial available?


We'll see? I've ordered enough parts to build the first 10. If the arrays perform well, I'll try to make them available for anyone that wants them. :thumbsup:


----------



## ichy (Apr 6, 2015)

ya multi channel control is sexy!


----------



## mistergreen (Dec 9, 2006)

Nice. Any know of a pendent hood/housing that can fit over this?


----------



## Kampo (Nov 3, 2015)

mistergreen said:


> Nice. Any know of a pendent hood/housing that can fit over this?


it will be diy whatever you come up with. my current plan is having the assembly inside a short length of black painted pvc with a fan to make sure there is enough airflow to cool it.


----------



## kilauea91 (Sep 19, 2013)

What is the diameter of the LED emitter ring? It may help to reduce the "disco effect" to place each emitter of the same channel evenly around the ring, 
meaning the ring of LED goes round robin like CH1-CH2-CH3....etc. This complicates the trace routing and may further enlarge the PCB though. Then again it may 
not be an issue since the emitters are placed close enough together, or simple add a lens bolted on to the heat sink to disperse/mix the colors, 
with something like this:

https://kingbriteled.en.alibaba.com/product/60493599467-803540819/163mm_passive_heatsink_for_CREE_CXB3590_75W_85W.html

I wonder if the LED ring will fit into the lens diameter. 



O2surplus said:


> We're off to China for production.....
> 
> The design grew a little bit. It's 88mm in diameter now. I added solder pads for some really nice quick release wire connectors around the original 49mm outside diameter. This adds to the production expense but will make the Array much easier to configure in the long run.
> :smile2:


----------



## O2surplus (Jan 31, 2010)

kilauea91 said:


> What is the diameter of the LED emitter ring? I wonder if the LED ring will fit into the lens diameter.


I designed this led array to comply with the mechanical dimensions of the BridgeLux VERO 29. As such, the ring of Luxeon C leds fit inside the same diameter of the original COB array. Any reflector designed for use with the VERO 29, i.e the Ledil Angela/Angelina, will fit correctly, and provide a nice mixing effect without any disco. 
http://www.ledil.com/sites/default/files/press_releases/color_mixing_reflectors.pdf


----------



## jeffkrol (Jun 5, 2013)

O2surplus said:


> I designed this led array to comply with the mechanical dimensions of the BridgeLux VERO 29. As such, the ring of Luxeon C leds fit inside the same diameter of the original COB array. Any reflector designed for use with the VERO 29, i.e the Ledil Angela/Angelina, will fit correctly, and provide a nice mixing effect without any disco.
> http://www.ledil.com/sites/default/files/press_releases/color_mixing_reflectors.pdf



LED reflector family BR11018-C1C for Vero 29 - LUMOTRIX

40 degree is max...

Cute little mixing lens.. LEDIL
http://www.mouser.com/ProductDetail/Ledil/F13671_ANGE-RZ-LENS/?qs=7jhocJ3ivuTugbsxm5WASg==


----------



## Kampo (Nov 3, 2015)

so somewhat off topic but just brain storming. since i'm prolly investing in a Bluefish Mini i'm in love with the idea of having all my fish lights controlled from one spot. are there any products that take a PWM input to Dim normal Incandescent lights? My fish room is lit with shop light reflector dome fixtures with dimmable LED bulbs in them would be sweet to have ramping light in there, have several fish that always get spooked when the room clicks on in the morning.


----------



## jeffkrol (Jun 5, 2013)

Kampo said:


> so somewhat off topic but just brain storming. since i'm prolly investing in a Bluefish Mini i'm in love with the idea of having all my fish lights controlled from one spot. are there any products that take a PWM input to Dim normal Incandescent lights? My fish room is lit with shop light reflector dome fixtures with dimmable LED bulbs in them would be sweet to have ramping light in there, have several fish that always get spooked when the room clicks on in the morning.


Products?? Maybe..
Possible.. apparently yes.. but not really recommended.
You need to "convert" the 5V PWM (Aduino , bluefish ect) to switching your Triac dimmer or, in this case, a different circuit that does about the same thing(or rewire the shop lights, lets not go there for now.)

No guarantees though..and you'd have to switch out your bulbs..


> This circuit is ONLY for incandescant bulbs.


It is possible it will work w/ AC dimmable LEDs but NO guarantee..
Basic concept is opto-isolate the 5V "signal" (using a pulsed led) and drive a light activated transistor switch which switches a high voltage MOSFET..

http://pcbheaven.com/circuitpages/Voltage_Controlled_AC_Light_Dimmer/


----------



## O2surplus (Jan 31, 2010)

What's that old saying about "idle hands" ? Mine just created an 8 channel LED light engine.

Check it out-


----------



## mistergreen (Dec 9, 2006)

Be careful, there are so many pins on an arduino


----------



## O2surplus (Jan 31, 2010)

mistergreen said:


> Be careful, there are so many pins on an arduino


No worries... The PCA9685 chip has 16 12 bit PWM pins. Pair it with an ESP8266 and you've got yourself a really nice WiFi Enabled LED controller.


----------



## jeffkrol (Jun 5, 2013)

no pots?????


----------



## O2surplus (Jan 31, 2010)

jeffkrol said:


> no pots?????


Don't be silly.....of course there's pots.... 1 for each channel.


----------



## mistergreen (Dec 9, 2006)

O2surplus said:


> No worries... The PCA9685 chip has 16 12 bit PWM pins. Pair it with an ESP8266 and you've got yourself a really nice WiFi Enabled LED controller.


Oh right. I have a PCA9685 sitting right next to me. So what did you add in the new design?


----------



## O2surplus (Jan 31, 2010)

mistergreen said:


> O2surplus said:
> 
> 
> > No worries... The PCA9685 chip has 16 12 bit PWM pins. Pair it with an ESP8266 and you've got yourself a really nice WiFi Enabled LED controller.
> ...


The first design that I posted a few days back was just 8 channel LED array. This one has 8 LM3414 based led drivers integrated into the same led array. Each driver is independently adjustable from 200ma to 1000ma. This analog current adjustability will help reserve the led controllers full range PWM dimming for sunrise/sunset effects. I think this design will be good for pendant style installations, as it reduces wiring complexity. ( I'm in the process of designing another PcB that will house the controller and other support circuitry. This board will be mounted to the opposite end of the led/driver array's cylindrical heat sink.) If all goes according to plan... Only two DC power wires will needed to be routed from the pendant to it's power supply. (Think kessil)


----------



## Kampo (Nov 3, 2015)

All I gotta love say is holy crap...So will the controller be a bluefish still then or something custom?


----------



## O2surplus (Jan 31, 2010)

Kampo said:


> All I gotta love say is holy crap...So will the controller be a bluefish still then or something custom?



Actually....It will be both. I'm designing it to support the BlueFish Mini and the Wemos D1mini. 
Being that the led array only has 3 LEDs per channel, the drivers should work fine with only 12V power. The BF Mini can accept 12V power directly, but the Wemos D1MINI mini will only accept 5V. I'll add in a beefy voltage regulator to take care of that. The BF Mini side will get user selectable channel jumper pins. This will allow the 8 channels on the array to be configured for only six channels of control.
The Wemos D1mini side is where things will get interesting.... 
8 channel control using the 8 I/O pins directly from the mini (10bit), OR 12bit control from a PCA9685 (connected to the mini via I2C).


----------



## Kampo (Nov 3, 2015)

O2surplus said:


> Actually....It will be both. I'm designing it to support the BlueFish Mini and the Wemos D1mini.
> Being that the led array only has 3 LEDs per channel, the drivers should work fine with only 12V power. The BF Mini can accept 12V power directly, but the Wemos D1MINI mini will only accept 5V. I'll add in a beefy voltage regulator to take care of that. The BF Mini side will get user selectable channel jumper pins. This will allow the 8 channels on the array to be configured for only six channels of control.
> The Wemos D1mini side is where things will get interesting....
> 8 channel control using the 8 I/O pins directly from the mini (10bit), OR 12bit control from a PCA9685 (connected to the mini via I2C).


so what is a Wemos D1mini? did a little googling on it looks like essentially a arduino with wifi integrated?


----------



## O2surplus (Jan 31, 2010)

Yeah, it's essentially a microcontroller with built in WiFi connectivity. The microcontroller has a ton of memory when compared to Arduino's and it's compatible with the Arduino IDE. I'm currently using the "BLYNK" app to control mine, but I suck at writing code, so I'm stuck with manual dimming control for the time being. Maybe "Mistergreen" can help me with that? (hint,hint)


----------



## mistergreen (Dec 9, 2006)

I was thinking of hooking this LED pendent on my arduino web server thingy. I'll add a few more channels in the PCA9685 code to make it 8.


----------



## O2surplus (Jan 31, 2010)

mistergreen said:


> I was thinking of hooking this LED pendent on my arduino web server thingy. I'll add a few more channels in the PCA9685 code to make it 8.


"Web server thingy"? Does it work with an ESP directly? Or only with Arduino/WiFi shields?


----------



## mistergreen (Dec 9, 2006)

O2surplus said:


> "Web server thingy"? Does it work with an ESP directly? Or only with Arduino/WiFi shields?


[strike]It uses the wifi shield[/strike]. It uses an ethernet shield. The server needs some simultaneous sockets to work well.
The code is posted on Github
https://github.com/mistergreen/WAAC


----------



## Kampo (Nov 3, 2015)

so while we all wait for o2 on this sweet chip I'm wanting to get cheaper DIY light going on my 75 to learn a bit more. was googling around and found something I don't think I have seen posted anywhere.

SatisLED sells a series of drivers with integreated ramping timers for resonable prices
Discount China Wholesale DIMFree-C4S 4 Channel LED Sunrise/Sunset Programmable Controller [DIMFree-C4S]- US$49.99 - SatisLED Store,Wholesale China LED Lamps, Power LED, LED Strips, LED Floodlights, LED Tubes, LED Spotlights, LED Downlights, LED Aquar
4 channel with timer ramping 700ma.

seems pretty interesting to me. they offer them all the way up to 8 channel with wifi control.

is this old news and not used by others for a reason?


----------



## O2surplus (Jan 31, 2010)

I've completed the controller for the 8 channel array. This PcB will support the BlueFish Mini or the WEMOS D1 Mini. The Bluefish Mini will connect directly to a 2 X 7 header that provides 12V power and connections to 6 output channels. The WEMOS D1 Mini has it's own socket too. Instead of using the WEMOS I/O directly, I've connected the Mini to a PCA9685 and a DS3231 RTC module ( $2 ea. from Fleabay) via I2C. The PCA9685 provides outputs for up to 16 - 12bit PWM channels. The RTC is there to act as a time keeper back up, in the cases where the WEMOS mini looses it's Wifi connection to NTC time servers.
On the software front, I'll be using the "SSLAC16" firmware for the time being. This software can be found here-https://github.com/bbasil2012/SSLAC16 The software provides direct Wifi control of the WEMOS D1 Mini (ESP8266) though any web browser. No need for any wires...:smile2:









The PcB measures 45mm X 55mm


----------



## Kampo (Nov 3, 2015)

Looking good O2, excited to see how this turns out


----------



## O2surplus (Jan 31, 2010)

Kampo said:


> Looking good O2, excited to see how this turns out




Thanks! I'm a little exited too. I've got 10 copies of the PlantLEDengine, PlantLEDarray, and the BlueFishMini/WemosD1Mini controller PcB plus stainless steel solder stencils for each on the way. 
I'm really hoping they all function correctly once I get them soldered up. Otherwise they're going to be nothing more than overly expensive aluminum drink coasters.
:wink2:


----------



## flyfshrmn98 (Oct 20, 2011)

O2surplus said:


> Thanks! I'm a little exited too. I've got 10 copies of the PlantLEDengine, PlantLEDarray, and the BlueFishMini/WemosD1Mini controller PcB plus stainless steel solder stencils for each on the way.
> I'm really hoping they all function correctly once I get them soldered up. Otherwise they're going to be nothing more than overly expensive aluminum drink coasters.
> :wink2:


Any idea of price guesstimates for the various components?


----------



## O2surplus (Jan 31, 2010)

flyfshrmn98 said:


> Any idea of price guesstimates for the various components?


Not yet.... still trying to locate and source all the needed components at the best prices. I'm aiming to buy enough leds to build out at least 10 arrays, but the $600 price tag is a bit rich for my blood right now:surprise:. I've already spent nearly $400 on just the PcB's & stencils alone..... Gotta pace myself :wink2:
I still need:

Heat sinks designed for Vero 29's ( $27 - $79ea )

Vero 29 reflectors $?

12V/10amp laptop power supplies $?

All components needed for LM4314 led drivers ( approx $60 for each PlantLEDengine )

All components needed for the Controller PcB's $?

other assorted bits $?


----------



## Fissure (Jun 29, 2014)

Since I spoke about the Bridgelux EB strips in this thread earlier just wanted to say they have arrived now and I took a quick look at them before I headed to work. They look really sleek and nice with some nice push in connectors so no need for soldering. What I did react on was the strip itself that the LEDs are mounted on. I was expecting some kind of metal mounting board but instead it was some kind of plastic or glass fibre board.
So I went over to the product sheet to see how they instruct on mounting them and found something that caught my eye.
In the top of the product sheet under "benefits" it says
http://www.bridgelux.com/sites/default/files/resource_media/DS130 EB Series Datasheet Rev A_0.pdf

-No separate heatsinking required

???
If that is the case and they do not need to be attached to a dedicated heatsink would that not be pretty amazing considering the output? Or am I missing something, this is ofc if they manage to stick under 85 degrees celsius?

@O2surplus - that board you have in the works sounds friggin sweet. Where do I sign up?


----------



## jeffkrol (Jun 5, 2013)

Fissure said:


> ???
> If that is the case and they do not need to be attached to a dedicated heatsink would that not be pretty amazing considering the output? Or am I missing something, this is ofc if they manage to stick under 85 degrees celsius?
> 
> @*O2surplus* - that board you have in the works sounds friggin sweet. Where do I sign up?





> CAUTION: RISK OF BURN
> Do not touch the EB Series module during operation. Allow the module to cool for a sufficient period of time before handling. EB Series modules may reach elevated temperatures such that could burn skin when touched.


One of the great areas of research has been high temp diodes..

But besides that:


> I measured about 14 inches under 4 of the strips @ 700ma and it read around 380 umol s



Bridgelux EB Series Build | Page 5 | Rollitup

Not sure the exact array..


----------



## Fissure (Jun 29, 2014)

jeffkrol said:


> One of the great areas of research has been high temp diodes..
> 
> But besides that:
> 
> ...


That sounds pretty good to be honest, read the weed thread thanks for linking that.
It would be pretty friggin amazing if no heatsink is required. Gamechanger for me, kinda wish I did not order my new aluminum profile now 

On the plus side for the EB series there is not that many to keep track of. Got the 4000K, 5000K and 5700K in three different lengths each. Same strenght leds on all of them just guessing they are hooked up different ways on the different PCBs.
Hooking up 26 of the small strips should give me the same output as my 10 Veros currently or even a bit more. Having the possibility to even place these on plastic covers for the tank etc would be amazing I think.


Might even try to retrofit my chihiro cheapo leds with two of the 560mm strips just for fun.


----------



## Maryland Guppy (Dec 6, 2014)

Fissure said:


> -No separate heatsinking required???
> 
> If that is the case and they do not need to be attached to a dedicated heatsink would that not be pretty amazing considering the output?


Hubbell Lighting also makes a similar product.
I have a box of 555mm strips(4K or 5K) and dimming drivers.
Retro fit all the 2x4 office lights in our entire building.
They are going to be bench top lights in my shop mounted in 3" PVC sliced in half lengthwise.

Installers just wiped the metal fixtures with alcohol wipes and stuck them in place.
They are a bit warm though!


----------



## Kampo (Nov 3, 2015)

those EB strips are interesting...about 1 inch wide...i'm at work and can't jump on spectra but I wounder what the CRI and spectrum of those would look like in a 3 channel setup thinking it might make a cheap option to light a 75 gallon in my basement.

2x5700k strip
1x3000k strip

all mounted into a open box and hung a few inches above the tank.

could also make nice fish room lights setup how moscow guppy is suggesting...hmmm damnit I just figured out my fishroom lighting but I like this option and there reasonably cheap for the lighting...

Also just curious as far as CRI just so I can kinda get my head around it. 80 CRI how does that compare with say a beamswork bar, that really do give a washed out look. are the leds they use similar and around 80 or are they even worse and more toward the 70 CRI?


----------



## mistergreen (Dec 9, 2006)

O2surplus said:


> Not yet.... still trying to locate and source all the needed components at the best prices. I'm aiming to buy enough leds to build out at least 10 arrays, but the $600 price tag is a bit rich for my blood right now:surprise:. I've already spent nearly $400 on just the PcB's & stencils alone..... Gotta pace myself :wink2:
> I still need:
> 
> Heat sinks designed for Vero 29's ( $27 - $79ea )
> ...


I'm willing to buy 2 pendant array PCB from you without all of the components. If you provide a list of components, I can get them myself and solder them on. That should save you some time & money.


----------



## O2surplus (Jan 31, 2010)

mistergreen said:


> I'm willing to buy 2 pendant array PCB from you without all of the components. If you provide a list of components, I can get them myself and solder them on. That should save you some time & money.


Thanks for the offer. I'll reserve a couple for you. Unless you already own an SMD reflow oven, I'd recommend letting me do the soldering. The Luxeon C leds are extremely small (2mm x 2mm) and without an accurate solder stencil to place the paste, would be very difficult to solder successfully.


----------



## mistergreen (Dec 9, 2006)

O2surplus said:


> Thanks for the offer. I'll reserve a couple for you. Unless you already own an SMD reflow oven, I'd recommend letting me do the soldering. The Luxeon C leds are extremely small (2mm x 2mm) and without an accurate solder stencil to place the paste, would be very difficult to solder successfully.


Good call. I won't be able to solder something that small.

I just realized an ethernet cable has 8 wires inside. An RJ-45 plug would make a great input/output port for this.


----------



## Fissure (Jun 29, 2014)

Kampo said:


> those EB strips are interesting...about 1 inch wide...i'm at work and can't jump on spectra but I wounder what the CRI and spectrum of those would look like in a 3 channel setup thinking it might make a cheap option to light a 75 gallon in my basement.
> 
> 2x5700k strip
> 1x3000k strip
> ...


Think 5700K and 4000K would be a better match unless you really like warm light. The reds are covered equally by the 3000K and 4000K but the 4000K has a better ouput in the cyan area of the spectrum. Lots of greens and yellows in the 4000K as well though.


----------



## Kampo (Nov 3, 2015)

Fissure said:


> Think 5700K and 4000K would be a better match unless you really like warm light. The reds are covered equally by the 3000K and 4000K but the 4000K has a better ouput in the cyan area of the spectrum. Lots of greens and yellows in the 4000K as well though.


thats kinda what I noticed when I dug into the data sheets. really neat product I honestly think it could be a great bang for buck for a simple setup for a lot of people.


----------



## Kampo (Nov 3, 2015)

@O2surplus any updates on how the pendent arrays are coming?


----------



## O2surplus (Jan 31, 2010)

Kampo said:


> @*O2surplus* any updates on how the pendent arrays are coming?



I'm making progress. I've got the aluminum Pcb's, and all the driver parts. Now it's just a matter of scrounging up enough cash to buy the leds. Hopefully, I'll be able to sneak a few bucks in the next few weeks to cover those.

Here's some photos of what I've accomplished so far-

The 8 channel led array-









The 8 channel Led Engine-









The BlueFish Mini/WEMOS D1 Mini contoller-









I've tested the controller pcb with either the Bluefish mini or the WEMOS D1 mini installed, and it works very well. I'll update this thread with more info after I've had the chance to get the leds and assemble some of the arrays.:grin2:


----------



## jeffkrol (Jun 5, 2013)

I'm all a-twitter...


----------



## gus6464 (Dec 19, 2011)

Does the wemos d1 require the bluefish to function or is it either/or?


----------



## O2surplus (Jan 31, 2010)

It's either one or the other. The WEMOS D1 Mini controls a pca9685 chip with 16 independent LED channels. Think of it as a StormX controller with built in WiFi connectivity. It's soooo we'll connected that I'm able to update it's programming over the air. There's no need for an USB connection, knobs, buttons ECT.. just a few mouse clicks.


----------



## Kampo (Nov 3, 2015)

O2surplus said:


> It's either one or the other. The WEMOS D1 Mini controls a pca9685 chip with 16 independent LED channels. Think of it as a StormX controller with built in WiFi connectivity. It's soooo we'll connected that I'm able to update it's programming over the air. There's no need for an USB connection, knobs, buttons ECT.. just a few mouse clicks.


very interested in see more of this. compared to a bluefish which is a pretty friendly interface and has lots of fancy "stuff" are you giving up a lot to go with the WEMOS? 

also looks great!


----------



## gus6464 (Dec 19, 2011)

O2surplus said:


> It's either one or the other. The WEMOS D1 Mini controls a pca9685 chip with 16 independent LED channels. Think of it as a StormX controller with built in WiFi connectivity. It's soooo we'll connected that I'm able to update it's programming over the air. There's no need for an USB connection, knobs, buttons ECT.. just a few mouse clicks.


Ahh ok so it runs a local web server with the interface? I assume the interface has to be created from scratch?


----------



## O2surplus (Jan 31, 2010)

gus6464 said:


> Ahh ok so it runs a local web server with the interface? I assume the interface has to be created from scratch?


No scratch at all. The software that I'm using has been around for awhile now. It was produced by a Russian fellow that frequents Reef Central's Russian language website. It was a bit of a Pita to get the proper programming software dialed in to flash the ESP initially, but now that I have everything in place it's easy. Here's a link to the GitHub site https://github.com/bbasil2012/SSLAC16 . Here's the ReadMe doc with all the details of what this software can do.


*SSLAC16*

(actual version 0.36rev0)
*https://github.com/bbasil2012/SSLAC16#simplesmart-led-aquarium-controller-16-channelsSimple&Smart LED Aquarium Controller 16 channels*

controled over Wi-Fi via WEB interface. (ESP8266 based)
*https://github.com/bbasil2012/SSLAC16#why-it-is-simpleWhy it is “simple”:*

*https://github.com/bbasil2012/SSLAC...onents-and-5-wires-for-the-full-functionalityYou need only 2 components and 5 wires for the full functionality.*

Or you can buy from the author full-featured controller PCB (NodeMCU + RTC + PCA9685 + battery compartment)
*https://github.com/bbasil2012/SSLAC...ny-programming-language-for-micro-controllersNo need to learn any programming language for micro-controllers.*

*https://github.com/bbasil2012/SSLAC...he-necessary-components-are-easily-accessibleNo need to install on your computer any big and fat development environment, compile the source code, fix it etc. The necessary components are easily accessible.*

*https://github.com/bbasil2012/SSLAC16#very-low-costVery low cost*

*https://github.com/bbasil2012/SSLAC16#why-it-is-smartWhy it is “smart”:*

*https://github.com/bbasil2012/SSLAC16#version-036r0version 0.36r0*

"To control the light in real time"
*https://github.com/bbasil2012/SSLAC16#16-time-points16 "time points."*

individually for each light control channel. (Total maximum of 256 points) 
*https://github.com/bbasil2012/SSLAC16#16-control-channels16 control channels.*

Each control channel can specify your own name up to 32 characters (or 16 characters with the use of the national language in the 2-byte character set) That is a multi-language support channel names The color display on the daily schedule can be set and changed by the user. Each channel can be one of two types: -channel light control. -channel control cooling fan. 
*https://github.com/bbasil2012/SSLAC...hannels-can-be-randomly-scattered-on-8-groups8 groups of channels. (Yes, now the channels can be randomly scattered on 8 groups)*

For each group, you can specify your own name up to 32 characters (or 16 characters with the use by the national language 2-byte encodings), multi-language support group names Each group may contain any number of light control channels (0 to 16) you can assign a "temperature alarm" Each channel group.
*https://github.com/bbasil2012/SSLAC16#8-temperature-alarm8 "temperature alarm"*

For each channel group, you can set your own critical temperature and decreasing step dimming values ​​for the channels of the group.
*https://github.com/bbasil2012/SSLAC16#playtime-function"PlayTime" function*

Using this feature, you can see in real time as will appear on your aquarium light at any given time. Functions can be applied both to all channels at once, and to any group of channels. 
*https://github.com/bbasil2012/SSLAC16#mode-emergency-lightMode. "Emergency light"*

May use any number of light control channels. Each used channel has individual dimming settings for this mode. 
*https://github.com/bbasil2012/SSLAC16#8-temperature-sensors-tipds18x208 temperature sensors tip.DS18x20*

Each temperature sensor can control any number of cooling channels and control any number of "temperature alarm"
*https://github.com/bbasil2012/SSLAC16#what-do-you-need-to-purchaseWhat do you need to purchase:*



The module based ESP8266, recommend NodeMCU.
Module on PCA9685.
The power supply - will suit any battery charger from the mobile phone 5V and 300mA.
Optional: module "Real Time Clock" on the PCF8563 or DS3231. (Support for DS1307 RTC also have but I do not recommend to use it)
Optional: temperature sensors type DS18x20.
 *https://github.com/bbasil2012/SSLAC16#updating-firmware-sslacUpdating firmware SSLAC.*

We strongly recommend using a program that comes with Arduino IDE for ESP8266 Separately it can be downloaded at various OS here: https://github.com/igrr/esptool-ck/releases
*https://github.com/bbasil2012/SSLAC16#1-the-main-firmware1 .The main firmware:*

*https://github.com/bbasil2012/SSLAC...httpsgithubcombbasil2012sslac16releaseslatestLatest release can be found there: https://github.com/bbasil2012/SSLAC16/releases/latest*

esptool -v -cp "COM-port" -cb 115200 -ca 0x00000000 -cf 0x0-SSLAC16-v0.36rev0.bin
where "COM-port" name of COM port.
For example on my Mac OS X NodeMCU designated as /dev/tty.SLAB_USBtoUART
You need restart your module and after restarting the module in the list of available WiFi networks should appear SSLAC_xxxxxxxx (Where xxxxxxxx - password) 
*https://github.com/bbasil2012/SSLAC16#2-additional-filespiffs-image2. Additional file(SPIFFS image)*

And now you can upload SPIFFS image by WiFi network from page http://194.168.4.1/rescue or upload all .html and .js files separately (I recomend upload files separately)
Connect to the network module, type http://192.168.4.1 in the address bar and ehjoy 
Short video: https://youtu.be/XsKu5m_CHkc


----------



## gus6464 (Dec 19, 2011)

Nice thanks. Man that's a lot of channels. I get annoyed with 4 so 16 would drive me nuts.


----------



## Kampo (Nov 3, 2015)

thats pretty sweet 02. not as "fancy" as a BLuefish but more powerful in some ways as well.


----------



## Shadar (Jan 30, 2017)

Well, I've been just lurking while I get ready to set up a planted tank, but this is too much fun to stay quiet. I share JeffK's obsession with high CRI, so the Spectra tool is tons of fun to play with (though I don't actually know which of the various chips are actually compatible with the Luxeon C footprint, so who knows if my designs are viable).

Here's my favorite that I've come up with. It only uses 21 LEDs, so there's an entire channel left empty. You could just leave that blank, or use it for a moonlight channel, with the driver dialed down as low as possible to preserve as much low brightness PWM as possible (are there 1 watt LEDs that fit this footprint?).



> * MIXING LIST
> ----------------------------------------
> PhilipsLumileds Luxeon-Rebel Blue (460-480nm) [120°] x1
> PhilipsLumileds Luxeon-Rebel Cyan (490-510nm) [120°] x4
> ...


Yes, that's 100 CRI. For channels, I'd probably break it up as:
CH1 - 3 Cool White
CH2 - 1 CW, 1 Blue, 1 Cyan
CH3 - 2 CW, 1 Cyan
CH4 - 2 Cyan, 1 UV
CH5 - 3 Neutral White
CH6 - 2 NW, 1 Warm White
CH7 - 2 Amber, 1 Red

This assumes that channel 2 or 3 would be used for moonlight. If CH8 was a dedicated moonlight channel, you could pretty much mix up channels 1-4 however you want. You could also combine 1 & 4 to turn this into 6 channels.

I have a couple of questions for O2, as well. First, where are you ordering aluminum PCBs from? I know where to get small batch copper PCBs, but not aluminum. Second, do these require a true reflow oven to solder, or would a modified toaster oven do it?

Looking forward to seeing some of these actually running!


----------



## jeffkrol (Jun 5, 2013)

100CRI.. Impressive.. Never got one.. 
No deep red either..
Just a note: I believe the calc uses "midpoint" numbers
i.e for 4500-10000k diode 7250..


----------



## O2surplus (Jan 31, 2010)

I use Seeedstudios for aluminum pcb's. So far, I haven't been disappointed with either the quality of the boards or the price. They're very affordable. http://www.seeedstudio.com/depot/login.html
For normal FR4 pcb's, I recommend ELECROW. Great prices on boards and solder stencils + extremely fast production and shipping. ( I've received orders in as little as 6 days.)
A modified toaster oven should work fine as long as you've got adequate temperature control. I use a heavily modified T962A reflow oven for my projects. Use low temp solder (138C) and you'll reduce the risk of toasting any PCBs.


----------



## Shadar (Jan 30, 2017)

jeffkrol said:


> 100CRI.. Impressive.. Never got one..
> No deep red either..
> Just a note: I believe the calc uses "midpoint" numbers
> i.e for 4500-10000k diode 7250..


I wondered about that, but when I only use that diode it gives a temp of 5850 K. Does the 4500-10000k represent a range of diodes, or a range of possible values for a single diode? It would be nice to know how close of an estimate this actually is, since there are a lot of unknowns.

Is deep red just something you usually need for high CRI, or is there another significant benefit to including it? Here's a 22 LED/99 CRI array using some deep red (to fill out the channels, I'd steal an idea from you and triple the blues, then run at 33%):



> * MIXING LIST
> ----------------------------------------
> PhilipsLumileds Luxeon-Rebel Blue (460-480nm) [120°] x1
> PhilipsLumileds Luxeon-Rebel Cyan (490-510nm) [120°] x4
> ...





O2surplus said:


> I use Seeedstudios for aluminum pcb's. So far, I haven't been disappointed with either the quality of the boards or the price. They're very affordable. http://www.seeedstudio.com/depot/login.html
> For normal FR4 pcb's, I recommend ELECROW. Great prices on boards and solder stencils + extremely fast production and shipping. ( I've received orders in as little as 6 days.)
> A modified toaster oven should work fine as long as you've got adequate temperature control. I use a heavily modified T962A reflow oven for my projects. Use low temp solder (138C) and you'll reduce the risk of toasting any PCBs.


I didn't realise they did aluminum. Cool.

Thanks for the info. I don't have room for a toaster oven reflow right now, but someday I want to build some custom high CRI fixtures for home lighting, and this will be super helpful.

Back on topic: if you wanted to run 2 or 3 of these over a tank*, would the LED array make more sense than the LED engine? It would save the cost of additional drivers, but require a lot more wires (I'm imagining kessil style pendants, so no shared enclosure). If you did go with the engine, can that ESP8266 based controller synchronize between multiple instances, or would it require you to set up each one individually?

I suppose worst case I could write my own synchronised controller easily enough. Maybe even hook up the new ESP32 instead of the 8266; looks like it supports high resolution PWM without an external chip, has Wifi and Bluetooth, and even supports dithering for smoother fades. Could be a fun project. *Edit:* apparently it's got an onboard RTC as well.

*I don't even have my 60p planted yet and I'm already thinking about a bigger tank. Ugh.


----------



## jeffkrol (Jun 5, 2013)

Deep red (660nm) is a closer match to a chlorophyll absorption peak.
Besides most whites go pretty deep into the normal red band..








Call it covering all bases... 
10 of the 4500-10000k gives me a K of 5850..not 7250

5000-8300K Cree gives me 6990 6650 would have been expected..
I guess I never really noticed.. 
K temps aren't exactly arithmetic , that I knew (something to do w efficiency ), but did usually simplify due to a lower error (see CREE).

as to "perfect" dimming.. key is (as I understand it) high precision is only needed on the "dim" side. After a certain point it becomes irrelevant due to the physiology of light response..
Correcting for non-linear brightness in LEDs when using PWM - Electrical Engineering Stack Exchange

There are drivers w/ built in dimming curves..


----------



## Shadar (Jan 30, 2017)

jeffkrol said:


> Deep red (660nm) is a closer match to a chlorophyll absorption peak.
> Besides most whites go pretty deep into the normal red band..
> 
> 10 of the 4500-10000k gives me a K of 5850..not 7250
> ...


This may be one of those things where you just have to get the actual hardware and see what happens? 4500-10000k is a pretty wide range. Too bad high resolution CRI meters are so expensive :surprise:



> as to "perfect" dimming.. key is (as I understand it) high precision is only needed on the "dim" side. After a certain point it becomes irrelevant due to the physiology of light response..
> Correcting for non-linear brightness in LEDs when using PWM - Electrical Engineering Stack Exchange
> 
> There are drivers w/ built in dimming curves..


Yeah, it's definitely the dim side I'm concerned about for precision. That's especially critical if you want dynamic moon phases, since the difference between a crescent moon and a full moon is miniscule compared to the full range of 3 x 3 watt LEDs. Built in dimming curves sound nice. Got a link to something like that?

*Edit:* That LED mix I posted above can also be filled out by adding a couple of ~400nm UV diodes instead of just tripling the blues. Increases color temp slightly and drops CRI to 98, but it makes the "spectrum adviser" for fresh water much happier by hitting near the absorption peak at the other end.



> * MIXING LIST
> ----------------------------------------
> PhilipsLumileds Luxeon-Rebel Blue (460-480nm) x1
> PhilipsLumileds Luxeon-Rebel Cyan (490-510nm) x4
> ...


----------



## gus6464 (Dec 19, 2011)

O2surplus said:


> It's either one or the other. The WEMOS D1 Mini controls a pca9685 chip with 16 independent LED channels. Think of it as a StormX controller with built in WiFi connectivity. It's soooo we'll connected that I'm able to update it's programming over the air. There's no need for an USB connection, knobs, buttons ECT.. just a few mouse clicks.


Is your wemos D1 ready for prime time? Would love to give it a whirl on new Bridgelux EB build. Are you doing an integrated board with ldd/scw slots, fan control, and d1 built-in?


----------



## O2surplus (Jan 31, 2010)

gus6464 said:


> Is your wemos D1 ready for prime time? Would love to give it a whirl on new Bridgelux EB build. Are you doing an integrated board with ldd/scw slots, fan control, and d1 built-in?



Hi Gus-

The answer is - "sort of ?" I've already designed and built a board like the one you've described, but it uses 8 of the Wemos Mini's I/O pins directly... not the PCA9685. Being that the BLYNK app is constantly evolving, there's now a widget available (called "EVENTOR") that should make my board easy to use as a Aquarium led lighting/ fan controller. The ESP8266 has native 10bit dimming capability, so dimming performance won't suffer much, when compared to the 12 bit PCA9685. Send me a PM if you want one of the boards to play with. Here's a photo-










On another note.... I just received some pcb's for another project that I've been working on. It's a custom pcb for an ESP8266/BLYNK based Terrarium controller. It contains a mounting slot for a D1 Mini and features control of 4 relays, with connection points for an SHT10 Hum/Temp sensor, a DHT22 Hum/Temp sensor, or a DS18B20 temp sensor,, + control of two built in 12V led drivers.... I may start a separate thread for this project.









Here's a photo of the working BLYNK Terrraium controller app from my Android smart phone.













Back to the OP.... I'm right in the middle of refinancing my home.... The wife has agreed to "give" me a few bucks to cover the leds. It won't be too long before I have a completed led array to show off.:laugh2:


----------



## Shadar (Jan 30, 2017)

O2surplus said:


> Back to the OP.... I'm right in the middle of refinancing my home.... The wife has agreed to "give" me a few bucks to cover the leds. It won't be too long before I have a completed led array to show off.:laugh2:


Woo!

That Blynk dashboard looks nice. I've been considering testing out Blynk for some of my controller/sensor projects, how are you liking it?

And on topic, have you looked any further into power supplies? I did a quick browse of the e-bay, and I see some N2Power XL160-12 (12V, 13.3 Amps) supplies for ~20 bucks. I also see a 12V 26A TDK-Lambda for ~50. Either of those seem like good deals to you, or would you hold out for something cheaper?

There's also a 12V 125A TDK-Lambda for ~200, if you need to light your entire house with these things.


----------



## jeffkrol (Jun 5, 2013)

N2 (CS) models are designed for current sharing if you care to "gang" a few.. 
Not sure about which TDK's can do this..
If one can go fanless it is always a welcome thing in my book..
though not necessary in this case or depending on system board design, many n2's have both a 5V and 12V rail.
comes in handy for powering controllers..

N2 and TDK are usually quality products..


----------



## Shadar (Jan 30, 2017)

jeffkrol said:


> N2 (CS) models are designed for current sharing if you care to "gang" a few..
> Not sure about which TDK's can do this..
> If one can go fanless it is always a welcome thing in my book..
> though not necessary in this case or depending on system board design, many n2's have both a 5V and 12V rail.
> ...


Current sharing and fanless are certainly nice. These N2s have a secondary 12V rail instead of the 5V. 5 would be much better....

The upside of the TDK is that it already has a housing and screw terminals, which makes putting things together easier.


----------



## jeffkrol (Jun 5, 2013)

Shadar said:


> Current sharing and fanless are certainly nice. These N2s have a secondary 12V rail instead of the 5V. 5 would be much better....
> 
> The upside of the TDK is that it already has a housing and screw terminals, which makes putting things together easier.


Yea finding the plugs for the N2 is a pia but can usually be salvaged..
I just put mine in an old computer supply housing anyways..

The ones I have have both 5 and 12v rails..
56V though..


----------



## O2surplus (Jan 31, 2010)

Shadar said:


> Woo!
> 
> That Blynk dashboard looks nice. I've been considering testing out Blynk for some of my controller/sensor projects, how are you liking it?


Like all new things.... there's a learning curve. I've never been much good at programming, but with a lot of reading on the Blynk Forum, and seeing working examples of other peoples projects, I've managed to learn a lot. For a dummy like me... It's the best thing since sliced bread. I'm loving the Blynk app.:laugh2:


----------



## MrMan (Dec 5, 2014)

O2surplus said:


> Hi Gus-
> 
> On another note.... I just received some pcb's for another project that I've been working on. It's a custom pcb for an ESP8266/BLYNK based Terrarium controller. It contains a mounting slot for a D1 Mini and features control of 4 relays, with connection points for an SHT10 Hum/Temp sensor, a DHT22 Hum/Temp sensor, or a DS18B20 temp sensor,, + control of two built in 12V led drivers.... I may start a separate thread for this project.
> 
> ...


You should definitely do a thread for this controller, I'd be interested. I've been meaning to do something for my wife's terrarium but haven't had the time (too busy with fish stuff...) Also after seeing this I started looking into Blynk more and it looks pretty cool, may have to try to integrate it with my iAqua spinoff.


----------



## Shadar (Jan 30, 2017)

O2surplus said:


> Like all new things.... there's a learning curve. I've never been much good at programming, but with a lot of reading on the Blynk Forum, and seeing working examples of other peoples projects, I've managed to learn a lot. For a dummy like me... It's the best thing since sliced bread. I'm loving the Blynk app.:laugh2:


Good to hear. I'm a software engineer, which means I'm pretty good at programming, but it also means I've learned to appreciate tools that do work for me. Blynk looks promising.


----------



## O2surplus (Jan 31, 2010)

QUICK UPDATE:

I just ordered enough leds to complete a couple of the arrays. The leds should arrive in a few days and I'll post another update with photos next weekend. On the controller front- I've managed to create a simple GUI and software to provide scheduled sunrise/sunset dimming for 8 channels. The controller uses a PCA9685 for buttery smooth 12bit dimming performance. The end user will be able to set each of the 8 channels maximum intensity independently, set a fade duration in minutes up to three hours, and set the sunrise/sunset time to any time of day. There's even the option of using local sunrise/sunset times. This may prove more convenient than the PC based SSLAC 16 software, and definitely cheaper than the $100 BluFish Mini. 

Here's the controller-











Here's some photos of the BLYNK Android GUI-

Front Tab










back tab-


----------



## Kampo (Nov 3, 2015)

Drool....


----------



## Fissure (Jun 29, 2014)

Looks really cool ! GJ


----------



## paronaram (Jun 29, 2009)

Sign Me Up for one!
And I follow this!


----------



## MrMan (Dec 5, 2014)

Looks good O2! Is the RTC module there in case you lose connection to the Blynk server?


----------



## O2surplus (Jan 31, 2010)

MrMan said:


> Looks good O2! Is the RTC module there in case you lose connection to the Blynk server?


As it sits right now... the RTC is unused. I added it to the PcB design originally because it was needed for the SSLAC16 software. Being that the Blynk cloud servers have proven pretty reliable so far, I've been lazy, and haven't added RTC support to my Blynk Sketch. I need to do some tests to confirm this, but I've noticed that my controller seems to be able to maintain the current time even if it's been disconnected from the server. Of course a power interruption causes a time sync loss, but that's a completely different failure mode.
:crying:
The nice thing about Blynk..... you can run your own local server and be in control of your own network. No "Cloud", No "Problem".
:laugh2: 
Today I managed to roll in wireless provisioning to all of my led controller codes. I used the WifiManager and Arduino OTA libraries to make it happen. Now that they've been added there's no need for a USB connection to upload software updates or to do the initial set up for the ESP to access your home WiFi network. The ESP will now automatically spool up it's own access point where the end user can enter their networks SSID, password, and Blynk Token. 
"Aint technology wonderful?"

I wrote the code for the Wemos D1 Mini, but it should suit just about any ESP8266 based board, Just wire up a PCA9685 to the ESP using the appropriate I2C connections and you'll be good to go.

Here's the code, and go easy on me, I'm a petroleum pipeline inspector, not a coder by any means LOL. If any of you guys that can or do write code for a living want to, you're more than welcome to take a crack at whittling my code down to something presentable. I won't mind
:laugh2: 


```
/**************************************************************

   PCA9685 DIMMING CODE WITH 8 CHANNELS.
   For the O2Surplus 16 channel PlantLED Controller.

 **************************************************************/

#include <FS.h>                   // https://github.com/tzapu/WiFiManager This Library needs to be included FIRST!
#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>
#include <ArduinoOTA.h>
#include <TimeLib.h>
#include <WidgetRTC.h>
#include <Adafruit_PWMServoDriver.h>
//included libraries for WiFiManager - AutoConnectWithFSParameters
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>          //https://github.com/tzapu/WiFiManager
#include <ArduinoJson.h>          //https://github.com/bblanchon/ArduinoJson

// WiFiManager
char blynk_token[34] = "BLYNK_TOKEN";//added from WiFiManager - AutoConnectWithFSParameters
//flag for saving data
bool shouldSaveConfig = false;

//callback notifying the need to save config
void saveConfigCallback () {
  Serial.println("Should save config");
  shouldSaveConfig = true;
}

bool isFirstConnect = true;



char Date[16];
char Time[16];
long startseconds = 0;         // start time in seconds
long stopseconds = 0;          // stop  time in seconds
long nowseconds = 0;           // time  now  in seconds

byte fadetime = 0;
long fadetimeseconds = 0;
long fadetimemillis = 0;
int minPWM = 1;// variable for min PWM value. keep at 1 to avoid crashing the ledFade()
byte fadeIncrement = 1; //How smooth to fade? Uses all 4095 steps available.

int maxPWM0 = 0; // variable for max PWM value attached to BLYNK Virtual pin.
int maxPWM1 = 0; // variable for max PWM value attached to BLYNK Virtual pin.
int maxPWM2 = 0; // variable for max PWM value attached to BLYNK Virtual pin.
int maxPWM3 = 0; // variable for max PWM value attached to BLYNK Virtual pin.
int maxPWM4 = 0; // variable for max PWM value attached to BLYNK Virtual pin.
int maxPWM5 = 0; // variable for max PWM value attached to BLYNK Virtual pin.
int maxPWM6 = 0; // variable for max PWM value attached to BLYNK Virtual pin.
int maxPWM7 = 0; // variable for max PWM value attached to BLYNK Virtual pin.


int currentFadePosition0 = 0;// don't change this!
int currentFadePosition1 = 0;// don't change this!
int currentFadePosition2 = 0;// don't change this!
int currentFadePosition3 = 0;// don't change this!
int currentFadePosition4 = 0;// don't change this!
int currentFadePosition5 = 0;// don't change this!
int currentFadePosition6 = 0;// don't change this!
int currentFadePosition7 = 0;// don't change this!

unsigned long previousFadeMillis0;// millis() timing Variable, just for fading
unsigned long previousFadeMillis1;// millis() timing Variable, just for fading
unsigned long previousFadeMillis2;// millis() timing Variable, just for fading
unsigned long previousFadeMillis3;// millis() timing Variable, just for fading
unsigned long previousFadeMillis4;// millis() timing Variable, just for fading
unsigned long previousFadeMillis5;// millis() timing Variable, just for fading
unsigned long previousFadeMillis6;// millis() timing Variable, just for fading
unsigned long previousFadeMillis7;// millis() timing Variable, just for fading


long stepWaitTime0 = 0;  //How long to watch the clock before incrementing to the next step. (time in milliseconds)
long stepWaitTime1 = 0;  //How long to watch the clock before incrementing to the next step. (time in milliseconds)
long stepWaitTime2 = 0;  //How long to watch the clock before incrementing to the next step. (time in milliseconds)
long stepWaitTime3 = 0;  //How long to watch the clock before incrementing to the next step. (time in milliseconds)
long stepWaitTime4 = 0;  //How long to watch the clock before incrementing to the next step. (time in milliseconds)
long stepWaitTime5 = 0;  //How long to watch the clock before incrementing to the next step. (time in milliseconds)
long stepWaitTime6 = 0;  //How long to watch the clock before incrementing to the next step. (time in milliseconds)
long stepWaitTime7 = 0;  //How long to watch the clock before incrementing to the next step. (time in milliseconds)

int desiredledLevel0 = 0;
int desiredledLevel1 = 0;
int desiredledLevel2 = 0;
int desiredledLevel3 = 0;
int desiredledLevel4 = 0;
int desiredledLevel5 = 0;
int desiredledLevel6 = 0;
int desiredledLevel7 = 0;

WidgetRTC rtc;
SimpleTimer timer;
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();

#define TestLED 2                 // on board LED pin assignment

#define BLYNK_COOL_WHITE "#F2FAFF"
#define BLYNK_WARM_WHITE "#FFEDE0"
#define BLYNK_MINT       "#CAFFDE"
#define BLYNK_LIME       "#BFFFB3"
#define BLYNK_ROYAL_BLUE "#2E28FF"
#define BLYNK_CYAN       "#2ECEFF"
#define BLYNK_RED        "#FD5635"
#define BLYNK_DEEP_RED   "#BD1313"


// divide your desired dimming time duration(in millis) by the maxPWM variable value / fadeIncrement variable value to
// get the stepWaitTime variable value needed. Since the fadeIncrement variable equals 1, the formula can be reduced to
// Dimming Time / maxPWM = stepWaitTime.
// EXAMPLE: maxPWM of 1023 to dim over 1 hour = stepWaitTime of 3,519 millis.




void setLed() {
  stepWaitTime0 = (fadetimemillis / maxPWM0);
  stepWaitTime1 = (fadetimemillis / maxPWM1);
  stepWaitTime2 = (fadetimemillis / maxPWM2);
  stepWaitTime3 = (fadetimemillis / maxPWM3);
  stepWaitTime4 = (fadetimemillis / maxPWM4);
  stepWaitTime5 = (fadetimemillis / maxPWM5);
  stepWaitTime6 = (fadetimemillis / maxPWM6);
  stepWaitTime7 = (fadetimemillis / maxPWM7);

  pwm.setPWM(0, 0, currentFadePosition0);
  pwm.setPWM(1, 0, currentFadePosition1);
  pwm.setPWM(2, 0, currentFadePosition2);
  pwm.setPWM(3, 0, currentFadePosition3);
  pwm.setPWM(4, 0, currentFadePosition4);
  pwm.setPWM(5, 0, currentFadePosition5);
  pwm.setPWM(6, 0, currentFadePosition6);
  pwm.setPWM(7, 0, currentFadePosition7);
}


void ledFade0(unsigned long thisMillis0) {
  if (nowseconds < startseconds) {
    currentFadePosition0 = minPWM;
  }
  if (nowseconds > startseconds && nowseconds < stopseconds) {
    // is it time to start the Sunrise?
    // if not, nothing happens
    if (thisMillis0 - previousFadeMillis0 >= stepWaitTime0) {
      currentFadePosition0 = currentFadePosition0 + fadeIncrement;
      if (currentFadePosition0 >= maxPWM0) {
        // At max limit stop the fade
        currentFadePosition0 = maxPWM0;
      }
      // put actionable () here.
      // reset millis for the next iteration (fade timer only)
      previousFadeMillis0 = thisMillis0;
    }
  }
  if (nowseconds > stopseconds) {
    // is it time to start the Sunset yet?
    // if not, nothing happens
    if (thisMillis0 - previousFadeMillis0 >= stepWaitTime0) {
      currentFadePosition0 = currentFadePosition0 - fadeIncrement;
      if (currentFadePosition0 <= minPWM) {
        // At min limit stop the fade
        currentFadePosition0 = minPWM;
      }
      // put actionable () here
      // reset millis for the next iteration (fade timer only)
      previousFadeMillis0 = thisMillis0;
    }
  }
}
void ledFade1(unsigned long thisMillis1) {
  if (nowseconds < startseconds) {
    currentFadePosition1 = minPWM;
  }
  if (nowseconds > startseconds && nowseconds < stopseconds) {
    // is it time to start the Sunrise?
    // if not, nothing happens
    if (thisMillis1 - previousFadeMillis1 >= stepWaitTime1) {
      currentFadePosition1 = currentFadePosition1 + fadeIncrement;
      if (currentFadePosition1 >= maxPWM1) {
        // At max limit stop the fade
        currentFadePosition1 = maxPWM1;
      }
      // put actionable () here.
      // reset millis for the next iteration (fade timer only)
      previousFadeMillis1 = thisMillis1;
    }
  }
  if (nowseconds > stopseconds) {
    // is it time to start the Sunset yet?
    // if not, nothing happens
    if (thisMillis1 - previousFadeMillis1 >= stepWaitTime1) {
      currentFadePosition1 = currentFadePosition1 - fadeIncrement;
      if (currentFadePosition1 <= minPWM) {
        // At min limit stop the fade
        currentFadePosition1 = minPWM;
      }
      // put actionable () here
      // reset millis for the next iteration (fade timer only)
      previousFadeMillis1 = thisMillis1;
    }
  }
}
void ledFade2(unsigned long thisMillis2) {
  if (nowseconds < startseconds) {
    currentFadePosition2 = minPWM;
  }
  if (nowseconds > startseconds && nowseconds < stopseconds) {
    // is it time to start the Sunrise?
    // if not, nothing happens
    if (thisMillis2 - previousFadeMillis2 >= stepWaitTime2) {
      currentFadePosition2 = currentFadePosition2 + fadeIncrement;
      if (currentFadePosition2 >= maxPWM2) {
        // At max limit stop the fade
        currentFadePosition2 = maxPWM2;
      }
      // put actionable () here.
      // reset millis for the next iteration (fade timer only)
      previousFadeMillis2 = thisMillis2;
    }
  }
  if (nowseconds > stopseconds) {
    // is it time to start the Sunset yet?
    // if not, nothing happens
    if (thisMillis2 - previousFadeMillis2 >= stepWaitTime2) {
      currentFadePosition2 = currentFadePosition2 - fadeIncrement;
      if (currentFadePosition2 <= minPWM) {
        // At min limit stop the fade
        currentFadePosition2 = minPWM;
      }
      // put actionable () here
      // reset millis for the next iteration (fade timer only)
      previousFadeMillis2 = thisMillis2;
    }
  }
}
void ledFade3(unsigned long thisMillis3) {
  if (nowseconds < startseconds) {
    currentFadePosition3 = minPWM;
  }
  if (nowseconds > startseconds && nowseconds < stopseconds) {
    // is it time to start the Sunrise?
    // if not, nothing happens
    if (thisMillis3 - previousFadeMillis3 >= stepWaitTime3) {
      currentFadePosition3 = currentFadePosition3 + fadeIncrement;
      if (currentFadePosition3 >= maxPWM3) {
        // At max limit stop the fade
        currentFadePosition3 = maxPWM3;
      }
      // put actionable () here.
      // reset millis for the next iteration (fade timer only)
      previousFadeMillis3 = thisMillis3;
    }
  }
  if (nowseconds > stopseconds) {
    // is it time to start the Sunset yet?
    // if not, nothing happens
    if (thisMillis3 - previousFadeMillis3 >= stepWaitTime3) {
      currentFadePosition3 = currentFadePosition3 - fadeIncrement;
      if (currentFadePosition3 <= minPWM) {
        // At min limit stop the fade
        currentFadePosition3 = minPWM;
      }
      // put actionable () here
      // reset millis for the next iteration (fade timer only)
      previousFadeMillis3 = thisMillis3;
    }
  }
}
void ledFade4(unsigned long thisMillis4) {
  if (nowseconds < startseconds) {
    currentFadePosition4 = minPWM;
  }
  if (nowseconds > startseconds && nowseconds < stopseconds) {
    // is it time to start the Sunrise?
    // if not, nothing happens
    if (thisMillis4 - previousFadeMillis4 >= stepWaitTime4) {
      currentFadePosition4 = currentFadePosition4 + fadeIncrement;
      if (currentFadePosition4 >= maxPWM4) {
        // At max limit stop the fade
        currentFadePosition4 = maxPWM4;
      }
      // put actionable () here.
      // reset millis for the next iteration (fade timer only)
      previousFadeMillis4 = thisMillis4;
    }
  }
  if (nowseconds > stopseconds) {
    // is it time to start the Sunset yet?
    // if not, nothing happens
    if (thisMillis4 - previousFadeMillis4 >= stepWaitTime4) {
      currentFadePosition4 = currentFadePosition4 - fadeIncrement;
      if (currentFadePosition4 <= minPWM) {
        // At min limit stop the fade
        currentFadePosition4 = minPWM;
      }
      // put actionable () here
      // reset millis for the next iteration (fade timer only)
      previousFadeMillis4 = thisMillis4;
    }
  }
}
void ledFade5(unsigned long thisMillis5) {
  if (nowseconds < startseconds) {
    currentFadePosition5 = minPWM;
  }
  if (nowseconds > startseconds && nowseconds < stopseconds) {
    // is it time to start the Sunrise?
    // if not, nothing happens
    if (thisMillis5 - previousFadeMillis5 >= stepWaitTime5) {
      currentFadePosition5 = currentFadePosition5 + fadeIncrement;
      if (currentFadePosition5 >= maxPWM5) {
        // At max limit stop the fade
        currentFadePosition5 = maxPWM5;
      }
      // put actionable () here.
      // reset millis for the next iteration (fade timer only)
      previousFadeMillis5 = thisMillis5;
    }
  }
  if (nowseconds > stopseconds) {
    // is it time to start the Sunset yet?
    // if not, nothing happens
    if (thisMillis5 - previousFadeMillis5 >= stepWaitTime5) {
      currentFadePosition5 = currentFadePosition5 - fadeIncrement;
      if (currentFadePosition5 <= minPWM) {
        // At min limit stop the fade
        currentFadePosition5 = minPWM;
      }
      // put actionable () here
      // reset millis for the next iteration (fade timer only)
      previousFadeMillis5 = thisMillis5;
    }
  }
}
void ledFade6(unsigned long thisMillis6) {
  if (nowseconds < startseconds) {
    currentFadePosition6 = minPWM;
  }
  if (nowseconds > startseconds && nowseconds < stopseconds) {
    // is it time to start the Sunrise?
    // if not, nothing happens
    if (thisMillis6 - previousFadeMillis6 >= stepWaitTime6) {
      currentFadePosition6 = currentFadePosition6 + fadeIncrement;
      if (currentFadePosition6 >= maxPWM6) {
        // At max limit stop the fade
        currentFadePosition6 = maxPWM6;
      }
      // put actionable () here.
      // reset millis for the next iteration (fade timer only)
      previousFadeMillis6 = thisMillis6;
    }
  }
  if (nowseconds > stopseconds) {
    // is it time to start the Sunset yet?
    // if not, nothing happens
    if (thisMillis6 - previousFadeMillis6 >= stepWaitTime6) {
      currentFadePosition6 = currentFadePosition6 - fadeIncrement;
      if (currentFadePosition6 <= minPWM) {
        // At min limit stop the fade
        currentFadePosition6 = minPWM;
      }
      // put actionable () here
      // reset millis for the next iteration (fade timer only)
      previousFadeMillis6 = thisMillis6;
    }
  }
}
void ledFade7(unsigned long thisMillis7) {
  if (nowseconds < startseconds) {
    currentFadePosition7 = minPWM;
  }
  if (nowseconds > startseconds && nowseconds < stopseconds) {
    // is it time to start the Sunrise?
    // if not, nothing happens
    if (thisMillis7 - previousFadeMillis7 >= stepWaitTime7) {
      currentFadePosition7 = currentFadePosition7 + fadeIncrement;
      if (currentFadePosition7 >= maxPWM7) {
        // At max limit stop the fade
        currentFadePosition7 = maxPWM7;
      }
      // put actionable () here.
      // reset millis for the next iteration (fade timer only)
      previousFadeMillis7 = thisMillis7;
    }
  }
  if (nowseconds > stopseconds) {
    // is it time to start the Sunset yet?
    // if not, nothing happens
    if (thisMillis7 - previousFadeMillis7 >= stepWaitTime7) {
      currentFadePosition7 = currentFadePosition7 - fadeIncrement;
      if (currentFadePosition7 <= minPWM) {
        // At min limit stop the fade
        currentFadePosition7 = minPWM;
      }
      // put actionable () here
      // reset millis for the next iteration (fade timer only)
      previousFadeMillis7 = thisMillis7;
    }
  }
}


// Digital clock display of the time
void clockDisplay()
{
  // You can call hour(), minute(), ... at any time
  // Please see Time library examples for details

  String currentTime = String(hour()) + ":" + minute() + ":" + second();
  String currentDate = String(month()) + " " + day() + " " + year();
  nowseconds = ((hour() * 3600) + (minute() * 60) + second());
  Serial.print("Time =");
  Serial.println(currentTime);
  Serial.print("Nowseconds =");
  Serial.println(nowseconds);
  Serial.print("Start = ");
  Serial.println(startseconds);
  Serial.print("Stop = ");
  Serial.println(stopseconds);
  Serial.println();
  Blynk.virtualWrite(V8, currentTime);
}


BLYNK_WRITE(V0) {// slider widget to set the maximum led level from the Blynk App.
  desiredledLevel0 = param.asInt();
  maxPWM0 = map(desiredledLevel0, 0, 100, minPWM, 4095);
}
BLYNK_WRITE(V1) {// slider widget to set the maximum led level from the Blynk App.
  desiredledLevel1 = param.asInt();
  maxPWM1 = map(desiredledLevel1, 0, 100, minPWM, 4095);
}
BLYNK_WRITE(V2) {// slider widget to set the maximum led level from the Blynk App.
  desiredledLevel2 = param.asInt();
  maxPWM2 = map(desiredledLevel2, 0, 100, minPWM, 4095);
}
BLYNK_WRITE(V3) {// slider widget to set the maximum led level from the Blynk App.
  desiredledLevel3 = param.asInt();
  maxPWM3 = map(desiredledLevel3, 0, 100, minPWM, 4095);
}
BLYNK_WRITE(V4) {// slider widget to set the maximum led level from the Blynk App.
  desiredledLevel4 = param.asInt();
  maxPWM4 = map(desiredledLevel4, 0, 100, minPWM, 4095);
}
BLYNK_WRITE(V5) {// slider widget to set the maximum led level from the Blynk App.
  desiredledLevel5 = param.asInt();
  maxPWM5 = map(desiredledLevel5, 0, 100, minPWM, 4095);
}
BLYNK_WRITE(V6) {// slider widget to set the maximum led level from the Blynk App.
  desiredledLevel6 = param.asInt();
  maxPWM6 = map(desiredledLevel6, 0, 100, minPWM, 4095);
}
BLYNK_WRITE(V7) {// slider widget to set the maximum led level from the Blynk App.
  desiredledLevel7 = param.asInt();
  maxPWM7 = map(desiredledLevel7, 0, 100, minPWM, 4095);
}
BLYNK_WRITE(V9) {// slider widget to set the led fade duration up tp 3 hours.
  fadetime = param.asInt();
  fadetimeseconds = map(fadetime, 0, 180, 1, 10800);// 3 hour fade duration is max
  fadetimemillis  = map(fadetime, 0, 180, 1, 10800000);// 3 hour fade duration is max

  Serial.print("Fade Time in seconds =");
  Serial.println(fadetimeseconds);
}

void activetoday() {       // check if schedule should run today
  if (year() != 1970) {
    Blynk.syncVirtual(V3); // sync timeinput widget
    sprintf(Date, "%02d/%02d/%04d",  day(), month(), year());
    sprintf(Time, "%02d:%02d:%02d", hour(), minute(), second());
    nowseconds = ((hour() * 3600) + (minute() * 60) + second());
  }
}

BLYNK_WRITE(V10) {

  TimeInputParam t(param);
  Serial.print("Checked schedule at: ");
  Serial.println(Time);
  int dayadjustment = -1;
  if (weekday() == 1) {
    dayadjustment =  6; // needed for Sunday, Time library is day 1 and Blynk is day 7
  }
  if (t.isWeekdaySelected((weekday() + dayadjustment))) { //Time library starts week on Sunday, Blynk on Monday
    Serial.println("Schedule ACTIVE today");
    nowseconds = ((hour() * 3600) + (minute() * 60) + second());
    startseconds = (t.getStartHour() * 3600) + (t.getStartMinute() * 60);
    if (nowseconds >= startseconds) {
      if (nowseconds <= startseconds + 90) {  // 90s on 60s timer ensures 1 trigger command is sent
        digitalWrite(TestLED, LOW); // set LED ON
        // code here to begin the led fade up routine
      }
    }
    else {
      Serial.println("Relay not on");// nothing more to do here, waiting for relay to be turned on later today
    }
    stopseconds = (t.getStopHour() * 3600) + (t.getStopMinute() * 60);
    if (nowseconds >= stopseconds) {
      // 90s on 60s timer ensures 1 trigger command is sent
      if (nowseconds <= stopseconds + 90) {
        digitalWrite(TestLED, HIGH); // set LED OFF
        // code here to start the led fade down routine
      }
    }
    else {
      if (nowseconds >= startseconds) { // only show if motor has already started today
        Serial.println("Relay is still ON");
        // nothing more to do here, waiting for motor to be turned off later today
      }
    }
  }
  else {
    Serial.println("Schedule INACTIVE today");
    // nothing to do today, check again in 1 minutes time
  }
  Serial.println();
}

void reconnectBlynk() {
  if (!Blynk.connected()) {
    if (Blynk.connect()) {
      BLYNK_LOG("Reconnected");
    }
    else {
      BLYNK_LOG("Not reconnected");
    }
  }
}

void setup()
{
  ArduinoOTA.begin();
  Serial.begin(115200);
  pwm.begin();
  pwm.setPWMFreq(1524);  // 1524 is the maximum PWM frequency
  pinMode(TestLED, OUTPUT);
  digitalWrite(TestLED, HIGH); // set LED OFF
    //The following code is borrowed from WiFiManager
  //clean FS, for testing
  //SPIFFS.format();

  //read configuration from FS json
  Serial.println("mounting FS...");

  if (SPIFFS.begin()) {
    Serial.println("mounted file system");
    if (SPIFFS.exists("/config.json")) {
      //file exists, reading and loading
      Serial.println("reading config file");
      File configFile = SPIFFS.open("/config.json", "r");
      if (configFile) {
        Serial.println("opened config file");
        size_t size = configFile.size();
        // Allocate a buffer to store contents of the file.
        std::unique_ptr<char[]> buf(new char[size]);

        configFile.readBytes(buf.get(), size);
        DynamicJsonBuffer jsonBuffer;
        JsonObject& json = jsonBuffer.parseObject(buf.get());
        json.printTo(Serial);
        if (json.success()) {
          Serial.println("\nparsed json");
          strcpy(blynk_token, json["blynk_token"]);

        } else {
          Serial.println("failed to load json config");
        }
      }
    }
  } else {
    Serial.println("failed to mount FS");
  }
  //end read
  // The extra parameters to be configured (can be either global or just in the setup)
  // After connecting, parameter.getValue() will get you the configured value
  // id/name placeholder/prompt default length
  WiFiManagerParameter custom_blynk_token("blynk", "blynk token", blynk_token, 34);
  Serial.println(blynk_token);
  //WiFiManager
  //Local intialization. Once its business is done, there is no need to keep it around
  WiFiManager wifiManager;

  //set config save notify callback
  wifiManager.setSaveConfigCallback(saveConfigCallback);

  //add all your parameters here
  wifiManager.addParameter(&custom_blynk_token);

  //reset settings - for testing
  //wifiManager.resetSettings();

  //set minimu quality of signal so it ignores AP's under that quality
  //defaults to 8%
  wifiManager.setMinimumSignalQuality();

  //sets timeout until configuration portal gets turned off
  //useful to make it all retry or go to sleep
  //in seconds
  wifiManager.setTimeout(180);

  //fetches ssid and pass and tries to connect
  //if it does not connect it starts an access point with the specified name
  //here  "PlantLED Control-AP"
  //and goes into a blocking loop awaiting configuration
  if (!wifiManager.autoConnect("PlantLED AP")) {
    Serial.println("failed to connect and hit timeout");
    delay(3000);
    //reset and try again, or maybe put it to deep sleep
    ESP.reset();
    delay(1000);
  }

  //if you get here you have connected to the WiFi
  Serial.println("PlantLED Led Controller connected :)");

  //read updated parameters
  strcpy(blynk_token, custom_blynk_token.getValue());

  //save the custom parameters to FS
  if (shouldSaveConfig) {
    Serial.println("saving config");
    DynamicJsonBuffer jsonBuffer;
    JsonObject& json = jsonBuffer.createObject();
    json["blynk_token"] = blynk_token;

    File configFile = SPIFFS.open("/config.json", "w");
    if (!configFile) {
      Serial.println("failed to open config file for writing");
    }

    json.printTo(Serial);
    json.printTo(configFile);
    configFile.close();
    //end save
  }

  Serial.println("local ip");
  Serial.println(WiFi.localIP());
  Blynk.config(blynk_token);
  Blynk.connect();

  rtc.begin();
  Blynk.notify("PlantLED Controller ONLINE");
  Serial.println("Done");
  /*
  Blynk.setProperty(V0, "color", "#F2FAFF"); // COOL WHITE
  Blynk.setProperty(V1, "color", "#FFEDE0"); // WARM WHITE
  Blynk.setProperty(V2, "color", "#CAFFDE"); // MINT
  Blynk.setProperty(V3, "color", "#BFFFB3"); // LIME
  Blynk.setProperty(V4, "color", "#2E28FF"); // ROYAL BLUE
  Blynk.setProperty(V5, "color", "#2ECEFF"); // CYAN
  Blynk.setProperty(V6, "color", "#FD5635"); // RED
  Blynk.setProperty(V7, "color", "#BD1313"); // DEEP RED
  */
  timer.setInterval(1000L, setLed);           // adjust the led lighting every second
  timer.setInterval(1000L, clockDisplay);     // digital time displayed every second
  timer.setInterval(60000L, activetoday);     // check every minute if schedule should run today
  timer.setInterval(60000L, reconnectBlynk);  // check every 60s if still connected to server

  Blynk.syncAll();
    if (!blynk_token)
    {
    Serial.println("Failed to connect to Blynk server");
    wifiManager.resetSettings();// reset all settings and spool up the AP again.

    delay(1000);
    }
  
}
void loop()
{

  ArduinoOTA.handle();
  timer.run(); // Initiates SimpleTimer
  if (Blynk.connected()) {
    Blynk.run();
  }
  // get the current time, for this time around loop
  // all millis() timer checks will use this time stamp
  unsigned long currentMillis0 = millis();
  ledFade0(currentMillis0);
  unsigned long currentMillis1 = millis();
  ledFade1(currentMillis1);
  unsigned long currentMillis2 = millis();
  ledFade2(currentMillis2);
  unsigned long currentMillis3 = millis();
  ledFade3(currentMillis3);
  unsigned long currentMillis4 = millis();
  ledFade4(currentMillis4);
  unsigned long currentMillis5 = millis();
  ledFade5(currentMillis5);
  unsigned long currentMillis6 = millis();
  ledFade6(currentMillis6);
  unsigned long currentMillis7 = millis();
  ledFade7(currentMillis7);
}
```


----------



## MrMan (Dec 5, 2014)

O2surplus said:


> As it sits right now... the RTC is unused. I added it to the PcB design originally because it was needed for the SSLAC16 software. Being that the Blynk cloud servers have proven pretty reliable so far, I've been lazy, and haven't added RTC support to my Blynk Sketch. I need to do some tests to confirm this, but I've noticed that my controller seems to be able to maintain the current time even if it's been disconnected from the server. Of course a power interruption causes a time sync loss, but that's a completely different failure mode.
> :crying:
> The nice thing about Blynk..... you can run your own local server and be in control of your own network. No "Cloud", No "Problem".
> :laugh2:
> ...


Yea the Blynk server may be reliable but my ISP sure isn't :crying: But yea the backup RTC probably isn't needed since I think the time library or something keeps track of time when the RTC goes down using millis(), it's just not as reliable over time however. So assuming the code reconnects i think you should be good.

After your post of your terrarium controller I started looking into the wemos/ESP and blynk and i've been toying with the idea of building a blynk based controller, something decently polished. But I don't really have the time at the moment to do the code, hardware I can do at work since I work on PCBs anyway. This is what i came up with so far, might remove the LED control since you've got that covered and it would take up a lot of space on the limited 4 tabs.

I'm still waiting on my wemos to arrive but i'll try loading up your code and wiring a PCA to it once it shows up.


----------



## Shadar (Jan 30, 2017)

O2surplus said:


> As it sits right now... the RTC is unused. I added it to the PcB design originally because it was needed for the SSLAC16 software. Being that the Blynk cloud servers have proven pretty reliable so far, I've been lazy, and haven't added RTC support to my Blynk Sketch. I need to do some tests to confirm this, but I've noticed that my controller seems to be able to maintain the current time even if it's been disconnected from the server. Of course a power interruption causes a time sync loss, but that's a completely different failure mode.
> :crying:
> The nice thing about Blynk..... you can run your own local server and be in control of your own network. No "Cloud", No "Problem".
> :laugh2:
> ...


That code looks fine. The one major change I would make if I were writing it would be that rather than declaring 8 instances of a bunch of different variables (maxPWM, currentMillis, etc....), I would declare a new data type/struct that had all of these different fields, then declare one for each channel. If you haven't done that before, here's the documentation (I don't do C/C++ at work, so I always have to look this up too): Arduino Playground - Struct Resource

If I wanted to be really fancy, I would create an O2Surplus LED Engine library that abstracted control of the hardware away from the main code, so you would do something like ledEngine.startRamp, and pass it the target levels of each channel and a time frame. Then in the loop you could just call ledEngine.update and it would handle changing things. But that's a lot of work, and I would probably be too lazy if no one was paying me


----------



## O2surplus (Jan 31, 2010)

Ohhhhhhhhhh myyyyyyyy Godddddddddd! I couldn't help myself. I managed to assemble one and solder it up without incident. Placing all of the components on this PcB without making a single mistake is a very stressful endeavor. I feel like I need a cigarette..... and I don't smoke LOL. I powered it up and tested each channel individually. I'm happy to report that it works like a charm! I'll mount it to a heat sink tomorrow to test it for real and post some photos.

Here's the led layout for this one.

Ch1 3- 5000K Cool White
Ch2 3- 2700K Warm White
Ch3 3- Mint
Ch4 3- Lime
Ch5 3- Royal Blue
Ch6 3- Cyan
Ch7 3- PC Amber
Ch8 3- Red


----------



## jeffkrol (Jun 5, 2013)

Way cool...!
Err.. not to be picky or anything but lead wires look a bit small to carry 8A @ 12V
16GA would be somewhat of a bare minimum 3ft from the ps..at least in theory..
Circuit Wizard - Blue Sea Systems


----------



## O2surplus (Jan 31, 2010)

Lol. Yeah they're a bit skinny, but they were only used to test one channel at a time for a few seconds. I'll upgrade the wires and mount the array to a heat sink before testing it at full power. More pictures tonight!


----------



## O2surplus (Jan 31, 2010)

Ooooooh Yeah!


----------



## jeffkrol (Jun 5, 2013)

Pretty!!!!


----------



## paronaram (Jun 29, 2009)

O2surplus, what do you think coverage will be on this LED matrix?
Let's say on 36" length, I will need 2 or 3 of this "Engine's"

Thanks
Aram


----------



## Kampo (Nov 3, 2015)

really awesome work 02.


----------



## Shadar (Jan 30, 2017)

O2surplus said:


> Ooooooh Yeah!




It's alive!

I can't remember, do you have a PAR meter to check this thing with? You'll also need one of these, to check the spectrum: https://www.bhphotovideo.com/explor...-meter-sekonic-c-700-and-c-700r-spectromaster



EDIT: I finally bothered to actually check, and LensRentals actually carries that meter: https://www.lensrentals.com/rent/sekonic-c-700r-spectromaster-color-meter


----------



## jeffkrol (Jun 5, 2013)

theatrus was working on a spectrophotometer which may or may not be done... but yes.. need spectral analysis.. 
CRI
K ect.. 

asking too much? 

http://www.reefcentral.com/forums/showthread.php?t=2578464


----------



## farrenator (May 11, 2011)

Hoppy is renting a PAR meter over on aquaticplantcentral Basically put down a deposit and you pay for the cost of shipping. I did it, worked out fine.


----------



## O2surplus (Jan 31, 2010)

paronaram said:


> O2surplus, what do you think coverage will be on this LED matrix?
> Let's say on 36" length, I will need 2 or 3 of this "Engine's"
> 
> Thanks
> Aram


Depends? How high off the water will it be mounted? Will optics/reflector be used? I'm testing it right now over my 225 with no optics and 3" off the water. It looks like I'd need about 1 array per foot to have excellent coverage. I'm waiting on some Ledil "Angela" reflectors to arrive, but I'm going to attach an older reflector meant for the older BridgeLux BXRA series just to see the effect.



Kampo said:


> really awesome work 02.


Thanks- I've been dying to make progress on this project. Everyday life has been preventing me long enough.:grin2:



jeffkrol said:


> Pretty!!!!


Thanks- My thoughts exactly. It's really amazing to have 8 channels/ colors to play with. I went over the Digikey invoice and discovered that I did get the 5700K 90CRI Cool Whites & and the PC amber! I'm currently running all channels at 1000ma, just to see what happens? It's been 3 hours so far and none of the drivers or leds have "un-soldered" themselves. :grin2:


----------



## O2surplus (Jan 31, 2010)

"Fresh from the Oven".


----------



## joebob296 (Sep 30, 2016)

For people who don't use an enclosed hood, how do you make a reflector? Even better how do you make a reflector look attractive?

Sent from my SM-G935V using Tapatalk


----------



## Shadar (Jan 30, 2017)

O2surplus said:


> "Fresh from the Oven".


Looks good! I bet that one was a lot easier to place everything on.



joebob296 said:


> For people who don't use an enclosed hood, how do you make a reflector? Even better how do you make a reflector look attractive?
> 
> Sent from my SM-G935V using Tapatalk


I can't answer the first question (I would just buy one, rather than making it), but as to the second, this reef thread might give you some ideas: https://www.nano-reef.com/forums/topic/372331-narrow-reflector-for-the-nanobox-v3-array/


----------



## O2surplus (Jan 31, 2010)

Got a few of these ANGELA reflectors to play with..... they're huge! They remind me of the nozzles on a Saturn V rocket.












The reflectors definitely help tighten up the beam pattern from the leds, but create a interesting "rainbow" around the outside edge of the light spread. I'm going to order a diffuser to see if that will help mix up the light a little more.


----------



## jeffkrol (Jun 5, 2013)

The RZ sub lens?
Should work..only adds a buck too..

Possible alternate..
http://www.ledil.com/angelette
circular to linear conversion AFAICT..


----------



## theatrus (Mar 20, 2007)

If you need a quick check of spectrum on it, let me know. I can provide the plots in my very not packaged product  I'm currently distracted by building a little controller for the Clippard valves for Co2 dispensing, but always happy to drag a project back to the front.

If you're using the Angela, use the mixing lens they provide. If not, I can recommend some acrylic material for diffusion.

The Luxeon C or other small Cree packages do the rainbow mix quite a bit more than the flat emitter Luxeon Z from my experience.


----------



## Shadar (Jan 30, 2017)

O2surplus said:


> Got a few of these ANGELA reflectors to play with..... they're huge! They remind me of the nozzles on a Saturn V rocket.


Looks awesome. What heat sink are you using for this? Either the heat sink is a little smaller than I expected, or that reflector is truly gargantuan.


----------



## rottison (Aug 28, 2014)

Got to like a good light


----------



## O2surplus (Jan 31, 2010)

It's a Nuventix heat sink/Synjet cooler combo originally designed for use with the now obsolete BridgeLux BXRA-C series COB array. The combo is only rated for 60 watts, so it's not going to be a permanent solution. I've ordered a couple passively cooled heat sinks rated to 150 watts that should be perfect for this application. I'll post more photos after they arrive.


----------



## O2surplus (Jan 31, 2010)

I really need to pay more attention to specifications. Like....per se, dimensions....
Length 10"
Width 8". Or weight.....10bs!

LOL


----------



## jeffkrol (Jun 5, 2013)

Sure that isn't overkill...


----------



## rottison (Aug 28, 2014)

that is as big as a wet/dry filter LOL yup lost your mind making that one )


----------



## theatrus (Mar 20, 2007)

O2surplus said:


> I really need to pay more attention to specifications. Like....per se, dimensions....
> Length 10"
> Width 8". Or weight.....10bs!
> 
> LOL




The upside: no fan required


----------



## paronaram (Jun 29, 2009)

O2surplus said:


> I really need to pay more attention to specifications. Like....per se, dimensions....
> Length 10"
> Width 8". Or weight.....10bs!
> 
> LOL


O2Surplus Looks impressive!
Like one of those massive flash light projectors that you can see from space  except this is for your planted tank :grin2:


----------



## Lingwendil (Nov 16, 2012)

O2surplus said:


> I really need to pay more attention to specifications. Like....per se, dimensions....
> Length 10"
> Width 8". Or weight.....10bs!
> 
> LOL




:icon_eek:

roud:

Any more development on this?


----------



## Lingwendil (Nov 16, 2012)

Any arduino folks know how to give me a hand on getting o2's blynk code to compile correctly?

I'm using this code-

http://www.plantedtank.net/forums/20-diy/1108626-diy-led-pendants-brainstorming-multichip-vero18-help-me-9.html#post10114706


and getting the following errors. I have all the correct libraries-



> Arduino: 1.8.3 (Windows 7), TD: 1.38, Board: "WeMos D1 R2 & mini, 80 MHz, 921600, 4M (3M SPIFFS)"
> 
> C:\Users\Deela\Documents\Arduino\libraries\Adafruit_PWM_Servo_Driver_Library\Adafruit_PWMServoDriver.cpp: In member function 'void Adafruit_PWMServoDriver::begin()':
> 
> ...


----------



## mrjbacon (May 22, 2017)

O2surplus said:


> Ohhhhhhhhhh myyyyyyyy Godddddddddd! I couldn't help myself. I managed to assemble one and solder it up without incident. Placing all of the components on this PcB without making a single mistake is a very stressful endeavor. I feel like I need a cigarette..... and I don't smoke LOL. I powered it up and tested each channel individually. I'm happy to report that it works like a charm! I'll mount it to a heat sink tomorrow to test it for real and post some photos.
> 
> Here's the led layout for this one.
> 
> ...



Hey I am loving this project, but as I read through the thread I didn't see a post referring to your CC driver circuit with buck chip for each individual channel. I saw the post where you stated it was a TI LM3414, but can you post a schematic and a list of the components on each channel and how each is different depending on which LED chips you used? I have several CC driver circuits saved on my computer but I've never seen the TI chip you're using and I'd like to know what I would need and what additional capabilities I could achieve with slightly different components, I.E. bus-addressable buck chips/driver circuits?

I'm trying to design a similar PCB using fewer LEDs to operate as an I2C-slave device (color, exact layout, LED quantity are as of yet undetermined so I'll be subscribing to this thread for sure). I'll be using a RPi as an I2C master so I can use some sort of noise algorithm for software-PWM control to get real-time sunrise/sunset, cloud, and weather simulation... LIKE THIS....

I'm pursuing more of a modular type of PCB that could be used by itself or in a "smart-array" with multiple bus-addressable modules. Identical PCBs (assuming the component footprint wouldn't change) and fewer LEDs, each individual "module" could be tailored specifically to FW, SW, Reef, Planted-Tank, etc with only a few components on the board changing, with the added benefit that you could mix-and-match modules to get the spectral output you need... this is my goal.


----------



## MrMan (Dec 5, 2014)

mrjbacon said:


> Hey I am loving this project, but as I read through the thread I didn't see a post referring to your CC driver circuit with buck chip for each individual channel. I saw the post where you stated it was a TI LM3414, but can you post a schematic and a list of the components on each channel and how each is different depending on which LED chips you used? I have several CC driver circuits saved on my computer but I've never seen the TI chip you're using and I'd like to know what I would need and what additional capabilities I could achieve with slightly different components, I.E. bus-addressable buck chips/driver circuits?
> 
> I'm trying to design a similar PCB using fewer LEDs to operate as an I2C-slave device (color, exact layout, LED quantity are as of yet undetermined so I'll be subscribing to this thread for sure). I'll be using a RPi as an I2C master so I can use some sort of noise algorithm for software-PWM control to get real-time sunrise/sunset, cloud, and weather simulation... LIKE THIS....
> 
> I'm pursuing more of a modular type of PCB that could be used by itself or in a "smart-array" with multiple bus-addressable modules. Identical PCBs (assuming the component footprint wouldn't change) and fewer LEDs, each individual "module" could be tailored specifically to FW, SW, Reef, Planted-Tank, etc with only a few components on the board changing, with the added benefit that you could mix-and-match modules to get the spectral output you need... this is my goal.


They only accept a PWM signal so if you wanted addressable modules you'd have to have a PCA9685 (or similar) for each module each with a unique ID (using address resistors).

If you read through the datasheet they're pretty straightforward in their circuit design, easy to adjust the current with just a variable resistor.


----------



## mrjbacon (May 22, 2017)

MrMan said:


> They only accept a PWM signal so if you wanted addressable modules you'd have to have a PCA9685 (or similar) for each module each with a unique ID (using address resistors).
> 
> If you read through the datasheet they're pretty straightforward in their circuit design, easy to adjust the current with just a variable resistor.



My initial plan was to use a simple CC driver circuit controlled by a 555 timer and Dallas 1-Wire DS2890 Linear digital pot, but they aren't made anymore :crying: Those puppies had laser-etched 64-bit address spaces and you could daisy-chain as many as you wanted...


----------



## Rinklr (Mar 5, 2017)

Any new updates with this? Looks like a great DIY light source.


----------



## Kampo (Nov 3, 2015)

I personally went another direction for my big tank. Dabbling with some pendents for a dual cube tank idea but kinda just expirmenting.

As far as o2surplus' project that got tied into all this I haven't seen him around lately. I know he had some personal stuff come up that may be taking him away from it though. Hope I'm wrong though. I got one of his controllers he made for the pendents to mess with in my fish room really like it.


----------

