Wave patterns

Related to the development libraries, released by Curt Binder
AnesthDoc
Posts: 17
Joined: Mon Dec 09, 2013 8:08 am

Re: Wave patterns

Post by AnesthDoc »

Great,
Appreciate your help.
ReEfnWrX
Posts: 234
Joined: Tue Nov 05, 2013 8:40 am
Location: Houston TX

Re: Wave patterns

Post by ReEfnWrX »

anesthdoc,

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)
do hour * 3600 (60 minutes * 60 seconds)

Code: Select all

if (now()%SECS_PER_DAY>=36000 && now()%SECS_PER_DAY<72000)
Image
Ademster
Posts: 144
Joined: Tue Aug 14, 2012 1:11 pm

Re: Wave patterns

Post by Ademster »

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
Image
Piper
Posts: 296
Joined: Fri Jul 20, 2012 7:13 am
Location: Oakley, CA

Re: Wave patterns

Post by Piper »

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
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Wave patterns

Post by lnevo »

The vtechmode is just an int. You can declare it like this

Code: Select all

int vtechmode;
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)
Ademster
Posts: 144
Joined: Tue Aug 14, 2012 1:11 pm

Re: Wave patterns

Post by Ademster »

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
Image
Piper
Posts: 296
Joined: Fri Jul 20, 2012 7:13 am
Location: Oakley, CA

Re: Wave patterns

Post by Piper »

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();
}
AlanM
Posts: 263
Joined: Wed Jan 01, 2014 7:26 am

Re: Wave patterns

Post by AlanM »

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?
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Wave patterns

Post by lnevo »

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.
AlanM
Posts: 263
Joined: Wed Jan 01, 2014 7:26 am

Re: Wave patterns

Post by AlanM »

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;
		}
	
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Wave patterns

Post by lnevo »

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.
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Wave patterns

Post by lnevo »

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.
AlanM
Posts: 263
Joined: Wed Jan 01, 2014 7:26 am

Re: Wave patterns

Post by AlanM »

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.
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Wave patterns

Post by lnevo »

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.
AlanM
Posts: 263
Joined: Wed Jan 01, 2014 7:26 am

Re: Wave patterns

Post by AlanM »

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?
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Wave patterns

Post by lnevo »

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...
AlanM
Posts: 263
Joined: Wed Jan 01, 2014 7:26 am

Re: Wave patterns

Post by AlanM »

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.
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Wave patterns

Post by lnevo »

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.
AlanM
Posts: 263
Joined: Wed Jan 01, 2014 7:26 am

Re: Wave patterns

Post by AlanM »

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.
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Wave patterns

Post by lnevo »

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 ;)
AlanM
Posts: 263
Joined: Wed Jan 01, 2014 7:26 am

Re: Wave patterns

Post by AlanM »

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)
User avatar
Rodasphoto
Posts: 187
Joined: Wed Apr 10, 2013 2:48 pm
Location: Athens, Ga
Contact:

Re: Wave patterns

Post by Rodasphoto »

subscribing for later use
Image
Ademster
Posts: 144
Joined: Tue Aug 14, 2012 1:11 pm

Re: Wave patterns

Post by Ademster »

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.
Adam
58 Gal
Image
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: Wave patterns

Post by Sacohen »

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.
Take a look at the code in my signature.
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%.
Ademster
Posts: 144
Joined: Tue Aug 14, 2012 1:11 pm

Re: Wave patterns

Post by Ademster »

Thanks
Adam
58 Gal
Image
saf1
Posts: 111
Joined: Thu Jun 28, 2012 1:46 pm

Re: Wave patterns

Post by saf1 »

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.
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: Wave patterns

Post by Sacohen »

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.
saf1
Posts: 111
Joined: Thu Jun 28, 2012 1:46 pm

Re: Wave patterns

Post by saf1 »

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.
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.

Thank you again.
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: Wave patterns

Post by Sacohen »

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.
saf1
Posts: 111
Joined: Thu Jun 28, 2012 1:46 pm

Re: Wave patterns

Post by saf1 »

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.
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.
Post Reply