My Neptune Apex web interface compatible DIY reef controller

Nice work. I'm playing around with the ported Arduino IDE for the ESP8266 in standalone mode. Been interesting that is for sure.
 
hi d0ughb0y

i have two problem

1- when i turn off the wp25 i found my PH go down within 10 min
(8.11 to 7.14 ) and when i turn it ON my PH go to normal

2- about peristaltic pump gnd and power 12 V gnd and apex gnd all Connected together is it correct ?


thanks
 
can anyone help me in wiring of peristaltic pump


1428330457921.jpg


and what about the peristaltic pump gnd
power 12 V gnd


thanks
 
the peristaltic pump circuit is your standard motor driver circuit.

you connect the motor across the diode.
meaning, the 2 terminals of the peristaltic pump connect to +12v and "PeristalticPump0"
.

If you want to reverse spin direction, then reverse the connection.

There is no ground connection going to the peristaltic pump.
If you are using a stereo jack for connection, be careful not to short the terminal that normally connects to chassis ground to +12v.

I use the stereo jack to control 2 pumps. So the common contact (the contact called ring) is +12v, and the "tip" and "sleeve" contacts go to each peristaltic pump.

This circuit is what I refer to in a recent post as floating ground, compared to the pwm fan circuit that uses pnp that has an actual ground.

regarding your ph issue, I have no answer to that.</peristalticpump0>
 
Nice work. I'm playing around with the ported Arduino IDE for the ESP8266 in standalone mode. Been interesting that is for sure.

the fix they did is actually just a hack/workaround and does not actually fix the problem, it just provides a way to get out of the module hang. it will do for now, at least the module does not hang anymore.

I think the esp8266 firmware is using 2k buffer for all connections (rx,tx for all 5 sockets) and is what is causing the hang if multiple clients connect to it at the same time. Due to this, I revised the library to allow only 1 connection in server mode. There is no sram space available anyway to handle more than 1 connection at a time if the library is used on UNO.
 
the peristaltic pump circuit is your standard motor driver circuit.

you connect the motor across the diode.
meaning, the 2 terminals of the peristaltic pump connect to +12v and "PeristalticPump0"
.

If you want to reverse spin direction, then reverse the connection.

There is no ground connection going to the peristaltic pump.
If you are using a stereo jack for connection, be careful not to short the terminal that normally connects to chassis ground to +12v.

I use the stereo jack to control 2 pumps. So the common contact (the contact called ring) is +12v, and the "tip" and "sleeve" contacts go to each peristaltic pump.

This circuit is what I refer to in a recent post as floating ground, compared to the pwm fan circuit that uses pnp that has an actual ground.

regarding your ph issue, I have no answer to that.</peristalticpump0>

thanks d0ughb0y

it's work Now
 
I am almost done with esp8266 library that I am going to use with led controller. I had to take time to make sure this code is stable, as I plan to convert the chauvet16 to use the esp8266 wifi as well. And the library will be useful to anyone that use wired ethernet library to convert to wifi with just a few lines of code change.

I just got credit again for a bug report and fix is included in latest firmware.
http://bbs.espressif.com/viewtopic.php?f=5&t=398

now with the latest firmware, they added a new feature to buffer the transmit data for you. I'm debating now if I should use that or just stay with my current code where I reserve 2k of arduino memory for tx buffer.

I started coding an esp8266 firmware extension to support ssl client and server, but ran into another bug in esp8266 firmware. This is not critical so I don't have to finish this to get back to coding the led controller part.

the latest esp9366 firmware now requires 1mb flash. This means 99.9% of all esp8266 modules out there (sold on ebay and aliexpress etc) are now pretty much obsolete. So far, I only found one seller that has 2MB flash in the esp8266 module. I got it on amazon for $12 from olimex. It seems expensive compared to $5 or $6 from ebay, but the ones from ebay are now useless anyway. So I recommend to get the olimex esp8266 module now while there is still stock.
http://www.amazon.com/gp/product/B00R04ICDG/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1

olimex website sells it directly for 5.5 EUR, so folks in Europe are lucky. They charge 17EUR to ship to US, so it makes the one from amazon look like a bargain. :)
https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardware

The olimex module is done right. It has pullup to 3.3v for the gpio0, gpio2, reset, and chip_e. Which is how it should be and makes updating firmware really easy, just connect gpio0 to gnd, and momentarily connect reset to gnd, and upload new firmware using flashdownloader. And the module is also breadboard friendly. :)
 
Last edited:
Yeah, I seen that. You can still find industrial grade probes at a reasonable price. Even with a better probe this unit is about half of what an atlas would cost.
 
I think atlas cond probe can be used in saltwater because it is platinum.
You can try to find ways to reduce cost, but it is probably not worth the headache trying to get it to work. Sparkfun has the kit on backorder, though I think when they get new stock, price may be $192 instead of current $150.
FWIW, cond probe is nice to have, but most certainly not essential like temp and ph probe.
 
quick question, how can i make it so it doesnt pulse the PWM pumps durring feed mode? i just got a DC return pump and want to control the speed with controller. Thank You
 
quick question, how can i make it so it doesnt pulse the PWM pumps durring feed mode? i just got a DC return pump and want to control the speed with controller. Thank You

Right now, I think the easiest fix to this is, say you are using pump 2 for the DC pump, edit the function FeedModeON in file PWMPumps.ino to something like this

Code:
void FeedModeON() {
  uint8_t saveSREG = SREG;
  cli();
  for (int i=0;i<MAXPWMPUMPS;i++) {
    _pulseWidth[i]=2;
    _waveMode[i]=Feed;
    if (i==2)
      _level[i]=0;
    else
      _level[i]=255;  
    _syncMode[i]=_master;
  }  
  SREG=saveSREG;
}

This will force pump to to be off during feed mode.
 
quick question, how can i make it so it doesnt pulse the PWM pumps durring feed mode? i just got a DC return pump and want to control the speed with controller. Thank You

Right now, I think the easiest fix to this is, say you are using pump 2 for the DC pump, edit the function FeedModeON in file PWMPumps.ino to something like this

void FeedModeON() {
uint8_t saveSREG = SREG;
cli();
for (int i=0 ; i<maxpwmpumps;i++) {
< MAXPWMPUMPS; i++) {
_pulseWidth=2;
_waveMode=Feed;
if (i==2)
_level=0;
else
_level=255;
_syncMode=_master;
}
SREG=saveSREG;
}


This will force pump 2 to to be off during feed mode.</maxpwmpumps;i++)>
 
im stumped, i just finally got my PH stamp and I cant get it to work keeps saying ph failed
i have tried both i2c and serial this is the serial code i have

#define _PH //comment out if no ph probe or ph stamp
#define MAXPH 1 //number of ph stamps
#if !defined(_PH)
#define MAXPH 0
#endif
#define _PH1_NAME "pH"
#define _PH1_EZO false
#define _PH1_SERIAL Serial1 //you can select serial or i2c but not both
//#define _PH1_I2C 99 //default address is 99


Is this correct
 
Last edited:
im stumped, i just finally got my PH stamp and I cant get it to work keeps saying ph failed
i have tried both i2c and serial this is the serial code i have

#define _PH //comment out if no ph probe or ph stamp
#define MAXPH 1 //number of ph stamps
#if !defined(_PH)
#define MAXPH 0
#endif
#define _PH1_NAME "pH"
#define _PH1_EZO false
#define _PH1_SERIAL Serial1 //you can select serial or i2c but not both
//#define _PH1_I2C 99 //default address is 99


Is this correct


If you are able to set I2C as an option it looks like you have an ezo version, in which case in either serial or I2C, and it will say ezo on the ph board

#define _PH1_EZO true
 
Back
Top