Клиппер
Go to file
Kevin O'Connor c7d0358c41 serialhdl: Rework mcu clock synchronization
The existing clock synchronization code has two flaws: intermittent
transmission latency during get_status requests can cause the
estimated clock to be too low, and the estimated clock calculation did
not take into account possible clock drift between samples.  The
former could potentially lead to "Timer too close" errors and the
latter could potentially lead to "Move queue empty" errors.

Rework the code to avoid the above problems.  It's not necessary to
estimate the micro-controller clock as an excellent estimate is
reported by the micro-controller (via the CLOCK_FREQ constant).
Account for a small drift from the reported value, and check on each
sample if the drift exceeds the expected limits.  With a good starting
estimated clock, only the offset needs to be calculated.  Use previous
offsets (and the estimated clock) in calculation of new offsets to
avoid intermittent latency from badly skewing the results.  Finally,
add an additional time offset of one millisecond to account for any
minor inaccuracies.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-30 20:15:36 -04:00
config gcode: Support running arbitrary gcode on extruder change 2017-06-09 18:55:33 -04:00
docs avr: Add SIMULAVR build option; don't show WATCHDOG or SERIAL_BAUD_U2X 2017-05-28 11:04:59 -04:00
klippy serialhdl: Rework mcu clock synchronization 2017-06-30 20:15:36 -04:00
lib pru: Add initial pru_rpmsg library code for Beaglebone PRU 2017-05-15 15:00:52 -04:00
scripts command: Directly call command_sendf() for ack/nak messages 2017-06-29 13:33:59 -04:00
src pru: Use a pointer when working with send_data array items 2017-06-30 19:54:40 -04:00
.gitignore Initial commit of source code. 2016-05-25 11:37:40 -04:00
COPYING Initial commit of source code. 2016-05-25 11:37:40 -04:00
Makefile build: Default to python2 in the Makefile 2017-06-28 10:52:05 -04:00
README.md docs: Add a features document 2016-12-20 22:31:46 -05:00

README.md

Welcome to the Klipper project!

This project implements a 3d-printer firmware. There are two parts to this firmware - code that runs on a micro-controller and code that 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.

See the features document to find out why you should use Klipper. To begin using Klipper start by installing it.

There is also developer documentation available.

License

Klipper is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Klipper is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Klipper. If not, see http://www.gnu.org/licenses/.