New controller + lights - start from scratch

dacianb

Active Member
View Badges
Joined
Jul 4, 2014
Messages
364
Reaction score
189
Location
Belgium
Rating - 0%
0   0   0
After some years using a commercial controller on my DIY lights I start noticing some rust on controller and rather often some hiccups when lights flashes during the day. So is time for a new controller - this time I would not buy one, but make it.
Because I have some ideas on what and how this controller should do, but will not work with my existing lights (which are anyway overkills and never use them at full power) I decided to build complete new lights too. hmmm probably a new mounting system too :)

Anyway, lets start with controller. I plan to make it modular, in a way that can grow later from a light controller to a full tank controller.
- use only one cable to control all lights, light fans, external fans, temperature sensors and later to add sump lights control, water levels, water temp, ph and such (always on same wires) - this will make everything so neat as I am very bad in arranging cables and tubes
- plan to introduce various modes - next to auto, some coral adapt mode, photo mode, hunt mode (actually a fast way to turn all reds on during night instead of red torch lights)
- moon light to be high accuracy adjustable (something like 0.1 -0.05 % of max intensity)
- fully adjustable noon peaks
and probably more features will come in my mind during build.
I am confident that a full tank controller will never fit an Arduino Uno board, but a full light controller should be OK; Later can upgrade to a Mega board;

I am open to suggestions and ideas of course, but please dont recommend me off the shelf controllers - for me DIY is a hobby and I really enjoy it.
 
OP
OP
dacianb

dacianb

Active Member
View Badges
Joined
Jul 4, 2014
Messages
364
Reaction score
189
Location
Belgium
Rating - 0%
0   0   0
seems that I cannot upload any picture on this forum... I think will be a bit difficult to explain things instead of showing pics
 
OP
OP
dacianb

dacianb

Active Member
View Badges
Joined
Jul 4, 2014
Messages
364
Reaction score
189
Location
Belgium
Rating - 0%
0   0   0
Seems that browser was the issue - cannot upload pics from mozilla, but works nice on IE;

anyway, here is the setup of smaller controller (I call them Jarvis Uno and Mega - :) just because I like the voice of that character)
Hardware shown in this picture:
- Arduino UNO (any clone should work, but I prefer the original)
- a cheap rotary encoder with integrated button (to navigate in menus)
- on left side is a Real Time Clock (based on DS 32** chip) - as have very high accuracy and an internal temperature sensor (will help me display ambient temp without extra part)
- and of course a screen. For UNO version I will use a regular character 20 x 4 screen and for Mega a TFT display. Basically in this UNO photo I am using a 20 x 4 OLED display - once you use an OLED will never use an LCD :)

Shifting between 20x4 OLEDs and LCDs (much cheaper) can be done very easy - I added libraries for both types of screens in code. I had some hard time with OLED, but now is OK;
I can use paralel interface for display (cheaper screens than SPI, low number of pins versions) as I dont need to free up Arduino pins for PWM;

I prefered character displays instead of fancier graphic OLEDs or TFTs because :
- those 20x4 are much larger than graphic OLEDs and have just amazing contrast and luminosity
- UNO is rather limited as storage and memory capacity, so I prefer to use it on controls and not to display fancy fonts; To understand better, need like 5 % storage and 2% dynamic memory on UNO + 20x4 character LCD/OLED to display "Hello Word!" message. To use GLCD or TFTs need more than 25% - 50% storage and up to 80-90% dynamic memory (depend by library, transfer speed, selected fonts etc) - basically no space for too much;
Most of the memory is used not for actual controller functions, but by interface with user - all buttons, menus, choices, etc

r2r img.jpg


And this is the Mega version (ignore the date on the screen as the date is not setup yet)
megaaa.jpg


For now I will stop referring to MEGA version and will keep working on cheaper/ simpler UNO until is finalized
 
Last edited:
OP
OP
dacianb

dacianb

Active Member
View Badges
Joined
Jul 4, 2014
Messages
364
Reaction score
189
Location
Belgium
Rating - 0%
0   0   0
this is the Mode Selection screen. Any mode, once selected is stored into EEPROM, so even if controller is reset due to a power loos, last selected mode will be active.
- AUTO - main mode with time related functions (sunrise / sunset hour and minute), delays for each channel, ramp length for night to day and day to noon, noon length, and intensities selectable for Night with 0.1 % steps and for day and noon with 0.5%. Ramps are really smooth and lights will dim with 4095 steps from 0 to max. Intensity on ramps is calculated each second, so will give a smooth transition;
- ADAPT - is a clone of auto but with a selectable percentage of intensity. I will select Adapt = 50% for ex and all intensities on all channels of auto mode will drop with 50%. Like this, during adaptation of new corals dont have to tune each channel every few days. Just change the adapt factor.
- Pict - is actually photo mode (used PICT as I needed 4 characters :) ) - is a static (non time dependent) mode where user can tune the intensities of each channel and save the configuration for later recall as best to take a pictures of tank
- Hunt - is similar function with above, but here I will save ALL RED ON for example, so I can stare in the night in my tank; Of course any intensity can be tuned for each channel - I just label it HUNT
- Cust - is another custom function, identical with PICT and HUNT - just in case I will need another configuration later. So PICT, HUNT and CUST are rather similar, just named different; Can be named CUST1, CUST2 and CUST3 :)
- MAN. - is a manual mode, where intensities of all channels can be adjusted in real time using the rotary encoder- all channels on same level; eventually I will add later some enable/disable choices for each channel
- DEMO - is just a show. Randomly change intensities of each channel making it more like a disco light - dont know what else to put on demo
- OFFL - means LIGHT OFF - will put all lights off, but will continue controlling fans and such or monitor sensors

modes.jpg
 
Last edited:
OP
OP
dacianb

dacianb

Active Member
View Badges
Joined
Jul 4, 2014
Messages
364
Reaction score
189
Location
Belgium
Rating - 0%
0   0   0
If I learned something from previous builds is that is much better to have multiple smaller, lower power lights than couple of high power ones.
My LED new board design is ready - 6 channels, 33 LEDs squized on a tiny 67-75 mm board - will be a real full spectrum source as I plan to use 8-9 types of LEDs on it. LED installed power is > 125-150W, but I will use half of it as LEDs kept on lower currents are more efficient.
In order to create a perfect color mix, I zig-zagged each channel LED position and also made them simmetrical left/right

Board4.jpg

This image is the electrical schematics - nothing fancy here.


Board2.jpg


This image show the copper layer of the board - here the complicated zig-zags are visible, also all the thermal pads for each LED in order to eliminate heat fastest possible

Board1 - Copy.jpg



And this is how LED board should look once produced (of course is black, like all my boards :) )
 

Being sticky and staying connected: Have you used any reef-safe glue?

  • I have used reef safe glue.

    Votes: 105 86.8%
  • I haven’t used reef safe glue, but plan to in the future.

    Votes: 8 6.6%
  • I have no interest in using reef safe glue.

    Votes: 5 4.1%
  • Other.

    Votes: 3 2.5%
Back
Top