docs: Use only single space at start of new sentence
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
e177d4f70d
commit
a3162b17d9
|
@ -5,7 +5,7 @@ Klipper has several compelling features:
|
||||||
movements. The application processor determines when to step each
|
movements. The application processor determines when to step each
|
||||||
stepper motor, it compresses those events, transmits them to the
|
stepper motor, it compresses those events, transmits them to the
|
||||||
micro-controller, and then the micro-controller executes each event
|
micro-controller, and then the micro-controller executes each event
|
||||||
at the requested time. Each stepper event is scheduled with a
|
at the requested time. Each stepper event is scheduled with a
|
||||||
precision of 25 micro-seconds or better. The software does not use
|
precision of 25 micro-seconds or better. The software does not use
|
||||||
kinematic estimations (such as the Bresenham algorithm) - instead it
|
kinematic estimations (such as the Bresenham algorithm) - instead it
|
||||||
calculates precise step times based on the physics of acceleration
|
calculates precise step times based on the physics of acceleration
|
||||||
|
|
|
@ -9,14 +9,14 @@ Acceleration
|
||||||
|
|
||||||
Klipper implements a constant acceleration scheme whenever the print
|
Klipper implements a constant acceleration scheme whenever the print
|
||||||
head changes velocity - the velocity is gradually changed to the new
|
head changes velocity - the velocity is gradually changed to the new
|
||||||
speed instead of suddenly jerking to it. Klipper always enforces
|
speed instead of suddenly jerking to it. Klipper always enforces
|
||||||
acceleration between the tool head and the print. The filament
|
acceleration between the tool head and the print. The filament leaving
|
||||||
leaving the extruder can be quite fragile - rapid jerks and/or
|
the extruder can be quite fragile - rapid jerks and/or extruder flow
|
||||||
extruder flow changes lead to poor quality and poor bed adhesion. Even
|
changes lead to poor quality and poor bed adhesion. Even when not
|
||||||
when not extruding, if the print head is at the same level as the
|
extruding, if the print head is at the same level as the print then
|
||||||
print then rapid jerking of the head can cause disruption of recently
|
rapid jerking of the head can cause disruption of recently deposited
|
||||||
deposited filament. Limiting speed changes of the print head (relative
|
filament. Limiting speed changes of the print head (relative to the
|
||||||
to the print) reduces risks of disrupting the print.
|
print) reduces risks of disrupting the print.
|
||||||
|
|
||||||
It is also important to enforce a maximum acceleration of the stepper
|
It is also important to enforce a maximum acceleration of the stepper
|
||||||
motors to ensure they do not skip or put excessive stress on the
|
motors to ensure they do not skip or put excessive stress on the
|
||||||
|
@ -25,8 +25,8 @@ limiting the acceleration of the print head. Enforcing acceleration at
|
||||||
the print head naturally also enforces acceleration at the steppers
|
the print head naturally also enforces acceleration at the steppers
|
||||||
that control that print head (the inverse is not always true).
|
that control that print head (the inverse is not always true).
|
||||||
|
|
||||||
Klipper implements constant acceleration. The key formula for
|
Klipper implements constant acceleration. The key formula for constant
|
||||||
constant acceleration is:
|
acceleration is:
|
||||||
```
|
```
|
||||||
velocity(time) = start_velocity + accel*time
|
velocity(time) = start_velocity + accel*time
|
||||||
```
|
```
|
||||||
|
@ -101,15 +101,15 @@ Smoothed look-ahead
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
Klipper also implements a mechanism for smoothing out the motions of
|
Klipper also implements a mechanism for smoothing out the motions of
|
||||||
short "zigzag" moves. Consider the following moves:
|
short "zigzag" moves. Consider the following moves:
|
||||||
|
|
||||||
![zigzag](img/zigzag.svg.png)
|
![zigzag](img/zigzag.svg.png)
|
||||||
|
|
||||||
In the above, the frequent changes from acceleration to deceleration
|
In the above, the frequent changes from acceleration to deceleration
|
||||||
can cause the machine to vibrate which causes stress on the machine
|
can cause the machine to vibrate which causes stress on the machine
|
||||||
and increases the noise. To reduce this, Klipper tracks both regular
|
and increases the noise. To reduce this, Klipper tracks both regular
|
||||||
move acceleration as well as a virtual "acceleration to deceleration"
|
move acceleration as well as a virtual "acceleration to deceleration"
|
||||||
rate. Using this system, the top speed of these short "zigzag" moves
|
rate. Using this system, the top speed of these short "zigzag" moves
|
||||||
are limited to smooth out the printer motion:
|
are limited to smooth out the printer motion:
|
||||||
|
|
||||||
![smoothed](img/smoothed.svg.png)
|
![smoothed](img/smoothed.svg.png)
|
||||||
|
@ -133,8 +133,8 @@ Generating steps
|
||||||
Once the look-ahead process completes, the print head movement for the
|
Once the look-ahead process completes, the print head movement for the
|
||||||
given move is fully known (time, start position, end position,
|
given move is fully known (time, start position, end position,
|
||||||
velocity at each point) and it is possible to generate the step times
|
velocity at each point) and it is possible to generate the step times
|
||||||
for the move. This process is done within "kinematic classes" in the
|
for the move. This process is done within "kinematic classes" in the
|
||||||
Klipper code. Outside of these kinematic classes, everything is
|
Klipper code. Outside of these kinematic classes, everything is
|
||||||
tracked in millimeters, seconds, and in cartesian coordinate space.
|
tracked in millimeters, seconds, and in cartesian coordinate space.
|
||||||
It's the task of the kinematic classes to convert from this generic
|
It's the task of the kinematic classes to convert from this generic
|
||||||
coordinate system to the hardware specifics of the particular printer.
|
coordinate system to the hardware specifics of the particular printer.
|
||||||
|
@ -223,7 +223,7 @@ acceleration and velocity.
|
||||||
Extruder kinematics
|
Extruder kinematics
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
Klipper implements extruder motion in its own kinematic class. Since
|
Klipper implements extruder motion in its own kinematic class. Since
|
||||||
the timing and speed of each print head movement is fully known for
|
the timing and speed of each print head movement is fully known for
|
||||||
each move, it's possible to calculate the step times for the extruder
|
each move, it's possible to calculate the step times for the extruder
|
||||||
independently from the step time calculations of the print head
|
independently from the step time calculations of the print head
|
||||||
|
|
|
@ -262,7 +262,7 @@ Stepper commands
|
||||||
|
|
||||||
* `stepper_get_position oid=%c` : This command causes the
|
* `stepper_get_position oid=%c` : This command causes the
|
||||||
micro-controller to generate a "stepper_position" response message
|
micro-controller to generate a "stepper_position" response message
|
||||||
with the stepper's current position. The position is the total
|
with the stepper's current position. The position is the total
|
||||||
number of steps generated with dir=1 minus the total number of steps
|
number of steps generated with dir=1 minus the total number of steps
|
||||||
generated with dir=0.
|
generated with dir=0.
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ as a blob when the head slows down to corner.
|
||||||
|
|
||||||
The next step is to set pressure_advance_lookahead_time to 0.0, slowly
|
The next step is to set pressure_advance_lookahead_time to 0.0, slowly
|
||||||
increase pressure_advance (eg, start with 0.05), and reprint the test
|
increase pressure_advance (eg, start with 0.05), and reprint the test
|
||||||
object. (Be sure to issue RESTART between each config change.) The
|
object. (Be sure to issue RESTART between each config change.) The
|
||||||
goal is to attempt to eliminate the blobbing during cornering. (With
|
goal is to attempt to eliminate the blobbing during cornering. (With
|
||||||
pressure advance, the extruder will retract when the head slows down,
|
pressure advance, the extruder will retract when the head slows down,
|
||||||
thus countering the pressure buildup and ideally eliminate the
|
thus countering the pressure buildup and ideally eliminate the
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
The Klipper messaging protocol is used for low-level communication
|
The Klipper messaging protocol is used for low-level communication
|
||||||
between the Klipper host software and the Klipper micro-controller
|
between the Klipper host software and the Klipper micro-controller
|
||||||
software. At a high level the protocol can be thought of as a series
|
software. At a high level the protocol can be thought of as a series
|
||||||
of command and response strings that are compressed, transmitted, and
|
of command and response strings that are compressed, transmitted, and
|
||||||
then processed at the receiving side. An example series of commands in
|
then processed at the receiving side. An example series of commands in
|
||||||
uncompressed human-readable format might look like:
|
uncompressed human-readable format might look like:
|
||||||
|
@ -112,7 +112,7 @@ to generate and format arbitrary messages for human consumption.
|
||||||
Declaring constants
|
Declaring constants
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
Constants can also be exported. For example, the following:
|
Constants can also be exported. For example, the following:
|
||||||
|
|
||||||
```
|
```
|
||||||
DECL_CONSTANT(SERIAL_BAUD, 250000);
|
DECL_CONSTANT(SERIAL_BAUD, 250000);
|
||||||
|
@ -133,7 +133,7 @@ Message Blocks
|
||||||
|
|
||||||
All data sent from host to micro-controller and vice-versa are
|
All data sent from host to micro-controller and vice-versa are
|
||||||
contained in "message blocks". A message block has a two byte header
|
contained in "message blocks". A message block has a two byte header
|
||||||
and a three byte trailer. The format of a message block is:
|
and a three byte trailer. The format of a message block is:
|
||||||
|
|
||||||
```
|
```
|
||||||
<1 byte length><1 byte sequence><n-byte content><2 byte crc><1 byte sync>
|
<1 byte length><1 byte sequence><n-byte content><2 byte crc><1 byte sync>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
There are several features still to be implemented in Klipper. In no
|
There are several features still to be implemented in Klipper. In no
|
||||||
particular order:
|
particular order:
|
||||||
|
|
||||||
Host user interaction
|
Host user interaction
|
||||||
|
|
Loading…
Reference in New Issue