DIY Reef Controller

cichlidtx,

When I release the first functioning code the pinout will be as follows.

20 (SDA) - SCL breakout on main board for RTC
21 (SCL) - SDA breakout on main board for RTC
50 (MISO) - SD Card
51 (MOSI) - SD Card
52 (SCK) - SD Card
53 (SS) - SD Card

LED PWM - (2,3,4,5,6,7)
Moon PWM - (8,9,10,11)
Touch screen pins will be moved to myTouch(49,48,47,43,42);

Don't have a wifi/ethernet shield yet so I don't know where those pins will go.

Moving the pins around for the touch screen allows all 15 pwm pins to be free for other things.

The temp sensors, ph, orp, ATO, and buzzer pin will be located on the atmega 328.

I currently have an atmega328 on a breadboard and am working on getting the two processors talking.
 
cichlidtx,

When I release the first functioning code the pinout will be as follows.

20 (SDA) - SCL breakout on main board for RTC
21 (SCL) - SDA breakout on main board for RTC
50 (MISO) - SD Card
51 (MOSI) - SD Card
52 (SCK) - SD Card
53 (SS) - SD Card

LED PWM - (2,3,4,5,6,7)
Moon PWM - (8,9,10,11)
Touch screen pins will be moved to myTouch(49,48,47,43,42);

Don't have a wifi/ethernet shield yet so I don't know where those pins will go.

Moving the pins around for the touch screen allows all 15 pwm pins to be free for other things.

The temp sensors, ph, orp, ATO, and buzzer pin will be located on the atmega 328.

I currently have an atmega328 on a breadboard and am working on getting the two processors talking.

Thanks, looking forward to it. What version Arduino software are you using for the sketches?
 
Some lighting control thoughts for you Nick.

With a multi color LED panel most of us adjust the full brightness case to get the PAR and most importantly the color appearance that we like. This adjustment would set the max brightness on each of the color channels.

The dimming control would then adjust percentage-wise between the max value and min for the sunset sunrise weather effects etc. and thus dim the set proportional color balance uniformly. From your screen shots I think this is the way you have been thinking as well.

This is the simple case. I will also admit I have seen some threads where a few people have wanted to change the color balance as sunrise or sunset are approached.

Juts some thoughts,
Mark
 
Marc,

You will be able to either turn the weather off and just run the leds on a simple timer using the max brightness you set as on. With the sunrise/set program the program will increase the leds brightness from off to the max brightness you yet no higher.

You will also be able to set delays for each channel. So you could have your sunrise last 3 hours long and have only the white/green/red/cyan channels start the ramp at say 10am while the Blue/violet channels could start their ramp say two hours later. This is how my first simple led controller worked and I love the very white, reddish yellow look for the sunrise/set.


I finished writing the main code that will control the array of 16 outlets as well as the temp readings. As of right now you can control each outlet as either a timer, temperature (any of the three temp sensors), pH, or ATO controlled outlet. I will likely add in the near future for dosing pumps in a simple how long they run how many times a day format.

The eagle files for 0-10v analog dimming are done and will be up on the google code site soon. These boards are in addition to the main board and are a seperate 5x5cm board.

I have also started messing with the MPXV5004G Pressure Sensor that woganaga recommended. I have the chip reading out the inches of water and it seems to be pretty accurate. I will setup a basic test using both the eTape and the Pressure sensor tomorrow morning and as long as the eTape doesn't blow the pressure out of the water, ha, the pressure sensor will be the main way to measure water level for the controller as it is only $14 compared to $40 for the eTape and much easier to mount.

The only components the pressure sensor needs is a 1uF, a 0.01uF, and a 470 pF capacitor which cost almost nothing. After soldering up a prototype with perfboard I remembered how much I hate it so I will be making a tiny board for this as well. I figure its only $9 extra from iTead and would save people the time of making the perfboard version and will look nicer.

The next step is to figure out exactly how I will be communicating between the atmega328 and the arduino mega. I am thinking of just using i2c with a busy line between the two. When the two are communicating the RTC will know not to request time until they are done.
 
Great stuff guys! Being an IT geek, this has really got me thinking.. I'm getting back into the hobby after 10 years out, the tech has changed dramatically. Looking forward to keeping track of your progress.
 
Marc,

You will be able to either turn the weather off and just run the leds on a simple timer using the max brightness you set as on. With the sunrise/set program the program will increase the leds brightness from off to the max brightness you yet no higher.

You will also be able to set delays for each channel. So you could have your sunrise last 3 hours long and have only the white/green/red/cyan channels start the ramp at say 10am while the Blue/violet channels could start their ramp say two hours later. This is how my first simple led controller worked and I love the very white, reddish yellow look for the sunrise/set.


I finished writing the main code that will control the array of 16 outlets as well as the temp readings. As of right now you can control each outlet as either a timer, temperature (any of the three temp sensors), pH, or ATO controlled outlet. I will likely add in the near future for dosing pumps in a simple how long they run how many times a day format.

The eagle files for 0-10v analog dimming are done and will be up on the google code site soon. These boards are in addition to the main board and are a seperate 5x5cm board.

I have also started messing with the MPXV5004G Pressure Sensor that woganaga recommended. I have the chip reading out the inches of water and it seems to be pretty accurate. I will setup a basic test using both the eTape and the Pressure sensor tomorrow morning and as long as the eTape doesn't blow the pressure out of the water, ha, the pressure sensor will be the main way to measure water level for the controller as it is only $14 compared to $40 for the eTape and much easier to mount.

The only components the pressure sensor needs is a 1uF, a 0.01uF, and a 470 pF capacitor which cost almost nothing. After soldering up a prototype with perfboard I remembered how much I hate it so I will be making a tiny board for this as well. I figure its only $9 extra from iTead and would save people the time of making the perfboard version and will look nicer.

The next step is to figure out exactly how I will be communicating between the atmega328 and the arduino mega. I am thinking of just using i2c with a busy line between the two. When the two are communicating the RTC will know not to request time until they are done.

The lighting sounds perfect Nick you really though this out well.

On the outlet control, Have you considered an option to link an outlet to an LED color control so that it goes "on" a moment before that color is starting to ramp up and then "off" just after it finishes its ramp down. That way LED drivers like the meanwell supply's that need to be actually turned off to get full dark on the LEDS could have their outlets controlled as an option without programming a separate parallel timer for them.

Adding Dosing would be a nice feature. Possibly control for 3 - 4 dosing pumps.

If there are only those small number of components for the pressure sensor why not squeeze them into the main board rather than on a separate board?

Nice work,
Mark
 
Marc,

That is a good point for shutting the leds off right after the ramp. I shall add an option to connect and outlet to led channels for this purpose so when the channels brightness is 0, they'll go off.

The three capacitors are decoupling caps and work much better the closer they are to the actual chip, so to improve accuracy I think it'd be best to put them right next to the chip. I just went to home depot to grab the supplies to make the rig to house it in and got everything for under $5. I am building in now and will post pics in a bit.
 
Yeh I should have realized they were for decoupling. My head was in PC Bb efficiency mode. You are making the correct call. it will be interesting seeing your packaging.

Happy New year,
Mark
 
So I just got done building the actual ATO unit that will control the tank water level. All the pieces including the electronic components and pvc pieces costs around $20 total. Here are some pictures from the build.

Pieces

parts_zps605727ed.jpg


protoboard (will be replaces with a PCB when I finally order them all)

board_zpsb8857413.jpg


Tubing is standart RO tube I had lying around and a small adapter I found with it. Standard airline tubing is too large for this chip.

piece_zps1e187616.jpg


wires soldered to the board.

wire_zpsd19e142e.jpg.html


Power led fitted into the cap and glued in place.

led_zps8aca9c29.jpg


Hole drilled into the cover to fit the ro tubing exactly.

hole_zps0fdba4e6.jpg


board in the cap with led in place.

cap_zps76f6451d.jpg


Done

don2_zps13593fa9.jpg


I decided to use a standard type A usb connector as the power cord.

I will test it out for a bit and report the results.
 
This is getting better all the time. looks good.. I can still just use regular float switches to if I don't want to go with etape or pressure sensor? for ATO my tank uses a few gallons a day and the ro holding tank is set about 40 feet from the tank I use a 40 gal brute and a pond pump in the bottom.to pump to the tank I use 3 floats high water low level and water level. Will there be a plug on that box for ATO pumps so i can just use my existing setup
 
I am guessing you float switches are all wired in series? If so yes the ATO screen will support both the pressure sensor or a standard float switch. You would then just sent which ever outlet you have your ATO pump plugged into as ATO controlled.

Once the main controller is "done" I will be creating simple tutorials for anyone who wants to add other sensors, change background images, etc. This way if someone wants to add a sensor, say dissolved oxygen for example, there will be a simple tutorial on how to do this. I would also be willing to rewrite code specifically for someone wanting a specific device to work with the controller.
 
I was at radioshack today and realized another very simple way to mount the pressure sensor without having the large PVC enclosure in the tank. I picked up a 3x2x1 inch project enclosure for around $2 or $3 that would hold the small board perfectly. This enclosure could be mounted to the inside of a stand or anywhere else within distance of the main controller. The tubing would then just need to be held at the bottom of the return pump chamber.

I am switching the design over to that now as it will make testing easier. I have also added a red status led next to the green power led that will show when the ATO pump is running.
 
I love this project and now thinking of doing something similar my self. I skimmed through the whole thing again and have a question. Have you figured out how you are getting the Ph, ORP, Salinity data into the Arduino?

Thanks for any help and I am following this one for sure
 
Ismanu,

I am going to use the Atlas Scientific pH and ORP stamp to read that data for ease of use. The atmega328 will read and act on this data passing it to the arduino mega for display.

Here is how I plan on having the setup.

The arduino mega and atmega328 will "talk" on the I2C bus. DS1307 RTC will also be on the I2C bus. The atmega328 will be the master with the arduino mega and RTC as its slaves. The Reef Angel Vortech module will also share the I2C bus later down the road.

The SPI bus on the arduino mega will be used for "talking" with the sd card and the wifi shield.

The atmega328 will control all vital processes such as reading the temp, pH, orp, water level sensors. It will also control the outlet states and the 6 pwm dimming channels for the leds.

The arduino mega will control the LCD display, wifi shield, sd card, and moon lights.

I am planning on finishing the basic code by the end of next week. The revised boards should be sent to itead within that time as I finalize the setup of everything. Once I get the boards I should be ready for the first test on my tank. After testing for a week or two and fixing any bugs I may find I will release the code and basic build instructions. Then i'll start working on adding pH, ORP, wifi, vortech, and dosing pump support. I cannot say when these features will come as I am very limited on cash for this project, but hopefully it won't take too long.
 
I've actually never thought of that as this originally started out as a personal project.

Although I am pretty sure that talk of that sort isn't allowed, correct?
 
Hmm. I think a moderator could help clarify paragraph 2 of the user agreement, as to kickstarter making this a "commercial" product. I think that kickstarter's policy states that it is "a new form of commerce and patronage", so it could easily be viewed as commercial activity. However, if your plan is to only cover the costs of development, initial production, and distribution (no profit), and the project furthers the hobby, I can't see the moderators getting too bent out of shape. But it would take potential revenue away from forum sponsors...
 
Back
Top