2017-04-27 21:14:11 +02:00
|
|
|
Klipper has several compelling features:
|
2016-12-21 04:22:54 +01:00
|
|
|
|
|
|
|
* High precision stepper movement. Klipper utilizes an application
|
|
|
|
processor (such as a low-cost Raspberry Pi) when calculating printer
|
|
|
|
movements. The application processor determines when to step each
|
|
|
|
stepper motor, it compresses those events, transmits them to the
|
|
|
|
micro-controller, and then the micro-controller executes each event
|
2017-05-01 17:36:07 +02:00
|
|
|
at the requested time. Each stepper event is scheduled with a
|
2016-12-26 19:15:37 +01:00
|
|
|
precision of 25 micro-seconds or better. The software does not use
|
|
|
|
kinematic estimations (such as the Bresenham algorithm) - instead it
|
|
|
|
calculates precise step times based on the physics of acceleration
|
|
|
|
and the physics of the machine kinematics. More precise stepper
|
|
|
|
movement translates to quieter and more stable printer operation.
|
2016-12-21 04:22:54 +01:00
|
|
|
|
|
|
|
* Best in class performance. Klipper is able to achieve high stepping
|
|
|
|
rates on both new and old micro-controllers. Even an old 8bit AVR
|
2017-04-11 19:53:33 +02:00
|
|
|
micro-controller can obtain rates over 175K steps per second. On
|
2017-09-27 19:59:47 +02:00
|
|
|
more recent micro-controllers, rates over 500K steps per second are
|
|
|
|
possible. Higher stepper rates enable higher print velocities. The
|
|
|
|
stepper event timing remains precise even at high speeds which
|
|
|
|
improves overall stability.
|
2016-12-21 04:22:54 +01:00
|
|
|
|
|
|
|
* Configuration via simple config file. There's no need to reflash the
|
|
|
|
micro-controller to change a setting. All of Klipper's configuration
|
|
|
|
is stored in a standard config file which can be easily edited. This
|
|
|
|
makes it easier to setup and maintain the hardware.
|
|
|
|
|
|
|
|
* Portable code. Klipper works on both ARM and AVR
|
|
|
|
micro-controllers. Existing "reprap" style printers can run Klipper
|
|
|
|
without hardware modification - just add a Raspberry Pi. Klipper's
|
|
|
|
internal code layout makes it easier to support other
|
|
|
|
micro-controller architectures as well.
|
|
|
|
|
|
|
|
* Simpler code. Klipper uses a very high level language (Python) for
|
2017-04-27 21:14:11 +02:00
|
|
|
most code. The kinematics algorithms, the G-code parsing, the
|
|
|
|
heating and thermistor algorithms, etc. are all written in
|
|
|
|
Python. This makes it easier to develop new functionality.
|
2016-12-21 04:22:54 +01:00
|
|
|
|
2017-04-16 04:52:36 +02:00
|
|
|
* Advanced features:
|
|
|
|
* Klipper implements the "pressure advance" algorithm for
|
|
|
|
extruders. When properly tuned, pressure advance reduces extruder
|
|
|
|
ooze.
|
2017-09-27 04:16:20 +02:00
|
|
|
* 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.
|
2017-04-16 04:52:36 +02:00
|
|
|
* 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.
|
2017-05-01 17:27:14 +02:00
|
|
|
* Support for limiting the top speed of short "zigzag" moves to
|
2017-04-16 04:52:36 +02:00
|
|
|
reduce printer vibration and noise. See the
|
|
|
|
[kinematics](Kinematics.md) document for more information.
|
2016-12-21 04:22:54 +01:00
|
|
|
|
|
|
|
To get started with Klipper, read the [installation](Installation.md)
|
|
|
|
guide.
|
|
|
|
|
|
|
|
Common features supported by Klipper
|
|
|
|
====================================
|
|
|
|
|
|
|
|
Klipper supports many standard 3d printer features:
|
|
|
|
|
|
|
|
* Works with Octoprint. This allows the printer to be controlled using
|
|
|
|
a regular web-browser. The same Raspberry Pi that runs Klipper can
|
|
|
|
also run Octoprint.
|
|
|
|
|
|
|
|
* Standard G-Code support. Common g-code commands that are produced by
|
|
|
|
typical "slicers" are supported. One may continue to use Slic3r,
|
|
|
|
Cura, etc. with Klipper.
|
|
|
|
|
|
|
|
* Constant speed acceleration support. All printer moves will
|
|
|
|
gradually accelerate from standstill to cruising speed and then
|
|
|
|
decelerate back to a standstill.
|
|
|
|
|
2017-04-27 21:14:11 +02:00
|
|
|
* "Look-ahead" support. 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
|
|
|
|
stalls and improve overall print time.
|
2016-12-21 04:22:54 +01:00
|
|
|
|
2017-04-16 04:52:36 +02:00
|
|
|
* Support for cartesian, delta, and corexy style printers.
|
2016-12-21 04:22:54 +01:00
|
|
|
|
|
|
|
Step Benchmarks
|
|
|
|
===============
|
|
|
|
|
|
|
|
Below are the results of stepper performance tests. The numbers shown
|
|
|
|
represent total number of steps per second on the micro-controller.
|
|
|
|
|
2017-08-11 17:40:54 +02:00
|
|
|
| Micro-controller | Fastest step rate | 3 steppers active |
|
|
|
|
| ----------------- | ----------------- | ----------------- |
|
|
|
|
| 16Mhz AVR | 151K | 100K |
|
2018-04-12 20:48:38 +02:00
|
|
|
| 20Mhz AVR | 189K | 125K |
|
|
|
|
| STM32F103 | 340K | 300K |
|
2017-08-11 17:40:54 +02:00
|
|
|
| Arduino Due (ARM) | 382K | 337K |
|
2018-05-08 18:34:46 +02:00
|
|
|
| LPC1768 (100Mhz) | 385K | 385K |
|
|
|
|
| LPC1769 (120Mhz) | 462K | 462K |
|
2017-08-15 17:05:30 +02:00
|
|
|
| Beaglebone PRU | 689K | 689K |
|
2017-08-11 17:40:54 +02:00
|
|
|
|
|
|
|
On AVR platforms, the highest achievable step rate is with just one
|
2018-05-08 18:34:46 +02:00
|
|
|
stepper stepping. On the STM32F103 and Due, the highest step rate is
|
|
|
|
with two simultaneous steppers stepping. On the PRU and LPC176x, the
|
|
|
|
highest step rate is with three simultaneous steppers.
|