forked from Klipper3d/klipper
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
output_pin: Support setting max_duration (Klipper3d#3995)
Also added documentation for using powered tools. Signed-off-by: Pascal Pieper <[email protected]>
- Loading branch information
1 parent
2af7cb2
commit 3c5d674
Showing
4 changed files
with
109 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
This document describes how to setup a PWM-controlled laser or spindle | ||
using `output_pin` and some macros. | ||
|
||
|
||
## How does it work? | ||
With re-purposing the printhead's fan pwm output, you can control | ||
lasers or spindles. | ||
This is useful if you use switchable print heads, for example | ||
the E3D toolchanger or a DIY solution. | ||
Usually, cam-tools such as LaserWeb can be configured to use `M3-M5` | ||
commands, which stand for _spindle speed CW_ (`M3 S[0-255]`), | ||
_spindle speed CCW_ (`M4 S[0-255]`) and _spindle stop_ (`M5`). | ||
|
||
|
||
**Warning:** When driving a laser, keep all security precautions | ||
that you can think of! Diode lasers are usually inverted. | ||
This means, that when the MCU restarts, the laser will be | ||
_fully on_ for the time it takes the MCU to start up again. | ||
For good measure, it is recommended to _always_ wear appropriate | ||
laser-goggles of the right wavelength if the laser is powered; | ||
and to disconnect the laser when it is not needed. | ||
Also, you should configure a safety timeout, | ||
so that when your host or MCU encounters an error, the tool will stop. | ||
|
||
For an example configuration, see `config/sample-pwm-tool-cfg`. | ||
|
||
## Current Limitations | ||
|
||
There is a limitation of how frequent PWM updates may occur. | ||
While being very precise, a PWM update may only occur every 0.1 seconds, | ||
rendering it almost useless for raster engraving. | ||
However, there exists an [experimental branch](https://github.com/Cirromulus/klipper/tree/laser_tool) with its own tradeoffs. | ||
In long term, it is planned to add this functionality to main-line klipper. | ||
|
||
## Commands | ||
|
||
`M3/M4 S<value>` : Set PWM duty-cycle. Values between 0 and 255. | ||
`M5` : Stop PWM output to shutdown value. | ||
|
||
## Laserweb Configuration | ||
|
||
If you use Laserweb, a working configuration would be: | ||
|
||
GCODE START: | ||
M5 ; Disable Laser | ||
G21 ; Set units to mm | ||
G90 ; Absolute positioning | ||
G0 Z0 F7000 ; Set Non-Cutting speed | ||
|
||
GCODE END: | ||
M5 ; Disable Laser | ||
G91 ; relative | ||
G0 Z+20 F4000 ; | ||
G90 ; absolute | ||
|
||
GCODE HOMING: | ||
M5 ; Disable Laser | ||
G28 ; Home all axis | ||
|
||
TOOL ON: | ||
M3 $INTENSITY | ||
|
||
TOOL OFF: | ||
M5 ; Disable Laser | ||
|
||
LASER INTENSITY: | ||
S |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters