Wave patterns
Re: Wave patterns
Great,
Appreciate your help.
Appreciate your help.
Re: Wave patterns
anesthdoc,
Due to Lnevo's recommendations a while back I actually switched to using seconds to define time which simplifies the coding.
instead of
do hour * 3600 (60 minutes * 60 seconds)
Due to Lnevo's recommendations a while back I actually switched to using seconds to define time which simplifies the coding.
instead of
Code: Select all
if (hour()>=10 && hour()<20)
Code: Select all
if (now()%SECS_PER_DAY>=36000 && now()%SECS_PER_DAY<72000)
Re: Wave patterns
ReeferBee wrote:tomek77pl wrote:Hi Is it possible to have a both wave patters for one pump? I want it to run nutrition export for 2 hrs a day then go back into the reef crest mode. Is this possible? If yes how can this be done? Thanks
Yep you can. Which wave patterns are you trying to run, and at what times?
Here's an example. I have different modes run throughout the day.
Code: Select all
if (hour()>=8 && hour()<11) { vtechmode=6; ReefAngel.PWM.SetDaylight( TidalSwellMode(40,true) ); // Tidal Swell at 40% on sync mode ReefAngel.PWM.SetActinic( TidalSwellMode(40,false) ); // Tidal Swell at 40% on anti-sync mode } else if (hour()>=11 && hour()<12) { vtechmode=2; ReefAngel.PWM.SetDaylight( ReefCrestMode(50,20,true) ); // ReefCrest at 50% + - 20 on sync mode ReefAngel.PWM.SetActinic( ReefCrestMode(50,20,false) ); // ReefCrest at 50% + - 20 on anti-sync mode } else if (hour()>=12 && hour()<13) { vtechmode=0; ReefAngel.PWM.SetDaylight( millis()%1000>800?80:0); // WaveMode on sync mode ReefAngel.PWM.SetActinic( ElseMode(70,30,true) ); // ElseMode at 70 on anti-sync mode } else if (hour()>=13 && hour()<14) { vtechmode=2; ReefAngel.PWM.SetDaylight( ReefCrestMode(70,20,true) ); // ReefCrest at 70% + - 20 on sync mode ReefAngel.PWM.SetActinic( ReefCrestMode(70,20,false) ); // ReefCrest at 70% + - 20 on anti-sync mode } else if (hour()>=15 && hour()<18) { vtechmode=0; ReefAngel.PWM.SetDaylight( ElseMode(70,30,true) ); // Else on sync mode ReefAngel.PWM.SetActinic( millis()%1000>800?80:0); // Wave on anti-sync mode } else if (hour()>=18 && hour()<21) { vtechmode=5; ReefAngel.PWM.SetDaylight( NutrientTransportMode(77,90,3000,true) ); // Nutrient Transport on sync mode ReefAngel.PWM.SetActinic( NutrientTransportMode(77,90,3000,false) ); // Nutrient Transport on anti-sync mode } else if (hour()>=21 && hour()<24) { vtechmode=1; ReefAngel.PWM.SetDaylight( millis()%1000>800?70:0); // Wave on sync mode ReefAngel.PWM.SetActinic( ElseMode(70,30,true) ); // Else on anti-sync mode } else { vtechmode=4; ReefAngel.PWM.SetDaylight( LongPulseMode(40,40,10,true) ); // Long pulse at 40% with 10s pulse on syncy mode ReefAngel.PWM.SetActinic( LongPulseMode(40,40,10,false) ); // Long pulse at 40% with 10s pulse on on anti-sync mode } if (ReefAngel.DisplayedMenu==FEEDING_MODE) { ReefAngel.PWM.SetActinic(0); ReefAngel.PWM.SetDaylight(0); } if (ReefAngel.DisplayedMenu==WATERCHANGE_MODE) { ReefAngel.PWM.SetActinic(0); ReefAngel.PWM.SetDaylight(0); }
I tried Using this code to test it out see how I like it. but I get an error vtechmode was not declared in this scope. I am using a single jaebo wp-10. I am going to use it on the daylight channel. I deleted all actinic code. but with or with out deleting the actinic channel the error happens.
Adam
58 Gal
58 Gal
Re: Wave patterns
Get rid of the vtechmode variable in the code you posted. You didn't post your full code so I'm just guessing here but I'm betting you're not using the vtechmode mode anywhere as you haven't defined it.
If that doesn't help, post your full code to better assist you.
~Charlie
If that doesn't help, post your full code to better assist you.
~Charlie
Re: Wave patterns
The vtechmode is just an int. You can declare it like this
You can put this in between the comments for global variables. This can now be used if you have a DrawCustomMain() function so you can display what mode your in...
Or as Piper suggested you can just remove the lines that have vtechmode (or comment them)
Code: Select all
int vtechmode;
Or as Piper suggested you can just remove the lines that have vtechmode (or comment them)
Re: Wave patterns
I haven't uploaded to this code yet, but this is what I want to use. but eliminate all of the actinic code. I am only using one pump at the moment. I will probably buy another wp-10 soon...
Code: Select all
#include <ReefAngel_Features.h>
#include <Globals.h>
#include <RA_Wifi.h>
#include <Wire.h>
#include <OneWire.h>
#include <Time.h>
#include <DS1307RTC.h>
#include <InternalEEPROM.h>
#include <RA_NokiaLCD.h>
#include <RA_ATO.h>
#include <RA_Joystick.h>
#include <LED.h>
#include <RA_TempSensor.h>
#include <Relay.h>
#include <RA_PWM.h>
#include <Timer.h>
#include <Memory.h>
#include <InternalEEPROM.h>
#include <RA_Colors.h>
#include <RA_CustomColors.h>
#include <Salinity.h>
#include <RF.h>
#include <IO.h>
#include <ORP.h>
#include <AI.h>
#include <PH.h>
#include <WaterLevel.h>
#include <Humidity.h>
#include <DCPump.h>
#include <ReefAngel.h>
////// Place global variable code below here
////// Place global variable code above here
void setup()
{
// This must be the first line
ReefAngel.Init(); //Initialize controller
ReefAngel.Use2014Screen(); // Let's use 2014 Screen
ReefAngel.AddSalinityExpansion(); // Salinity Expansion Module
ReefAngel.AddWaterLevelExpansion(); // Water Level Expansion Module
// Ports toggled in Feeding Mode
ReefAngel.FeedingModePorts = Port1Bit | Port2Bit;
// Ports toggled in Water Change Mode
ReefAngel.WaterChangePorts = Port1Bit | Port2Bit;
// Ports toggled when Lights On / Off menu entry selected
ReefAngel.LightsOnPorts = 0;
// Ports turned off when Overheat temperature exceeded
ReefAngel.OverheatShutoffPorts = Port3Bit;
// Use T1 probe as temperature and overheat functions
ReefAngel.TempProbe = T1_PROBE;
ReefAngel.OverheatProbe = T1_PROBE;
// Feeeding and Water Change mode speed
ReefAngel.DCPump.FeedingSpeed=0;
ReefAngel.DCPump.WaterChangeSpeed=0;
// Ports that are always on
ReefAngel.Relay.On( Port1 );
ReefAngel.Relay.On( Port4 );
ReefAngel.Relay.On( Port6 );
ReefAngel.Relay.On( Port7 );
ReefAngel.Relay.On( Port8 );
ReefAngel.Relay.On( Box1_Port1 );
////// Place additional initialization code below here
////// Place additional initialization code above here
}
void loop()
{
ReefAngel.Relay.DelayedOn( Port2 );
ReefAngel.StandardHeater( Port3 );
ReefAngel.Wavemaker1( Port5 );
ReefAngel.StandardATO( Box1_Port2 );
ReefAngel.CO2Control( Box1_Port3 );
ReefAngel.PHControl( Box1_Port4 );
ReefAngel.PWM.Channel0PWMSlope();
ReefAngel.PWM.Channel1PWMSlope();
ReefAngel.PWM.Channel2PWMSlope();
ReefAngel.PWM.Channel3PWMSlope();
ReefAngel.DCPump.UseMemory = true;
ReefAngel.DCPump.DaylightChannel = Sync;
ReefAngel.DCPump.ActinicChannel = None;
ReefAngel.DCPump.ExpansionChannel[0] = None;
ReefAngel.DCPump.ExpansionChannel[1] = None;
ReefAngel.DCPump.ExpansionChannel[2] = None;
ReefAngel.DCPump.ExpansionChannel[3] = None;
ReefAngel.DCPump.ExpansionChannel[4] = None;
ReefAngel.DCPump.ExpansionChannel[5] = None;
////// Place your custom code below here
if (hour()>=8 && hour()<11)
{
vtechmode=6;
ReefAngel.PWM.SetDaylight( TidalSwellMode(40,true) ); // Tidal Swell at 40% on sync mode
}
else if (hour()>=11 && hour()<12)
{
vtechmode=2;
ReefAngel.PWM.SetDaylight( ReefCrestMode(50,20,true) ); // ReefCrest at 50% + - 20 on sync mode
}
else if (hour()>=12 && hour()<13)
{
vtechmode=0;
ReefAngel.PWM.SetDaylight( millis()%1000>800?80:0); // WaveMode on sync mode
}
else if (hour()>=13 && hour()<14)
{
vtechmode=2;
ReefAngel.PWM.SetDaylight( ReefCrestMode(70,20,true) ); // ReefCrest at 70% + - 20 on sync mode
}
else if (hour()>=15 && hour()<18)
{
vtechmode=0;
ReefAngel.PWM.SetDaylight( ElseMode(70,30,true) ); // Else on sync mode
}
else if (hour()>=18 && hour()<21)
{
vtechmode=5;
ReefAngel.PWM.SetDaylight( NutrientTransportMode(77,90,3000,true) ); // Nutrient Transport on sync mode
}
else if (hour()>=21 && hour()<24)
{
vtechmode=1;
ReefAngel.PWM.SetDaylight( millis()%1000>800?70:0); // Wave on sync mode
}
else
{
vtechmode=4;
ReefAngel.PWM.SetDaylight( LongPulseMode(40,40,10,true) ); // Long pulse at 40% with 10s pulse on syncy mode
}
if (ReefAngel.DisplayedMenu==FEEDING_MODE)
{
ReefAngel.PWM.SetDaylight(0);
}
if (ReefAngel.DisplayedMenu==WATERCHANGE_MODE)
{
ReefAngel.PWM.SetDaylight(0);
}
////// Place your custom code above here
// This should always be the last line
ReefAngel.Portal( "ademster" );
ReefAngel.ShowInterface();
}
Adam
58 Gal
58 Gal
Re: Wave patterns
Try this code if you haven't already got this sorted out. I did not test it but it should compile OK.
Code: Select all
#include <ReefAngel_Features.h>
#include <Globals.h>
#include <RA_Wifi.h>
#include <Wire.h>
#include <OneWire.h>
#include <Time.h>
#include <DS1307RTC.h>
#include <InternalEEPROM.h>
#include <RA_NokiaLCD.h>
#include <RA_ATO.h>
#include <RA_Joystick.h>
#include <LED.h>
#include <RA_TempSensor.h>
#include <Relay.h>
#include <RA_PWM.h>
#include <Timer.h>
#include <Memory.h>
#include <InternalEEPROM.h>
#include <RA_Colors.h>
#include <RA_CustomColors.h>
#include <Salinity.h>
#include <RF.h>
#include <IO.h>
#include <ORP.h>
#include <AI.h>
#include <PH.h>
#include <WaterLevel.h>
#include <Humidity.h>
#include <DCPump.h>
#include <ReefAngel.h>
////// Place global variable code below here
////// Place global variable code above here
void setup()
{
// This must be the first line
ReefAngel.Init(); //Initialize controller
ReefAngel.Use2014Screen(); // Let's use 2014 Screen
ReefAngel.AddSalinityExpansion(); // Salinity Expansion Module
ReefAngel.AddWaterLevelExpansion(); // Water Level Expansion Module
// Ports toggled in Feeding Mode
ReefAngel.FeedingModePorts = Port1Bit | Port2Bit;
// Ports toggled in Water Change Mode
ReefAngel.WaterChangePorts = Port1Bit | Port2Bit;
// Ports toggled when Lights On / Off menu entry selected
ReefAngel.LightsOnPorts = 0;
// Ports turned off when Overheat temperature exceeded
ReefAngel.OverheatShutoffPorts = Port3Bit;
// Use T1 probe as temperature and overheat functions
ReefAngel.TempProbe = T1_PROBE;
ReefAngel.OverheatProbe = T1_PROBE;
// Feeding and Water Change mode speed
ReefAngel.DCPump.FeedingSpeed=0;
ReefAngel.DCPump.WaterChangeSpeed=0;
// Ports that are always on
ReefAngel.Relay.On( Port1 );
ReefAngel.Relay.On( Port4 );
ReefAngel.Relay.On( Port6 );
ReefAngel.Relay.On( Port7 );
ReefAngel.Relay.On( Port8 );
ReefAngel.Relay.On( Box1_Port1 );
////// Place additional initialization code below here
////// Place additional initialization code above here
}
void loop() {
ReefAngel.Relay.DelayedOn( Port2 );
ReefAngel.StandardHeater( Port3 );
ReefAngel.Wavemaker1( Port5 );
ReefAngel.StandardATO( Box1_Port2 );
ReefAngel.CO2Control( Box1_Port3 );
ReefAngel.PHControl( Box1_Port4 );
ReefAngel.PWM.Channel0PWMSlope();
ReefAngel.PWM.Channel1PWMSlope();
ReefAngel.PWM.Channel2PWMSlope();
ReefAngel.PWM.Channel3PWMSlope();
ReefAngel.DCPump.UseMemory = true;
ReefAngel.DCPump.DaylightChannel = Sync;
ReefAngel.DCPump.ActinicChannel = None;
ReefAngel.DCPump.ExpansionChannel[0] = None;
ReefAngel.DCPump.ExpansionChannel[1] = None;
ReefAngel.DCPump.ExpansionChannel[2] = None;
ReefAngel.DCPump.ExpansionChannel[3] = None;
ReefAngel.DCPump.ExpansionChannel[4] = None;
ReefAngel.DCPump.ExpansionChannel[5] = None;
////// Place your custom code below here
if (hour()>=8 && hour()<11) {
ReefAngel.PWM.SetDaylight( TidalSwellMode(40,true) ); // Tidal Swell at 40% on sync mode
}
else if (hour()>=11 && hour()<12) {
ReefAngel.PWM.SetDaylight( ReefCrestMode(50,20,true) ); // ReefCrest at 50% + - 20 on sync mode
}
else if (hour()>=12 && hour()<13) {
ReefAngel.PWM.SetDaylight( millis()%1000>800?80:0); // WaveMode on sync mode
}
else if (hour()>=13 && hour()<14) {
ReefAngel.PWM.SetDaylight( ReefCrestMode(70,20,true) ); // ReefCrest at 70% + - 20 on sync mode
}
else if (hour()>=15 && hour()<18) {
ReefAngel.PWM.SetDaylight( ElseMode(70,30,true) ); // Else on sync mode
}
else if (hour()>=18 && hour()<21) {
ReefAngel.PWM.SetDaylight( NutrientTransportMode(77,90,3000,true) ); // Nutrient Transport on sync mode
}
else if (hour()>=21 && hour()<24) {
ReefAngel.PWM.SetDaylight( millis()%1000>800?70:0); // Wave on sync mode
}
else {
ReefAngel.PWM.SetDaylight( LongPulseMode(40,40,10,true) ); // Long pulse at 40% with 10s pulse on sync mode
}
if (ReefAngel.DisplayedMenu==FEEDING_MODE) {
ReefAngel.PWM.SetDaylight(0);
}
if (ReefAngel.DisplayedMenu==WATERCHANGE_MODE) {
ReefAngel.PWM.SetDaylight(0);
}
////// Place your custom code above here
// This should always be the last line
ReefAngel.Portal("ademster");
ReefAngel.ShowInterface();
}
Re: Wave patterns
I'm making some changes to Globals.cpp, and I'm tempted to change ReefCrest, NutrientTransport and the rest to return a speed constrained to x=0 or 30<x<=100 because I'm running the Tunze and Jebao pumps on it.
This would let them go to 0 when called for, but would just round down to 0 at speed values of 15 or less and up to 30 at values of 15 or more.
What does anyone think of this?
This would let them go to 0 when called for, but would just round down to 0 at speed values of 15 or less and up to 30 at values of 15 or more.
What does anyone think of this?
Re: Wave patterns
You could wrap it in a map function. I would put the constraint functionality into the dcpump class. I've also been meaning to add a factor in for each channel so you could change the threshold for different styles of pumps.
Re: Wave patterns
OK. Since I'd thought about it as a kind of coarse rounding for values below 30 I was going to do it like this in the Globals.cpp functions. The point about different thresholds for different pumps is a good one. I had heard that Tunze and Jebao were all 30. I don't know any other models for those thresholds. Are there others?
Code: Select all
if (PulseSync)
{
if (speed <= 15)
{
return = 0;
}
else if ((speed > 15) && (speed < 30))
{
return 30;
}
else
{
return speed;
}
}
else
{
if (anti_speed <= 15)
{
return = 0;
}
else if ((anti_speed > 15) && (anti_speed < 30))
{
return 30;
}
else
{
return anti_speed;
}
Re: Wave patterns
But I'm using those functions with my Vortech or someone may want to use it with leds or something we havent tbought of. Plus the thresholds on some jaebo is 20 something.
Re: Wave patterns
Thats why doing it in the class where you can persistently define what is the threshold and doing the remapping there instead of in the global generic function.
Re: Wave patterns
Ah, got it. I didn't realize that people were directly driving their vortech speeds with the RA. I figured you'd just tell the WES controller to flip you to a different mode with given parameters.
Re: Wave patterns
I could but i could also use one of the RA modes or custom functions like ElseMode and one the bhazard did that I setup as custom functions. I can also do each channel individually letting me change which pump is sync anti sync on the fly. I also added an offset so I can change the power level of the anti sync pump.
Re: Wave patterns
OK, so if I added in a Threshold value in DCPump.cpp (and .h of course) for each possible pump, Daylight, Actinic, LowATO, 6 Expansions, and 16 extra Expansions, I would have to look for those thresholds in the ReefAngel.cpp and constrain what the calls to the wave modes give out when calling the SetDaylight, SetChannel, etc. methods. I'd probably add a function in Globals that returns 0 or threshold->max when given a value and just call that one each time.
I understand that the values set in DCPump.DaylightChannnel are booleans that are Sync or AntiSync, so 0 or 1, and I see that each call in ReefAngel.cpp subtracts one from those values, what is the -1 for in those calls to wave modes?
I understand that the values set in DCPump.DaylightChannnel are booleans that are Sync or AntiSync, so 0 or 1, and I see that each call in ReefAngel.cpp subtracts one from those values, what is the -1 for in those calls to wave modes?
Re: Wave patterns
I think because sync is 1 and anti sync is 2 and therefore the -1 brings it to 0 and 1 which correspond to true/false
Btw roberto not sure bools actually save any space as i think arduino stores bools as a byte...
Btw roberto not sure bools actually save any space as i think arduino stores bools as a byte...
Re: Wave patterns
I submitted a pull request to include my PWM profile and also ElseMode since lots of people are using it. However, I see that in the ReefAngel.cpp there is a switch statement that figures out the different modes set in the DCPump classes. Where are those modes defined? I can't find them. In the process of prowling more code I'm finding more dependencies in different places.
Re: Wave patterns
The modes are defined in the Globals.h
The case statements match the "Vortech" modes that are listed in the Portal. For any new modes, you'd use the "Custom" mode that's defined in the portal and then handle the condition in your INO.
The case statements match the "Vortech" modes that are listed in the Portal. For any new modes, you'd use the "Custom" mode that's defined in the portal and then handle the condition in your INO.
Re: Wave patterns
Oh really? OK. I get it, I think.
Sounds like adding ElseMode to the DCPump class is a bit more complicated than just including it in that switch/case statement because it wouldn't work to just make a #define ElseMode 7 line in there. I'd leave ElseMode out of my copy of ReefAngel.cpp and DCPump.Mode until figuring it out.
Sounds like adding ElseMode to the DCPump class is a bit more complicated than just including it in that switch/case statement because it wouldn't work to just make a #define ElseMode 7 line in there. I'd leave ElseMode out of my copy of ReefAngel.cpp and DCPump.Mode until figuring it out.
Re: Wave patterns
Yeah, find the modes that are defined in Globals.h because the first available may not be until after 11 or 12... I think there are some that apply to the Radions. Not sure that's really a conflict. I dont' think there's anythign that would prevent it from being added into the code, except that if we wanted to advertise the support for it, it would need to be added in the portal. That's really a chicken and the egg discussion though... but if you build it they will come.. so they say
Re: Wave patterns
OK. Can look in to adding it there some more. My pull requests are in and seem to be fairly simple and compile for me, at least. 8)
- Rodasphoto
- Posts: 187
- Joined: Wed Apr 10, 2013 2:48 pm
- Location: Athens, Ga
- Contact:
Re: Wave patterns
subscribing for later use
Re: Wave patterns
how do I code all of the different pump options to cycle randomly. but also during feed mode to drop to 15 % .
running a wp-25 will be connected to the relay box dimming port.
running a wp-25 will be connected to the relay box dimming port.
Adam
58 Gal
58 Gal
Re: Wave patterns
Take a look at the code in my signature.Ademster wrote:how do I code all of the different pump options to cycle randomly. but also during feed mode to drop to 15 % .
running a wp-25 will be connected to the relay box dimming port.
lnevo helped me with exactly what I think you want to do.
The only difference is I'm using 2 pumps on Anti-Sync rather than 1 pump.
I have my drop to 0% during feed and 30% at night.
I think 15% is to low for the pumps. The Jebao have a minimum speed and when they go below that they will not ramp back up unless you pull the power to them and plug them back in.
I've found the WP-40 to be 25% and the WP-25 to be 30%.
Re: Wave patterns
Older thread I know but had a quick question or two after reading it. I'm considering picking up two Jebao wave makers but not sure if the model is correct or will work with the Jebao/Speedwave cable offered here.
It seems there is the standard WP series and now a RW series. Which version does the reef angel controller support? I just wanted to be sure so I order the correct one. I have two open ports I believe on my expansion or at least one there and then the original on the relay box that isn't used.
One cable per power head I'm assuming? I have a 40 breeder that has 4 power heads in there now and I'd like to clean things up a bit so wanted to run a pair and see how this wave pattern code works out. After reading it, it looks pretty neat.
Thanks for any help and or assistance. I'm guessing the WP 40's may be ok or just buy the larger one, WP 60, and re-use when I finally get a large tank. I am hoping the cable works with the RW series since it seems they do not clog as bad and have a few more settings.
It seems there is the standard WP series and now a RW series. Which version does the reef angel controller support? I just wanted to be sure so I order the correct one. I have two open ports I believe on my expansion or at least one there and then the original on the relay box that isn't used.
One cable per power head I'm assuming? I have a 40 breeder that has 4 power heads in there now and I'd like to clean things up a bit so wanted to run a pair and see how this wave pattern code works out. After reading it, it looks pretty neat.
Thanks for any help and or assistance. I'm guessing the WP 40's may be ok or just buy the larger one, WP 60, and re-use when I finally get a large tank. I am hoping the cable works with the RW series since it seems they do not clog as bad and have a few more settings.
Re: Wave patterns
I have not seen the RW series personally, but I believe it is the same connection as the WP pumps.
Yes 1 cable per power head without some modifications.
2 60's in a 40 gallon is way to much power.
Go with 2 40's.
I actually had a 40 and 25 running in my 55 gallon and even then they were at 50% speed.
Yes 1 cable per power head without some modifications.
2 60's in a 40 gallon is way to much power.
Go with 2 40's.
I actually had a 40 and 25 running in my 55 gallon and even then they were at 50% speed.
Re: Wave patterns
Thanks for the information. Yeah, I figured they would be too high and would need to be turned down. I was thinking, incorrectly it sounds like, that I could just power them down then reuse in a larger tank later. From what you are saying in regards to their power two 40's it is. Plus I will save a few bucks to spend on the cables.Sacohen wrote:I have not seen the RW series personally, but I believe it is the same connection as the WP pumps.
Yes 1 cable per power head without some modifications.
2 60's in a 40 gallon is way to much power.
Go with 2 40's.
I actually had a 40 and 25 running in my 55 gallon and even then they were at 50% speed.
Thank you again.
Re: Wave patterns
Personally it think the 60's even powered down will be to strong for a 40 gallon.
The Jebao WP pumps had an issue that they would lock up if they went below a certain percentage.
With the WP-40's it seemed to be 30% and with the WP 25's it seemed to be 25% (or I have that reversed).
Maybe I misunderstood you or you misunderstood me. but you need 1 Jebao cable for each of the pumps.
It may be able to be done with 1 cable, but you would have to modify the cable quite a bit and it wouldn't be worth it.
The Jebao WP pumps had an issue that they would lock up if they went below a certain percentage.
With the WP-40's it seemed to be 30% and with the WP 25's it seemed to be 25% (or I have that reversed).
Maybe I misunderstood you or you misunderstood me. but you need 1 Jebao cable for each of the pumps.
It may be able to be done with 1 cable, but you would have to modify the cable quite a bit and it wouldn't be worth it.
Re: Wave patterns
Nope, you explained it perfectly and I'll be ordering two cables You also helped me with regards to the power. So al is well and thank you again.Sacohen wrote:Personally it think the 60's even powered down will be to strong for a 40 gallon.
The Jebao WP pumps had an issue that they would lock up if they went below a certain percentage.
With the WP-40's it seemed to be 30% and with the WP 25's it seemed to be 25% (or I have that reversed).
Maybe I misunderstood you or you misunderstood me. but you need 1 Jebao cable for each of the pumps.
It may be able to be done with 1 cable, but you would have to modify the cable quite a bit and it wouldn't be worth it.