EvilleRock
Well-known member
Is there an input available to use for fan speed on the EBB36?
Are you asking about a hardware PWM? No I don't think that is an option and depending on the fan a software PWM might not work.Is there an input available to use for fan speed on the EBB36?
I wasn't at all clear in my original question. I tried to clarify in a reply on this thread.Are you asking about a hardware PWM? No I don't think that is an option and depending on the fan a software PWM might not work.
Thanks so much for all the effort that you put into your reply. You've answered questions that I didn't even know I had yet. I'll be sure to refer back to this thread as I Incorporate a fan with tach feedback into a Stealth Burner.To be clear a tachometer (RPM) and PWM are not the same thing.
PWM:
There are two types of PWM a hardware based and a software based.
Software PWM is controller through the OS scheduler, in this case klipper/linux. Hardware pwm uses a dedicated source like a DMA. Not all devices are designed to tolerate a software PWM especially when timings can vary based on the host controllers load, servos are a good example of not generally being tolerant of software pwm.
If you are looking to change the speed you can do that depending how you are calling out the hotend fan with in your klipper config.
If you label your hotend fan as a [heater_fan my_fan_name] then the best you can do is define fan_speed variable 0.0x to 1.0 to make it a constant speed. The max_power variable in my experience can only be 1.0 or the klipper sanity check stops start up. I am not a config guru.
I can't remember if you must define a heater_fan for your hotend. I know you can do some fancy stuff with klipper like call out a dummy pin and then mirror whatever input/output the dummy pin is getting to a different pin/fan type, my water cooled printer does something similar on it's forked version of klipper, but I haven't investigated that much, no need yet.
TACH:
For a tachometer yes, that is possible I used it (past tense it's borked right now) on my setup. You will need to use one of the spare pins and set it for a pull up or pull down and connect your fan's tachometer (RPM) wire to it.
I have an issue where my tachometer sense wire connected to a pin (PB3) on the EBB36 (I2C port) stopped listening to the tach pulse and back fed voltage spinning the fan even when off Or at least I assume that's what happened). I need to look at the schematic for the EBB again and double check which pins I should be using for the 2 different fans, I might have picked one that is feeding voltage. So YMMV! Maybe someone with electrical engineering experience can tell me what I did wrong. Now I don't get a tach signal showing in mainsail. I haven't revisited this.
When I do revisit this next week I will be using PB8 the sensor pin for the probe port to do the tachometer sensing as it has a 4.7k resistor and is 3.3v...
To use the tachometer you need to attach that fan wire to whatever pin you are going to use and then define it in the klipper config for that fan like below. You might need to define a resistor, and figure out if your pulling up with a ^ or pulling down with a ~ , etc.
tachometer_pin: ^EBBCan: YourPinHere
# Tachometer input pin for monitoring fan speed. A pullup is generally
# required. This parameter is optional.
tachometer_ppr: 2
# When tachometer_pin is specified, this is the number of pulses per
# revolution of the tachometer signal. For a BLDC fan this is
# normally half the number of poles. The default is 2.
tachometer_poll_interval: 0.0015
# When tachometer_pin is specified, this is the polling period of the
# tachometer pin, in seconds. The default is 0.0015, which is fast
# enough for fans below 10000 RPM at 2 PPR. This must be smaller than
# 30/(tachometer_ppr*rpm), with some margin, where rpm is the
# maximum speed (in RPM) of the fan.
Attached is the 1.1/1.2 schematic showing the bltouch, i2c and endstop ports that seemed easiest to tap for a tach. signal.
Thanks for the reply. The rewiring doesn't scare me even though I don't enjoy working 30 awg wire (or what ever tiny size it is).Most fans today are speed controlled via PWM of the power to the fan without using a dedicated PWM wire. The EGG36 supports that method. Certain fans have either a tachometer output wire that reads speed or an alarm if the fan stops. The EBB 36 has multiple I/O pins that could likely be repurposed to be inputs for that purpose but if the fan comes with 3-wire connections they will have to be re-wired.
I had a similar issue hooking up the tachometer pin (with pullup) to the PB6 pin or the PB3 pin on a BTT EBB36 board. It would run the fan constantly and using the PB6 pin killed the board.To be clear a tachometer (RPM) and PWM are not the same thing.
PWM:
There are two types of PWM a hardware based and a software based.
Software PWM is controller through the OS scheduler, in this case klipper/linux. Hardware pwm uses a dedicated source like a DMA. Not all devices are designed to tolerate a software PWM especially when timings can vary based on the host controllers load, servos are a good example of not generally being tolerant of software pwm.
If you are looking to change the speed you can do that depending how you are calling out the hotend fan with in your klipper config.
If you label your hotend fan as a [heater_fan my_fan_name] then the best you can do is define fan_speed variable 0.0x to 1.0 to make it a constant speed. The max_power variable in my experience can only be 1.0 or the klipper sanity check stops start up. I am not a config guru.
I can't remember if you must define a heater_fan for your hotend. I know you can do some fancy stuff with klipper like call out a dummy pin and then mirror whatever input/output the dummy pin is getting to a different pin/fan type, my water cooled printer does something similar on it's forked version of klipper, but I haven't investigated that much, no need yet.
TACH:
For a tachometer yes, that is possible I used it (past tense it's borked right now) on my setup. You will need to use one of the spare pins and set it for a pull up or pull down and connect your fan's tachometer (RPM) wire to it.
I have an issue where my tachometer sense wire connected to a pin (PB3) on the EBB36 (I2C port) stopped listening to the tach pulse and back fed voltage spinning the fan even when off Or at least I assume that's what happened). I need to look at the schematic for the EBB again and double check which pins I should be using for the 2 different fans, I might have picked one that is feeding voltage. So YMMV! Maybe someone with electrical engineering experience can tell me what I did wrong. Now I don't get a tach signal showing in mainsail. I haven't revisited this.
When I do revisit this next week I will be using PB8 the sensor pin for the probe port to do the tachometer sensing as it has a 4.7k resistor and is 3.3v...
To use the tachometer you need to attach that fan wire to whatever pin you are going to use and then define it in the klipper config for that fan like below. You might need to define a resistor, and figure out if your pulling up with a ^ or pulling down with a ~ , etc.
tachometer_pin: ^EBBCan: YourPinHere
# Tachometer input pin for monitoring fan speed. A pullup is generally
# required. This parameter is optional.
tachometer_ppr: 2
# When tachometer_pin is specified, this is the number of pulses per
# revolution of the tachometer signal. For a BLDC fan this is
# normally half the number of poles. The default is 2.
tachometer_poll_interval: 0.0015
# When tachometer_pin is specified, this is the polling period of the
# tachometer pin, in seconds. The default is 0.0015, which is fast
# enough for fans below 10000 RPM at 2 PPR. This must be smaller than
# 30/(tachometer_ppr*rpm), with some margin, where rpm is the
# maximum speed (in RPM) of the fan.
Attached is the 1.1/1.2 schematic showing the bltouch, i2c and endstop ports that seemed easiest to tap for a tach. signal.