Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fan Speed #193

Open
Rockevzel opened this issue Feb 12, 2018 · 4 comments
Open

Fan Speed #193

Rockevzel opened this issue Feb 12, 2018 · 4 comments

Comments

@Rockevzel
Copy link

Hi there, 

I hope, I am right here - I've never been on Github before. Please have mercy mith me :-D

I can't find out: Does this Firmware already include the Fan-Speed Control for the 'Extra'-Fan?
Or is it only: On/Off ?

If not: Is there a way to programming the speedcontrol? Many ppl - including me, are waiting for the solution :-D

Thank you :)

@dnewman-polar3d
Copy link
Contributor

X3G does not permit a fan speed. It's just ON or OFF. Some people have modified their gcode to X3G translator AND Sailfish to allow for a variable fan speed. But there's no plans to incorporate that into Sailfish. Well, at least not by me as I no longer have to to test and make new releases.

The current Sailfish 7.8 code base has code to allow you to set via the LCD screen a fan speed (0 - 100%). That speed will then be used when the fan is turned ON via a print. So, it's a "static" fan speed as opposed to a fan speed which can change during the course of a print.

@Rockevzel
Copy link
Author

Rockevzel commented Feb 12, 2018 via email

@dnewman-polar3d
Copy link
Contributor

Look at outstanding pull requests on this repository.

@DrLex0
Copy link

DrLex0 commented Apr 18, 2018

I have wanted true variable fan speed ever since bumping into the disappointment of noticing that the EXTRA control is only a binary toggle. I recently cooked up my own solution. It is somewhat crazy and requires (reversible) hardware modifications to the printer, but it should work with any unmodified Sailfish build.

I'm using the buzzer on the MightyBoard as a kind of modem connection to send commands to a Raspberry Pi which acts as the PWM controller. This works surprisingly well, and allows advanced features like giving the fan an extra kick to improve responsiveness or starting at extremely low speeds. (1% duty cycle? No problem.) Of course manual override is also possible, because the daemon that handles PWM is actually a web server.
Because slicers don't output fan speeds for Sailfish, a post-processing script takes RepRap-style G-code with M106/M107 fan speed commands as input, and outputs Sailfish-compatible code with the speed commands converted to beep sequences. This script also optimizes the timings for the fan. From experiments, I have found that M300 commands are played exactly where they appear in the code, unlike the M126/M127 commands which toggle the EXTRA output at unpredictable moments. The timings of the beeps also prove accurate while a print is in steady-state.
If you're afraid this makes the printer annoyingly noisy, the ‘modem’ sequences consist of three short blips at the highest frequencies the buzzer can play, which makes them rather unobtrusive compared to typical printer noises.

There is only annoying thing, being the tune Sailfish plays when the heaters reach their target temperature. If this happens right in the middle of a beep sequence, it will not be detected. This risk is low, but it could ruin a print in extreme cases. I'll probably make a feature request to have this tune toggle-able, if only because it already annoyed me before I thought of this hack. From what I've seen, there are plenty of unused bytes in the EEPROM reserved for buzzer settings.

I think offloading fan control to an external controller is way better a solution than trying to implement it all in the firmware. Hence if any effort would be spent on this, I would rather see a better way to send commands to an external device than my hack of sending signals across an air gap.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants