Welcome! Log In Create A New Profile

Advanced

Ramps 1.4 24v part cooling fan minimum start speed in Marlin

Posted by chilicoke 
Ramps 1.4 24v part cooling fan minimum start speed in Marlin
August 01, 2018 09:15PM
Hi, I'm building my Frankenstein test machine running on Ramps 1.4, 24v, and Marlin 1.1.8.

On my 24v part cooling fan, anything below 90/255 on the PWM fan control the fans just make whine noises and not spin, 100/255 will finally kick them over at fairly high speed, once spinning I can dial the fans down to as low as 30/255 for less air flow.

My Taz 5 (that also runs 24v) used to have the same problem, but after it was updated to Marlin 1.1.5 by Lulzbot fans are able be controlled linearly across speed range, however Lulzbot does not publicly publish uncomplicated firmware so I am unable to look through and try to replicate it on my Ramps 1.1.8.

What do I have to change to get full speed control of my 24v fans?

Thanks
Re: Ramps 1.4 24v part cooling fan minimum start speed in Marlin
August 02, 2018 03:25AM
This may not be of any help, but it may also be tongue sticking out smiley

You seem to say that if you set the start PWM of the cooling fans to, say 50PWM, the fan(s) don't turn?
If that is the case, what happens if you manually give them a 'nudge', just to help them get going... do they continue to spin afterwards?
Re: Ramps 1.4 24v part cooling fan minimum start speed in Marlin
August 02, 2018 03:43AM
most likely this is just the fans... your previous example is an anomaly

Some have had luck adding a small capacitor across the back of fans to make them play nice with PWM.
Re: Ramps 1.4 24v part cooling fan minimum start speed in Marlin
August 02, 2018 11:34AM
Quote
v1talogy
If that is the case, what happens if you manually give them a 'nudge', just to help them get going... do they continue to spin afterwards?
Yes given a little nudge they do start to spin just fine, seems like at 24v (and 24v volt fans) do require more initial power to get them spinning.

Quote
Dust
most likely this is just the fans... your previous example is an anomaly

Some have had luck adding a small capacitor across the back of fans to make them play nice with PWM.
Actually I have both Taz 5/6, Lulzbot definitely went through a few different cheaper/inferior fans before switching to Pelonis fans on the Taz 6 that are much more expensive, and yes they do have the lowest starting PWM compared to past fans. I've also built many different print heads for my Taz 5/6 (Volcano, etc) and have used many different 12/24v fans, 12v with diode definitely have lower starting PWM than the 24v fans.

My Taz 6 had always had full linear PWM fan range where as my Taz 5 didn't, and I've always just assumed the difference was in the nicer fans, but the same print head/fans on the same Taz 5 now with "latest updated" Marlin 1.1.5 does have full PWM range.

I'm experimenting different range of parts on this test printer I'm building to gain knowledge/experience for my future builds, and they most likely will all be 24v, so I would like to figure out how Lulzbot did it.

Thanks for the replies.

EDIT:
My account just got approved at code.alephobjects.com and I took a look at their Configuration.h and see that they are using #define FAST_PWM_FAN:
// Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino
#if defined(LULZBOT_FAST_PWM_FAN)
#define FAST_PWM_FAN
#endif

and under Conditionals_LulzBot.h
/****************************** FAN CONFIGURATION ******************************/
 
 // For the Pelonis C4010L24BPLB1b-7 fan, we need a relative low
 // PWM frequency of about 122Hz in order for the fan to turn.
 // By default, FAST_PWM_FAN appears to PWM at ~31kHz, but if we
 // set a prescale of 4, it divides this by 256 to get us down to
 // the frequency we need.
 
 #define LULZBOT_FAST_PWM_FAN
 #define LULZBOT_FAST_PWM_SCALE                    4
 
 #define LULZBOT_FAN_KICKSTART_TIME              100
 #define LULZBOT_FAN_MIN_PWM                      70
 
 #define LULZBOT_USE_CONTROLLER_FAN
 #if defined(LULZBOT_IS_MINI)
     // The Mini fan runs rather loud at full speed.
     #define LULZBOT_CONTROLLERFAN_SPEED         120
-#else
+#elif defined(LULZBOT_IS_TAZ)
     #define LULZBOT_CONTROLLERFAN_SPEED         255
 #endif
 
 // As of Marlin 1.1.5, FAST_PWM_FAN adjusts the frequencies for
 // all fans except the controller fan. This workaround allows
 // the controller fan PWM freq to be adjusted to 122Hz (this
 // may not be necessary, but since the Pelonis fan likes 122Hz,
 // we are trying to keep all the fan frequencies at that).
 #define LULZBOT_FAST_PWM_CONTROLLER_FAN_WORKAROUND



I'm not very familiar with programing and have basic understanding of #define, how would I go about implementing this into my own Marlin?

Thanks again.

Edited 3 time(s). Last edit at 08/02/2018 12:20PM by chilicoke.
Re: Ramps 1.4 24v part cooling fan minimum start speed in Marlin
August 02, 2018 04:41PM
I will most likely just repeat what you already know, sorry about that smiling smiley

I think that with a higher voltage input to the fans a higher torque is being produced within each coil, as opposed to 12V. So the fan requires more force to 'switch' from one coil to the next.
So with an incorrect (I am not sure what that would entail) starting frequency the transition happens too fast (or uneven) and you end up with a 'stuck' fan. Once the fans turns it will spin at lower frequencies because of inertia.

So at least you know that this seems to be the problem.

With respect to the #define: are you using the " Conditionals_LulzBot.h" file in your Marlin FW? If there is no comment '//' symbol before the #define then it will be used within the FW.

To be honest I am not sure how the LulzBot FW setup works. In fact, I have no idea. But I would suggest to simply add the following line in your Configuration.h file (somewhere close to the "Extra Features" section):

#define LULZBOT_FAST_PWM_FAN

Just make sure it is above the following code:
// Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino
#if defined(LULZBOT_FAST_PWM_FAN)
#define FAST_PWM_FAN
#endif
If this is defined then, as far as your Configuration.h file is concerned, the PWM changes will be implemented. It may affect the normal operation... I don't know, as I do not know how the code is implemented into the Marlin FW.
Having said that I should probably never have replied to you comment in the first place. But maybe simply adding the suggested code solves the problem (if implementing the FAST_PWM_FAN is the solution).

Do note that there are standard settings in the Configuration.h files (in bold) that you could play around with, in which case you may not need to use the LuzlBot file(?):
// Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino
//#define FAST_PWM_FAN

// Use software PWM to drive the fan, as for the heaters. This uses a very low frequency
// which is not as annoying as with the hardware PWM. On the other hand, if this frequency
// is too low, you should also increment SOFT_PWM_SCALE.
//#define FAN_SOFT_PWM

// Incrementing this by 1 will double the software PWM frequency,
// affecting heaters, and the fan if FAN_SOFT_PWM is enabled.
// However, control resolution will be halved for each increment;
// at zero value, there are 128 effective control positions.
#define SOFT_PWM_SCALE 0

Edited 1 time(s). Last edit at 08/02/2018 04:45PM by v1talogy.
Sorry, only registered users may post in this forum.

Click here to login