My Neptune Apex web interface compatible DIY reef controller

that is this

#define EEPROMSIG 0xA5

displayed in decimal

if you change the value, it will reset the controller to default values (defined in config.h) next time you reboot.
its probably not needed. I'm thinking of changing to use checksum instead of a signature value to test if eeprom needs to be initialized or not.

eeprom needs to be initialized if I change the structure of conf record. say I add a new field, like when I add LED.

Hmm, could the EEPROMSIG value just be toggled at each upload, starts to break down the EEProm life expectancy, but once the main development cycle is out the way, does it really matter?
 
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.

Just order one also with the coupon, will you have and option to use i2c or one of the serial port for this stamp
 
Just order one also with the coupon, will you have and option to use i2c or one of the serial port for this stamp

yes, that's why I got one so I can test it with serial and i2c so both will be supported.

I think 2 others bought it. I'm sure sparkfun will jack up the price as well once they figure out why this is selling now.
 
if you switch the probes around, it still affects 2nd and 3rd?

my main suspect for this is the connection. I find the stereo plug I got the quality is not good. make sure nothing shorts when the cables are moved. likewise for the splitter.

I also did not see this problem when I have 2 temp sensors, and I was using the splitter I got from sparkfun. With 3 sensors, I am using a splitter I got from china, and I know I have to rotate the plugs a few times before I get a good contact and get good readings on the OneWire test sketch for DS18B20.

here is what you can do.
with all your temp sensors connected, run the OneWire test program.
monitor the readings on the serial monitor output and make sure you are not getting any wrong reading. once you see that, then load the chauvet program again, without moving any of the temp sensor connections and see if you still get the 0 reading.

Will try this later to see and let you know the results
 
Ok, if you could help with my education I would be grateful.

I have added sections for the Chiller

These are added to Config, Index, Apex etc.

The bit I am struggling with is creating the array in the EEprom

Screen Shot 2014-09-17 at 20.46.04.PNG
 
Ok, if you could help with my education I would be grateful.

I have added sections for the Chiller

These are added to Config, Index, Apex etc.

The bit I am struggling with is creating the array in the EEprom

View attachment 291320

The easiest way to do this is to basically copy the code for Fan and name it chiller. There are a lot of places that you need to edit. Start in the conf_t structure declaration, by adding the entries for chiller.

if you are going to customize the code, it will be better if you do it on a github fork (so you have a copy on github, and work on a copy on your computer). that way, it will do the merge (of my bugfixes and new code) for you and you only need to merge manually if there is a conflict. and you can always back out to the last working version in case something goes wrong. otherwise, this can become a maintenance nightmare.
 
The easiest way to do this is to basically copy the code for Fan and name it chiller. There are a lot of places that you need to edit. Start in the conf_t structure declaration, by adding the entries for chiller.

if you are going to customize the code, it will be better if you do it on a github fork (so you have a copy on github, and work on a copy on your computer). that way, it will do the merge (of my bugfixes and new code) for you and you only need to merge manually if there is a conflict. and you can always back out to the last working version in case something goes wrong. otherwise, this can become a maintenance nightmare.

Ok, cool, a whole new world
 
The easiest way to do this is to basically copy the code for Fan and name it chiller. There are a lot of places that you need to edit. Start in the conf_t structure declaration, by adding the entries for chiller.

if you are going to customize the code, it will be better if you do it on a github fork (so you have a copy on github, and work on a copy on your computer). that way, it will do the merge (of my bugfixes and new code) for you and you only need to merge manually if there is a conflict. and you can always back out to the last working version in case something goes wrong. otherwise, this can become a maintenance nightmare.

I would think the chiller and the fan would do the same thing. I have a chiller and was just going to use the fan outlet. I had no need for the chiller since my tank reaches about 82 degrees at the most, without fans
 
Hey d0ughb0y

Current version and web page already have PWM fans section or not yet?
As I see today at 17.9.2014 index.gz and index.htm are 13 days old?

20140907_233132000_iOS.png
 
it does not have it yet. that is just test code.
I have those changes in another branch. I'm still waiting for the parts.
 
I found one small error for us using Celsuis temp scale so:

in Sensors.ini

#ifndef CELSIIUS

should be changed to

#ifndef CELSIUS



or in Config.h

line:

#define CELSIIUS

should be changed to

#define CELSIUS


Then Temperature in Celsius is displayed as it should to be
 
Need to get some learning in on working with github.

In the mean time, line 592 of index.htm

Is this a typo?

sensorpcondalue

should it be sensorcondvalue

And can I suggest that the max value is extended to 150000, the standard calibration solution is at this level.


M
 
Last edited:
ok, I see the typo. I think it is not critical, as the id is used for referencing. I'll fix it on my next update.

The k1 kit comes with 12.5 and 80 calibration solution.
I think calibrating at 150 will be too far off the reading where it is needed.
I'll change the max to 150 on my next update.
 
Last edited:
the error is because the code is incomplete.
I'll go over this code tonight.

the bug is in apex.ino code, it should look like this. it still won't work with just this fix, as the readings are for salinity and not conductivity.
Code:
#ifdef _COND
    } else if (sensortype==_cond) {
      if (strcmp_P(command,PSTR("getval"))==0) {
        return csutilreply(webserver, getAtlasAvg(conddata));
      } else if (strcmp_P(command,PSTR("clow"))==0) {
        calibrateLow(conddata);
      } else if (strcmp_P(command,PSTR("chigh"))==0) {
        if (value==0)
          return apex_error(webserver,F("Invalid csutil data."),5);
        calibrateHigh(conddata,value);
      } else {
        return apex_error(webserver,F("Invalid csutil data."),6);
      }
#endif
 
Ok, cool.

I am going to call it a night for tonight, its 1 am, and I have a bunch of meetings tomorrow.

I think what I'll do is wait for the next updates, and then create the fork at that point, hopefully this will reduce the number of edits and changes I am doing.


Thanks.

M
 
yeah, best to wait.
I remember now why that part of the code is incomplete. I was not sure how to get the conductivity value. If I should reinitialize with ec,1 or have both s and ec from the start.
 
I think the temp issue is due to circuit problem. Either pullup resistor needs to be changed, or the sensors are using up more power than it should. I am back to 2 temp sensors for now.

The DS18B20 datasheet says a weak pullup is needed if sensor is powered externally and the value given is 5k. I'll try to change it to 5k and see what I get. I'll also order 5 DS18B20 chips to actually test the circuit on 5 sensors.

I got my parts for the pwm fan, and it is working better with the two transistor common ground circuit. The fan now fully turns off.

ok, placed order for 5 ds18b20 chips. estimate to be here next saturday.
 
Last edited:
Back
Top