My Neptune Apex web interface compatible DIY reef controller

Good to know, my PH and cond are non EZO only ORP and that is not in circuit at the moment.

I disconnected the 4 way relay board, early this evening, so that reduced the load.

But will have a look, but am getting red flashing leds during init of cone.
 
Ok, for those thinking of getting the conductivity kit that now cost $198 from Atlas Scientific, get them now from Sparkfun for $140 only for the exact same thing.

https://www.sparkfun.com/products/12908
use coupon code FALL2014 for $10 off.

I just ordered one. I will probably end up using I2C on this, since I don't have room on the Chauvet case.
 
I just updated github source with new #defines for inverse outlet logic
and to use delay(1000) for EZO stamps.

I just noticed, it's exactly one year now since the first post of this thread!
 
I just updated github source with new #defines for inverse outlet logic
and to use delay(1000) for EZO stamps.

I just noticed, it's exactly one year now since the first post of this thread!

:beer::celeb2:

And the world now has happier fish, many thanks.
 
d0ughb0y just wondering why my temp probes for the room and the LEDs goes to 0 and then to the temp.
 

Attachments

  • 2014-09-17-07-41-36[1].jpg
    2014-09-17-07-41-36[1].jpg
    50.8 KB · Views: 2
Ok,

I've taken a step back to evaluate the situation properly, rushing last night and it was too late following a long day.

I have done this and cond works, minus init error checking

/////////////////////////////////////////////////////////
// Atlas Sensors Functions
/////////////////////////////////////////////////////////
boolean initAtlas(AtlasSensorDef_t &data)
{
char responsechars[15];
responsechars[0]=0;
data.saddr.begin(38400);
for (int i=0;i<255,strlen(responsechars)==0;i++)
{
#if defined(_COND)
// if (data.type==_cond) //set conductivity stamp to return SG only, K=1.0
data.saddr.print("response,0\rk,10\rc,0\ro,tds,0\ro,sg,0\ro,ec,0\ro,s,1\rr\r");
#else
#endif
// else
{
#if defined _PH_EZO
if (data.type==_ph)
{
data.saddr.print("response,0\rc,0\rr\r");
}

else
#endif
data.saddr.print("e\rr\r");
}
#if defined(_PHEZO) || defined(_COND)
delay(1000);
#else
delay(384);
#endif
data.average=0;
getresponse(data, responsechars);
}
// if (strlen(responsechars)==0)
// {
// data.initialized=false;
// return false;
// }
// data.value=atof(responsechars);
// if (data.value>0)
{
data.isReady=true;
data.initialized=true;
updateAtlas(data);
data.isReady=false;
}
// else
// return false;
return true;
}

Screen Shot 2014-09-17 at 13.41.30.PNG

M
 
This kit looks like it for brackish water. I think you need the k10 probe

I think D0ughb0y is ok with the brackish

K=1.0 probe will go to 200,000uS, or 200mS

If I have understood Conductivity correctly Ocean water is 50,000uS or 50mS.

I got the K=10, and dont think its necessary

Im sure i'll get corected if I'm wrong :)
 
d0ughb0y,

I loaded the new updates and I have a few questions about the inverted changes.

When I enable first 8 outlets inverted, the web looks good and I don't have my DB9 connectors yet but I tested with a meter and if I manually set the port on I get the 5v on the pin. So the inversion on the pin is good.

The lcd still looks wrong to me. If I turn on the port I get a lower case m. If I turn off the port I get upper case M. And in auto the ports that are on I get _. Ports off you get the number.
 
I think D0ughb0y is ok with the brackish

K=1.0 probe will go to 200,000uS, or 200mS

If I have understood Conductivity correctly Ocean water is 50,000uS or 50mS.

I got the K=10, and dont think its necessary

Im sure i'll get corected if I'm wrong :)

Just wanted to be sure before I order one. I see that you have more than one temp probe are you seeing the same problem as I. The first probe I see no problem, but the other two I see it goes from zero to the temp. Also I just put two new pH probes from china on my tank. I have replaced them a few times.
 
I,ve made a change to void calibrateLow, so that the ph stamp calibrates at 4.

This isnt working

is there a common link between data.type for _cond and _ph as the test == appears not to work in either case?

Just a thought

M

void calibrateLow(AtlasSensorDef_t& data)
{
if (data.type==_ph)
{
//calibrate ph 7
#ifdef _PH_EZO
data.saddr.print("cal,mid,7.00\r");
#else
data.saddr.print("F\r"); // Calibrate at pH4, just to prove this works
#endif
} else if (data.type==_orp) {
data.saddr.print("-\r");
} else if (data.type==_cond) {
data.saddr.print("cal,dry\r");
}
}
 
Just wanted to be sure before I order one. I see that you have more than one temp probe are you seeing the same problem as I. The first probe I see no problem, but the other two I see it goes from zero to the temp. Also I just put two new pH probes from china on my tank. I have replaced them a few times.

I do see this too, have to confess it had escaped my attention, the dips are less apparent, but now its been pointed out, I can see unexplained changes.

But send D0ughboy a :xlbirthday:and our thanks for this threads 1st birthday.

M
 
OK, the more i read about conductivity i think i will push the water temp to the stamp for each reading.

It is my intention in the long run to run a 12 month cycle of temperature of between 22C and 27C, this is for 3 reasons.

1) more closely mirrors a natural reef, and my enhance breeding cycles
2) energy management.
3) curiosity, what effect will it have on the system.

Cant help it im a curious soul. After all the world was flat till it wasnt. And there is nothing stable in nature, trends and cycles perhaps.
 
Todays other revelation, its costing me £468/annum to go buy my r/o water from the supplier + the cost of the water!

The cost of the r/o unit is £81 +water and consumables, so £80 per annum.

If I dilute the waste from the ro process with rainwater, I can still use the water on the garden.
 
d0ughb0y just wondering why my temp probes for the room and the LEDs goes to 0 and then to the temp.

I think this started when I removed the range restriction on the temp reading. For me I got two alarms since I removed the range, but I get the high end reading of 185F instead of 0. The strange thing is, I do the CRC check for each reading and so it appears readings of 0 and 185 are passing CRC checks.

I think I'll add back the range, but make it from 60F to 120F. LEDs don't get hotter than 120F (49C) right? I'll also add a define to use Celsius unit.

I think D0ughb0y is ok with the brackish

K=1.0 probe will go to 200,000uS, or 200mS

If I have understood Conductivity correctly Ocean water is 50,000uS or 50mS.

I got the K=10, and dont think its necessary

Im sure i'll get corected if I'm wrong :)


I'm just going by the listed conductivity range in the spec. And it seems that is the type they sell more, since K1.0 has the lowest price.


d0ughb0y,

I loaded the new updates and I have a few questions about the inverted changes.

When I enable first 8 outlets inverted, the web looks good and I don't have my DB9 connectors yet but I tested with a meter and if I manually set the port on I get the 5v on the pin. So the inversion on the pin is good.

The lcd still looks wrong to me. If I turn on the port I get a lower case m. If I turn off the port I get upper case M. And in auto the ports that are on I get _. Ports off you get the number.

ok, I'll check the LCD display code, maybe I missed something.
 
data.type is initialized once and value is as defined in config.h

check that it is the correct type. The second item in the array is the type, and should be _cond for conductivity sensor (_ph for ph sensor, etc).
#define CONDDEF {"Cond",_cond,Serial3}

I don't see any code that changes the value of data.type, so as long as it is defined correctly, the if condition will work right. I can declare it const so it is immutable after initialization.

if you remove the if (data.type==_cond) condition, it will send that command to any atlas sensor, including ph and orp, which will not understand the EZO command.

check again to make sure the stamps are connected to the correct serial ports as defined in config.h.
 
data.type is initialized once and value is as defined in config.h

check that it is the correct type. The second item in the array is the type, and should be _cond for conductivity sensor (_ph for ph sensor, etc).
#define CONDDEF {"Cond",_cond,Serial3}

I don't see any code that changes the value of data.type, so as long as it is defined correctly, the if condition will work right. I can declare it const so it is immutable after initialization.

if you remove the if (data.type==_cond) condition, it will send that command to any atlas sensor, including ph and orp, which will not understand the EZO command.

check again to make sure the stamps are connected to the correct serial ports as defined in config.h.


I have downloaded the code from the site, and uploaded to the mega, twice checked the wiring from the mega to the stamps.

Cond still would not init

I commented out the lines as outlined in previous.

Cond now init and works ok. :)

I then went and changed the calibrate ph from s/r to f/r, but this doesnt change the calib point to 4.

Big plus that cond is working
 
curoius what would the effect between these two be?

#define PHDEF {"pH", _ph, Serial1}
or
#define PHDEF {{"pH", _ph, Serial1}}

cos
PHDEF is {{}} so that multiple probes can be in what I would call a stacked array
on the other hand
ORPDEF {}
CONDDEF is {}
 
Back
Top