docs: Add a features document
Add a document describing some high-level features in Klipper. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
1d841eeb87
commit
18456f71f8
|
@ -6,8 +6,11 @@ runs on a host machine. The host software does the work to build a
|
||||||
schedule of events, while the micro-controller software does the work
|
schedule of events, while the micro-controller software does the work
|
||||||
to execute the provided schedule at the specified times.
|
to execute the provided schedule at the specified times.
|
||||||
|
|
||||||
Please see the [documentation](docs/Overview.md) for more information
|
See the [features](docs/Features.md) document to find out why you
|
||||||
on running and working with Klipper.
|
should use Klipper. To begin using Klipper start by
|
||||||
|
[installing](docs/Installation.md) it.
|
||||||
|
|
||||||
|
There is also [developer documentation](docs/Overview.md) available.
|
||||||
|
|
||||||
License
|
License
|
||||||
=======
|
=======
|
||||||
|
|
|
@ -0,0 +1,85 @@
|
||||||
|
Klipper is an experimental 3d printer firmware. It has several
|
||||||
|
compelling features:
|
||||||
|
|
||||||
|
* 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
|
||||||
|
at the requested time. Each stepper event is scheduled with a
|
||||||
|
precision of no less than 50 micro-seconds. 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.
|
||||||
|
|
||||||
|
* Best in class performance. Klipper is able to achieve high stepping
|
||||||
|
rates on both new and old micro-controllers. Even an old 8bit AVR
|
||||||
|
micro-controller can obtain rates up to 150K steps per second. On
|
||||||
|
more recent ARM micro-controllers, rates over 350K 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.
|
||||||
|
|
||||||
|
* 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
|
||||||
|
most code. The kinematics algorithms, the gcode parsing, the heating
|
||||||
|
and thermistor algorithms, etc. are all written in Python. This
|
||||||
|
makes it easier to develop new functionality.
|
||||||
|
|
||||||
|
* Advanced features. Klipper implements the "pressure advance"
|
||||||
|
algorithm for extruders. When properly tuned, pressure advance
|
||||||
|
reduces extruder ooze. 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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
* "Lookahead" 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.
|
||||||
|
|
||||||
|
* Support for both delta printers and cartesian style printers.
|
||||||
|
|
||||||
|
Step Benchmarks
|
||||||
|
===============
|
||||||
|
|
||||||
|
Below are the results of stepper performance tests. The numbers shown
|
||||||
|
represent total number of steps per second on the micro-controller.
|
||||||
|
|
||||||
|
| Micro-controller | 1 stepper active | 3 steppers active |
|
||||||
|
| ----------------- | ---------------- | ----------------- |
|
||||||
|
| 20Mhz AVR | 158.7K | 103K |
|
||||||
|
| 16Mhz AVR | 126.9K | 82K |
|
||||||
|
| Arduino Due (ARM) | 352.9K | 288K |
|
|
@ -1,5 +1,6 @@
|
||||||
See [installation](Installation.md) for information on compiling,
|
See [installation](Installation.md) for information on compiling,
|
||||||
installing, and running Klipper.
|
installing, and running Klipper. Read [features](Features.md) for a
|
||||||
|
high-level description of useful capabilities.
|
||||||
|
|
||||||
See [code overview](Code_Overview.md) for developer information on the
|
See [code overview](Code_Overview.md) for developer information on the
|
||||||
structure and layout of the Klipper code.
|
structure and layout of the Klipper code.
|
||||||
|
|
Loading…
Reference in New Issue