docs: Features.md updates
Add information on new features in Klipper. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
ef6068dc42
commit
ac3aa097fb
105
docs/Features.md
105
docs/Features.md
|
@ -20,6 +20,15 @@ Klipper has several compelling features:
|
||||||
stepper event timing remains precise even at high speeds which
|
stepper event timing remains precise even at high speeds which
|
||||||
improves overall stability.
|
improves overall stability.
|
||||||
|
|
||||||
|
* Klipper supports printers with multiple micro-controllers. For
|
||||||
|
example, one micro-controller could be used to control an extruder,
|
||||||
|
while another controls the printer's heaters, while a third controls
|
||||||
|
the rest of the printer. The Klipper host software implements clock
|
||||||
|
synchronization to account for clock drift between
|
||||||
|
micro-controllers. No special code is needed to enable multiple
|
||||||
|
micro-controllers - it just requires a few extra lines in the config
|
||||||
|
file.
|
||||||
|
|
||||||
* Configuration via simple config file. There's no need to reflash the
|
* Configuration via simple config file. There's no need to reflash the
|
||||||
micro-controller to change a setting. All of Klipper's configuration
|
micro-controller to change a setting. All of Klipper's configuration
|
||||||
is stored in a standard config file which can be easily edited. This
|
is stored in a standard config file which can be easily edited. This
|
||||||
|
@ -33,37 +42,22 @@ Klipper has several compelling features:
|
||||||
|
|
||||||
* Simpler code. Klipper uses a very high level language (Python) for
|
* Simpler code. Klipper uses a very high level language (Python) for
|
||||||
most code. The kinematics algorithms, the G-code parsing, the
|
most code. The kinematics algorithms, the G-code parsing, the
|
||||||
heating and thermistor algorithms, etc. are all written in
|
heating and thermistor algorithms, etc. are all written in Python.
|
||||||
Python. This makes it easier to develop new functionality.
|
This makes it easier to develop new functionality.
|
||||||
|
|
||||||
* Advanced features:
|
* Klipper uses an "iterative solver" to calculate precise step times
|
||||||
* Klipper implements the "pressure advance" algorithm for
|
from simple kinematic equations. This makes porting Klipper to new
|
||||||
extruders. When properly tuned, pressure advance reduces extruder
|
types of robots easier and it keeps timing precise even with complex
|
||||||
ooze.
|
kinematics (no "line segmentation" is needed).
|
||||||
* Klipper supports printers with multiple micro-controllers. For
|
|
||||||
example, one micro-controller could be used to control an
|
|
||||||
extruder, while another could control the printer's heaters, while
|
|
||||||
a third controls the rest of the printer. The Klipper host
|
|
||||||
software implements clock synchronization to account for clock
|
|
||||||
drift between micro-controllers. No special code is needed to
|
|
||||||
enable multiple micro-controllers - it just requires a few extra
|
|
||||||
lines in the config file.
|
|
||||||
* Klipper also implements a novel "stepper phase endstop" algorithm
|
|
||||||
that can dramatically improve the accuracy of typical endstop
|
|
||||||
switches. When properly tuned it can improve a print's first layer
|
|
||||||
bed adhesion.
|
|
||||||
* Support for limiting the top speed of short "zigzag" moves to
|
|
||||||
reduce printer vibration and noise. See the
|
|
||||||
[kinematics](Kinematics.md) document for more information.
|
|
||||||
|
|
||||||
To get started with Klipper, read the [installation](Installation.md)
|
Additional features
|
||||||
guide.
|
===================
|
||||||
|
|
||||||
Common features supported by Klipper
|
|
||||||
====================================
|
|
||||||
|
|
||||||
Klipper supports many standard 3d printer features:
|
Klipper supports many standard 3d printer features:
|
||||||
|
|
||||||
|
* Klipper implements the "pressure advance" algorithm for extruders.
|
||||||
|
When properly tuned, pressure advance reduces extruder ooze.
|
||||||
|
|
||||||
* Works with Octoprint. This allows the printer to be controlled using
|
* Works with Octoprint. This allows the printer to be controlled using
|
||||||
a regular web-browser. The same Raspberry Pi that runs Klipper can
|
a regular web-browser. The same Raspberry Pi that runs Klipper can
|
||||||
also run Octoprint.
|
also run Octoprint.
|
||||||
|
@ -72,16 +66,56 @@ Klipper supports many standard 3d printer features:
|
||||||
typical "slicers" are supported. One may continue to use Slic3r,
|
typical "slicers" are supported. One may continue to use Slic3r,
|
||||||
Cura, etc. with Klipper.
|
Cura, etc. with Klipper.
|
||||||
|
|
||||||
* Constant speed acceleration support. All printer moves will
|
* Support for multiple extruders. Extruders with shared heaters and
|
||||||
gradually accelerate from standstill to cruising speed and then
|
extruders on independent carriages (IDEX) are also supported.
|
||||||
decelerate back to a standstill.
|
|
||||||
|
|
||||||
* "Look-ahead" support. The incoming stream of G-Code movement
|
* Support for cartesian, delta, and corexy style printers.
|
||||||
commands are queued and analyzed - the acceleration between
|
|
||||||
|
* Automatic bed leveling support. Klipper can be configured for basic
|
||||||
|
bed tilt detection or full mesh bed leveling. If the bed uses
|
||||||
|
multiple Z steppers then Klipper can also level by independently
|
||||||
|
manipulating the Z steppers. Most Z height probes are supported,
|
||||||
|
including servo activated probes.
|
||||||
|
|
||||||
|
* Automatic delta calibration support. The calibration can be done
|
||||||
|
with a Z height probe or via manual probing.
|
||||||
|
|
||||||
|
* Support for common temperature sensors (eg, common thermistors,
|
||||||
|
AD595, PT100, MAX6675, MAX31855, MAX31856, MAX31865). Custom
|
||||||
|
thermistors and custom analog temperature sensors can also be
|
||||||
|
configured.
|
||||||
|
|
||||||
|
* Basic thermal heater protection enabled by default.
|
||||||
|
|
||||||
|
* Support for standard fans, nozzle fans, and temperature controlled
|
||||||
|
fans. No need to keep fans running when the printer is idle.
|
||||||
|
|
||||||
|
* Support for run-time configuration of TMC2130, TMC2208, and TMC2224
|
||||||
|
stepper motor drivers.
|
||||||
|
|
||||||
|
* Support for common LCD displays attached directly to the printer. A
|
||||||
|
default menu is also available.
|
||||||
|
|
||||||
|
* Constant acceleration and "look-ahead" support. All printer moves
|
||||||
|
will gradually accelerate from standstill to cruising speed and then
|
||||||
|
decelerate back to a standstill. The incoming stream of G-Code
|
||||||
|
movement commands are queued and analyzed - the acceleration between
|
||||||
movements in a similar direction will be optimized to reduce print
|
movements in a similar direction will be optimized to reduce print
|
||||||
stalls and improve overall print time.
|
stalls and improve overall print time.
|
||||||
|
|
||||||
* Support for cartesian, delta, and corexy style printers.
|
* Klipper implements a "stepper phase endstop" algorithm that can
|
||||||
|
improve the accuracy of typical endstop switches. When properly
|
||||||
|
tuned it can improve a print's first layer bed adhesion.
|
||||||
|
|
||||||
|
* Support for limiting the top speed of short "zigzag" moves to reduce
|
||||||
|
printer vibration and noise. See the [kinematics](Kinematics.md)
|
||||||
|
document for more information.
|
||||||
|
|
||||||
|
* Sample configuration files are available for many common printers.
|
||||||
|
Check the [config directory](../config/) for a list.
|
||||||
|
|
||||||
|
To get started with Klipper, read the [installation](Installation.md)
|
||||||
|
guide.
|
||||||
|
|
||||||
Step Benchmarks
|
Step Benchmarks
|
||||||
===============
|
===============
|
||||||
|
@ -98,10 +132,11 @@ represent total number of steps per second on the micro-controller.
|
||||||
| Arduino Due (ARM SAM3X8E) | 382K | 337K |
|
| Arduino Due (ARM SAM3X8E) | 382K | 337K |
|
||||||
| Smoothieboard (ARM LPC1768) | 385K | 385K |
|
| Smoothieboard (ARM LPC1768) | 385K | 385K |
|
||||||
| Smoothieboard (ARM LPC1769) | 462K | 462K |
|
| Smoothieboard (ARM LPC1769) | 462K | 462K |
|
||||||
| Duet Wifi/Eth (ARM SAM4E8E) | 475K | 475K |
|
| SAM4E8E ARM | 475K | 475K |
|
||||||
| Beaglebone PRU | 689K | 689K |
|
| Beaglebone PRU | 689K | 689K |
|
||||||
|
|
||||||
On AVR platforms, the highest achievable step rate is with just one
|
On AVR platforms, the highest achievable step rate is with just one
|
||||||
stepper stepping. On the STM32F103, Arduino Zero, and Due, the highest
|
stepper stepping. On the STM32F103, Arduino Zero, and Due, the highest
|
||||||
step rate is with two simultaneous steppers stepping. On the PRU, SAM4E8E and
|
step rate is with two simultaneous steppers stepping. On the PRU,
|
||||||
LPC176x, the highest step rate is with three simultaneous steppers.
|
SAM4E8E, and LPC176x the highest step rate is with three simultaneous
|
||||||
|
steppers.
|
||||||
|
|
Loading…
Reference in New Issue