Mini 2 - Fan not working

Hi. I uploaded the latest firmware to my stock Mini 2 with Aerostruder with the Webtool and the part cooling fan only runs when set to 100%.

To be clear, I’ve tried the past 4 versions using the web firmware tool and all have the same issue.

The M106 command will not spin the fan unless you use M106 S255. anything less than S255 will not engage the fan.

My tool head is the standard “LulzBot SE Tool Head | Nickel Plated Copper | 0.5 mm”. I didn’t see that listed so chose the Aerostruder V2 version.

Just to verify, does the stock firmware (from CuraLE) M106 command behave correctly?

Hi, yes. The stock Lulzbot 2.0.9.0.12 firmware takes M106 commands correctly.

It’s a 24v fan, I wonder if it has been configured as 5v in the firmware. Do the other toolheads use 24v cooling fans?

If that were the case, then the stock firmware M106 S255 vs the Drunken Octopus M106 S255 would have noticeably different speeds. You could probably hear the difference.

Yes agree, I haven’t compared the 2 levels yet. Somehting I found in the source of the LE firmware shows that they are defining “Fast PWM” for certain machines like the Mini V2. I’m wondering if that got defined in the DO versions.

Here is the code snip from the v2 LE firmware where that gets setup:

//=============================================================================
//=============================== Extra Features ==============================
//=============================================================================

// @section extras

// Set number of user-controlled fans. Disable to use all board-defined fans.
// :[1,2,3,4,5,6,7,8]
//#define NUM_M106_FANS 1

// Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino
#if ANY(MiniV2, TAZ6, Workhorse, Sidekick_289, Sidekick_747)
#define FAST_PWM_FAN
#endif

// 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.
#if ANY(TAZPro, TAZProXT)
#define FAN_SOFT_PWM
#endif

// 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.
// :[0,1,2,3,4,5,6,7]
#define SOFT_PWM_SCALE 4

I have confirmed that it is not a PWM frequency issue. When I hook up the board to my scope, I can see the PWM signal on the LulzBot firmware, but on Drunken Octopus, the fan is simply switching on and off – there does not appear to be PWM modulation at all. It’s quite peculiar.

With release 40, the PWM seems to works and looks like the LulzBot waveform. With release 41, the PWM waveform looks questionable, but is present. With release 42, the waveform is gone, and it is either on or off.

Mostly logging these for my own records. There seem to have been several changes in Marlin regarding PWM around this time period:

These will need to be investigated to see if they are causing the problem.

The following issue seems relevant:

For anyone following this thread, this problem has been fixed in the latest Drunken Octopus release.