aboutsummaryrefslogtreecommitdiffstats
path: root/docs/Features.md
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2016-12-20 22:22:54 -0500
committerKevin O'Connor <kevin@koconnor.net>2016-12-20 22:31:46 -0500
commit18456f71f873ea3d48ac0d81b1382b0c749288d9 (patch)
treea6226194cd351e5e529aed8cee863a27e47eb839 /docs/Features.md
parent1d841eeb876082d9efbf2fa7f04bccc259f40ef9 (diff)
downloadkutter-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.md85
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 |