"M950: parameter 'F' too high" - Is there a limit to fan count?
-
@dc42 Is there a limit to how many fans M950 can provision? I see I can get to F11 and after that it throws errors about F12. I didn't see this limit documented anywhere in the Gcode.
-
What firmware version are you running?
-
RRF3.01RC12
-
On which Duet?
-
Duet2 Ethernet
-
Ths current limits for Duet 2 are:
constexpr size_t MaxSensors = 32; constexpr size_t MaxHeaters = 10; // The maximum number of heaters in the machine constexpr size_t MaxMonitorsPerHeater = 3; // The maximum number of monitors per heater constexpr size_t MaxBedHeaters = 4; constexpr size_t MaxChamberHeaters = 4; constexpr int8_t DefaultBedHeater = 0; constexpr int8_t DefaultE0Heater = 1; // Index of the default first extruder heater, used only for the legacy status response constexpr size_t NumThermistorInputs = 8; constexpr size_t NumTmcDriversSenseChannels = 2; constexpr size_t MaxZProbes = 4; constexpr size_t MaxGpInPorts = 10; constexpr size_t MaxGpOutPorts = 10; constexpr size_t MinAxes = 3; // The minimum and default number of axes constexpr size_t MaxAxes = 10; // The maximum number of movement axes in the machine, usually just X, Y and Z constexpr size_t MaxDriversPerAxis = 5; // The maximum number of stepper drivers assigned to one axis constexpr size_t MaxExtruders = 7; // The maximum number of extruders constexpr size_t NumDefaultExtruders = 1; // The number of drivers that we configure as extruders by default constexpr size_t MaxAxesPlusExtruders = 12; constexpr size_t MaxHeatersPerTool = 8; constexpr size_t MaxExtrudersPerTool = 8; constexpr size_t MaxFans = 12; constexpr unsigned int MaxTriggers = 16; // Must be <= 32 because we store a bitmap of pending triggers in a uint32_t constexpr size_t MaxSpindles = 4; // Maximum number of configurable spindles
-
@dc42 said in "M950: parameter 'F' too high" - Is there a limit to fan count?:
Ths current limits for Duet 2 are:
constexpr size_t MaxSensors = 32; constexpr size_t MaxHeaters = 10; // The maximum number of heaters in the machine constexpr size_t MaxMonitorsPerHeater = 3; // The maximum number of monitors per heater constexpr size_t MaxBedHeaters = 4; constexpr size_t MaxChamberHeaters = 4; constexpr int8_t DefaultBedHeater = 0; constexpr int8_t DefaultE0Heater = 1; // Index of the default first extruder heater, used only for the legacy status response constexpr size_t NumThermistorInputs = 8; constexpr size_t NumTmcDriversSenseChannels = 2; constexpr size_t MaxZProbes = 4; constexpr size_t MaxGpInPorts = 10; constexpr size_t MaxGpOutPorts = 10; constexpr size_t MinAxes = 3; // The minimum and default number of axes constexpr size_t MaxAxes = 10; // The maximum number of movement axes in the machine, usually just X, Y and Z constexpr size_t MaxDriversPerAxis = 5; // The maximum number of stepper drivers assigned to one axis constexpr size_t MaxExtruders = 7; // The maximum number of extruders constexpr size_t NumDefaultExtruders = 1; // The number of drivers that we configure as extruders by default constexpr size_t MaxAxesPlusExtruders = 12; constexpr size_t MaxHeatersPerTool = 8; constexpr size_t MaxExtrudersPerTool = 8; constexpr size_t MaxFans = 12; constexpr unsigned int MaxTriggers = 16; // Must be <= 32 because we store a bitmap of pending triggers in a uint32_t constexpr size_t MaxSpindles = 4; // Maximum number of configurable spindles
Is there still a fan limit in firmware 3.4? I've got a duet 3 printer with several expansion boards and I'm using "fans" to control a lot of devices with relays and I've ran into the error "M950: parameter 'F' too high" on M950 F20.
-
@p8blr Can you control them as GPIO instead of as a fan?
https://docs.duet3d.com/User_manual/Reference/Gcodes#m950-create-heater-fan-spindle-or-gpioservo-pin
-
@Phaedrux I can but what object model would I use in my conditional statements such as:
if fans[6].requestedValue != 1
...Thanks.
edit: state.gpOut[6].pwm worked!