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:
Kevin O'Connor 2018-09-03 20:33:00 -04:00
parent ef6068dc42
commit ac3aa097fb
1 changed files with 70 additions and 35 deletions

View File

@ -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.