diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2016-12-20 22:22:54 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2016-12-20 22:31:46 -0500 |
commit | 18456f71f873ea3d48ac0d81b1382b0c749288d9 (patch) | |
tree | a6226194cd351e5e529aed8cee863a27e47eb839 /docs/Features.md | |
parent | 1d841eeb876082d9efbf2fa7f04bccc259f40ef9 (diff) | |
download | kutter-18456f71f873ea3d48ac0d81b1382b0c749288d9.tar.gz kutter-18456f71f873ea3d48ac0d81b1382b0c749288d9.tar.xz kutter-18456f71f873ea3d48ac0d81b1382b0c749288d9.zip |
docs: Add a features document
Add a document describing some high-level features in Klipper.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'docs/Features.md')
-rw-r--r-- | docs/Features.md | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/docs/Features.md b/docs/Features.md new file mode 100644 index 00000000..956caed3 --- /dev/null +++ b/docs/Features.md @@ -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 | |