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
|
||||
to execute the provided schedule at the specified times.
|
||||
|
||||
Please see the [documentation](docs/Overview.md) for more information
|
||||
on running and working with Klipper.
|
||||
See the [features](docs/Features.md) document to find out why you
|
||||
should use Klipper. To begin using Klipper start by
|
||||
[installing](docs/Installation.md) it.
|
||||
|
||||
There is also [developer documentation](docs/Overview.md) available.
|
||||
|
||||
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,
|
||||
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
|
||||
structure and layout of the Klipper code.
|
||||
|
|
Loading…
Reference in New Issue