My Neptune Apex web interface compatible DIY reef controller

I think it is a browser issue. I know the "back" used to work for all browsers. I have not tried to fix this yet.
I think the jquery version is not compatible with the latest chrome, explorer and safari.
I can't just use the latest jquery since it is not 100% compatible.
I'll see if I can find a way to get this to work again for all browsers.

Using firefox did the trick.

I have another problem now. I was able to load the sketch problem free for the past few weeks. Now all of the sudden I am getting these errors. I reinstalled arduino 1.65 and the libraries but can't get rid of these errors when I go to compile.

Code:
Arduino: 1.6.5 (Mac OS X), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

Chauvet16.ino: In function 'void setup()':
Chauvet16:137: error: 'initSensors' was not declared in this scope
Chauvet16.ino: In function 'void loop()':
Chauvet16:282: error: 'updateTemp' was not declared in this scope
Apex.ino: In function 'boolean apex_status_handler(TinyWebServer&)':
Apex:116: error: 'getTemp' was not declared in this scope
Apex.ino: In function 'boolean apex_status_json_handler(TinyWebServer&)':
Apex:370: error: 'getTemp' was not declared in this scope
Network.ino: In function 'void sendEmail()':
Network:289: error: 'getTemp' was not declared in this scope
Outlets.ino: In function 'void outletHandlerB()':
Outlets:172: error: 'checkTempISR' was not declared in this scope
Outlets:173: error: 'checkAlarm' was not declared in this scope
Utils.ino: In function 'boolean psensors()':
Utils:247: error: 'getTemp' was not declared in this scope
Utils.ino: In function 'void logSensors()':
Utils:477: error: 'getTemp' was not declared in this scope
Utils.ino: In function 'void logAlarm()':
Utils:538: error: 'getTemp' was not declared in this scope
'initSensors' was not declared in this scope
 
Figured it out my problem and figured I would post so others avoid it. Seems that the Arduino software (1.65) auto updated some of the libraries with out my knowledge. Fresh instal solved everything.

Using firefox did the trick.

I have another problem now. I was able to load the sketch problem free for the past few weeks. Now all of the sudden I am getting these errors. I reinstalled arduino 1.65 and the libraries but can't get rid of these errors when I go to compile.

Code:
Arduino: 1.6.5 (Mac OS X), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

Chauvet16.ino: In function 'void setup()':
Chauvet16:137: error: 'initSensors' was not declared in this scope
Chauvet16.ino: In function 'void loop()':
Chauvet16:282: error: 'updateTemp' was not declared in this scope
Apex.ino: In function 'boolean apex_status_handler(TinyWebServer&)':
Apex:116: error: 'getTemp' was not declared in this scope
Apex.ino: In function 'boolean apex_status_json_handler(TinyWebServer&)':
Apex:370: error: 'getTemp' was not declared in this scope
Network.ino: In function 'void sendEmail()':
Network:289: error: 'getTemp' was not declared in this scope
Outlets.ino: In function 'void outletHandlerB()':
Outlets:172: error: 'checkTempISR' was not declared in this scope
Outlets:173: error: 'checkAlarm' was not declared in this scope
Utils.ino: In function 'boolean psensors()':
Utils:247: error: 'getTemp' was not declared in this scope
Utils.ino: In function 'void logSensors()':
Utils:477: error: 'getTemp' was not declared in this scope
Utils.ino: In function 'void logAlarm()':
Utils:538: error: 'getTemp' was not declared in this scope
'initSensors' was not declared in this scope
 
I got the two $9 computer boards (+$5 shipping) I ordered from kickstarter. one works and one is bad. I think it will be a while before this product becomes truly usable. There is hardly any documentation on how to program for it, plus the build quality issues. I think it will be worth looking into again once the board hw and sw becomes stable.

I started working on the new led board, but having problems accessing the wifi module. I surface mounted the esp module so it is harder to troubleshoot.
 
Hopefully you will figure it out.. I been too lazy lately to do much more. I want to work on some things when I get motivated again. I don't have too much trouble with things with the internet I am at currently using closer to home. That problem I was having was weird but I'm too lazy to much with my controller to debug it.
 
Yes, it's set to 4 but still having trouble with 3rd and 4th dosers. Once they start, they don't stop.

Having an issue with fans as well. I have it setup with 1 fan testing at the moment and if I click manual and use the slider, the fan is controlled perfectly, but if I click auto, no matter how hot the temp probe gets, the fan does not come on?
did you change MAXDOSERS to 4 in config.h?
 
As you could read here:

http://www.reefcentral.com/forums/showpost.php?p=23573805&postcount=1781

I have same problems.

But then d0ughb0y post a fix for this problem which solve this bug:

http://www.reefcentral.com/forums/showpost.php?p=23623738&postcount=1793

For fans I don't know as I am not yet using them!
You are right. I didn't even look if I'm honest at that as I thought it had been updated in the latest version. Looking at git hub now, it's still missing the calibration settings that you posted. Thank you [emoji2]

Now I just need to figure out the problem I am having with the fan not coming on.
 
Upon further testing, it works perfectly if the code is set to Fahrenheit, but if set to celcius, the fan doesn't seem to come on auto mode. Not sure if it's waiting for the temp to reach the Fahrenheit setting if that makes sense?
 
@d0ughb0y any idea why the pwm fan may not be coming on auto mode when set to celcius?

I have noticed when set to celcius, on the Web interface everything is displayed in celcius apart from where you set the trigger temps in config, that's still in Fahrenheit
 
Cant get PWM fan working

Cant get PWM fan working

I have read through the entire thread and can't seem to find an answer. I am trying to use the PWM fan function with ambient temperature controlling PWN Fan 1.

I have made the following code change in PWMFan.ino, yet the fan doesn't show up

Code:
  //            PWM       Power    Tachometer
  //        -----------  ------  --------------
  //pwmfan0 D5 PE3 OC3A  A2 PF2  A8 PK0 PCINT16
  pwmfan1 D2 PE4 OC3B  A3 PF3  A9 PK1 PCINT17
  //pwmfan2 D3 PE5 OC3C  A4 PF4  A14 PK6 PCINT22

I know the circuit is working because I can drive the PWM input successfully using the fade arduino example.

Is there any other code that I need to change?

Thanks,
Sean
 
To get mine working, I didn't comment out anything like above, but you need to make sure you have changed the define max pwm fans to how many fans you are running ( //#define _PWMFAN

#define MAXPWMFANS 3 //maximum 3) in config

and have the correct temp sensor address in the code ( #define TEMPDEF) also in config then the fan should appear and can then be configured.
 
Can you please clarify on the auto programming out the outlets. There is an

off time.
On time
off time.

Why two offs?
And I'm assuming it's in 24h right?
 
@d0ughb0y any idea why the pwm fan may not be coming on auto mode when set to celcius?

I have noticed when set to celcius, on the Web interface everything is displayed in celcius apart from where you set the trigger temps in config, that's still in Fahrenheit

I'll check this weekend. I think it should not matter if you use C or F, as it merely compares actual reading with a value.

Can you please clarify on the auto programming out the outlets. There is an

off time.
On time
off time.

Why two offs?
And I'm assuming it's in 24h right?


That concept of 2 off times came from Neptune controllers and is just exactly as it says. The purpose of splitting the off time is so you can offset 2 similar devices ON time.

say you have 2 powerheads and you want to be ON for 2 minutes and OFF for 2 minutes but you want them to be offset by 1 minutes.

So for powerhead 1, you define something like

OFF 1 ON 2 OFF 1

for powerhead 2

OFF 0 ON 2 OFF 2
 
I'll check this weekend. I think it should not matter if you use C or F, as it merely compares actual reading with a value.
Thank you. When set to celcius everything displays correct except for the config page where you specify bottom and top values which stays in Fahrenheit. Apart from that, all seems to be working well so far.
 
That concept of 2 off times came from Neptune controllers and is just exactly as it says. The purpose of splitting the off time is so you can offset 2 similar devices ON time.



say you have 2 powerheads and you want to be ON for 2 minutes and OFF for 2 minutes but you want them to be offset by 1 minutes.



So for powerhead 1, you define something like



OFF 1 ON 2 OFF 1



for powerhead 2



OFF 0 ON 2 OFF 2


Makes sense for power heads. Now does it matter which two I use if I hair want a standard on/off to control a light?

Would set the first off to 0? Ex for 1pm-9pm

Off 00:00:00
On. 13:00:00
Off 21:00:00
?
 
Makes sense for power heads. Now does it matter which two I use if I hair want a standard on/off to control a light?

Would set the first off to 0? Ex for 1pm-9pm

Off 00:00:00
On. 13:00:00
Off 21:00:00
?

note the time is elapsed time, not clock time.

if you want it on at 1pm and off at 9pm, that's 8 hours elapsed time. so you set it to

off 13:00:00
on 08:00:00
off 03:00:00

It tells you the cycle time, which is the sum of the 3 elapsed time. And cycle always starts at midnight.

so if your cycle time is 24 hours, then you have 1 cycle a day.
If your cycle time is 3 hours, then it will cycle 8 times over 24 hours.
This allows you to actually create schedules that works say every other day or even once a week.

The difference with my implementation over Neptune's is the start time is always the same time (predictable), whereas on Neptune controller, the cycle starts when you hit ok.

Lets say you setup the 3 hour cycle, and it is currently 12:05pm. Your outlet timing will be 5 minutes into the 5th cycle. But on Neptune controller, your cycle starts at 12:05pm, and makes your timing all weird and starts at 5 minutes past the hour. This is how it worked in Neptune Aquacontrollers previous to Apex. Not sure if this is still the case with Apex.
 
Thank you. When set to celcius everything displays correct except for the config page where you specify bottom and top values which stays in Fahrenheit. Apart from that, all seems to be working well so far.

you need to edit the html file. search for word _fantemplow and _fantemphigh.

you will see the rangeslider range value is set to 70 to 100. That is the temp range in Fahrenheit. Just change the values to Celsius range you want the fan to operate.

The fan turns completely off if it is 1 degree below the low temp value. And will turn on once it is = to temp value and ramp up in speed according to your max temp setting.
 
to fix the blank page issue when you transition a page back and get a blank page on chrome or safari, edit the html file, search for the word transition and replace slide to slidefade. Apparently, slide transition does not work with safari and chrome, but any other transition works fine. You can change it to whatever transition type you want.

go to this page and test out the different transition types. you will see slide does not work on chrome.

https://demos.jquerymobile.com/1.2.0/docs/pages/page-transitions.html
 
Last edited:
Just an FYI to anyone new to this. Download version 1.6.5 of Arduino. It will not compile on 1.6.7. Didn't try 1.6.6.
 
Back
Top