3348 Commits

Author SHA1 Message Date
Kevin O'Connor
106d1d2a2a docs: Note the release of v0.9.1
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-28 10:55:21 -04:00
Kevin O'Connor
ed5ce9cb37 linux: Fix spi handling with more than one spi device
Reported by @opensource-alt.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-25 10:14:15 -04:00
Kevin O'Connor
c2c79ff98d bltouch: Fix bug causing incorrect position when "stow_on_each_sample=False"
It is only valid to call raise_probe() when the toolhead is not
moving.  Make sure to call sync_print_time() from multi_probe_end() to
ensure that.  This fixes a bug that could cause the Z axis steppers to
lose their position when "stow_on_each_sample=False".

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-24 00:22:58 -04:00
Kevin O'Connor
1b6b7fc58c kin_extruder: Fix numerical stability when using pressure advance
Avoid using the absolute E position when calculating pressure advance
as that position can grow arbitrarily large, which can result in
"numerical stability" problems.  That instability could eventually
lead to internal errors during step compression.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-23 22:59:20 -04:00
Kevin O'Connor
2bcf06a295 docs: Update release notes for v0.9.0 release
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-20 19:40:32 -04:00
Kevin O'Connor
1b471b482d docs: Note PROBE_CALIBRATE results invalidated on motion system update
Any hardware change to the hotend or probe, change to the kinematics,
or change to the bed tilt is likely to invalidate the results of
PROBE_CALIBRATE.  Try to warn the user of that.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-20 19:26:24 -04:00
Kevin O'Connor
f8cb1e30eb heaters: Don't raise an error if PID Ki is set to zero
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-17 20:48:25 -04:00
Kevin O'Connor
abb0d8801c docs: Note screws_tilt_adjust nozzle/probe coordinates in Manual_Level.md
The screws_tilt_adjust takes nozzle coordinates, but the goal is for
the Z probe to be above the screws.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-17 19:24:54 -04:00
Kevin O'Connor
ac57b6522e docs: Minor formatting change to Probe_Calibrate.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-17 18:48:43 -04:00
Kevin O'Connor
6b23dd9ff1 docs: Provide response_template in subscription examples in API_Server.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-17 10:59:21 -04:00
Kevin O'Connor
bfcd5536fc docs: Add initial API_Server.md document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-17 10:41:14 -04:00
Kevin O'Connor
11bf83b498 config: Additional formatting changes to example-extras.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-16 22:12:58 -04:00
Kevin O'Connor
3a15219de3 config: Formatting changes to example-extras.cfg
Updates to improve consistency of example-extras.cfg formatting.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-16 21:52:02 -04:00
Kevin O'Connor
a87e5616a0 docs: Add Measuring_Resonances.md to Overview.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-16 21:32:33 -04:00
Kevin O'Connor
cf6d302ac3 docs: Update Command_Templates.md with available get_status() fields
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-15 13:29:50 -04:00
Kevin O'Connor
c0eefc0076 docs: Recommend disable "dynamic acceleration control" during tuning
Note that "dynamic acceleration control" should be disabled in the
pressure advance and input shaper tests.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-15 12:07:10 -04:00
Kevin O'Connor
e5f5070dca config: Update printer-makergear-m2-2012.cfg
Config should not specify a default pressure_advance.  Note limit on
current with old 30 Ohm Z-motor.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-15 11:55:32 -04:00
Dmitry Butyugin
f8c4f90c04 resonance_tester: Resonance testing and input shaper auto-calibration (#3381)
Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2020-10-14 20:08:10 -04:00
Dmitry Butyugin
fac4e53e86 toolhead: Fixed reporting of the kinematic limits
Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2020-10-14 12:42:15 -04:00
Kevin O'Connor
d53365f996 docs: Updates to Features.md document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-13 16:38:32 -04:00
Kevin O'Connor
2885a4c728 stm32: Don't default to HID bootloader in Kconfig
Restore the default of an 8KiB bootloader for stm32f103 and a 32KiB
bootloader for stm32f207/stm32f407.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-13 14:25:17 -04:00
Jon C
cef9cc29b8 config: Fixing replicape aliases for thermistors (#3420)
Fixing alias for thermistors to be on the host rather than the PRU.
Moving the D1W alias from PRU MCU to host MCU.

Signed-off by Jon Charnas <goeland86@gmail.com>
2020-10-11 19:23:46 -04:00
uncholowapo
1651b18aea config: Update generic-bigtreetech-skr-v1.4.cfg (#3419)
Corrected the diag1_pin numbers. Useful for anyone copying and pasting the lines. Its something really easy to look over and can lead to some hair pulling from the time wasted trying to troubleshoot why the tmc diag pin error from Klipper.

Signed-off-by: Juan Moreno <uncholowapo@gmail.com>
2020-10-11 19:22:23 -04:00
bondus
387fceb453 stm32: Fixed CAN bus for STM32F4, there were syntax errors that prevented compilation
Signed-off-by: Pontus Borg <liquidpontus@yahoo.se>
2020-10-11 11:24:05 -04:00
Kevin O'Connor
27249dc709 mcu: Increase the time to reset a pwm pin during startup
Some RPi0 users were reporting "timer too close" errors due to pwm pin
resets - increase the time the host has to complete the startup to
avoid this.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-11 11:14:32 -04:00
Kevin O'Connor
d317793171 bltouch: Add an extra 200ms delay to the initialization process
On a reset, the mcu.py code may have sent an initialization message to
the bltouch, which needs time to complete.  Add additional time during
the bltouch setup to avoid a race with these two times.  This avoids
some "timer too close" errors that users of fast host machines were
reporting.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-11 11:14:32 -04:00
Kevin O'Connor
930317fa2a thermistor: Add support for the board thermistor on the Einsy Rambo
Add in support for the "TDK NTCG104LH104JT1" thermistor.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-08 15:25:09 -04:00
Kevin O'Connor
d9af6129ea config: Note TMC drivers specify current in RMS in example-extras.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-10-07 10:56:30 -04:00
Kevin O'Connor
0bf0cb5b54 config: Add a generic-creality-v4.2.7.cfg example config
Reported by @Feche and @yjh0502 .

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-29 12:00:09 -04:00
jhpadjustable
48b30e0f5a display_status: fix M117 checksum trimming (#3377)
The M117 command parser discards the last character of the message
whenever the M117 command does not begin the line and there is no *xx
checksum, e.g.
  N0 M117 Look at me
causes the banner area of the printer screen to display "Look at m".
This patch only trims the checksum when one is found to trim.

Signed-Off-By: Jonathan Pickard <jhp@adjustablelabs.info>
2020-09-28 10:11:05 -04:00
Eric Callahan
a8e3afd64a configfile: report "save_config_pending" via get_status() (#3372)
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-09-28 00:05:55 -04:00
Kevin O'Connor
4d0d219716 mcu: Fix set_pwm() for hard pwm
Must use self._pwm_max to calculate range for hard pwm updates.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-27 18:09:53 -04:00
Kevin O'Connor
55e20f2c19 mcu: Add support for changing cycle_time in set_pwm()
Signed-off-by: Guy Shapira <gayuha@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-26 20:55:56 -04:00
Guy Shapira
27cefb2b38 gpiocmds: Add soft-pwm frequency modulation support
Signed-off-by: Guy Shapira <gayuha@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-26 20:51:38 -04:00
Guy Shapira
a79c57ab29 test: Add pwm tests
Signed-off-by: Guy Shapira <gayuha@gmail.com>
2020-09-26 20:26:44 -04:00
Kevin O'Connor
04f9f1b44e chelper: Add missing serialqueue_set_receive_window() def to serialqueue.h
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-26 20:15:33 -04:00
Kevin O'Connor
04b822c3aa chelper: Use standard C type definition for pyhelper_logging_callback
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-26 20:15:21 -04:00
Kevin O'Connor
73b78af6b2 chelper: Rework check for building C code
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-26 20:15:10 -04:00
Kevin O'Connor
08eec0da86 config: Use "restart_method: command" in example stm32f103 ender3 configs
Reported by @jasonttech.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-22 11:12:38 -04:00
Florian Heilmann
b8bafcf0ed sample-macros.cfg: Fix action_respond_info
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2020-09-21 10:58:27 -04:00
Florian Heilmann
3a854cacd1 sample-raspberry-pi.cfg: Fix action_respond_info
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2020-09-21 10:58:27 -04:00
Kevin O'Connor
ad0b76bd4b delta_calibrate: Don't error on an invalid kinematic guess
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-17 22:41:13 -04:00
Kevin O'Connor
6bba285f8e gcode: Don't log debugging output for unknown commands if command is blank
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-17 21:46:00 -04:00
Kevin O'Connor
4c14063404 heaters: Disable unused pwm output debugging info
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-17 02:06:20 -04:00
Kevin O'Connor
1af4a4ae9f reactor: Record time of recent gc collection sweeps
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-17 02:06:20 -04:00
Kevin O'Connor
cd23c95760 display: Remove circular references from intermediate context object
Explicilty clear the local context object so that it does not require
a gc sweep to free it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-16 23:53:45 -04:00
Kevin O'Connor
cb0a8f2ed9 reactor: Add support for explicit Python garbage collection
Add support for performing Python gc work only from the main reactor
thread and only when it appears the main thread is idle.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-16 23:53:45 -04:00
Kevin O'Connor
73cd8c241c klippy: Call gc.collect() on a "restart" request
Explicitly run the python garbage collector on a restart.  This cleans
up memory from the previous session.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-16 23:53:45 -04:00
Kevin O'Connor
7d83aed410 reactor: Terminate any greenlets on finalize() call
Make sure to terminate any greenlets that are in a pause() state.
This is necessary to ensure the reactor can be deallocated.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-16 23:53:45 -04:00
Kevin O'Connor
760a0f8df5 reactor: Add explicit finalize() method to clean up reactor state
The existence of a __del__() method prevents deallocation on python2
if there are circular references.  Replace the __del__() method with a
new finalize() call and arrange for it to be called when the main
reactor is released.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-16 23:53:45 -04:00
Kevin O'Connor
a3fa11ffd4 serialhdl: Setup for serialqueue_free to be automatically called
Use ffi_main.gc() to automatically free the C serialqueue object.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-16 23:53:45 -04:00
Kevin O'Connor
3dc0522870 serialhdl: Don't define a __del__() method
The existence of a __del__() method prevents deallocation on python2
if there are circular references.  Just remove the method as
disconnect() should already be called directly.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-16 23:53:45 -04:00
Kevin O'Connor
9814daa999 mcu: Setup for steppersync_free to be automatically called
Use ffi_main.gc() to automatically free the C steppersync object.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-16 23:53:45 -04:00
Kevin O'Connor
2447025fa6 mcu: Don't define a __del__() method
The existence of a __del__() method prevents deallocation on python2
if there are circular references.  Just remove the method as
disconnect() should already be called directly.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-16 23:53:45 -04:00
Kevin O'Connor
3efb424d66 graphstats: Add support for graphing system load
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-16 21:35:09 -04:00
Kevin O'Connor
1208ec1f52 avrsim: Minor changes so avrsim can run on both Python2 and Python3
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-16 12:05:26 -04:00
Arksine
3ac636b33e docs: document additions to BED_MESH_CALIBRATE
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-09-15 20:36:55 -04:00
Arksine
7ba1a2a749 bed_mesh: add mesh parameters to BED_MESH_CALIBRATE
This allows the generated points to be modified prior to probing the bed.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-09-15 20:36:55 -04:00
Arksine
9e68105b74 probe: add update_probe_points() method to helper
This allows the consumers of the ProbePoints helper to be reconfigured at runtime.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-09-15 20:36:55 -04:00
Arksine
6e77fd27cd bed_mesh: move algorithm verification to its own method
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-09-15 20:36:55 -04:00
Arksine
98931789d8 bed_mesh: move mesh area configuration to _init_mesh_config
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-09-15 20:36:55 -04:00
Kevin O'Connor
a92d995727 chelper: Set compiler flags to never use "x387" floating point math
The default on X86 32bit machines is to use 80bit floating point math
(as found in the ancient "387 coprocessor").  This can cause numerical
stability problems.  Set the compiler flags to make sure the newer SSE
math is always used on X86.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-15 17:12:53 -04:00
Dmitry Butyugin
054762da3d avrsim: migrated to Python 3
Note that the latest simulavr 1.1.0 does not support Python 2 anymore.

Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2020-09-13 11:08:46 -04:00
Kevin O'Connor
063f9a2c02 docs: Fix "QUERY_STATUS" typo in Command_Templates.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-09 23:11:24 -04:00
Paul McGowan
5a2f406fd1 probe: add get_status wrapper to probe for last_query from query_probe command (#3296)
Add get_status wrapper with last_query status for macros  It is sometimes useful to determine the state of the probe from a macro. If the probe is connected to an endstop pin, the results can be obtained via QUERY_ENDSTOPS but if a physical endstop is in use in addition to the probe the probe state cannot be obtained. This change allows one to use QUERY_PROBE  and then access the printer.probe.last_query object to obtain the state.

Signed-off-by: Paul McGowan <mental405@gmail.com>
2020-09-09 23:10:35 -04:00
rjpatawaran
c7ea4b89c9 uc1701: Add x_offset (Used to add horizontal offset on SSD1306/SH1106 displays) (#3284)
Signed-off-by: RJ Patawaran <rjpatawaran@me.com>
2020-09-09 23:07:40 -04:00
Kevin O'Connor
1f5848fc1a adc_scaled: Add support for Duet2 Maestro "vref monitoring"
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-09 22:20:54 -04:00
Kevin O'Connor
9b2816477b graph_temp_sensor: Add support for graphing sensor resistance
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-09 17:14:09 -04:00
Kevin O'Connor
fc85675145 gcode_button: Add support for analog buttons
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-09 14:21:30 -04:00
Kevin O'Connor
13ee6032ae mcu: Use schedule_pwm_out instead of set_pwm_out on a restart
Some mcu implementations don't like it when the pwm pin is configured
twice, so use the normal schedule_pwm_out implementation to update on
a restart.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-09 13:16:02 -04:00
Kevin O'Connor
9197975625 docs: Note that FORCE_MOVE can lead to "No next step" errors in G-Codes.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-08 10:18:28 -04:00
Kevin O'Connor
c285f8b6cf klippy: Improve handling of reactor.run() exceptions
Try to invoke a shutdown on an unhandled exception from reactor.run().
If that fails, try to do a clean exit.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-06 12:45:27 -04:00
Kevin O'Connor
1cdf0d474d sensor_adxl345: Remove unused stop_time parameter
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-05 09:18:59 -04:00
Kevin O'Connor
09bc207189 graph_accelerometer: Add tool to graph accelerometer results
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-05 09:11:04 -04:00
Kevin O'Connor
3405095f0a adxl345: Add support for adxl345 accelerometer
Add support for taking measurements from an adxl345 accelerometer via
SPI interface.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-05 09:11:04 -04:00
Kevin O'Connor
2b2b610cff uc1701: Improve Python3 compatibility
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-04 22:29:55 -04:00
Kevin O'Connor
d69a496b83 hd44780: Improve Python3 compatibility
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-04 22:14:06 -04:00
Kevin O'Connor
c3e9999e0c docs: Update OctoPrint and OctoPi versions in Installation.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-04 21:24:26 -04:00
Kevin O'Connor
166ce06aea buttons: Improve python3 compatibility
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-04 19:33:04 -04:00
Kevin O'Connor
5cce7f4d55 pid_calibrate: Update for improved python3 compatibility
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-04 19:30:18 -04:00
Vladimir Serov
9406baf40b config: fixed update file extension for TronXY X5SA
Signed-off-by: Vladimir Serov <me@cab404.ru>
2020-09-04 19:28:48 -04:00
Kevin O'Connor
3bcb6970f5 probe: Make sure z is homed before probing
Warn if the Z axis is not homed before attempting to probe.  This
improves the error message.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-04 15:47:52 -04:00
Kevin O'Connor
08adecd226 homing: Prefer printer.command_error() instead of homing.CommandError()
Update callers to use the printer.command_error reference instead of
directly using homing.CommandError() when raising or catching errors.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-04 12:10:36 -04:00
Kevin O'Connor
f6dd97b784 homing: Remove EndstopError
There's no reason to distinguish between an EndstopError and a
CommandError, so just use CommandError.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-04 11:41:57 -04:00
Kevin O'Connor
1f3a160f47 toolhead: Add a move.move_error() helper
Move the EndstopMoveError() code from homing.py to a new method in the
toolhead Move class.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-03 16:22:54 -04:00
Kevin O'Connor
d0ed6e5705 input_shaper: Fix typo in SET_INPUT_SHAPER report of shaper_type_y
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-03 14:19:55 -04:00
Kevin O'Connor
61fa7e82d9 travis-install: Minor change to virtualenv command-line arguments
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-03 13:27:27 -04:00
Kevin O'Connor
81865b5940 install-octopi: Use "virtualenv -p python2" to ensure python2 is selected
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-03 13:19:55 -04:00
Kevin O'Connor
6c872c71a7 quad_gantry_level: Add additional comments on how leveling works
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-03 12:09:02 -04:00
Kevin O'Connor
c69527e2b0 spi_temperature: Simplify and comment MAX31865 temperature calculations
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-09-02 10:04:35 -04:00
Adrian Keet
37d7742468 spi_temperature: fix MAX31865 temperature conversion (#3274)
Signed-off-by: Adrian Keet <arkeet@gmail.com>
2020-09-02 09:32:30 -04:00
Jon C
7c5b108531 config: Replicape config updates with pin aliases (#3269)
Adding board_pins section.

Added linux host MCU board pin aliases for endstops.

Also added a sample filament switch sensor config.

Signed-off-by: Jon Charnas <goeland86@gmail.com>
2020-09-01 11:00:48 -04:00
Kevin O'Connor
d0c5802fe2 config: Add printer-creality-ender3pro-2020.cfg to printers.test
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-30 21:53:26 -04:00
Matthias Liffers
99251015fa config: Added example config for Ender 3 Pro with 32-bit Creality 4.2.2 board (#3264)
From July 2020, Ender 3 Pros came with a 32-bit Creality 4.2.2 board, similar to the Ender 3 V2. Unlike the Ender 3 V2, it comes with the ST7920 LCD screen and HR4988 steppers. Using the config file already in Marlin source, I came up with this klipper config file.

Signed-off-by: Matthias Liffers <m@tthi.as>
2020-08-30 21:49:55 -04:00
Kevin O'Connor
12529ef6cd update_chitu: Rename script and minor changes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-30 13:11:34 -04:00
Kevin O'Connor
1d201c3592 config: Minor updates to printer-tronxy-x5sa-v6-2019.cfg
Minor changes to default config and add to printers.test.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-30 13:04:40 -04:00
Cabia Rangris
15853da28c config: Added TronXY X5SA support (#3265)
Added printer-tronxy-x5sa-v6 config.
Added "chitu" bootloader option to stm32 Kconfig.
Added chitu_crypt.

Signed-off-by: Vladimir Serov <me@cab404.ru>
2020-08-30 12:59:28 -04:00
Kevin O'Connor
a7defdcad0 kin_shaper: Fix check for optimized X or Y only calculations
The optimized version is only available if it's the only axis used.
This fixes input_shaper on corexz.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-30 12:32:11 -04:00
Kevin O'Connor
08ddf25cf3 kin_shaper: Add an init_shaper() helper function
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-30 12:32:11 -04:00
Kevin O'Connor
d28e148ddc kin_shaper: Group shaper setup code together
No code changes - just code movement.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-30 12:32:11 -04:00
Kevin O'Connor
0e21188cb2 kin_shaper: Allocate space for maximum number of shaper pulses in advance
Combine the shaper pulses and count of those pulses into a `struct
shaper_pulses`.  Allocate space for the maximum number of pulses in
`struct input_shaper`.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-30 11:30:39 -04:00
Kevin O'Connor
b6a25393d3 webhooks: Add client_info parameter to "info" webhook
Allow clients to send their version info to klipper and arrange for
that info to be logged.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-26 10:12:58 -04:00
Kevin O'Connor
2bb6b0f58f docs: Expand on host computer restrictions in the FAQ
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-26 10:11:21 -04:00
Janar Sööt
97da129793 menu: only render visible list items
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2020-08-26 10:08:12 -04:00
Janar Sööt
9459549db3 menu: fixing input gcode run issue on edit start
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2020-08-26 10:07:03 -04:00
Kevin O'Connor
37c379ddc5 stale-issue-bot: Enable github actions to handle stale issues
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-24 19:53:06 -04:00
Kevin O'Connor
ff6e879349 display: Allow redrawing the screen up to 10 times per second
Increase the maximum redraw rate from 4 times per second to 10 times
per second.  Some users have reported slower rendering times as a
result of 8fa1c977.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-24 19:02:30 -04:00
Oliver Fawcett-Griffiths
af43faa3f2 config: Tarantula Pro - Multiple tweaks and description change (#3230)
The following parameters have been tweaked:
 - X endstop position has been set to -2, as per original marlin cofig
 - Second Z axis disabled by default (this must be purchased as an
   add-on)

The comment at the top of this file has also been modified to describe
the difference between this (old) model and the new (rebranded) Tevo
Tarantula pro.

Signed-off-by: Oliver Fawcett-Griffiths <olly@ollyfg.com>
2020-08-24 18:23:50 -04:00
Kevin O'Connor
6763210558 gcode: Fix out-of-order cmd_M112 reference
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-23 13:18:30 -04:00
Kevin O'Connor
37bbf161f8 adc_temperature: Minor simplification of default sensor registration
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-23 09:02:18 -04:00
Oliver Fawcett-Griffiths
bc30414362 config: Add example printer-tevo-tarantula-pro-2020.cfg config (#3225)
Signed-off-by: Oliver Fawcett-Griffiths <olly@ollyfg.com>
2020-08-23 08:35:01 -04:00
Kevin O'Connor
4a6360f2af adc_temperature: Calculate "PT100 INA826" values from formula
Calculate the "PT100 INA826" values instead of using a voltage table.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-22 17:21:17 -04:00
Kevin O'Connor
d3e41b55b7 adc_temperature: Calculate PT1000 temperature/resistance pairs from formula
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-22 17:16:45 -04:00
Kevin O'Connor
2c76f7527d lib: Add a .gitignore file for intermediate files in lib/ directory
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-21 11:34:06 -04:00
Kevin O'Connor
1286d3006c gcode_move: Move GCodeMove class from gcode.py to new extras module
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-20 21:03:22 -04:00
Kevin O'Connor
b691e013f0 docs: Document printer.gcode_move variables in Command_Templates.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-20 21:03:22 -04:00
Kevin O'Connor
4c5e93d51d gcode: Split G0/G1 command handling to new gcode_move class
Split up the main GCodeParser class into GCodeDispatch and GCodeMove
classes.  The GCodeMove class is now available using the "gcode_move"
printer object name.  This split simplifies the gcode.py code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-20 21:03:22 -04:00
Kevin O'Connor
cd7c1b8e68 toolhead: Move G4 and M400 commands from gcode.py to toolhead.py
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-20 21:03:22 -04:00
Kevin O'Connor
80a6f59c8f gcode: Convert get_status() last_xpos to use a namedtuple
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-20 21:03:22 -04:00
Kevin O'Connor
2d5f9b6cda gcode: Remove unneeded base_xpos variables from get_status()
Convert the only user of base_zpos to use gcode_position.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-20 21:03:22 -04:00
Kevin O'Connor
c0daf43d2f gcode: Convert get_status() homing_xpos to use a namedtuple
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-20 21:03:22 -04:00
Kevin O'Connor
39261d884d gcode: Remove unused move_xpos get_status() variables
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-20 21:03:22 -04:00
Kevin O'Connor
5f47a91464 docs: Add idle_timeout get_status() info to Command_Templates.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-20 21:03:22 -04:00
Kevin O'Connor
9103aaf6d5 toolhead: Remove unused get_stats() data
The "status" and "printing_time" are now available in the
"idle_timeout" module, so no need to report them from toolhead.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-20 21:03:22 -04:00
Kevin O'Connor
b2c78d71b0 gcode: Remove "action_" commands from get_status() calls
Rename printer.gcode.action_emergency_stop() to
action_emergency_stop(), printer.gcode.action_respond_info() to
action_respond_info(), and printer.gcode.action_respond_error() to
action_raise_error() in command templates.

This simplifies the get_status() interface, as returning callable
functions from that interface was confusing.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-20 21:03:22 -04:00
Kevin O'Connor
2caaaea9a4 toolhead: Add a manual_move() helper function
Add a helper function for submitting relative movements.  This
function will also automatically ensure gcode.reset_last_position() is
called.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-20 21:03:22 -04:00
Kevin O'Connor
b9ac6d6306 skew_correction: Make sure to call reset_last_position() on a skew update
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-20 21:03:22 -04:00
Kevin O'Connor
4115a77342 gcode: Automatically call reset_last_position() on a toolhead set_position()
Generate a "toolhead:set_position" event on a call to
toolhead.set_position() and use that event to automatically call
gcode.reset_last_position().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-20 21:03:22 -04:00
Janar Sööt
560d48dbc9 menu: reduce timeout timer period to 1s
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2020-08-20 09:10:23 -04:00
Kevin O'Connor
8fa1c97767 display: Support requesting a screen redraw on a menu key press
Add a request_redraw() method and call it when a key menu event
occurs.  Limit these proactive screen redraws to no more than 4 per
second.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-20 09:04:56 -04:00
alocin73
1bdf705524 hall_filament_width_sensor: Fix Flow update before next pending_position #3184 (#3198)
After reading the first item of self.filament_array, filament_width is updated back to self.nominal_filament_dia or self.diameter instead of retaining the value until next pending_position.

Updated Filament Menu Template.

Signed-off-by: Nicola Falciani <nicola.fal@gmail.com>
2020-08-19 18:58:49 -04:00
Janar Sööt
bc904dd431 menu: remove surplus self.running=False
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2020-08-18 21:39:15 -04:00
Janar Sööt
ccfcc3789b menu: optimize container populate
- don't populate all items at once
- populate items when container is pushed to stack
- precreate List back item, don't create it during populate.
- don't update items during populate

Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2020-08-18 21:39:15 -04:00
Kevin O'Connor
2a27093f69 graph_temp_sensor: Add tool to graph ADC resolution of temperature sensors
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-17 12:37:43 -04:00
Kevin O'Connor
9d9e5c7edc klippy: Report "shutdown" category from get_state_message()
Reported by @Arksine.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-16 14:10:54 -04:00
Kevin O'Connor
fa83b1319c webhooks: Improve type checking of api requests
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-16 13:49:45 -04:00
Kevin O'Connor
7ec2ec30e3 webhooks: Convert to a json-rpc inspired message format
Convert to a new json message format.  Requests look like:

{"id":14, "method": "info", "params": {}}

and responses look like:

{"id": 14, "result": {}}

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-16 13:23:16 -04:00
Kevin O'Connor
2b0b30ccd5 webhooks: Remove call_remote_method()
Clients will now only receive messages that they've subscribed to.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-16 13:23:16 -04:00
Kevin O'Connor
1ae671f61f webhooks: Add klippy state to webhooks get_status() method
Clients can now subscribe to the webhooks get_status() info to
determine if the printer state changes.  It is no longer needed to
send a message to all clients on a shutdown transition.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-16 13:23:16 -04:00
Kevin O'Connor
b0e3effb53 webhooks: Rework get_status() subscriptions
Implement a new subscription system for get_status() updates.
Subscriptions are per-client.  After an initial update, only changes
will be transmitted.  Responses are only transmitted to the client
that issued the subscription.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-16 13:23:05 -04:00
Kevin O'Connor
16a53e6918 webhooks: Require a subscription to receive gcode output
Add a new "gcode/subscribe_output" webhook endpoint to subscribe to
gcode output.  Only client connections that subscribe to the gcode
output will receive that output.

This also moves all the gcode webhooks from gcode.py to webhooks.py
and arranges for gcode.py to be initialized prior to webhooks.py.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-16 13:20:26 -04:00
Kevin O'Connor
568393c941 webhooks: Remove "method" parameter from webhook requests
Don't require or use the "method" parameter of requests.  This
simplifies the interface.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-16 13:20:25 -04:00
Kevin O'Connor
7289af6560 webhooks: Create StatusHandler class in add_early_printer_objects()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-16 13:20:25 -04:00
Kevin O'Connor
b74a5c5217 webhooks: Remove register_static_path()
Use the "info" webhook to pass critical process information back to
the caller.  The remaining users of register_static_path() can get the
required information via get_status() calls.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-16 13:20:25 -04:00
Kevin O'Connor
0aad2437c5 webhooks: Specify server_address on klippy command-line
Don't default to "/tmp/klippy_uds" for the webhooks unix domain socket
filename.  Instead, require the filename to be specified on the
command-line (via a new "-a" parameter).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-16 13:20:25 -04:00
Kevin O'Connor
ebc79a1ee8 whconsole: Add utility for testing the "webhooks" interface
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-16 13:20:25 -04:00
Kevin O'Connor
118ef908a5 display: Remove reference to printer.gcode.busy from display.cfg
The "busy" variable was removed and using it isn't necessary.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-15 17:20:24 -04:00
Janar Sööt
b490848bc9 menu: fix for overwriting existing menu item (#3189)
In case of an overwriting existing menu item,
the new item was added additionally to the end of the items list.

Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2020-08-14 13:42:33 -04:00
Janar Sööt
7a615b4f69 hall_filament_width_sensor: fix error
Fix no attribute error in in get_status

Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2020-08-13 16:49:51 -04:00
Arksine
e4f3f60ea6 virtual_sdcard: register sd static path
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-08-11 10:47:04 -04:00
Arksine
0c7faa978c webhooks: register gcode output handler and additional static paths
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-08-11 10:47:04 -04:00
Arksine
bf221d5e26 webhooks: Implement a send buffer for socket writes
This prevents ClientConnection.send() from blocking, removing the possibility that callers become reentrant.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-08-11 10:47:04 -04:00
Arksine
4dcf494b97 webhooks: Implement unix domain socket server
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-08-11 10:47:04 -04:00
Yannic Schröder
d4dab9da5d config: Add homing order not to Ender 3 config (#3069)
By homing the y axis before the x axis, the nozzle will not touch the
plastic cover of the bed heater cable.

Signed-off-by: Yannic Schroeder <schroeder@ibr.cs.tu-bs.de>
2020-08-09 21:12:09 -04:00
Kevin O'Connor
153883c6c5 lib: Fix whitespace in README
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-09 21:10:08 -04:00
bondus
35d28e880d stm32: Improvements to CAN bus ID generation. And added a small fast hash library (#3165)
Improved CAM bus ID generation, there were issues with ID collisions.
Added a small fast hash library.

Signed-off-by: Pontus Borg <liquidpontus@yahoo.se>
2020-08-09 21:07:59 -04:00
Bryan Boettcher
04bd48ca9d adc_temperature: add support for AD597 (#3164)
The AD597 thermocouple amplifier is used in the Raise3D N2+ (and
possibly others).

Signed-off-by: Bryan Boettcher <bryan.boettcher@gmail.com>
2020-08-09 21:06:43 -04:00
Kevin O'Connor
864d172b68 docs: Note menu change in Config_Changes.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-09 09:37:54 -04:00
Janar Sööt
d991b4c83b menu: Replace menu with new Jinja2 template system (#2344)
menu.cfg:
- jinja2 template scripting
- new Setup menu
- new Calibration menu
menu:
- redesigned menu code
- jinja2 support
- option to reverse menu up and down directions
- functionality set to support menu injection from other modules
- a new way of defining menu hierarchy
- other adjustments

Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2020-08-09 09:29:55 -04:00
Trevor Jones
efebbb9a2f tmc5160: diag0 support (#3159)
Allow for diag0 only hardware to use sensorless homing.

Signed-off-by:  Trevor Jones <trevorjones141@gmail.com>
2020-08-09 08:17:51 -04:00
Kevin O'Connor
ea5e76746a itersolve: Use stricter completion check in itersolve_find_step()
Use a more strict check for determining if the iterative solver has
correctly found a step - the guess must be within 1 picometer of the
target or correct to within 1 nanosecond.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-08 11:59:19 -04:00
Kevin O'Connor
513582afc4 itersolve: Enhance "false position" method with "illinois algorithm"
This prevents some cases where the iterative solver fails to converge
in a reasonable time, causing "no next step" errors.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-08 10:58:20 -04:00
Kevin O'Connor
e5a3fd7cee gcode: Fix error causing _dump_debug() to fail
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-08 10:02:38 -04:00
Toby Harper
f851cfae46 gcode_arcs: increment absolute e coord for each arc segment (#3162)
Arc travel was working but extrusion in absolute mode seemed not to be happening at all. This was because the E coord being sent with each G1 segment of the arc was not incrementing, effectively the same value was being sent over and over so the total extrusion for the whole arc was the amount for just one segment which is an extremely tiny amount.

My change increments e_base by e_per_move for each subsequent coord when in absolute extrude mode which results in the correct absolute E value being sent for each segment.

Signed-off-by: Toby Harper <toby@fuith.org>
2020-08-07 12:15:03 -04:00
bondus
c9e7119a93 fan_generic: Add support for named fans and gcode to control them (#3054)
Signed-off-by: Pontus Borg <liquidpontus@yahoo.se>
2020-08-07 11:39:44 -04:00
Arksine
3eefc037c5 polar: fix limit_z default value
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-08-06 14:31:42 -04:00
Arksine
27ef58642e webhooks: Implement StatusHandler class
This class provides endpoints that allow connected hosts to fetch the state of printer objects and subscribe to state "pushed" over the connection.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-08-06 14:30:48 -04:00
Arksine
cde7e75139 webhooks: Add call_remote_method helper function
This may be used to execute formatted RPC calls.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-08-06 14:30:13 -04:00
Kevin O'Connor
447374f73e gcode: Separate IO handling to its own class
Move the pseudo-tty IO handling from the main gcode class to a new
gcode_io class.  This simplifies the main gcode class.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-06 14:21:08 -04:00
Kevin O'Connor
795bd03b33 webhooks: Directly invoke printer.invoke_shutdown()
No need to indirectly shutdown via the gcode class - just call
printer.invoke_shutdown() directly.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-06 14:21:08 -04:00
Kevin O'Connor
4346d37c06 webhooks: Introduce add_early_printer_objects()
Create the initial gcode class via new module level
add_early_printer_objects() function.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-06 14:21:08 -04:00
Kevin O'Connor
8c8b9b1812 gcode: Introduce add_early_printer_objects()
Create the initial gcode class via new module level
add_early_printer_objects() function.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-06 14:21:08 -04:00
Kevin O'Connor
0d930bf871 gcode: Pass the pseudo-tty fd via the start_args system
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-06 14:21:08 -04:00
Kevin O'Connor
b66dd1a60f gcode: Allow handlers to be registered for all gcode output
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-06 14:21:08 -04:00
Kevin O'Connor
8ed1696624 gcode: Only write to the gcode pseudo-tty if it appears to be active
If there isn't a reader of the output pipe it can lead to the
generation of a large number of errors.  Only attempt to write if it
appears the pipe is active.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-06 14:21:08 -04:00
Tonny Møller
8a69e5d596 config: add sample-bigtreetech-exp-mot.cfg (#3135)
Signed-off-by: Tonny Møller <tonn0297@gmail.com>
2020-08-06 14:19:37 -04:00
Kevin O'Connor
605c32fc98 docs: Move and reword the Resonance_Compensation.md link in Overview.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-05 23:28:54 -04:00
Arksine
b9f48e634e print_stats: Add virtual_sdcard state tracking
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-08-05 13:46:24 -04:00
Arksine
74c0e3a484 docs: document changes to the virtual_sdcard module
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-08-05 13:46:24 -04:00
Arksine
6b1ad715aa print_stats: stat tracking for virtual sdcard prints in progress
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2020-08-05 13:46:24 -04:00
Arksine
463194b1a3 virtual_sdcard: update get_status method
Do not reset progress to zero while paused.  Report 'is_active' and 'file_position'.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-08-05 13:46:24 -04:00
Arksine
963d7c247b virtual_sdcard: add SDCARD_PRINT_FILE gcode
SDCARD_PRINT_FILE allows Klipper to load and start the print for any
gcode file within the virtual_sdcard path, including subdirectories.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-08-05 13:46:24 -04:00
Arksine
af39a209f3 virtual_sdcard: add SDCARD_RESET_FILE gcode
This allows the user to close a currently loaded file and reset the virtual_sdcard's state.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-08-05 13:46:24 -04:00
Florian Heilmann
10987003b0 safe_z_home: Make sure X and Y are homed before homing Z (#3153)
In it's current behavior, safe_z_home will attempt to home Z if it thinks the toolhead is above the z endstop even if the motors have since been disabled and the toolhead was moved to another position

Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2020-08-05 11:52:23 -04:00
Elton Law
fe84968bdc docs: Add uninstall notes to faq
From comments in https://github.com/KevinOConnor/klipper/issues/1084

This documents the script added in 0ba1f5109d

Signed-off-by: Elton Law <eltonlaw296@gmail.com>
2020-08-03 14:16:34 -04:00
Kevin O'Connor
68e9a495dd config: Minor updates to printer-creality-ender3-v2-2020.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-02 16:27:31 -04:00
Jimmacle
6030551075 config: Add example configuration for Creality Ender 3 V2 (#3144)
Includes special serial configuration and flashing instructions for the
Creality V4.2.2 board.

Signed-off-by: John Gross <jmgross@jmgross.dev>
2020-08-01 20:20:48 -04:00
Arksine
3143e31aca temperature_sensor: report min/max measured temp via get_status
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-08-01 15:56:51 -04:00
Arksine
d37374974d filament_switch_sensor: report "enabled" state via get_status
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-08-01 15:56:51 -04:00
Arksine
c22d5b2444 toolhead: report velocity and accel via get_status
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2020-08-01 15:56:51 -04:00
Kevin O'Connor
d33a34614f docs: Add RPi_microcontroller.md link in Overview.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-08-01 13:09:09 -04:00
Kevin O'Connor
0f3b1bce66 linux: Set the SPI mode in spidev.c
Fix omission causing the SPI mode to not be set on the linux mcu.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-07-31 23:18:46 -04:00
Kevin O'Connor
1f7c3fc8ec gcode: Report the final print_time in debuginput mode
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-07-30 12:53:59 -04:00
Voron
9213646c63 corexz: Add CoreXZ kinematics (#3129)
Add a CoreXZ kinematics

Signed-off-by: Maks Zolin <mzolin@vorondesign.com>
2020-07-30 12:42:23 -04:00
Dmitry Butyugin
f3b980c1b2 docs: Suggested improvements to Input Shaper tuning guide
Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2020-07-29 21:28:18 -04:00
Dmitry Butyugin
b944666bb1 docs: ringing_tower model for input shapers tuning
Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2020-07-29 21:28:18 -04:00
Dmitry Butyugin
b62a0d5db5 docs: First version of documentation for Input Shaper tuning
Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2020-07-29 21:28:18 -04:00
Kevin O'Connor
25a9a32ecb docs: Move SET_TEMPERATURE_FAN_TARGET to its own section in G-Codes.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-07-26 10:41:43 -04:00
Martin Nowroth
ab923883f7 docs: Update G-Codes.md for SET_TEMPERATURE_FAN_TARGET (#3122)
Added extended G-Code documentation for SET_TEMPERATURE_FAN_TARGET

Signed-off-by: Martin Nowroth <madnoth@gmail.com>
2020-07-26 10:39:53 -04:00
Arksine
4795c0896d bed_mesh: Move profile management to its own class
This streamlines the BedMeshCalibrate class, making it only resposible for configuring and executing the calibration procedure.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-07-25 12:05:29 -04:00
Arksine
dbec03abd9 bed_mesh: track the probed_matrix and mesh_params exclusively in the ZMesh class
Rather than have multiple classes keep a reference to these items, keep them in the z_mesh.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-07-25 12:05:29 -04:00
Arksine
41eedda5d6 bed_mesh: differentiate between "mesh_config" and "mesh_params"
This fixes an issue where a new profile is not properly saved after a restart.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-07-25 12:05:29 -04:00
Arksine
7c8b60b40e bed_mesh: round x and y positions received via the finalize callback
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>

Update bed_mesh.py
2020-07-25 12:05:29 -04:00
Arksine
6458def588 bed_mesh: add get_status() method
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-07-25 12:05:29 -04:00
Kevin O'Connor
8ecec4be8e config: Consolidate description of heater parameters in example.cfg
Describe max_delta in [heater] instead of in [heater_bed].

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-07-25 11:56:21 -04:00
Kevin O'Connor
db05938a5f servo: Set initial value via mcu_servo.setup_start_value()
Using the setup_start_value() method avoids the PWM output line
transitioning to an intermediate state prior to setting the initial
value.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-07-25 11:39:39 -04:00
Kevin O'Connor
428a8d4881 servo: Remove servo ENABLE parameter
Allow one to disable servos via `SET_SERVO WIDTH=0` instead of using
an explicit ENABLE parameter.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-07-25 11:39:39 -04:00
Kevin O'Connor
122fd88c6a mcu: Reset pwm and digital output pins to start values on a host restart
This makes sure output pins are reset to their defaults when the host
is restarted and the micro-controller is not.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-07-25 11:36:44 -04:00
Kevin O'Connor
d204cc1fb7 mcu: Add support for commands to send only on a host restart
Add a new "on_restart" parameter to mcu.add_config_cmd() and only send
those commands on a host restart that does not involve a
micro-controller restart.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-07-25 11:36:44 -04:00
Kevin O'Connor
4a35d7e8bd update_mks_robin: Remove unnecessary imports
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-07-24 11:02:15 -04:00
Kevin O'Connor
5f2cb5436c linux: Disable hardware pwm when it is set to zero
Only write "1" to the "enable" file when a non-zero pwm width is
requested.  Write "0" to the "enable" file when a zero pwm width is
requested.

This fixes a problem on the replicape servo lines that prevented them
from being fully disabled.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-07-20 22:18:28 -04:00
Dmitry Butyugin
bc488c2161 scripts: scripts to simulate input_shaper response and toolhead movement (#3063)
Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2020-07-19 20:23:02 -04:00
combolek
3835654116 lm75: Added support for LM75/LM75A I2C connected temperature sensors (#3101)
Signed-off-by: Boleslaw Ciesielski <combolek@users.noreply.github.com>
2020-07-19 20:18:54 -04:00
Iakabos
b0901daa85 display: Add configuration options for OLED displays (#3084)
Add user-configurable contrast, vcomh (affects "smearing"), and invert options for SSD1306/SH1106 type OLED displays.

Signed-off-by:  James Esau <james_esau@hotmail.com>
2020-07-19 20:18:08 -04:00
Kevin O'Connor
0f24406acc config: Fix printer-creality-ender5-2019.cfg positions flipped
The X and Y axes were flipped.  Reported by @njilk.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-07-19 19:46:29 -04:00
Kevin O'Connor
25b6bc2f73 mcu: Remove undocumented "custom" config parameter
The "custom" config parameter is not documented and has not been
recommended in years.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-07-19 12:07:53 -04:00
Kevin O'Connor
1c508c38aa config: Minor formatting change to example.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-07-16 13:04:00 -04:00
Kevin O'Connor
53092a6474 docs: Add link to config/sample-macros.cfg in Slicers.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-07-16 13:04:00 -04:00
Kevin O'Connor
e4d0044be8 docs: Add a "hardware pin type" section to the FAQ
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-07-16 13:04:00 -04:00
Arksine
180f44b876 webhooks: fix lambda wrapper around _process_request
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-07-13 18:39:15 -04:00
Kevin O'Connor
af981432f0 thermistor: Add in definition for "SliceEngineering 450" thermistor
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-07-11 12:50:58 -04:00
Kevin O'Connor
c83688b7bc lpc176x: Fix spi mode bits
The lpc176x hardware spi initialization code was swapping the CPOL and
CPHA bits.  This caused the MAX31865 and MAX31856 chips to not work
correctly.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-07-10 16:08:18 -04:00
Dmitry Butyugin
5dc0c8aac0 input_shaper: Fixed C module compilation on older gnu90 compilers
For example, Raspbian GNU/Linux 8 (jessie) uses an old GCC version 4.9.2
which uses -std=gnu90 by default.

Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2020-07-07 17:50:51 -04:00
Arksine
cd8f250e84 webooks: do not connect if debuginput is enabled
Changing this check from debugoutput to debuginput allows remote applications to perform tests against Klippy without an MCU connected.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-07-06 12:57:50 -04:00
Arksine
bfbdc04c02 webhooks: process request handlers using a Reactor Callback
This prevents _process_data from blocking and becoming reentrant.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-07-06 12:57:50 -04:00
Paul Greidanus
65ade083b2 config: Fix for SKR Mini-e3 v2.0 UART addresses (#3059)
Y and Z were flipped as per: https://github.com/bigtreetech/BIGTREETECH-SKR-mini-E3/blob/master/firmware/V2.0/Marlin-2.0.x-SKR-mini-E3-V2.0/Marlin/Configuration_adv.h#L2204-L2212

thanks to Vael#9090 on Discord for pointing this out

Signed-off-by: Paul Greidanus <paul@majestik.org>
2020-07-06 11:40:45 -04:00
Kevin O'Connor
3a57608642 fan: Separate out the part cooling fan code from the generic fan code
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-07-05 21:04:04 -04:00
Dmitry Butyugin
4bdc11a8b3 input_shaper: Initial support of input shaping (#3032)
Input shaping can help to reduce printer vibrations due to resonances
and eliminate or reduce ghosting in prints.

Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
2020-07-05 20:54:38 -04:00
Arksine
09a3d018a8 docs: Fix broken links in RPi_microcontroller.md
Also add a note regarding "Permission denied" errors.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-07-05 20:48:12 -04:00
Arksine
342a230984 scripts: add executable permissions to klipper-mcu-start.sh
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-07-05 20:48:12 -04:00
James
7bc6470082 config: Added some sample glyphs for 128x64 screens (#3028)
A selection of sample glyphs for use on 128x64 displays.

Signed-off-by: James Wood <james@james-wood.com.au>
2020-07-02 07:37:59 -04:00
Kevin O'Connor
c6b652044d stepper: Make sure to reload trapq in set_stepper_kinematics()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-30 20:20:16 -04:00
Kevin O'Connor
541665679e config: Add printer-creality-ender5plus-2019.cfg example config
Reported by @mihaiserban.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-25 12:45:47 -04:00
Kianusch Sayah Karadji
2ae6c220e3 config: Example configuration for MKS Robin E3D/E3
Signed-off-by: Kianusch Sayah Karadji <kianusch@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-25 12:37:10 -04:00
Arksine
014c06f8a2 klippy: return message category in get_state_message()
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-06-24 19:07:33 -04:00
Arksine
2d2c09a0a3 webhooks: protect command processing from re-entry
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-06-24 19:07:33 -04:00
Arksine
a342770ac5 pause_resume: Add CANCEL_PRINT gcode
Register API endpoints for "pause_resume/pause", "pause_resume/resume" and "pause_resume/cancel".

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-06-24 19:07:33 -04:00
Arksine
a31dd0ff0e query_endstops: register "query_endstops/status" endpoint
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-06-24 19:07:33 -04:00
Arksine
72962c5ca2 gcode: add webhooks support
Register "gcode/script", "gcode/help", "gcode/restart", and "gcode/firmware_restart" endpoints.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-06-24 19:07:33 -04:00
Arksine
14ac453861 klippy: Instantiate the webhooks module
Add 'cpu_info' to start_args so it may be reported via the "info" endpoint in webhooks.py.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-06-24 19:07:33 -04:00
Arksine
475f543790 webhooks: Initial implementation
The webhooks module provides a means for Klippy to register remote API endpoints.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-06-24 19:07:33 -04:00
bondus
7a8e9591e3 stm32: Improved CAN support for STM32 (#2976)
Reworked the STM32F0 CAN bus implementation. It's more robust and higher performance.

Added support for function remapping to different pins.  API is emulating an STM32F0.

Improved and ported CAN bus to STM32F0, F1 and F4.

Signed-off-by: Pontus Borg <glpontus@gmail.com>
2020-06-24 18:59:38 -04:00
combolek
7cab732ae9 stm32: Initial support for stm32f2 (#3001)
Initial support for stm32f2 in general and STM32F207 in particular.

Boots up and communicates on STM32F207VC.

Signed-off-by: Boleslaw Ciesielski <combolek@users.noreply.github.com>
2020-06-23 10:52:15 -04:00
kianusch
a4c31bafb0 stm32: Support for 20KiB bootloader offset. (#3008)
Signed-off-by: Kianusch Sayah Karadji <kianusch@gmail.com>
2020-06-20 13:30:10 -04:00
Kevin O'Connor
755064177b config: Add pin hints for probe header in generic-duet2-maestro.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-17 13:23:53 -04:00
Denis Ignatenko
b3298d8992 hall_filament_width_sensor: Added width logging (#2981)
Signed-off-by: Denis Ignatenko deniss979@gmail.com
2020-06-16 13:36:49 -04:00
Arksine
4c571ea9ac bme280: fix reported measured time
This allows the bme280 to correctly work with the temperature_fan module.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-06-16 09:53:10 -04:00
Kevin O'Connor
65ae08ef21 menu_keys: Add a register_button() helper method
Use a helper method to register each button handler.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-15 17:23:34 -04:00
Kevin O'Connor
8d9566b945 menu_keys: Reschedule long-click timer on each click
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-15 17:23:34 -04:00
Kevin O'Connor
7d8ade74e8 menu_keys: Move button handling from menu.py to new file menu_keys.py
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-15 17:23:34 -04:00
Kevin O'Connor
a1fc1ac214 configfile: Use "import ConfigParser as configparser"
This minor change makes it easier to port the code to Python3.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-15 17:15:53 -04:00
Kevin O'Connor
40da3f406a queuelogger: Use "import Queue as queue" for improved Python3 compatibility
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-15 17:15:53 -04:00
Kevin O'Connor
4905667ee2 reactor: Use "import Queue as queue" for improved Python3 compatibility
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-15 17:15:53 -04:00
Kevin O'Connor
0e9aa76066 uc1701: Update bus import to "from .. import bus"
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-15 17:15:53 -04:00
Kevin O'Connor
f931da1b87 extras: Use "from . import module" for relative imports
Use alternate import syntax to improve Python3 compatibility.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-15 17:15:53 -04:00
Kevin O'Connor
6edc2946db sx1509: Improve Python3 compatibility
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-15 17:15:53 -04:00
Kevin O'Connor
4b231470ed delta_calibrate: Improve Python3 compatibility
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-15 17:15:53 -04:00
Kevin O'Connor
8c96e9dd11 bed_mesh: Improve Python3 compatibility
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-15 17:15:53 -04:00
Kevin O'Connor
0ccf3018d5 msgproto: Improve Python3 compatibility
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-15 17:15:53 -04:00
Kevin O'Connor
8d8c239e47 util: Improve Python3 compatibility
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-15 17:15:53 -04:00
Kevin O'Connor
f5cdfad333 mcu: Avoid using "async" for variables as it conflicts with Python3
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-15 17:15:53 -04:00
Boleslaw Ciesielski
ca2e84abba Makefile: fixed missing dependency on autoconf.h
Signed-off-by: Boleslaw Ciesielski <combolek@users.noreply.github.com>
2020-06-15 17:14:58 -04:00
Kevin O'Connor
d47a5eb8b6 config: Update generic-bigtreetech-skr-v1.4.cfg with diag1 pins
Reported by @Tomblarom.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-15 16:48:08 -04:00
Kevin O'Connor
c4de0bba50 pid_calibrate: Avoid internal error on a shutdown
If a shutdown occurs during a PID_CALIBRATE command (eg, due to a
heater problem) then exit cleanly instead of throwing an internal
error.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-14 11:34:04 -04:00
Lucio Tarantino
35bbd989e4 docs: LinuxMCU doc & script (#2956)
Signed-off-by: Lucio Tarantino <lucio.tarantino@gmail.com>
2020-06-12 20:32:12 -04:00
Kevin O'Connor
519c3ad5ee uc1701: Optimize swizzle_bits() code
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-12 09:37:37 -04:00
Kevin O'Connor
9465618adb display: Rework write_graphics() to take one character cell at a time
Change write_graphics() from taking one pixel row of n characters to
taking all the rows and columns for one character cell.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-11 00:18:23 -04:00
Kevin O'Connor
467e8e6f40 display: Default DISPLAY=display in SET_DISPLAY_GROUP command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-09 12:19:53 -04:00
Florian Heilmann
68fcbe2a62 display: add SET_DISPLAY_GROUP command (#2969)
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2020-06-09 12:07:25 -04:00
Kevin O'Connor
c630ecf3c7 config: Mention 0/1 is valid for display_glyph data
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-09 09:05:41 -04:00
Florian Heilmann
f28c3319ed uc1701: Fix for glyph rendering on uc1701 display (#2966)
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2020-06-09 08:20:48 -04:00
Kevin O'Connor
cf9627cc05 display: Use animated heated bed icons on default hd44780 display
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-09 08:09:59 -04:00
Kevin O'Connor
7713986ae1 display: Make hd44780 glyphs configurable
Allow the 20x4 hd44780 screen glyphs to be customizable from the
config file.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-09 08:09:59 -04:00
Kevin O'Connor
1a7e4e51b3 display: Use '.' and '*' in display_glyph description
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-08 21:40:42 -04:00
Kevin O'Connor
d94dd8e9fd docs: Note changes to glyph names
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-08 16:55:09 -04:00
Florian Heilmann
3dcac1308e display: Move glyph definition to printer config
This commit allows to modify the icons (or glyphs) in the displays that
support it. Existing icons can be modified and new icons can be added via
a [display_glyph] section in the config.

Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2020-06-08 16:40:45 -04:00
Kevin O'Connor
722770f62f generic: Minor header cleanup to generic/irq.h
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-07 21:18:04 -04:00
Kevin O'Connor
b0e8e84d6e docs: Add linux mcu test results to Benchmarks.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-07 09:27:55 -04:00
Kevin O'Connor
06437c5892 linux: Wait in timer dispatch for up to 2us
Use 2us in the linux timer dispatch code to unify linux timer dispatch
logic with the common timer_irq.c code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-07 09:17:51 -04:00
Kevin O'Connor
12e3b9fa7b hall_filament_width_sensor: Fix whitespace errors
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-06 14:52:56 -04:00
Kevin O'Connor
739e6e7396 extruder_stepper: Don't directly access extruder member variables
Rework extruder.get_trapq() into extruder.sync_stepper() so that
extruder_stepper.py does not need to directly access the extruder
internals.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-06 14:41:15 -04:00
theophile
518fe023b4 extruder_stepper: Support changing synced extruder on the fly (#2824)
Signed-off-by: Christopher Meredith <chmeredith@gmail.com>
2020-06-06 14:30:58 -04:00
matpab
967fe1c01c HallFilamentWidthSensor: Use current width instead of nomal width while delay is not over (#2907)
Option for using the current diameter instead of nominal while the first measurement isn't in place

Signed-off-by: Matthias Pabel <matthias.pabel@hs-augsburg.de>
2020-06-06 14:19:00 -04:00
Kevin O'Connor
a6f2fc7179 docs: Minor reword to latest Config_Changes.md update
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-06 12:51:36 -04:00
Lucio Tarantino
b7699d374a linux: Ability to use multiple GPIO chips (#2935)
Signed-off-by: Lucio Tarantino <lucio.tarantino@gmail.com>
2020-06-06 12:47:11 -04:00
Kevin O'Connor
7912c39f9e docs: Add a "why does klipper report errors" section to FAQ
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-05 17:04:02 -04:00
Kevin O'Connor
5d26c2a08e gcode_arcs: Add back in support for E moves in absolute extrude mode
This reverts commit 43fa41c1af.

The above commit disabled absolute extrude moves because it was
unclear if the code would work properly when an M221 extrude factor or
G92 offset was in use.  However, since the calculation is done
relative to the raw E position and is sent as a raw E position to
gcode.cmd_G1() these modes should not matter.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-04 15:25:17 -04:00
Kevin O'Connor
2a66286d1c display: Do not show time remaining in default 16x4 display
The time remaining estimation is wildy inaccurate.  Only show the time
elapsed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-04 15:02:18 -04:00
Kevin O'Connor
2da7d65402 config: Add example config printer-makergear-m2-2016.cfg
Reported by @N5QM.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-04 12:01:30 -04:00
Kevin O'Connor
c890aba45e config: Fix uart addresses on generic-bigtreetech-skr-mini-e3-v1.0.cfg
Reported by @Jumbu.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-04 11:50:50 -04:00
Kevin O'Connor
3a3ea90ba5 config: Fixes for generic-bigtreetech-skr-mini-e3-v2.0.cfg
Add config file to printers.test.  Fix errors in config and unify
settings with the mini-e3-v1.2 config.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-04 11:46:57 -04:00
Paul Greidanus
4b650eccb2 config: Config example for a SKR Mini E3 v2.0 (#2929)
This is a basic config example for a SKR Mini E3 v2.0, the pinouts are different than the 1.2 and requires different compile options, so worth having an example.

Signed-off-by: Paul Greidanus <paul@majestik.org>
2020-06-04 11:38:52 -04:00
Kevin O'Connor
9850dc75f4 toolhead: Handle flush_step_generation() call after dwell()
If self.kin_flush_delay changes after a G4 dwell command (or other
non-kinematic time update) then it could lead to "internal step
compression" errors.  Make sure to handle this case in
flush_step_generation().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-06-01 15:29:20 -04:00
Kevin O'Connor
38772492f9 Kconfig: Only show the "usb ids" menu if low-level options are enabled
It's rare to customize the usb ids, so make it a "low-level" option.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-31 21:05:04 -04:00
Kevin O'Connor
ea9eac6c38 Kconfig: Change the default usb vendor/product id
Change the product/vendor id to 0x1d50/0x614e, which has been reserved
for Klipper (thanks to the openmoko project).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-31 21:05:04 -04:00
BlackStump
bceb8ddee2 scripts: Permission fix for debian-install (#2936)
Signed-off-by: Trevor Wilson <altocoey@hotmail.com>
2020-05-31 19:05:46 -04:00
Kevin O'Connor
634dcc7387 lcd_hd44780: Only calibrate cmd_wait_ticks on mcus with strict timing
The calibration isn't valid on the linux mcu, so make it dependent on
CONFIG_HAVE_STRICT_TIMING.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-31 14:57:06 -04:00
Kevin O'Connor
0cbb8fdc9a lcd_st7920: Only calibrate wait ticks on mcus with strict timing
The calibration isn't valid on the linux mcu, so make it dependent on
CONFIG_HAVE_STRICT_TIMING.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-31 14:57:06 -04:00
Kevin O'Connor
98192d710f stepper: Make toggling the step gpio after timer read conditional
On the Linux mcu, toggling the pin after the time is read is not
valid.  Make that optimization dependent on CONFIG_HAVE_STRICT_TIMING.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-31 14:57:06 -04:00
Kevin O'Connor
835ec3513d Kconfig: Add a new CONFIG_HAVE_STRICT_TIMING build definition
Add a new build definition to note micro-controllers that have strict
timing.  The Linux mcu code does not have strict timing - all other
targets currently do.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-31 14:57:06 -04:00
Kevin O'Connor
b80d2f7706 stm32: Fix typo causing internal clock to always be used on stm32f042
Reported by Pontus Borg.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-28 15:56:22 -04:00
Kevin O'Connor
5ef930454e lib: Add info on hidflash to README.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-28 14:53:57 -04:00
Kevin O'Connor
a5b5474f69 hidflash: Convert changes.diff to a unix style file
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-28 14:52:22 -04:00
Arksine
67b554fde2 hidflash: Add diff file with changes from original source
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-05-28 14:44:51 -04:00
Arksine
a9426d045b docs: Update bootloaders.md with HID bootloader documentation
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-05-28 14:44:51 -04:00
Arksine
ab87af90a3 stm32f4: Add support for HID bootloader
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-05-28 14:44:51 -04:00
Arksine
380ba2a618 scripts: add libusb-1.0 to install scripts
The hid-flash tool depends on libusb-1.0-0-dev

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-05-28 14:44:51 -04:00
Arksine
05efccc874 stm32f1: Add support for HID Bootloader
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2020-05-28 14:44:51 -04:00
Arksine
4b9b705b99 lib: Add hidflash source
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-05-28 14:44:51 -04:00
kiwigod
bf367ad2b6 scripts: add arch linux install script
Automate installation for Arch Linux based systems

Signed-off-by: Arjun Sardjoe Missier <amissier@pm.me>
2020-05-28 14:40:04 -04:00
Kevin O'Connor
1ab41cf41d gcode: Make it clear that gcode.get_status() can be called without eventtime
Make it clear that gcode.get_status() to be called without an
eventtime by defaulting eventtime=None.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-26 14:59:15 -04:00
Kevin O'Connor
ceaf818a11 tuning_tower: Minor optimization
Store a reference to the gcode class in self.code.  Obtain the
z_offset once and use for both the oldval and newval calculation.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-26 14:56:52 -04:00
Kevin O'Connor
04532448bc tuning_tower: Remove max(0, z) check
Commit 9530373c introduced a minimum value of zero for the g-code z
position.  Unfortunately, that would likely cause the tuning tower to
not emit a command at the start of a test because the initial dummy z
position is set to a negative value.  The minimum bound should not be
needed so remove it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-26 14:46:15 -04:00
Kevin O'Connor
686d557863 tmc5160: Change the default for the pwm_freq field to zero
The tmc5160 spec shows a default of zero, so use that same default for
Klipper.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-24 23:58:48 -04:00
Kevin O'Connor
5afa5d3fbb docs: Fix typo in Contact.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-24 15:26:00 -04:00
Adrian Keet
b267178370 controller_fan: Add fan_speed parameter.
This gives it parity with heater_fan.  Also change the default speed from
max_power to 1.0, since it is already scaled by max_power in set_speed.

Signed-off-by: Adrian Keet <arkeet@gmail.com>
2020-05-24 11:46:46 -04:00
Rubens Panfili
9530373ccb tuning_tower: compensate z-offset (#2881)
Signed-off-by: Rubens Panfili <rubens.panfili@gmail.com>
2020-05-24 11:33:09 -04:00
Kevin O'Connor
492cd3d99f configfile: Fix check for unused config sections and options
Commit c3899cef inadvertently broke the error check for unused config
options.  Add a new note_valid parameter to the config access wrappers
and use that in get_status() to fix the check.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-21 17:50:51 -04:00
Denis Ignatenko
9270cabb74 hall_filament_width_sensor: fix overflow issue on 12 bit adc (#2902)
Signed-off-by: Denis Ignatenko <deniss979@gmail.com>
2020-05-21 13:59:09 -04:00
Denis Ignatenko
1d2746f167 hall_filament_width_sensor: Increasing measure stability (#2836)
Signed-off-by: Denis Ignatenko <deniss979@gmail.com>
2020-05-18 17:14:24 -04:00
fess
c9daefd97f z_tilt: retries, fix extra retry bug.
round to only 6 decimal places of precision.  prevents doing extra retry
from small variations due to floating point math.

Signed-off-by: John "Fess" Fessenden <fess@fess.org>
2020-05-18 14:55:25 -04:00
fess
7b0e6725ca z_tilt: retries fixup err message
print retries status before erroring on increase

Signed-off-by: John "Fess" Fessenden <fess@fess.org>
2020-05-18 14:55:25 -04:00
andryblack
8fd330c54e linux: userspace GPIO control
Allow use host GPIO pins for non-realtime purposes.

Signed-off-by: Andrey Kunitsyn <blackicebox@gmail.com>
2020-05-17 22:17:15 -04:00
Kevin O'Connor
f0c394de81 docs: Add stow_on_each_sample description to BL-Touch.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-11 12:46:25 -04:00
Kevin O'Connor
eebd7e6579 docs: Update bltouch probe_with_touch_mode documentation
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-11 12:46:25 -04:00
Kevin O'Connor
20a27c697f bltouch: Add "probe in touch mode" option
Signed-off-by: Mike Stiemke <fandjango@gmx.de>
2020-05-11 12:46:25 -04:00
Kevin O'Connor
703490da1c bltouch: Simplify handling of command timing
Always disable the PWM after each command sent.  Automatically trim
the command duration so the PWM disable doesn't increase the total
pulse time (when the duration is 200ms or greater).

Track the ideal command end time separately from the pwm transmit time
and only delay toolhead moves to this ideal time.

Update verify_state() to automatically schedule the check using the
time of the last sent command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-11 12:46:25 -04:00
Kevin O'Connor
c3b973319f config: Add printer-anet-e16-2019.cfg example config file
Reported by @dstack.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-11 12:34:58 -04:00
Nathan Plamondon
c402b275c3 bed_mesh: Fix typo (#2849)
Signed-off-by: Nate Plamondon <nplamondon@gmail.com>
2020-05-11 12:30:57 -04:00
Kevin O'Connor
787ed452c2 klippy: Rename try_load_module() to load_object()
Rename try_load_module() so that it uses consistent naming for
"printer objects".  Change the function to raise an error by default
if the specified module does not exist.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-08 11:05:14 -04:00
Kevin O'Connor
8472c57b59 klippy: Minor code movement
Move set_rollover_info() - no code changes.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-08 11:05:14 -04:00
Georgios Karnas
393f37dbfc avrsim: update avrsim pty attr (#2343)
Signed-off-by: Georgios Karnas <kargeor@gmail.com>
2020-05-05 17:57:42 -04:00
Denis Ignatenko
f88117c7e4 docs: Update HallFilamentWidthSensor.md (#2827)
Signed-off-by: Denis Ignatenko <deniss979@gmail.com>
2020-05-05 17:45:26 -04:00
Arksine
72b3ab8b29 stm32: add support for i2c read
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-05-05 11:44:19 -04:00
Kevin O'Connor
2d4b520260 gcode: Move "ok" tracking to GCodeCommand class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
bf4bd5cfc1 gcode: Remove parsing helpers from main gcode class
Remove the parsing helpers from the main gcode class now that all
callers have been converted to use the parsing helpers in the
GCodeCommand class.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
a68bb935df menu: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
1fd76b7393 manual_stepper: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
821df4e994 dotstar: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
a7ca0e1670 delayed_gcode: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
e9e0c374d6 temperature_fan: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
a11535fc86 servo: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
53093a7a15 output_pin: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
3c4091548e tmc5160: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
d759cc60d3 tmc2130: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
3e64093b81 tmc2660: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
8b8f591a05 tmc: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
0fd12609a6 neopixel: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
310d583413 gcode_button: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
1e992f9d16 filament_switch_sensor: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
02ee379f82 pause_resume: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
3e6f2206b3 hall_filament_width_sensor: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
e5c512c8d5 bed_tilt: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
f2688dbb33 bed_screws: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
0197fec202 delta_calibrate: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
b24465976e heater_bed: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
95919d1256 screws_tilt_adjust: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
203568b909 bltouch: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
4fd5090253 tuning_tower: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
7232014657 query_endstops: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:12 -04:00
Kevin O'Connor
d04476c82e fan: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
33c6667881 stepper_enable: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
a79096efdf pid_calibrate: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
12b20c6e77 safe_z_home: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
947569d347 endstop_phase: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
153c1cbe60 homing_override: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
1f64ca4fd9 query_adc: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
a13e681b2e gcode_macro: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
fb16e8810b idle_timeout: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
1d2bb5a412 tsl1401cl_filament_width_sensor: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
19abe2b974 force_move: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
57ca91a875 quad_gantry_level: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
d4adeda76b manual_probe: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
dce46ea053 z_tilt: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
ff6c11e827 probe: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
1746148a45 firmware_retraction: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
5fe5e21508 heaters: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
c186766708 configfile: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
9b6010dc7b extruder: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
6869611147 cartesian: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
ec0e3e710c toolhead: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
b0d9a82718 virtual_sdcard: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
48ebb6959d skew_correction: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
433c8c937a respond: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
5a0b9d1ce8 display_status: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
98c9a991a3 bed_mesh: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
c0796bc42d gcode_arcs: Use new GCodeCommand wrappers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
c79f135cd5 gcode: Use new GCodeCommand wrappers in command handlers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Kevin O'Connor
ddb8311890 gcode: Create new wrapper class for gcode command parameters
Instead of passing a dictionary to the command handlers, create a
wrapper class and pass that class to the command handlers.  This can
simplify the command handler code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-05 11:08:11 -04:00
Dushyant Ahuja
1eb2d4da90 docs: Clarify that Probe_Calibrate uses the speed variable for XY as well (#2735)
Signed-off-by: Dushyant Ahuja <dusht.ahuja@gmail.com>
2020-05-05 09:03:39 -04:00
Kevin O'Connor
9a92b346fd itersolve: Use more explicit list traversal in itersolve_generate_steps()
Avoid using doubles as flags when generating steps during "lead up to
stepper activity".  Instead, explicitly track how many inactive move
entries are skipped and only generate steps for those entries.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-04 14:00:53 -04:00
Kevin O'Connor
7843c23b8c itersolve: Fix numeric stability of flush range times
Don't assume the times passed to itersolve_gen_steps_range() are
contained within the move.  It's possible the checks in
itersolve_generate_steps() may round to different values when
converting the times to a relative move time.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-04 10:24:46 -04:00
Lucio Tarantino
dac42efbd9 htu21d: Support for HTI21D family sensor on I2C bus (#2803)
Signed-off-by: Lucio Tarantino <lucio.tarantino@gmail.com>
2020-05-03 18:47:24 -04:00
Arksine
f8649b4ba9 stm32: Wait for setup complete to enable ep0 rx in usbotg.c
Endpoint 0 OUT needs to NAK everything until the core signals that the
setup stage is complete.

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-03 12:00:47 -04:00
Kevin O'Connor
e93c188766 stm32: Wait for setup complete notification in usbotg.c
A setup packet is only valid after receiving the "setup complete"
notification.

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-03 11:27:43 -04:00
Janne Grunau
0aa78ec76e linux: Adapt servo0 channels for beagleboard kernel 4.14.108-ti (#2746)
The beagleboard TI kernel 4.14 and 4.19 contain a commit which change
the device names ("pwm: Create device class for pwm channels") from
pwmN to pwm-${chip}:N. This commit was never merged into the upstream
kernel.

Decrease the number of pwm channels to a more reasonable 16. Increase
the number of pwm chips to 8 since the replicape servo pwm outputs are
on pwmchip4.

Update replicape code to detect appropriate channel.

Signed-off-by: Janne Grunau <janne-gh@jannau.net>
2020-05-03 11:24:42 -04:00
andryblack
db732e58db linux: change clock frequency
Increase timer resolution for linux mcu

Signed-off-by: Andrey Kunitsyn <blackicebox@gmail.com>
2020-05-02 16:38:56 -04:00
Kevin O'Connor
f4429a54a9 clocksync: Don't filter any of the initial syncronization clock messages
Add a 50ms delay from the initial clock measurement to the first
get_clock query.  Disable the prediction_variance filter on each
get_clock query so that none of those measurements are ignored.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-02 11:08:02 -04:00
Hywelmartin
07e8011f51 config: Update printer-anycubic-kossel-plus-2017.cfg (#2775)
horizontal_move_z: 20 instead of 5... there has been some support Q about this..

Signed-off-by: Martin Malmqvist <hywelmartin@gmail.com>
2020-05-02 09:31:23 -04:00
Kevin O'Connor
3aacc4d6a2 gcode: Only call position_with_transform() when printer is ready
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-02 07:35:23 -04:00
Kevin O'Connor
b6ebf5cb09 stm32: Slow ADC frequency to 4.5Mhz
There are reports that SKR mini boards have more stable ADC results
when running the ADC at a slower frequency.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-30 19:47:23 -04:00
Kevin O'Connor
1460e0d6f4 config: Add printer-sovol-sv01-2020.cfg example config
Reported by @lalek54.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-29 21:13:11 -04:00
Kevin O'Connor
5c9551dc72 test: Add printer-tronxy-p802m-2020.cfg to printers.test
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-29 20:46:29 -04:00
camatthew88
81e71ce8f8 config: Create printer-tronxy-p802m-2020.cfg (#2796)
Signed-off-by: Matthew Blankenbehler <thecoolkids322@gmail.com>
2020-04-29 20:45:19 -04:00
Kevin O'Connor
8c2b62775d test: Fix commands.test so RESTART is run last
Commands after a RESTART aren't properly run on a test case, so only
run it last.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-28 22:53:12 -04:00
Kevin O'Connor
bf6f84b82d docs: Note that printer.heater got changed to printer.heaters
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-26 17:30:57 -04:00
Kevin O'Connor
ced389f4f6 pid_calibrate: Fix module import
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-25 14:49:50 -04:00
Kevin O'Connor
17123889f6 heaters: Make heater.py an "extras" module
The heater logic is an independent module that does not need to be
treated as part of the "core" klipper code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-25 14:26:45 -04:00
Kevin O'Connor
d858498a53 heater: Move M105 command handling from gcode.py to heater.py
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-25 14:26:28 -04:00
Kevin O'Connor
44f868a802 klippy: Add an is_shutdown() method
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-25 12:41:44 -04:00
Kevin O'Connor
86a99cf38e gcode_button: Simplify script execution
It's no longer necessary to queue gcode scripts - gcode.run_script()
now does that automatically.

Also, make release_gcode config optional.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-25 12:11:49 -04:00
Kevin O'Connor
c590bf7643 probe: Rename probe_prepare/finalize to probe_prepare/finish
The probe_finalize() name is used for callbacks in both the
PrinterProbe and ProbePointsHelper classes.  Rename the PrinterProbe
callback to avoid confusion.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-25 12:01:52 -04:00
Kevin O'Connor
64031ab3d7 gcode: Rename respond() to respond_raw()
Rename the method to make it more clear that it is a low-level call
that should be rarely used.

Also, change gcode_button.py, hall_filament_width_sensor.py, and
tsl1401cl_filament_width_sensor.py to use respond_info() instead of
respond_raw().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-24 15:54:18 -04:00
Kevin O'Connor
61524542d2 gcode: Don't export respond_error()
Don't export the respond_error() method as callers should raise a
gcode.error() instead.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-24 14:59:25 -04:00
Kevin O'Connor
568a0da50e virtual_sdcard: No need to call gcode.respond_error() on disk error
Report low-level disk errors via the log and use the normal sdcard
mechanism to report end of sdcard print to gcode users.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-24 14:54:13 -04:00
Kevin O'Connor
ed3e6b42c7 gcode: Raise a gcode.error() from G20 command
It's important to raise an error (instead of calling respond_error() )
so that a G20 will stop a virtual_sdcard print.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-24 14:53:41 -04:00
Kevin O'Connor
9730be8e17 respond: Simplify M118 handling
No need to check for '#original' in params - it's always there.
Properly handle a lower case m118 command.  Don't register a help text
for the legacy M118 g-code command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-24 10:11:37 -04:00
Kevin O'Connor
3990d997de z_tilt: Raise a gcode.error() instead of directly calling respond_error()
Raising an error (instead of reporting an error) is important as only
a raised error will stop a print from virtual_sdcard.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-24 10:10:33 -04:00
Kevin O'Connor
43fa41c1af gcode_arcs: Disable E moves in absolute extrude mode
Commit 402110f6 didn't actually fix absolute extrude mode.  For now,
report an error if an extrude move is requested in absolute extrude
mode.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-23 10:05:05 -04:00
Kevin O'Connor
fc627ec470 gcode_arcs: Minor cleanup of planArc()
Fix linear_travel optimization.  Use "2*pi" instead of "radians(360)".
Always emit at least one segment and always end at the final target
coordinates.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-22 17:58:10 -04:00
Kevin O'Connor
402110f655 gcode_arcs: Fix Z moves and E moves
Fix Z moves so that the movement is spaced out among the arc movements.

Fix extrude moves when in absolute extrude mode.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-22 16:30:02 -04:00
Kevin O'Connor
ff28f33967 gcode_arcs: Simplify parameter parsing
Use the normal gcode.get_float() mechanism for extracting parameters
from the g-code command.

Don't register descriptions for the G2/G3 commands as the convention
is to only use descriptions for "extended g-code commands".

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-22 16:19:15 -04:00
Kevin O'Connor
120331f49a safe_z_home: Simplify check for axes to home
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-22 11:55:25 -04:00
Kevin O'Connor
8ac81fed67 lpc176x: Add support for additional i2c buses
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-21 16:11:39 -04:00
Kevin O'Connor
c5e7985740 neopixel: Make sure there is a minimum low duration after a long pulse
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-21 13:12:56 -04:00
Kevin O'Connor
9e8c4770ed rotary_delta: The get_status() method should take eventtime parameter
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-20 22:36:00 -04:00
Kevin O'Connor
0b05a38361 config: Add tmc2130 example to generic-bigtreetech-skr-v1.4.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-20 22:19:42 -04:00
Kevin O'Connor
57be62b1ca config: Remove obsolete description of menu_root in example-extras.cfg
Reported by @ld3300.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-19 14:01:20 -04:00
Kevin O'Connor
06846313fd homing: Avoid divide by zero error on PROBE at minimum Z position
Reported by @proto3.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-19 12:46:50 -04:00
Kevin O'Connor
ee9657bbf6 docs: Note __test menu removed in Config_Changes.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-18 12:08:57 -04:00
Kevin O'Connor
0ae20421d1 neopixel: Allow host software to configure neopixel timing
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-15 13:29:43 -04:00
Kevin O'Connor
a7f7cc5075 neopixel: Use names for key timing values
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-15 12:11:57 -04:00
Kevin O'Connor
c7d6d81a4d test: Fix printer-tronxy-p802e-2020.cfg and add to printers.test
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-14 22:19:08 -04:00
camatthew88
f7d7df0b46 config: Create printer-tronxy-p802e (#2674)
Signed-off-by: Matthew Blankenbehler <mablankenbehler23@whitnall.com>
2020-04-14 22:14:07 -04:00
Piotr Usewicz
939b575b01 bed_mesh: Fix typo (#2692)
Signed-off-by: Piotr Usewicz <piotr@layer22.com>
2020-04-14 22:09:28 -04:00
Kevin O'Connor
03fb7961b4 config: Use restart_method=cheetah in generic-fysetc-cheetah-v1.1.cfg
Reported by @csutcliff.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-08 12:27:01 -04:00
Kevin O'Connor
4ea7b213e2 config: Change uart addresses in generic-fysetc-cheetah-v1.1.cfg
Reported by @mihero and @Magoo0876.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-08 12:24:32 -04:00
Kevin O'Connor
931b73d498 test: Add generic-ultimaker-ultimainboard-v2 to printers.test
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-08 11:28:41 -04:00
Avery Todd
1758f53b9d config: Add Ultimaker UltiMainboard v2 config. (#2696)
Adds config for the Ultimaker 2's UltiMainboard v2 board, with the 
correct pins assigned and current control for the A4988 motor
drivers.

Signed-off-by: Avery Todd <averyct@pm.me>
2020-04-08 11:26:39 -04:00
Kevin O'Connor
a028aeaf78 Revert "bltouch: No need to pause the toolhead for PWM off commands"
This reverts commit 5c8d15bbee.

The lower_probe() code was already manually optimizing the timing of
the pwm disable, and that conflicted with the optimization in commit
5c8d15bb.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-04 18:51:53 -04:00
sillyfrog
0342c50033 scripts: Update Docker file for current Klipper version (#2666)
Signed-off-by: Trent Davis <tgh@sillyfrog.com>
2020-04-02 20:19:26 -04:00
Kevin O'Connor
b2a29c6349 docs: Update BLTouch.md initial tests for users with a regular z endstop
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-02 17:34:15 -04:00
Kevin O'Connor
5d0658b91b docs: Add BLTouch.md section describing clone config options
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-02 17:34:15 -04:00
Kevin O'Connor
291fbe0801 docs: Add touch_mode sensor test to BLTouch.md
Describe how to test the sensor pin using the BLTouch touch_mode.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-02 17:34:15 -04:00
Kevin O'Connor
7a67cb86d5 config: Reword bltouch description in example-extras.cfg
The pin_up_touch_mode_reports_triggered should be set to True on all
genuine BLTouch.

Expand the description for stow_on_each_sample and state the default.

Reword the set_output_mode option to be more similar to other
descriptions.

It is no longer necessary to warn about clones being not supported.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-02 17:34:15 -04:00
Grigori Goronzy
6d2f3ef4f1 config: Fix reset/restart on Fysetc Cheetah v1.2
Deassert RTS for this board and enable the new Cheetah-specific reset
sequence.

Fixes #2026.

Signed-off-by: Grigori Goronzy <greg@chown.ath.cx>
2020-04-02 13:56:50 -04:00
Grigori Goronzy
0a20430e07 serial: Add Fysetc Cheetah board specific reset sequence
Fysetc Cheetah v1.2 boards require a special sequence to reset reliably.
This sequence works for me in all cases. Simpler sequences without
double reset did not work correctly. This is likely because of a weird
stateful circuitry for toggling the bootloader state.

Cheetah boards use RTS to configure bootloader triggering. By default,
pySerial sets RTS on connect, which unfortunately configures the board
to start the bootloader on reset.

Add a toggle for the RTS state to allow users to workaround. The RTS state
is set before the serial connection is opened, so there are no glitches.

Addresses #2026.

Signed-off-by: Grigori Goronzy <greg@chown.ath.cx>
2020-04-02 13:56:50 -04:00
Kevin O'Connor
5c8d15bbee bltouch: No need to pause the toolhead for PWM off commands
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-02 08:25:22 -04:00
Kevin O'Connor
9f2a025762 bltouch: Don't assume reset will do a pin_up in test_sensor()
Some clones don't raise the pin on a reset and the ANTClabs BL-Touch
sometimes doesn't raise the pin either.

Rework the (infrequently called) sensor test code to always issue a
pin_up command before the touch command.  Also, perform a reset and
retry if the sensor test fails.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-02 08:25:22 -04:00
Kevin O'Connor
2b916e79c7 bltouch: Call sync_print_time() on multi_probe_end()
Be sure to fully raise the probe prior to starting any future toolhead
movements in the multi_probe_end() case.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-02 08:25:22 -04:00
Kevin O'Connor
5e207d2baa bltouch: Apply reset command for a full second on a raise_probe() failure
If an error is found during the pin_up_not_triggered check, then apply
the reset command for a full second (instead of just 100ms).  This
gives the bltouch more time to check its internal state.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-02 08:25:22 -04:00
Kevin O'Connor
3646cc0140 bltouch: Separate out pin_up_not_triggered case in raise_probe()
Simplify raise_probe() by separating out the pin_up_not_triggered
case.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-02 08:25:22 -04:00
Kevin O'Connor
87bfa06b9e bltouch: Don't raise an error in verify_state()
Return the triggered state from verify_state() and update the callers
to raise the error (if needed).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-04-02 08:25:22 -04:00
Kevin O'Connor
d6034013e7 config: Add example printer-alfawise-u30-2018.cfg config
Reported by @elegos.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-30 21:29:57 -04:00
Kevin O'Connor
3c01b60a88 docs: Update FAQ with TMC2208 "standalone" mode workaround
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-29 11:08:49 -04:00
Kevin O'Connor
77177582cd extruder: step_distance must be positive on SET_EXTRUDER_STEP_DISTANCE
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-28 10:06:02 -04:00
Kevin O'Connor
336af2f28d stepper: No need to pass stepper_kinematics to set_step_dist()
Also, no need to log in stepper.py as the update is already logged in
extruder.py.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-28 10:06:02 -04:00
David Smith
d4bf61262e Extruder: Add g-code to set extruder step_distance (#2598)
Signed off by: David Smith <davidosmith@gmail.com>
2020-03-28 09:52:46 -04:00
Kevin O'Connor
8f8cf7ef41 config: Add example printer-twotrees-sapphire-pro-2020.cfg config
Reported by @thucar.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-26 11:53:06 -04:00
Kevin O'Connor
cb414ae914 config: Add example generic-mks-robin-nano.cfg config
Reported by @thucar.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-26 11:53:06 -04:00
Kevin O'Connor
8a3233b397 stepper: Add a config check for obvious incorrect homing_positive_dir
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-24 16:04:11 -04:00
Kevin O'Connor
302cd38217 update_mks_robin: Add script to update firmware for MKS Robin bootloader
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-24 10:30:02 -04:00
Kevin O'Connor
91a27ef083 stm32: Add support for 64KiB bootloader on stm32f103
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-24 10:02:21 -04:00
Kevin O'Connor
886530e777 stm32: Explicitly reset peripheral clocks on stm32f1
It appears some bootloaders do not properly reset some peripherals.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-24 10:00:45 -04:00
Kevin O'Connor
295fb7fc85 serialhdl: Reduce connection fail timeout from 2.5 minutes to 1.5 minutes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-24 10:00:45 -04:00
Kevin O'Connor
48237435b2 klippy: Log shutdown state in invoke_shutdown()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-24 08:37:36 -04:00
Kevin O'Connor
849cc075dc docs: Fix typo in MANUAL_STEPPER command line
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-23 15:06:32 -04:00
Jeremy Briffaut
6be552f6e6 Allow manual_stepper to run in parallel than an other stepper
Signed-off-by: Jeremy Briffaut <kakou@kakou.org>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-23 14:43:34 -04:00
Kevin O'Connor
6b7e917a8e statistics: Exit loop as soon as MemAvailable found
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-22 22:04:40 -04:00
Kevin O'Connor
6aae62542c statistics: Add system stats
Report os load, process cpu time, and system available memory to each
statistics report.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-22 20:02:51 -04:00
Kevin O'Connor
f3667fd453 util: Try to dump mcu build information on a connection error
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-22 13:22:52 -04:00
Kevin O'Connor
eeee2a9a35 mcu: Shutdown if a spontaneous restart of an mcu is observed
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-22 12:20:09 -04:00
Kevin O'Connor
0c9eb519ff docs: Update Manual_Level.md Z_ENDSTOP_CALIBRATE instructions
The endstop must not be triggered at the start of Z_ENDSTOP_CALIBRATE.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-22 11:18:31 -04:00
Kevin O'Connor
7543876487 docs: Add info on S3D "extra retract distance" to Slicers.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-22 11:00:02 -04:00
Kevin O'Connor
df6ca2ea1d config: Add comment on changed Z step_distance to Ender5 config
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-22 08:44:37 -04:00
Kevin O'Connor
d3a7d992aa display: Remove unused self.lcd_type variable
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-21 12:12:29 -04:00
kakou-fr
961f68629a manual_stepper: Fix sensorless endstop for manual_stepper (#2621)
Signed-off-by: Jeremy Briffaut <kakou@kakou.org>
2020-03-20 21:11:36 -04:00
Chester
35d951dabf config: Add BigTreeTech GTR board generic config file (#2626)
This config was not yet available - I have updated all the pin defines, starting with the BTT SKR board which is the most similar board + tested it on my printer which is currently working with the TMC5160 drivers using software SPI. I have not tested it with other drivers etc but the config should work for them. 

Signed-off-by: Chester Lowrey <hilo90mhz@gmail.com>
2020-03-20 21:02:24 -04:00
Kevin O'Connor
acd165cbea stepcompress: Implement a step+dir+step filter
Some stepper motor drivers do not respond well to rapid "step +
direction change + step" events.  In particular, it is believed this
can cause "over current" events on the tmc2208 drivers when they are
in "stealthchop" mode.  Detect these events and remove them from the
generated step times.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-13 21:53:48 -04:00
Kevin O'Connor
d86bf0b927 stepcompress: Move code around in stepcompress.c
Just code movement - no code changes.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-13 21:53:48 -04:00
Kevin O'Connor
5e39d346ed display: Use the active extruder in the default 16x4 screen layout
Change the default layout to show the active extruder (not always the
first extruder).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-13 21:50:38 -04:00
Kevin O'Connor
f2dd4b001d display: Use a separate display group for 16x4 multiple extruders
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-13 21:46:36 -04:00
Garth Snyder
0ba83c5b04 docs: clarify behavior of M204 with only one of P or T (#2564)
Signed-off-by: Garth Snyder <garth@garthsnyder.com>
2020-03-11 13:03:48 -04:00
Kevin O'Connor
986e9c884a display: Fix percent progress rendering on 16x4 multi-extruder layout
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-08 17:55:53 -04:00
Kevin O'Connor
3850b3d27a docs: Fix date of menu change in Config_Changes.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-08 17:42:22 -04:00
Arksine
aa7d24b0af display: add support for multiple displays
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-03-08 17:38:24 -04:00
Kevin O'Connor
6d5ce309a5 menu: Remove the "test" menu from the default menu
It is likely only developers will be interested in testing the menu
system, so no need to have it in the default menu.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-08 17:38:24 -04:00
Kevin O'Connor
d39c4fe628 menu: Disable support for "deck" and "card" menu items
Disable support for customizing the main lcd display content via the
menu system.  Advise users to use the new display_data config sections
as a replacement.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-08 17:38:24 -04:00
Kevin O'Connor
2cf03ffa23 display: Replace hard-coded display with new config based display
Introduce a new config based system for specifying the on-screen
contents of an lcd screen.  The default screen configuration (found in
klippy/extras/display/display.cfg) is the same as the previous
hard-coded display, so this should not change behavior for existing
users.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-08 17:38:21 -04:00
Kevin O'Connor
5acc181624 display_status: Separate out M73 and M117 handling to new module
Move M73 and M117 handling from display.py to a new display_status.py
module.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-08 17:36:14 -04:00
Willy Hsiao
7fb7f0d331 config: Pin logic on MKS SGEN L generic config (#2606)
Correct TMC2130 diag1_pin logic - the diag1_pin logic should be inverted and pulled up.

Use pullup for endstops - pullups should be used here.

Signed-off-by: Wen-Jeng Hsiao <isuperwilly@gmail.com>
2020-03-08 14:36:09 -04:00
Kevin O'Connor
b3cfe55b39 clocksync: Remove no longer used get_adjusted_freq() function
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-06 16:35:02 -05:00
Kevin O'Connor
62fcc5a56f mcu: Calculate homing rest_ticks via standard print_time_to_clock() call
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-06 16:33:54 -05:00
Kevin O'Connor
a61d483e21 tmc_uart: Use nominal mcu frequency in baud calculation
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-06 16:29:18 -05:00
Kevin O'Connor
e872290c47 Revert "itersolve: Implement a step+dir+step filter"
This reverts commit c9cb462f90.

The step flushing for this commit was not complete.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-05 18:37:02 -05:00
Kevin O'Connor
a074af7c87 adc_temperature: Add builtin definition for PT1000 sensors
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-05 11:46:01 -05:00
Kevin O'Connor
8d10379ad8 config: Move BME description within example-extras.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-05 11:41:38 -05:00
clearchris
f87e29c775 armcm_boot: Additional code for broken bootloaders
Explicitly disable the SysTick interrupt and explicitly set the stack
pointer, as some bootloaders aren't handling this correctly.

Signed-off-by: Chris Lombardi <clearchris@hotmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-04 19:50:56 -05:00
Kevin O'Connor
79e2376993 stm32: Add support for a bootloader on stm32f0
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-04 19:50:56 -05:00
Kevin O'Connor
c9cb462f90 itersolve: Implement a step+dir+step filter
Some stepper motor drivers do not respond well to rapid "step +
direction change + step" events.  In particular, it is believed this
can cause "over current" events on the tmc2208 drivers when they are
in "stealthchop" mode.  Detect these events and remove them from the
generated step times.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-04 19:43:47 -05:00
Kevin O'Connor
8f8c1e2c58 itersolve: Reset bounds search on a direction change
If the stepper changes direction then the average velocity since the
last step pulse isn't a good indicator of the next step pulse.
Instead, reset the bounds checking to use a low starting guess.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-04 19:43:47 -05:00
Kevin O'Connor
271e412ae6 itersolve: Simplify main itersolve_gen_steps_range() loop
Reorder the loop to try and make the code flow a little simpler.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-04 19:43:47 -05:00
Kevin O'Connor
bc6c3ba92f stepcompress: Remove "queue append" abstraction
The queue_append system predates the iterative solver - it was useful
when many different kinematic functions directly added steps to the
step compression queues.  With the iterative solver being the only
source of step generation, it is simpler to directly add steps from
the iterative solver code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-04 19:43:47 -05:00
Kevin O'Connor
d6c2e24f4c tmc5160: Support setting GLOBALSCALER to fine tune current selection
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-04 19:40:32 -05:00
Kevin O'Connor
121249c999 stm32: Revert "stm32: performance improvement for spi on stm32f0"
This reverts commit a2c309a2b0.

The above commit is causing crashes on the stm32f103xb chip when spi
is in use.  It's unclear what the cause of the regression is, but the
optimization isn't required so revert it until the root cause can be
determined.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-04 18:33:34 -05:00
Kevin O'Connor
e9e0f59204 stepper: Add some comments on s->position tracking
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-04 14:30:41 -05:00
Kevin O'Connor
63ba7d231e docs: Minor updates to Code_Overview.md
Minor indentation change.  Update for change to stepcompress_append().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-02 21:54:22 -05:00
David Smith
c0f72a2c38 safe_z_home: Support note_z_not_homed() in kinematics (#2500)
Signed-off-by: David Smith <davidosmith@gmail.com>
2020-03-01 23:00:41 -05:00
kakou-fr
7a3cbc1e23 config: Example for MMU2S DIY (#2566)
Configuration file for MMU2S DIY

Signed-off-by: Jeremy Briffaut <kakou@kakou.org>
2020-03-01 22:08:37 -05:00
Denis Ignatenko
f84542cd20 hall_filament_width_sensor: Added virtual runout sensor (#2535)
Signed-off-by: Denis Ignatenko deniss979@gmail.com
2020-03-01 22:05:12 -05:00
Kevin O'Connor
26523d77ba docs: Minor wording change to Endstop_Phase.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-03-01 11:40:13 -05:00
Kevin O'Connor
31b2c3ea7a stm32: Fix broken clock setup on stm32f1
Commit bd6c25c9 introduced a typo that caused the clock divisors to
not be set correctly on stm32f1.

Reported by @brianrjones69.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-29 13:14:12 -05:00
Kevin O'Connor
1c06ea8afe toolhead: Minor comment addition to calc_junction()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-28 22:27:23 -05:00
Kevin O'Connor
c197fdb03d heater: Fix misspelling of Celsius
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-27 11:31:51 -05:00
Angelol125
16e59511c3 config: Update printer-seemecnc-rostock-max-v2-2015.cfg (#2561)
Update printer-seemecnc-rostock-max-v2-2015.cfg to include the [display] and [board_pins] sections needed for Reprap 20x4 LCD display (#2561).

Signed-off-by: Angelo Lagis <angelo_lagis@hotmail.com>
2020-02-25 15:54:49 -05:00
FanDjango
16ecf15a91 bltouch: BTLOUCH V3.0/V3.1 Enable 5V/OD mode set commands (#2540)
Signed-off-by: Mike Stiemke <fandjango@gmx.de>
2020-02-23 22:32:07 -05:00
Kevin O'Connor
245917bf03 mcu: Introduce new lookup_query_command() command wrapper
Use new mcu.lookup_query_command() for all commands that query
information from the micro-controller.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-20 13:24:53 -05:00
Kevin O'Connor
332038ea01 serialhdl: Convert queries to use new notify message ack system
Convert standard queries to use the acknowledgments of the sent
command to determine if the response was received or not.  This also
controls command retransmissions (should the response have been lost).

The tmc_uart.py will continue to use the old mechanism as the tmcuart
responses are not sent synchronously with the query command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-20 12:01:21 -05:00
Kevin O'Connor
c6c360c4e1 serialqueue: Support notification of when a command is processed
Add ability for the host code to get a notification when the ack for a
command sent to the micro-controller is received.  This is in
preparation for improved detection of message loss between mcu and
host.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-20 12:01:21 -05:00
Kevin O'Connor
7b90830ae5 serialqueue: Remove unused serialqueue_encode_and_send() function
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-20 12:01:21 -05:00
Kevin O'Connor
98c7c7603e basecmd: No need for finalize_config command to send "config" response
The host code always issues a get_config command immediately after
finalize_config, so there is no need to send the two config response
messages.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-20 12:01:21 -05:00
Kevin O'Connor
e03f75e758 tmc: Revert incorrect changes to TPWMTHRS setting
It's not valid to set the TPWMTHRS in a "klippy:connect" event handler
because the TMCVirtualPinHelper and TMCCommandHelper classes were
expecting that field to be set during the config reading phase.

Revert "tmc: Fix typo preventing stealthchop threshold from being set"
This reverts commit 7d76067ff9.

Revert "tmc: Query the stepper step_distance from the stepper object"
This reverts commit 67b2852249.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-20 11:41:35 -05:00
Kevin O'Connor
15f21be5ec manual_stepper: Support ignoring errors on STOP_ON_ENDSTOP
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-19 13:38:22 -05:00
Kevin O'Connor
804f95ebe4 homing: Don't raise a TimeoutError from home_wait()
Change home_wait() to return if the homing operation completed
succesfully or not.  This simplifies the callers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-19 12:20:00 -05:00
Kevin O'Connor
fbbbbc85cf homing: Replace notify callback with a completion
Update the endstop code to return its trigger completion object during
home_start().  Update the toolhead class to take a completion object
(instead of creating its own).  This reduces the number of
intermediate callbacks needed during a homing operation.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-19 11:45:44 -05:00
Kevin O'Connor
e3a5e2d271 reactor: Support multiple waiting timers on a single completion
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-19 10:49:56 -05:00
Kevin O'Connor
0e37f8c9b3 graph_extruder: Internal updates to graph calculation
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-18 12:38:45 -05:00
Kevin O'Connor
17f2b4e960 config: Fix minor typo in printer-lulzbot-taz6-2017.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-18 12:11:19 -05:00
Chris Lee
90500c331a config: Update TAZ6 configuration
Support probing the corner washers for the bed tilt using G29,
flesh out the rest of the configuration for the display, and add
support for the Aerostruder (commented out by default).

Signed-Off-By: Chris Lee <clee@mg8.org>
2020-02-18 12:10:09 -05:00
Kevin O'Connor
29c6c89327 probe: Don't allow errors to propagate from "gcode:command_error" event
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-18 11:47:04 -05:00
Matt Shirley
477b83469c config: add mesh_min to printer-wanhao-duplicator-9-2018.cfg (#2525)
This is a small change I forgot to make when copying my config to this template.

Signed-off-by: Matt Shirley <mdshw5@gmail.com>
2020-02-17 20:59:08 -05:00
Christian S
aa0a889b04 menu: Set speed for move actions (#2520)
Signed-off-by: Christian Schnellrieder <schnellrieder.cs@gmail.com>
2020-02-17 20:52:54 -05:00
Kevin O'Connor
01d985a739 docs: Recommend RPi 2 or later in Installation.md
Reported by @patrickkettner.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-17 20:49:32 -05:00
Kevin O'Connor
5304c4141c filament_switch_sensor: Query "printing" status instead of tracking it
It's simpler to query the "printing" status from the idle_timeout
module on an event than it is to track changes to the printing status.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-17 17:07:54 -05:00
Kevin O'Connor
b6368173cf filament_switch_sensor: Collapse event disable flags
Introduce min_event_systime and rework the previous start_time,
last_event_time, and event_running flags into this one state tracking
variable.

This also makes a minor change to the behavior of the event_delay - it
is now calculated from the time the command completes execution
(instead of from when the event is first detected).  This may make a
difference if there is a long running g-code command occurring during
the detection event.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-17 16:57:27 -05:00
Kevin O'Connor
6716007420 filament_switch_sensor: Minor optimization to note_filament_present()
Avoid calling into the OS to obtain the system time if the filament
state hasn't changed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-17 16:51:00 -05:00
Arksine
718da75910 filament_switch_sensor: Add a get_status() method
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-02-17 16:48:43 -05:00
Arksine
9415071482 filament_switch_sensor: Execute events using reactor callbacks
This removes the possibility of re-entry to callers of  note_filament_present().

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-02-17 16:48:43 -05:00
Arksine
740c0ae636 filament_switch_sensor: Replace BaseSensor with RunoutHelper
Rather than inherit from the BaseSensor, filament sensor implementatons
may instantiate the RunoutHelper and update the filament state via its
note_filament_present method.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-02-17 16:48:43 -05:00
FanDjango
086c131bbf bltouch: Add support for stow_on_each_sample
Signed-off-by: Mike Stiemke <fandjango@gmx.de>
2020-02-15 17:58:56 -05:00
Kevin O'Connor
1dd952ac65 probe: Add multi_probe_begin() / multi_probe_end() callbacks
Add support for notifying the low-level probing handlers that a
multiple probe sequence is occurring.  This is in preparation for the
bltouch code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-15 17:52:44 -05:00
Kevin O'Connor
5bca4e6fa1 gcode: Add a "command_error" event notifier
Allow other modules to be notified if there is a gcode command error
detected.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-15 17:52:44 -05:00
Kevin O'Connor
1aa11fed8c homing: Add a "home_rails_begin" event notifier
Also, rename the "homed_rails" event to "home_rails_end".

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-15 17:52:44 -05:00
Kevin O'Connor
feb15eaf2e homing: Merge home_prepare()/home_finalize() into move_begin/move_end events
Collapse the "homing:move_begin", "homing:move_end", home_prepare(),
and home_finalize() into two new events: "homing:homing_move_begin"
and "homing:homing_move_end".  This simplifies the homing code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-15 17:52:44 -05:00
Arksine
b23346a521 bme280: handle read timeout exceptions
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-02-14 17:25:08 -05:00
test3210-d
9a65a4569b hall_filament_width_sensor: Add new filament sensor
Signed-off-by: Denis Ignatenko <deniss979@gmail.com>
2020-02-14 13:14:34 -05:00
Kevin O'Connor
049d8c2a94 config: Update description of z_hop in safe_z_home
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-14 12:42:21 -05:00
Kevin O'Connor
b5c967acd8 stm32: The stm32f1 can only reach 64Mhz when using an internal clock
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-14 12:11:50 -05:00
Kevin O'Connor
c3899cefa8 configfile: Add get_status() to export raw config file information
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-13 22:04:40 -05:00
Kevin O'Connor
fd6baa3d16 config: Minor wording change to gcode_macro rename_existing description
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-13 21:52:00 -05:00
Kevin O'Connor
79ce3ef1c5 test: Add printer-wanhao-duplicator-9-2018.cfg to printers.test
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-13 20:53:30 -05:00
Matt Shirley
b0b950b7e1 config: Add Wanhao Duplicator 9 MK1 (#2497)
Also applies to the Monoprice Maker Pro MK1.
This config is based on the version from Chris Barnes (https://www.facebook.com/Jarannis)
found on https://pastebin.com/raw/wm8PQezy. This config was mostly working and I
only had to change a few things:

  - updated key names for min_point and max_point to mesh_min and mesh_max
  - enabled PID control
  - tweaked bounds to allow movement during mesh leveling
  - removed all comments
  - decreased homing speed slightly
  - sane bed mesh sample defaults

In response to Kevin O'Connor:

- remove pressure_advance setting from extruder section
- remove respond section
- remove pause_resume section

Signed-off-by: Matt Shirley <mdshw5@gmail.com>
2020-02-13 20:52:31 -05:00
Kevin O'Connor
9818055ac3 gcode_macro: Support overriding of builtin g-code commands
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-12 20:42:03 -05:00
Kevin O'Connor
0cfab84e1a gcode: Return previous handler from register_command(cmd, None)
When overriding a g-code command, allow the caller to obtain the
previous command handler.  Use this feature in homing_override and
safe_z_home.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-12 20:19:18 -05:00
Kevin O'Connor
512ad4b3a4 query_endstops: Add get_status() method that reports the last query state
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-12 19:32:48 -05:00
FanDjango
4d9a36b34f homing: Ability to set retract speed between homing moves (#2487)
On the retract move between homing moves, use a different speed (typically a faster one).

Signed-off-by: Mike Stiemke <fandjango@gmx.de>
2020-02-12 10:09:39 -05:00
FanDjango
cb042e749d homing_heaters: Turn off heaters during homing/probing (#2486)
Signed-off-by: Mike Stiemke <fandjango@gmx.de>
2020-02-12 10:08:30 -05:00
David Smith
596f5e3e3a stepper_enable: Add SET_STEPPER_ENABLE gcode command (#2463)
Signed-off-by: David Smith <davidosmith@gmail.com>
2020-02-10 22:34:11 -05:00
Kevin O'Connor
7d76067ff9 tmc: Fix typo preventing stealthchop threshold from being set
Fix typo introduced in commit 67b28522.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-09 15:38:47 -05:00
Kevin O'Connor
6f4822fe96 stm32: Fix typo that broke selection of alternate serial port pin
Fix a typo in commit aea15250.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-09 12:01:43 -05:00
Kevin O'Connor
b3a180ea77 graph_extruder: Add in older pa algorithms for reference
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-03 16:42:57 -05:00
Kevin O'Connor
2336d2d6ab config: Fix generic-fysetc-f6.cfg stepper_z cs_pin
Reported by @jourjine

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-03 15:45:46 -05:00
David Smith
b6779cc019 delayed_gcode: Fix definition reference for UPDATE_DELAYED_GCODE (#2465)
Signed-off-by: David Smith <davidosmith@gmail.com>
2020-02-03 15:32:44 -05:00
Kevin O'Connor
68e59528a4 endstop_phase: Query the stepper step_distance from the stepper object
Don't obtain the step_distance from the config, instead obtain
step_distance from the instantiated stepper object.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-01 21:58:14 -05:00
Kevin O'Connor
67b2852249 tmc: Query the stepper step_distance from the stepper object
Don't obtain the step_distance from the config, instead obtain
step_distance from the instantiated stepper object.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-02-01 21:58:11 -05:00
Kevin O'Connor
c36fe76d69 probe: Add support for configuring lift_speed
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-31 15:47:06 -05:00
Kevin O'Connor
e3dde19932 test: Add generic-bigtreetech-skr-v1.4.cfg to printers.test
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-28 12:16:05 -05:00
Junliang Yan
f29022499e config: Add Skr v1.4 configuration (#2423)
Signed-off-by: John Yan <john.yan1019@gmail.com>
2020-01-28 12:13:54 -05:00
Kevin O'Connor
5ca132eafa stepcompress: Fix rounding error when interval=0
In the rare case where the step generation code finds an interval of
zero, it was possible for an integer division of a negative number to
cause an incorrect result.  Fix that by using the idiv_up() and
idiv_down() helpers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-25 14:20:44 -05:00
Kevin O'Connor
502e83725b stm32: Reset adc calibration prior to starting calibration
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-25 11:23:58 -05:00
Kevin O'Connor
bf3fa979f9 stm32: Increase adc sample time
Increase the sample time register from 3 to 4 (which adds about ~1.5us
to each adc sample).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-25 10:50:29 -05:00
Kevin O'Connor
264aac5856 scripts: Revert virtualenv workarounds
Revert "scripts: Disable "virtualenv setuptools" in install-octopi.sh script"
This reverts commit 5fc92ff6b7.

Revert "scripts: Install "virtualenv setuptools==44.0.0" in install-octopi.sh"
This reverts commit 730c7cfc20.

The online setuptools repository was fixed upstream, so it is no
longer necessary to implement a local virtualenv workaround.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-25 10:34:24 -05:00
mtw3d
2b3ea29f30 config: Add example printer-mtw-create-2015.cfg config file
Signed-off-by: Mike Payson <mike@mtw3d.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-24 09:28:03 -05:00
Kevin O'Connor
ef4710c6e0 hd44780: Increase timeout to 40us
There have been several reports that increasing the delay from 37us to
40us eliminates screen corruption on some clone hd44780 displays.
Increase the timeout value so that the standard code works on these
displays.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-24 00:04:31 -05:00
Kevin O'Connor
fe76fbe820 test: Add generic-simulavr.cfg to printers.test
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-23 23:29:32 -05:00
Kevin O'Connor
6e020123c6 test: Add printer-monoprice-mini-delta-2017.cfg to printers.test
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-23 23:29:32 -05:00
Kevin O'Connor
196210cad2 config: Fix file permissions of generic-flyboard.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-23 22:25:42 -05:00
Kevin O'Connor
2ea3631222 delta: Add print_radius option to customize valid XY radius
Add ability to override the default XY move checking radius.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-23 21:14:09 -05:00
Kevin O'Connor
8ed0f7c5c3 kinematics: Remove support for identifying Z steppers
The caller can now determine which steppers are connected to cartesian
Z movement via the new stepper.is_active_axis() method.  It is
therefore no longer necessary for the kinematic code to identify these
steppers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-23 20:47:01 -05:00
Kevin O'Connor
d1972b1e9c itersolve: Add ability to query the active_flags state
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-23 20:47:01 -05:00
Kevin O'Connor
8bf3e56301 config: Add example generic-flyboard.cfg config file
Reported by @DJDOUBLEG.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-23 19:23:00 -05:00
Kevin O'Connor
fc6d045ded config: Add example generic-archim2.cfg config
Signed-off-by: Mike Payson <mike@mtw3d.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-23 18:32:52 -05:00
Kevin O'Connor
0160a7db9a config: Add an example generic-mks-sgenl.cfg config
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-23 18:07:34 -05:00
Kevin O'Connor
ff0324b0c2 config: Add generic-mightyboard.cfg
Reported by @fragginright.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-23 17:49:10 -05:00
Kevin O'Connor
aea15250ae stm32: Only declare alternate usart2 on stm32f0
Also, try to improve the structure of the #if/#else/#endif layout in
serial.c.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-23 11:39:40 -05:00
Kevin O'Connor
c8a93cb3bf stm32: Don't export spi1a/spi2a on stm32f1
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-23 11:36:28 -05:00
Arne Jansen
0cd4d5d5ea stm32: add alternate pinout for USART2
Added to both generic stm32 and stm32f0

Signed-off-by: Arne Jansen <arne@die-jansens.de>
2020-01-23 11:10:39 -05:00
Arne Jansen
5ce86bd005 stm32: add alternate pinouts for spi1/2
In addition to spi3, spi1 and spi2 also have alternate pins. Add them as
spi1a and spi2a, similar to spi3.

Signed-off-by: Arne Jansen <arne@die-jansens.de>
2020-01-23 11:10:39 -05:00
Arne Jansen
a2c309a2b0 stm32: performance improvement for spi on stm32f0
The stm32 has a small queue for spi tx/rx. The current code only uses the
spi with a single byte buffer, effectively waiting for each byte to complete
before starting the next transfer.
This patch changes the structure of spi_transfer() to make use of the queue
and achieve back-to-back transfer of bytes on spi.

Signed-off-by: Arne Jansen <arne@die-jansens.de>
2020-01-23 11:10:39 -05:00
Arne Jansen
ce35ee45d6 stm32: fix spi_transfer for stm32f0
The current code accesses the DR as 32 bit. This enabled data packing mode,
effectively adding a 00 byte between each sent byte. The receive side had
similar problems.
To prevent this, all accesses are 8 bit now, even though this is not
necessary on stmf[14].

Signed-off-by: Arne Jansen <arne@die-jansens.de>
2020-01-23 11:10:39 -05:00
akatik
b3c3b61387 lpc176x: Add support for ssp1 (#2393)
Signed-off-by: Andrey Kovalev <aka@pxe.ru>
2020-01-14 22:06:29 -05:00
Eug Krashtan
b70416167b stm32f0: Remove hal based stm32f0 implementation
Signed-off-by: Eug Krashtan <eug.krashtan@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-14 17:08:01 -05:00
Eug Krashtan
a34dbc7029 stm32: STM32F0 CAN feature
Signed-off-by: Eug Krashtan <eug.krashtan@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-14 17:05:28 -05:00
Eug Krashtan
5238c3f872 stm32: HSI selection fix; Pin swap rename; Add CAN selection
Signed-off-by: Eug Krashtan <eug.krashtan@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-14 17:05:28 -05:00
chris-hammond
dd77a2ec16 config: Adding a config file for the monoprice mini delta (#2392)
A default config file for Monoprice Mini Delta printers.
Works when firmware is flashed via ST-Link V2 and when a
10A power supply is available. Lots of comments about wanting
to try pressure advance on the FB group, so I figured it was
a good time to get this added.

Signed-off-by: Chris Hammond <chammond@georgefox.edu>
2020-01-14 10:33:38 -05:00
Arksine
b562328bd0 config: add BME280 documentation
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-01-13 22:29:50 -05:00
Arksine
2159f398ea heater: add support for BME280
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-01-13 22:29:50 -05:00
Arksine
774371d78d bme280: initial implementation of BME280 environmental sensor
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-01-13 22:29:50 -05:00
Arksine
20ba396466 linux: implement i2c
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-01-13 22:29:50 -05:00
Arksine
5fe9dd5a50 avr: implement i2c_read
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-01-13 22:29:50 -05:00
Hywelmartin
b28df43b26 config: Fix thermistor association in generic-bigtreetech-skr-pro.cfg (#2390)
Signed-off-by: Martin Malmqvist <hywelmartin@gmail.com>
2020-01-13 18:23:03 -05:00
Kevin O'Connor
730c7cfc20 scripts: Install "virtualenv setuptools==44.0.0" in install-octopi.sh
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-12 18:22:14 -05:00
Kevin O'Connor
5fc92ff6b7 scripts: Disable "virtualenv setuptools" in install-octopi.sh script
The default setuptools installed by virtaulenv has dropped support for
python2.  Explicitly remove it from the installation.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-12 16:51:49 -05:00
Kevin O'Connor
2f8ad5e6ac docs: Update Config_Changes.md with actual bed_mesh merge date
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-09 14:17:51 -05:00
Arksine
46d0c6bdfc docs: Update Config_Changes.md to reflect bed_mesh changes
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-01-09 14:14:13 -05:00
Arksine
97b4eff424 bed_mesh: detect incompatible mesh profiles
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-01-09 14:14:13 -05:00
Arksine
edae40c36f docs: Update documentation to reflect bed_mesh changes
Also add new bed_mesh.md documentation.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-01-09 14:14:13 -05:00
Arksine
dc51788f9a test: update sample configs and test configs with new bed_mesh options
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-01-09 14:14:13 -05:00
Arksine
8013699c45 bed_mesh: refactor print_generated_points()
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-01-09 14:14:13 -05:00
Arksine
2a2191d201 bed_mesh: fix LOAD_PROFILE
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-01-09 14:14:13 -05:00
Arksine
13d16afa0c bed_mesh: Allow the default profile to be removed
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-01-09 14:14:13 -05:00
Arksine
2c877e1729 bed_mesh: improve interpolation checks
Move interpolation checks to _init_mesh_params() so they can be done whle the config is being parsed.  Do not allow a probe_count higher than 6 for lagrange interpolation, as this typically leads to oscillation.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-01-09 14:14:13 -05:00
Arksine
a69de2be93 bed_mesh: Move BED_MESH_MAP to Bedmesh class
Don't force probing when BED_MESH_MAP is executed,  output the existing mesh.  If the user wants to probe each time before a map they can do so with a gcode_macro.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-01-09 14:14:13 -05:00
Arksine
fe929e4696 bed_mesh: Add x,y offsets to min/max points in probe_finalize
This eliminates the need for the "mesh_params" dict to have references to the x and y offsets.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-01-09 14:14:13 -05:00
Arksine
5b20ac416c bed_mesh: refactoring
Renamed some variables in set_mesh() previous called "mesh_min" and "mesh_max" to alleviate confusion with the config options.

Renamed several attributes for clarity.  The "calibrate" attribute is now bmc, "probe_params" is now "mesh_params", "probed_z_table" is now "probed_matrix", "mesh_z_table" is now "mesh_matrix".

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-01-09 14:14:13 -05:00
Arksine
74892a7702 bed_mesh: improve logging of generated points
Points are now logged after the printer is ready.  The formatting is improved, printing out the point index, and its corresponding automatic and manual points.

BED_MESH_OUTPUT now includes a PGP parameter, if PGP=1 the generated points are printed to the terminal.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-01-09 14:14:13 -05:00
Arksine
914f701256 bed_mesh: add xy offsets to generated points
Rename min_point, max_point, and bed_radius to mesh_min, mesh_max, and mesh_radius respectively.  Add "mesh_origin" option, that allows round beds to specificy the center of the mesh.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-01-09 14:14:13 -05:00
Arksine
ec58b23f3b ProbePointsHelper: Optionally add xy offsets to probe points
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2020-01-09 14:14:13 -05:00
Kevin O'Connor
3fb0b7e4bc docs: Update Command_templates.md - numbers in gcode_macro name must be at end
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-07 20:58:39 -05:00
Kevin O'Connor
9aab58605b tuning_tower: Support tuning of traditional g-code commands
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-07 19:21:54 -05:00
Kevin O'Connor
005cfea5c3 gcode: Fix detection of some "extended" g-code commands
Fix typo that resulted in _get_extended_params() being called for all
commands.  Allow "extended" g-code commands to contain numbers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-07 19:17:20 -05:00
Kevin O'Connor
ac863a95b6 rotary_delta: Initial support for rotary delta kinematics
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-06 11:52:42 -05:00
Kevin O'Connor
a56484c98b delta_calibrate: Add support for manually entering a nozzle Z height
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-06 11:49:41 -05:00
Kevin O'Connor
2b6cf5b007 homing: Don't assume homing occurs with a constant step rate
Some kinematics do not result in a constant step rate during homing
operations.  Calculate the endstop checking rate using the total
distance traveled on the axis divided by the axis step distance.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-06 11:49:41 -05:00
Kevin O'Connor
e43ad4c953 itersolve: Export itersolve_calc_position_from_coord()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-06 11:49:41 -05:00
Kevin O'Connor
97d976fc53 stepper: Track if using units of radians instead of millimeters
The STEPPER_BUZZ command needs to know if the axis is using radians
instead of millimeters so that it can move a more appropriate
distance.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-06 11:49:41 -05:00
Kevin O'Connor
bcf10aa990 delta: Simplify DeltaCalibration state tracking
Limit the use of coordinate descent "params".

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-06 11:41:09 -05:00
Kevin O'Connor
27e6b533bc delta: Move low-level delta calibration to delta.py
Move the linear delta specific calibration code from
delta_calibrate.py to delta.py.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-06 11:41:09 -05:00
Kevin O'Connor
fdfa26edd6 delta_calibrate: Move stable position conversion to its own class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-06 11:41:09 -05:00
Simo Apell
90bc1679a2 extruder_stepper: Initial support for synchronized extruder steppers
Signed-off-by: Simo Apell <simo.apell@live.fi>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-06 11:03:05 -05:00
David Smith
6972b6303d docs: Updates for gcode_macro naming (#2317)
Add note about numbers in macro names.  Add note about variable name case restriction. Add set variable example.

Signed-off-by: David O Smith <davidosmith@gmail.com>
2020-01-06 10:59:40 -05:00
Kevin O'Connor
baa0d2ff8c docs: Minor formatting change to Config_checks.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-06 10:45:53 -05:00
Kevin O'Connor
5ff45636d9 docs: Minor FAQ updates
Fix rendering of Patreon URL in FAQ.  Use same "ls" command to find
the serial port that Installation.md uses.  Note Raspberry Pi 4 is
supported.  Note problems with ModemManager.  Point to Bed_Level.md in
Z position_endstop question.  Link to Config_checks.md in "Z
screaching" FAQ.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-06 10:45:48 -05:00
Kevin O'Connor
e576571340 fan: Do not flush look-ahead queue on fan speed change
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-03 18:13:57 -05:00
Kevin O'Connor
8158dbcc21 toolhead: Add register_lookahead_callback() method
Add a mechanism for obtaining the print_time via a callback instead of
by flushing the look-ahead queue.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-03 18:13:57 -05:00
Kevin O'Connor
4b6a65c1e0 heater: Do not flush look-ahead queue on a heater temperature update
The print_time parameter of heater.set_temp() is not currently used
and it isn't necessary to flush the look-ahead queue just get the
print_time.  Remove the parameter from heater.set_temp() to avoid
flushing the look-ahead queue.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-01-03 18:13:57 -05:00
Kevin O'Connor
dabffcc22c kin_extruder: Convert pressure advance to use "weighted average"
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-20 12:21:58 -05:00
Kevin O'Connor
54149e38f9 trapq: Limit the duration of "null" sentinal moves on the trapq
If a null move is added as the first move on the trapezoid motion
queue then it could have a very large move->move_t value.  This could
cause numerical stability issues with some advanced kinematic
formulas.  Place a limit on the move_t value to avoid this.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-20 12:13:19 -05:00
Kevin O'Connor
b921b8a1c1 docs: Document support for M204 P and T parameters
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-18 16:34:45 -05:00
Tobias Weiß
61bcb6b47f config: Update generic-fysetc-s6.cfg (#2293)
SPI communication with TMC drivers is possible with hardware SPI using the "spi1" bus.

Signed-off-by: Tobias Weiß <t.weiss@bk.ru>
2019-12-18 15:54:56 -05:00
Daniel Kucera
efc3335911 gcode_arcs: use correct current position from gcode
Signed-off-by: Daniel Kucera <github@danman.eu>
2019-12-18 12:42:40 -05:00
Kevin O'Connor
0a86190bae display: Revert "display: Add ST7567 display support (#1540)"
This reverts commit 1b92af6078.

The standard "uc1701" lcd_type can now be used in place of the custom
"st7567" lcd_type.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-18 12:30:20 -05:00
BlackStump
7532e4ccea scripts: Replicape pru update start scripts (#2277)
Signed-off-by: Trevor Wilson <altocoey@hotmail.com>
2019-12-18 12:11:40 -05:00
Kevin O'Connor
f3b4173e6b test: Use more descriptive mcu chip names
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-18 11:28:56 -05:00
Kevin O'Connor
6b6879e6bc test: Add generic-fysetc-s6.cfg to printer config test cases
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-18 11:28:30 -05:00
Tobias Weiß
58abd2925e config: Fysetc S6 generic configuration (#2220)
Signed-off-by: Tobias Weiß <t.weiss@bk.ru>
2019-12-18 11:13:25 -05:00
Georgios Karnas
9c25f42f4a config: Flash instructions for printrboard (#2278)
Signed-off-by: Georgios Karnas <kargeor@gmail.com>
2019-12-17 10:03:57 -05:00
Kevin O'Connor
abf493496c mathutil: Disable queuelogger in background_coordinate_descent()
If the queuelogger was holding the lock when the process is forked
then any attempt to log from the background process would result in a
deadlock.  Attempt a workaround by disabling the queuelogger at the
start of the background process.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-17 09:51:45 -05:00
Kevin O'Connor
d9cd524aec extruder: No need to track extrude_pos locally
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-17 02:01:54 -05:00
Kevin O'Connor
46e7027bc7 extruder: Flush step generation on ACTIVATE_EXTRUDER
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-17 01:59:06 -05:00
Kevin O'Connor
9628d9b1ac config: Minor wording change in example-extras.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-16 22:54:21 -05:00
Kevin O'Connor
7c81a16bd3 config: Update example-extras.cfg - extruder.activate_gcode was removed
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-16 21:27:55 -05:00
Kevin O'Connor
f4c4de1a24 extruder: Move M104/M140 commands from gcode.py to extruder.py
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-16 20:16:21 -05:00
Kevin O'Connor
9654816abf heater_bed: Move M140/M190 commands from gcode.py to heater_bed.py
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-16 20:02:48 -05:00
Kevin O'Connor
0e2d1a190e gcode: Rename bg_temp() to wait_for_temperature()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-16 19:21:37 -05:00
Kevin O'Connor
665323eb29 heater: Use printer.command_error() instead of internal heater.error()
Use the more standard command_error to report invalid temperature
requests.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-16 19:16:58 -05:00
Kevin O'Connor
254789f4c5 neopixel: Add support for delaying updates in SET_LED command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-15 23:24:17 -05:00
Kevin O'Connor
ab5540bd34 config: Add printer-anet-a4-2018.cfg config file
Reported by @Alkarasu.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-15 22:12:58 -05:00
Kevin O'Connor
1d05a34cd7 docs: Update Kinematics.md document with "smooth pressure advance"
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-13 17:52:51 -05:00
Kevin O'Connor
91bade5824 docs: Update Config_Changes.md with pointer to sample multi extruder configs
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-13 12:33:13 -05:00
Simon Kühling
b1bbe97576 temperature_sensor: Add get_status() function
Provide printer.<sensor-config-name>.temperature variable to gcode macro
environment

Signed-off-by: Simon Kühling <mail@simonkuehling.de>
2019-12-13 10:45:04 -05:00
Simon Kühling
2721211456 heater: Add PrinterHeater get_status() function
Provide a list of available heater and sensor names to
gcode macro templates through the printer.heater.available_heaters
and printer.heater.available_sensors variables

Signed-off-by: Simon Kühling <mail@simonkuehling.de>
2019-12-13 10:45:04 -05:00
Kevin O'Connor
4cbbe18afd itersolve: Improve numerical stability of gen_steps_pre_active check
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-10 16:44:02 -05:00
Kevin O'Connor
04b3603a1e itersolve: Rename scan_pre/_post to gen_steps_pre/post_active
Rename the variables to make it a little more clear what they do.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-10 15:53:50 -05:00
Kevin O'Connor
cff24b0220 config: Add multi extruder sample files
Add sample-multi-extruder.cfg and sample-idex.cfg files.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-10 14:24:34 -05:00
Kevin O'Connor
fcee27fc19 gcode: Remove builtin T0/T1/T2/... command support
The builtin Tn command is not sufficiently flexible to control some
multi-extruder printers.  Remove the command and encourage users to
define individual gcode_macros for each Tn instance.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-10 14:24:32 -05:00
Kevin O'Connor
c06618193d extruder: Add an ACTIVATE_EXTRUDER command
Add support for an extended g-code command to change the currently
active extruder.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-10 14:23:13 -05:00
Kevin O'Connor
ab2d302b7e gcode: Remove support for the M206 command
The M206 command isn't particularly standardized and isn't issued by
default from 3rd party software in their standard configurations.
Encourage users to use the more powerful SET_GCODE_OFFSET command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-10 14:23:10 -05:00
David Smith
d1f4f18810 config: Add example for including a parameter in a macro call (#2251)
Add description to default_parameter of g-code macro description of method to call macro with a non-default value.

Signed-off-by: David Smith <davidosmith@gmail.com>
2019-12-10 14:01:41 -05:00
Kevin O'Connor
8663bc8192 docs: Update FAQ to emphasize checking Config_Changes.md on an upgrade
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-10 13:51:47 -05:00
Kevin O'Connor
205da598fd docs: Move upgrade instructions to the last item in the FAQ
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-10 13:39:49 -05:00
Kevin O'Connor
080ee0b512 kin_extruder: Apply pressure advance in kin_extruder.c
Implement the pressure advance calculations while performing the
definitive integral calculations.  This simplifies both the
extruder.py and kin_extruder.c code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-08 20:41:35 -05:00
Kevin O'Connor
730a6d868b kin_extruder: Move integration code from trapq.c to kin_extruder.c
Move the code that calculates the definitive integral to the
kin_extruder.c file.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-08 18:30:42 -05:00
Kevin O'Connor
8b75bddc0f test: Add new delta_calibrate test case
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-05 14:48:52 -05:00
Kevin O'Connor
139274f0bb mathutil: Propagate errors from background_coordinate_descent()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-05 14:48:52 -05:00
Kevin O'Connor
72161d0405 tuning_tower: Fix typo causing tuning tower to break when homing
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-04 20:11:54 -05:00
Kevin O'Connor
10270dc7ef docs: Fix another typo in Code_Overview.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-04 12:26:45 -05:00
Kevin O'Connor
f82a85aad0 docs: Fix typo in Code_Overview.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-04 12:17:13 -05:00
Kevin O'Connor
e17f2bac96 docs: Minor "coordinate system" wording change to Code_Overview.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-04 12:05:31 -05:00
Kevin O'Connor
e557f2d0c0 docs: Add information on coordinate systems to Code_Overview.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-04 11:09:22 -05:00
Petri Honkala
98d1fee8ad tmc5160: PWMCONF is write only
Signed-off-by: Petri Honkala <cruwaller@gmail.com>
2019-12-04 09:20:39 -05:00
Kevin O'Connor
8f1753c8ce config: Update "Fysetc Mini 12864Panel" in sample-lcd.cfg
Use the more standard "lcd_type: uc1701" and reverse the encoder pins.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-04 09:13:46 -05:00
Kevin O'Connor
8e296db410 test: Add printer-wanhao-duplicator-i3-mini-2017.cfg to build tests
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-03 13:34:46 -05:00
Puffy
3c526a71f9 config: Basic config for Wanhao Duplicator i3 mini (#2238)
Signed-off-by: Grant Gordon <grant.gordon@imaginet.co.za>
2019-12-03 13:32:43 -05:00
Petri Honkala
99a74d9f07 tmc2130: use local variable instead of global Registers in MCU_TMC_SPI
Signed-off-by: Petri Honkala <cruwaller@gmail.com>
2019-12-03 12:06:37 -05:00
Kevin O'Connor
e310e5f0e8 uc1701: Add a delay after reset toggle (for displays using ResetHelper)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-03 11:13:54 -05:00
Kevin O'Connor
988ee5754e itersolve: Fix potential backwards time in itersolve_gen_steps_range()
Make sure that a newly choosen "high" bound is always greater than the
"low" bound.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-02 23:56:42 -05:00
Kevin O'Connor
a8ad1ae726 screws_tilt_adjust: Remove check for probe printer object
The probe object may not have be instantiated when the
screws_tilt_adjust object is instantiated.  Just remove the check.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-02 20:06:04 -05:00
Kevin O'Connor
8e87ab0939 gcode: Remove support for "G4 S1" style commands
The S parameter is not a standard and was not commonly used.  The P
parameter (delay specified in milliseconds) is the commonly accepted
g-code mechanism for dwelling.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-02 19:31:20 -05:00
Kevin O'Connor
2d97e0e218 uc1701: Add support for rst_pin
Add support for an optional uc1701 rst_pin.  Use the same reset pin
code handling with the SSD1306 code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-02 10:25:30 -05:00
Kevin O'Connor
2e7f38eadd hd44780: Use two separate text framebuffers
There is concern that some lcd boards that emulate the hd44780 don't
support text updates that wrap the two text framebuffers.  Update the
code to treat the two text areas as two separate framebuffers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-01 19:18:52 -05:00
Jakub Kruszona-Zawadzki
41dd53f62c config: fixes in anycubic delta plus default config file (#2176)
Signed-off-by: Jakub Kruszona-Zawadzki <acid@moosefs.com>
2019-12-01 18:51:46 -05:00
Kevin O'Connor
43bb45a1d3 docs: Minor update to Config_Changes.md
Use same "ls /dev/serial/by-id/*" command used in Installation.md.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-01 14:25:40 -05:00
Kevin O'Connor
935088ddff docs: Clarify recent usb device name change in Config_Changes.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-12-01 10:29:15 -05:00
Kevin O'Connor
7bd96950cb config: Minor comment changes to example-extras.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-28 10:34:59 -05:00
Kevin O'Connor
73e84abaff atsam: Fix typo causing chipid to not be fully read
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-27 14:33:20 -05:00
Kevin O'Connor
ef2c7cb363 stm32: Fix typo in setting of SMPR1 register on stm32f103
Only the stm32f4 has a SMP18 field; it's not present on the stm32f103.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-27 11:26:17 -05:00
Kevin O'Connor
fc476f22b6 stm32: Fix typo in adc startup delay
Fix (harmless) typo and add comments on adc timing.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-27 11:16:41 -05:00
Matt Baker
8d93d1a8ef uc1701: add config option for sh1106 type with up to 132 columns.
Signed-off-by: Matt Baker <baker.matt.j@gmail.com>
2019-11-26 19:40:39 -05:00
Kevin O'Connor
43dfb3c9ad lcd_hd44780: Minor change to timing delays
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-26 09:49:43 -05:00
Kevin O'Connor
fb485e862d lcd_hd44780: Add proper timing delays around gpio updates
A fast micro-controller may update the gpio pins faster than the
hd44780 chip can handle.  Add in the appropriate delays.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-26 09:37:30 -05:00
Kevin O'Connor
35de9b8e55 lpc176x: Move chip id code from usbserial.c to new file chipid.c
Add a chipid.c file - this makes the code layout more similar to the
other arm boards.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-26 08:54:40 -05:00
Kevin O'Connor
e80ced5568 usb_cdc: Report MCU type on all boards
Always report the "product id" as the MCU type (instead of as "Klipper
firmware").

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-26 08:45:20 -05:00
Kevin O'Connor
401f7a879c atsam: Enable chipid as usb serial number
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-26 08:42:14 -05:00
Kevin O'Connor
d7ec5505a6 atsamd: Enable chipid as usb serial number
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-25 19:30:31 -05:00
Kevin O'Connor
8f6efe5a7b stm32: Enable chipid as usb serial number
Signed-off-by: Matt Baker <baker.matt.j@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-25 19:30:31 -05:00
Kevin O'Connor
f76cb92b15 usb_cdc: Add a usb_fill_serial() helper function
Add a helper function to fill the usb serial string descriptor.  Use
it in the lpc176x code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-25 18:32:52 -05:00
Kevin O'Connor
bd6c25c9f8 stm32: Allow external crystal speed to be customized in Kconfig
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-25 14:04:26 -05:00
Kevin O'Connor
0b0e5a911e docs: Minor wording change in Pressure_Advance.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-25 11:48:41 -05:00
Kevin O'Connor
3aad25eab9 docs: Recommend normal slicer settings in Pressure_Advance.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-25 11:35:39 -05:00
Kevin O'Connor
3683273936 toolhead: Report which axes are homed via get_status()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-24 20:21:13 -05:00
Kevin O'Connor
282af0220e toolhead: Report the current extruder from the get_status() method
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-24 20:21:13 -05:00
Kevin O'Connor
982567a69a config: Rename avrsim.cfg to generic-simulavr.cfg
Rename the file to be more similar to the naming of other files.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-24 20:21:13 -05:00
Kevin O'Connor
86b074e1ee config: Rename example-multi-mcu.cfg to sample-multi-mcu.cfg
Rename the sample file to be more similar to the naming of other
files.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-24 20:21:13 -05:00
Justin Schuh
93f1e6dd86 FAN: Kick start fan when the increase is more than 50% (#2085)
Large increases in fan speed can suffer from acceleration lag, so this
change kick starts the fan for a change of 50% or more in the same way
that starting the fan from 0% does.

Signed-off-by: Justin Schuh <code@justinschuh.com>
2019-11-24 18:37:30 -05:00
Kevin O'Connor
05472bb8a3 virtual_sdcard: Don't wait for M25 in an SD gcode file
If an M25 is in a gcode file that is being printed from virtual SD, it
would cause a permanent hang.  Detect that case and don't wait for
those M25 commands.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-24 14:30:26 -05:00
Kevin O'Connor
ade65b90af force_move: Make sure to flush step generation queue after each move
Add toolhead.note_kinematic_activity() call and use it to force the
step generation to be flushed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-24 11:55:30 -05:00
Kevin O'Connor
c188aa982f docs: Kinematics.md updates for extruder instantaneous corner velocity
As of commit 5f5896ad Klipper will perform look-ahead between moves
even if they have significant differences in extruder flow rates.
Update Kinematics.md accordingly.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-22 17:04:14 -05:00
Kevin O'Connor
00fd6223ed tuning_tower: Report start of tuning test on g-code console
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-21 13:44:02 -05:00
Kevin O'Connor
89d1ab7c04 extruder: Remove support for lookahead() method
Now that the extruder lookahead method is no longer used it can be
removed from the toolhead and extruder classes.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-21 13:18:21 -05:00
Kevin O'Connor
5f5896ad71 extruder: Add support for instantaneous corner velocity
Add mechanism to perform look-ahead between moves with different
extrusion ratios.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-21 13:18:21 -05:00
Kevin O'Connor
6d0c55b6c1 extruder: Initial support for "smoothed pressure advance"
Support averaging the extruder position over a time range to "smooth
out" the velocity changes that occur during pressure advance.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-21 13:18:19 -05:00
Kevin O'Connor
da06e185fb trapq: Add trapq_find_move() function
Add support for finding a move by time in the trapezoidal velocity
move list.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-21 13:17:45 -05:00
Kevin O'Connor
a28b29993a trapq: Add code to calculate definitive integral
Support calculating the definitive integral of a cartesian axis
position over a time range of the movement queue.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-21 13:17:45 -05:00
Kevin O'Connor
d00023f3bb toolhead: Support step generation in lead up to and after stepper activity
Add support for kinematic functions that calculate step times based on
a range of the motion queue.  This requires adding additional pause
times when fully flushing the motion queue.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-21 13:17:45 -05:00
Kevin O'Connor
56cd39f038 itersolve: Support step generation in lead up to and after stepper activity
Add support for generating steps from kinematic functions that
calculate step times based on a range of the motion queue.  It
requires scanning for step generation during the lead up to stepper
activity (when the stepper would nominally be idle).  And it requires
scanning for step generation just after a stepper has nominally become
idle.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-21 13:17:45 -05:00
Kevin O'Connor
4dbe795ac2 trapq: Implement sentinel nodes on the trapq list
Use sentinels to make list traversal code simpler.  Also add in null
moves so that there are no time gaps in the list.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-21 13:17:45 -05:00
Kevin O'Connor
2843c85019 toolhead: Rename _full_flush() to flush_step_generation() and use globally
Update code that modifies the low-level kinematics handlers to first
call toolhead.flush_step_generation().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-21 13:17:45 -05:00
Kevin O'Connor
7c80e8d533 toolhead: No need to transition to Flushed state before entering Drip state
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-21 13:17:45 -05:00
Kevin O'Connor
430b8d0e52 usb_cdc: Report the MCU name instead of "Klipper firmware"
Change the "product id" from the redundant "Klipper firmware" to the
CONFIG_MCU value.  For now, only make this change on boards that have
CONFIG_HAVE_CHIPID set.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-21 11:56:31 -05:00
Kevin O'Connor
d8b6ff5c5e lpc176x: Minor rework of HAVE_CHIPID kconfig
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-21 11:54:46 -05:00
Matt Baker
bab27651a1 lpc176x: read chip id and use as usb serial. (#2184)
Signed-off-by: Matt Baker <baker.matt.j@gmail.com>
2019-11-21 11:54:20 -05:00
Florian Heilmann
b0a158c271 tmc2130: Do not error if run current below hold current (#2190)
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2019-11-21 11:09:39 -05:00
Kevin O'Connor
9055e9f9b5 docs: Update SAMD51 benchmarks
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-18 12:49:05 -05:00
Lars R. Hansen
524ebbc7b3 atsamd: Add support for SAMD51 overclocking
Signed-off-by: Lars R. Hansen <popshansen@hotmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-18 12:39:04 -05:00
Kevin O'Connor
d38aed0773 cartesian: Report dual_carriage_rails from get_steppers()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-15 12:32:04 -05:00
Kevin O'Connor
e1919e3731 toolhead: Don't report buffer_time stat during homing
The buffer_time info is misleading during a homing operation - just
report zero instead.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-15 12:21:23 -05:00
Kevin O'Connor
503891cd0e toolhead: Don't call _process_moves() if no moves present
Don't transition to the normal movement state if there aren't any
moves actually ready to be processed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-15 11:55:15 -05:00
Petri Honkala
dd529d7ad1 msgproto: unresolved symbol fixed
Signed-off-by: Petri Honkala <cruwaller@gmail.com>
2019-11-15 11:36:54 -05:00
Kevin O'Connor
8efa5e2db4 stepper_enable: Raise an error on bad lookup_enable() call
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-14 18:05:32 -05:00
Kevin O'Connor
9ff4f1bb2f stm32f0: Initial support for i2c on stm32f0
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-14 15:54:28 -05:00
Kevin O'Connor
d39142139e stepper: Remove set_commanded_position() call
Now that the only caller to set_commanded_position() is
set_position(), remove the set_commanded_position() method and pass
the set_position() call directly to the itersolve.c code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-13 19:35:26 -05:00
Kevin O'Connor
18b0749163 bltouch: No need to call get/set_commanded_position()
Now that the homing code does not call set_commanded_position(), it is
no longer necessary to save/restore the position in the bltouch code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-13 19:35:26 -05:00
Kevin O'Connor
9396431c6b stepper: Do not call itersolve_set_commanded_pos() after homing
Now that the homing code does not use get_commanded_position(), it is
no longer necessary to alter the low-level commanded position after a
homing move.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-13 19:35:26 -05:00
Kevin O'Connor
fa433c7f04 homing: Use get/set_tag_position() to determine probed position
Don't rely on get_commanded_position() to determine the final probe
point.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-13 19:35:26 -05:00
Kevin O'Connor
eed371e924 endstop_phase: Use set_tag_position() instead of set_commanded_position()
Use the new get/set_tag_position() calls to avoid altering the
low-level kinematic position.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-13 19:00:23 -05:00
Kevin O'Connor
224574da4a stepper: Add get/set_tag_position() and convert calc_position()
Rename calc_position() to calc_tag_position() and have it calculate
the value of the position from the last stepper set_tag_position()
call.  This enables the calc_tag_position() code to be more flexible
as it can be run with arbitrary positions.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-13 19:00:17 -05:00
Kevin O'Connor
e0e2f15498 fan: Move M106/M107 commands from gcode.py to fan.py
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-13 11:30:42 -05:00
Kevin O'Connor
0a39c339c7 gcode: Remove explicit active extruder tracking
There's no need to have special logic in gcode.py to track the active
extruder.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-13 11:02:26 -05:00
Kevin O'Connor
0bf4ab66da docs: Add get_status() to list of kinematics methods in Code_Overview.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-12 22:47:10 -05:00
Kevin O'Connor
e532b75e21 mcu: Minor simplification to default reset detection
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-12 22:15:04 -05:00
Kevin O'Connor
6116a5d48f stepper_enable: Remove ability to use a list of pins in enable_pin
Now that the tmc drivers perform automatic soft stepper enabling,
there is no need to be able to list multiple pins in the enable_pin
config setting.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-12 18:45:31 -05:00
Kevin O'Connor
77dff35fae tmc: Remove virtual_enable support and replace with automatic support
Automatically detect if the stepper has a dedicated enable line.  If
it does not, then automatically enable virtual enable support.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-12 18:45:31 -05:00
Kevin O'Connor
a4995c61c9 stepper: Remove add_to_endstop() method
Now that the PrinterStepper and MCU_stepper classes have been merged,
there is no need for the add_to_endstop() method.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-12 17:32:18 -05:00
Kevin O'Connor
78153ca4c3 stepper: Merge PrinterStepper and MCU_stepper classes
There's no need to track the two classes separately - just combine
them.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-12 17:32:18 -05:00
Kevin O'Connor
4ca190d393 stepper: Move MCU_stepper from mcu.py to stepper.py
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-12 17:32:18 -05:00
Kevin O'Connor
0204de46a6 stepper: Simplify PrinterRail init
Use add_extra_stepper() during class init.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-12 17:32:18 -05:00
Kevin O'Connor
0e30b862c7 stepper_enable: Move enable tracking from stepper.py to stepper_enable.py
Move the enable line tracking out of the main stepper.py code.  This
simplifies the main kinematic code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-12 17:32:18 -05:00
Kevin O'Connor
bfb34e0701 stepper_enable: Move motor_off() logic to stepper_enable.py
Directly disable all the stepper motors on a global motor_off() from
the StepperEnable() class in stepper_enable.py.  This simplifies the
toolhead and kinematic classes.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-12 17:32:18 -05:00
Kevin O'Connor
f50e054bd0 stepper_enable: Add new extras module for stepper enable line tracking
Move the M18/M84 command handling from gcode.py to new stepper_enable
module.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-10 11:55:53 -05:00
Kevin O'Connor
064804b688 graphstats: Fix matplotlib import error
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-10 10:18:31 -05:00
Kevin O'Connor
bdc7383e51 itersolve: Improve numerical stability of itersolve_generate_steps() loop
Minor rework of the loop to reduce the chance that numerical stability
could cause an infinite loop.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-08 14:17:35 -05:00
Kevin O'Connor
0bfb655f66 query_adc: Add a new module to help query and debug analog pins
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-07 19:28:27 -05:00
Kevin O'Connor
124ba12485 buttons: Only call into main thread on an adc button change
Determine the selected button (and if it has changed) in the
background thread first.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-07 18:49:56 -05:00
Kevin O'Connor
196a69c613 buttons: No need to check for None on min_value/max_value
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-07 18:42:55 -05:00
Kevin O'Connor
d40f951d6f buttons: Remove MCU_ADC_buttons debug capability
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-07 18:32:26 -05:00
Kevin O'Connor
2d5c761101 toolhead: Clear any pending pauses when a shutdown occurs
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-07 18:06:46 -05:00
Kevin O'Connor
3665e9fc53 docs: Recommend safe_z_home over homing_override
Update BLTouch.md, FAQ.md, and sample-probe-as-z-endstop.cfg to
recommend using a safe_z_home config section over a homing_override
config section.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-07 16:50:52 -05:00
Kevin O'Connor
ed610a6600 extruder: Consistently use "extruder" for the primary extruder
No longer allow the primary extruder to be named "extruder0".  This
avoids internal and external confusion between the printer objects and
config section names.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-07 16:28:47 -05:00
Kevin O'Connor
29b5961d9f docs: Note gcode_arcs and firmware_retraction commands in G-Codes.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-07 15:44:25 -05:00
Kevin O'Connor
32f61b01e9 trapq: Use C99 method for declaring struct members in trapq_append()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-07 11:32:53 -05:00
Kevin O'Connor
f63f68bbbb chelper: Report an error if the C host code does not compile
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-07 11:32:20 -05:00
Kevin O'Connor
5500538fc5 toolhead: Rename register_move_handler() to register_step_generator()
Rename the function so it is more clear what the step generation code
path is.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-07 10:59:35 -05:00
Kevin O'Connor
72735b4552 docs: Update Code_Overview.md with new trapq system
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-07 10:42:12 -05:00
Kevin O'Connor
3f338c08c1 docs: Minor micro-controller updates to Code_Overview.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-07 10:08:21 -05:00
Kevin O'Connor
2981bd601b extruder: Treat extrude with Z only movement to be an "extrude only" move
Do not apply max_extrude_cross_section check, and do apply
extrude_only_xxx checks to Z only moves that also extrude.  Some
printer start scripts will prime the extruder while moving the Z.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-07 09:45:36 -05:00
Kevin O'Connor
86121ff79e toolhead: Calculate and store axes_r in move class
Calculate the ratio of axis distance to total move distance (axis_d /
move_d) and store in a new member variable axes_r.  This avoids
needing to recalculate the value in other code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
257058981e toolhead: Simplify set_junction() code
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
076a66f791 trapq: Use separate 'move' entries for accel, cruise, and decel phases
Only track a single acceleration movement in a 'struct move' instance.
Break the classic trapezoid movement (accel, cruise, decel) into three
separate movements.  This simplifies the calculation logic.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
7ca86f1723 toolhead: Flush trapezoid velocity queue in batches
Load all items from the look-ahead queue into the trapezoid velocity
queue, and then flush that queue by time.  This prevents the host cpu
from being starved on very long moves (which may require a large
number of steps to be generated).  It also improves the overall
performance.

With the batch flushing logic in place, it is no longer necessary to
split homing moves up.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
1acaaa98c2 trapq: Remove move_fill()
Now that all callers use the trapq system to queue moves, it is no
longer necessary to individually allocate and fill a 'struct move'.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
797dcfcb12 itersolve: Remove unused gen_steps()
Eliminate the old gen_steps() call now that all callers have been
converted to the newer trapq based generate_steps().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
bd3c8920f6 mcu: Remove set_ignore_move()
Update callers of set_ignore_move() to use the trapq system to set a
stepper to ignore moves.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
befd263260 toolhead: Remove kinematic move() call
Now that all kinematics use the trapq system, there is no need to call
into the kinematics on each g-code move.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
ef53ded6bc force_move: Convert step generation to use trapq system
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
e6f713f1ce manual_stepper: Convert step generation to use trapq system
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
9845d0d103 extruder: Convert step generation to use trapq system
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
746b928c8b winch: Convert step generation to use trapq system
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
4b5cbc18a4 polar: Convert step generation to use trapq system
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
351b565728 delta: Convert step generation to use trapq system
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
b792e0fdd1 corexy: Convert step generation to use trapq system
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
7afac2b3af cartesian: Convert step generation to use trapq system
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
f3ef9c1889 itersolve: Add support for generating steps from a trapq
Support associating a stepper_kinematics with a trapq.  Support
generating steps from a time range on the given trapq.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
d3afe4f1d8 trapq: Initial support for building a queue of trapezoidal velocity moves
Add support for building a list of moves in the trapq.c code.  Update
the toolhead code so that moves generated from the look-ahead code are
added to that list.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
c06f6943a6 list: Add additional list helper functions
Add list_is_first, list_is_last, list_last_entry, and list_prev_entry
helper functions.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
fdbdb3c707 trapq: Add new trapq.c file with code for trapezoidal velocity handling
Move the "struct move" code from itersolve.c to new file trapq.c.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
374eb98765 polar: Implement bed angle wrapping adjustments in chelper code
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
92993c062b itersolve: Rename calc_position to calc_position_cb
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
9945cc0f46 itersolve: Fix possible infinite loop in itersolve_gen_steps()
If the kinematic position calculation function had an error in it (if
it produces sudden position changes) then it could lead to an infinite
loop in itersolve_gen_steps().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 15:51:51 -05:00
Kevin O'Connor
5eb5841eaf mcu: Contact and identify all the mcus prior to configuring them
Break up the connect phase into two phases - mcu_identify and connect.
The first phase will contact all the micro-controllers and obtain the
"identify" data dictionaries for them.  Once all the micro-controllers
have been contacted, then they can be configured.  This fixes an issue
with FIRMWARE_RESTART not working correctly on multi-mcu setups that
use restart_method=command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-06 10:35:24 -05:00
Kevin O'Connor
0b90337d59 config: Minor updates to printer-lulzbot-mini1-2016.cfg
Add to printers.test test case.  Don't disable the
max_extrude_cross_section check by default (users should verify they
want that safety feature off).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-05 10:57:47 -05:00
Martin
51cf244617 config: Create printer-lulzbot-mini1-2016.cfg (#2129)
Signed-off-by: Martin van Es <martin@mrvanes.com>
2019-11-05 10:54:23 -05:00
Kevin O'Connor
c11e4b74c2 config: Minor updates to printer-creality-cr20-pro-2019.cfg
Don't specify a default for pressure_advance.  Don't specify values
that are already at their default.  Add to printers.test test case.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-05 10:50:19 -05:00
bskp
0cd808cfde config: Added config for Creality CR-20 Pro (#2135)
Based on the configuration for the CR20-2018.
Added support for BLtouch, save z-homing and
automatic bed leveling.

Signed-off-by: Matthias Roggo <bskp@posteo.ch>
2019-11-05 10:47:03 -05:00
clearchris
009d14fc3e stm32: adc for new stm32f0 common code (#2120)
Derived from stm32/adc.c and stm32f0/adc.c with additional changes.

Tested on Monoprice Mini Delta (malyan) stm32f070xb board.

Signed-off-by: Chris Lombardi <clearchris@hotmail.com>
2019-11-05 10:08:32 -05:00
Kevin O'Connor
cf6e8a2eee stm32: Define PGx pins on stm32f103
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-11-02 11:35:27 -04:00
Kevin O'Connor
430ad0b658 virtual_sdcard: Only return from M25 after print confirmed paused
Wait in the M25 command handler until the work_handler() background
timer fully exits.  This ensures that subsequent g-code commands (such
as M27 or M24) will correctly report a paused state.

Reported by @foosel.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-31 11:36:35 -04:00
Kevin O'Connor
40e2c64c82 clocksync: Fix typo in pause() call at connect time
The initial clock measurement wasn't properly implementing a small
delay between clock queries.  Fix the pause() call so there is a small
delay between queries.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-31 11:36:35 -04:00
Kevin O'Connor
739583a21b test: Add printer-lulzbot-taz6-dual-v3-2017.cfg to printers.test
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-30 12:46:03 -04:00
radensb
dcedd84fe1 config: Lulzbot TAZ6 w/ Dual v3 Toolhead Config (#2111)
Signed-off-by: Ryan Densberger <magshooterz@gmail.com>
2019-10-30 12:37:22 -04:00
Kevin O'Connor
e2f5e2871c docs: Recommend OctoPrint v1.3.12 in Installation.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-30 11:02:03 -04:00
Kevin O'Connor
d65f2e2861 docs: Minor cleanup to square_tower.scad
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-27 12:16:17 -04:00
Kevin O'Connor
43453131ac config: Only document thermistors in example.cfg
Move the common temperature amplifier config descriptions to
example-extras.cfg.

Also, minor changes to wording of some example-extra.cfg sections.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-27 12:03:59 -04:00
Kevin O'Connor
1a69f38e6e flash_usb: Pass -t $CONFIG_MCU to flash_usb on all targets
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-26 18:48:00 -04:00
Kevin O'Connor
538d6ac3a2 flash_usb: Use "-s" option to specify flash offset on atsamd
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-26 18:33:00 -04:00
Kevin O'Connor
c694da3753 flash_usb: Change dfu-util to reset the board after a flash on stm32f4
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-26 18:06:32 -04:00
Kevin O'Connor
4b4e309e1b flash_usb: Inform user to manually reset after stm32f4 flash
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-26 17:46:18 -04:00
Kevin O'Connor
5131ec5eb0 stm32: Add support for flashing over usb on stm32f042
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-26 17:11:04 -04:00
Kevin O'Connor
2ecc8d8f62 stm32: stm32f4 usb boot check only needed when CONFIG_USBSERIAL
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-26 16:56:33 -04:00
Kevin O'Connor
5da6a62759 stm32f4: Add support for flashing over USB
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-26 13:24:59 -04:00
Kevin O'Connor
0ba5819370 tmc_uart: Don't try to configure analog pins to -1 value
Commit 6f5f2a3b incorrectly altered the analog mux pin config.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-26 11:33:30 -04:00
Kevin O'Connor
081c24326d atsam: sysio support is only available on sam4s
Fix sam4e build error introduced in commit f723a314.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-24 22:21:47 -04:00
Kevin O'Connor
f723a3141e atsam: Allow PB4-PB7,PB10-PB12 to be used as gpio on sam4
A separate "sysio" register must be set in order to use some port B
pins on the sam4 mcu.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-24 22:02:29 -04:00
Kevin O'Connor
6f5f2a3bc7 tmc_uart: Make sure to set analog mux pins after a restart
Don't assume the analog mux pins are in a low state at startup.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-24 22:00:58 -04:00
Kevin O'Connor
d6d2be66e4 config: The duet2 maestro uses a 2200 ohm pullup resistor
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-24 13:07:07 -04:00
Kevin O'Connor
9a11286327 stm32: Implement armcm_main() in arch specific code
Move armcm_main() to stm32f0.c, stm32f1.c, and stm32f4.c.  This gives
the arch specific code more control on the early boot setup.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-24 11:35:18 -04:00
Kevin O'Connor
faeaa54925 armcm_boot: Use armcm_main() instead of main() to start board code
The main() function has a special meaning to gcc and using it can
result in different code generation.  Use armcm_main() to avoid that.

Also, invoke SystemInit() from the board specific armcm_main() code.
This gives the board code more control over board initialization.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-24 11:16:10 -04:00
Kevin O'Connor
632ff9e55a docs: Update benchmarks for stm32f0
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 21:45:07 -04:00
Kevin O'Connor
0b0c47c566 stm32: Support PA11/PA12 pin remap on stm32f042 tsop20 chip
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 21:34:48 -04:00
Kevin O'Connor
a6d90bb95e stm32: Support stm32f042 build from stm32/ directory
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 21:34:48 -04:00
Kevin O'Connor
2c535106ee stm32: Initial support for stm32f070
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 21:19:03 -04:00
Kevin O'Connor
7e090a996a lib: Add a copy of stm32f0 cmsis files from v1.10.0
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 21:16:35 -04:00
Kevin O'Connor
7b792e40d5 stm32f0: Rename internal build symbol from MACH_STM32F0 to MACH_STM32F0_HAL
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 21:16:35 -04:00
Kevin O'Connor
a46244057c stm32: Support 16bit packet memory access on usbfs controller
The stm32f0 line uses 16bit packet memory reads/writes (as opposed to
the goofy 32bit accesses required on the stm32f103).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 21:16:35 -04:00
Kevin O'Connor
c2881f7d15 stm32: Be explicit in layout of gpio banks in digital_regs variable
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 21:16:35 -04:00
Kevin O'Connor
f160a3a824 docs: Reword Pressure_Advance.md paragraph on kinematic impact
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 19:50:51 -04:00
Kevin O'Connor
ccbdb6c531 docs: Pressure_Advance.md should recommend setting ADVANCE_LOOKAHEAD_TIME
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 19:34:59 -04:00
Kevin O'Connor
c794e11c67 docs: Update Pressure_Advance.md to use tuning tower
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 19:28:03 -04:00
Kevin O'Connor
b8a6160646 docs: Update example openocd config in Bootloaders.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 19:05:04 -04:00
Kevin O'Connor
f07292084b docs: Remove outdated stm32f1.md document
The stm32f103 has become popular in the "skr mini" series of boards.
As a result, the stm32f1.md document is no longer relevant.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 18:53:11 -04:00
Kevin O'Connor
e0afc74cc7 config: Fix EXP1 comment in generic-bigtreetech-skr-e3-dip.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 16:07:08 -04:00
Kevin O'Connor
b91993d6a4 config: Add generic-bigtreetech-skr-e3-dip.cfg config
Reported by @salimvanak.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 15:59:26 -04:00
Kevin O'Connor
40d076cce5 stm32: Use stm32f103xe header for stm32f103 line
Use the "e" revision so that the SPI3 device is available for use.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 15:49:00 -04:00
Kevin O'Connor
ef142af785 config: Rename config to generic-bigtreetech-skr-mini-e3-v1.0.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 15:04:15 -04:00
Kevin O'Connor
48530db50e test: Add generic-bigtreetech-skr-mini-e3-v1.2.cfg to config tests
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 15:01:34 -04:00
epandi
c7fe338bfb config: Skr mini e3 v1.2 template (#2069)
Signed-off-by: Eelco Pandelaar <epandi@gmail.com>
2019-10-23 14:57:00 -04:00
nhchiu
9cd6273d52 scripts: Use current username in install-ubuntu-18.04.sh
Set KLIPPER_USER to $USER instead of "octoprint".

Signed-off-by: Nathan Chiu <nhchiu2009@gmail.com>
2019-10-23 14:54:31 -04:00
Arksine
dd12c981ef temperature_fan: add get_status() function
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-10-22 22:10:13 -04:00
Arksine
d85b395a9c bed_mesh: fix error reporting
Fix invalid string formatting in the parse_pair() helper.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-10-22 22:09:33 -04:00
Kevin O'Connor
abdfd92e99 docs: Update release notes for v0.8.0 release
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-21 22:30:04 -04:00
Kevin O'Connor
dd9259aaf3 docs: Minor wording changes to Manual_level.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-16 16:48:50 -04:00
Kevin O'Connor
4811b58b39 docs: Update Manual_Level.md with recent config changes
The sample count and associated settings are no longer in the
screws_tilt_adjust config section - they are now in the probe config
section.  Remove them from the guide.

Reported by @theopensourcerer.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-16 16:35:32 -04:00
Kevin O'Connor
dd77b46de9 docs: Note AD849x support in Features.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-15 13:08:43 -04:00
Kevin O'Connor
1e8582e3f6 stm32: Make sure to turn on the usb clock before writing to the packet memory
The USB clock needs to be enabled prior to writing to the USB packet
memory.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-13 14:33:23 -04:00
Geoff Shannon
789659599c adc_temperature: add support for AD849x thermocouple amplifiers (#1994)
Signed-off-by: Geoff Shannon <geoffpshannon@gmail.com>
2019-10-10 20:11:34 -04:00
Kevin O'Connor
6d7d079bab tuning_tower: Only cancel tuning tower test if extrude at notably lower z
Some print start scripts may extrude at a position slightly higher
than the first z layer height.  Tweak the backwards z test to reduce
the chance of the tuning test ending prematurely.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-04 20:10:12 -04:00
Kevin O'Connor
4ef0db5087 docs: Update Config_Change.md with safe_z_homing change
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-03 18:09:01 -04:00
Master92
2b553a8108 safe_z_home: Fix unintended change in default behavior
PR #1970 introduced a new parameter, controlling the default behavior of the safe_z_home-module. To avoid unexpected changes, the default of the move_to_previous is now defaulted to False.

Signed-off-by: Nils Friedchen <Nils.Friedchen@googlemail.com>
2019-10-03 18:06:08 -04:00
Jason S. McMullan
7605244fa0 safe_z_home: Fix issue where 'home_xy_position: 0,0' did not position at 0,0
If '[stepper_x]' and/or '[stepper_y]' have a 'position_min' that is
non-zero, and '[safe_z_home] home_xy_position' is '0,0'; then the 'G28'
command will _not_ move to '0,0'; but stay at 'position_min' during the
Z endstop test.

This fix corrects this issue.

Signed-off-by: Jason S. McMullan <jason.mcmullan@gmail.com>
2019-10-03 18:05:21 -04:00
Nicholas Seckar
004edb9613 fan: Add off_below option for fans (#1897)
Below off_below the fan will be turned off. When configured correctly this
can prevent stalling, which may lead to overheating and failed fans. To
simplify calibration and use of this setting, off_below is applied in the
input duty cycle domain, prior to any scaling due to e.g. max_power.

Signed-off-by: Nicholas Seckar <nseckar@gmail.com>
2019-10-03 17:59:03 -04:00
Nils Schulte
27717440aa docs: Update Sensorless_Homing.md with new TMCs (#1958)
Signed-off-by: Nils Schulte <git@nilsschulte.de>
2019-10-03 17:56:40 -04:00
Kevin O'Connor
698159921f tuning_tower: Tool for tuning parameters based on print Z height
This adds a testing tool that can run a command on each Z layer of a
print.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-01 14:46:24 -04:00
Kevin O'Connor
1b8a007969 docs: Add a square_tower.scad and stl print object
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-01 14:46:24 -04:00
Kevin O'Connor
bbf6f87de0 avr: List 20Mhz option below 16Mhz option in Kconfig
When enabling "low level options" in Kconfig, selecting a chip that is
20Mhz capable would result in 20Mhz being the default.  A 16Mhz speed
is the preferred default, so list that first in the menu.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-30 10:05:02 -04:00
Kevin O'Connor
db2ee2c01a config: Fix uart pins on z stepper in generic-fysetc-cheetah-v1.2.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-29 22:17:25 -04:00
Kevin O'Connor
e90d9c33eb lpc176x: Use FIOPIN to set start value on gpio_out_reset()
The FIOSET and FIOCLR registers may not set an initial value if the
pin is not in an output mode.  So, use FIOPIN to set the initial
value.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-29 17:02:39 -04:00
Julien Lirochon
0c247e55e6 probe: Add range to probe accuracy results (#2015)
Signed-off-by: Julien Lirochon <julien@lirochon.net>
2019-09-29 16:56:46 -04:00
Kevin O'Connor
9fcd3e75cd toolhead: Fix velocity jumps in accel_to_decel lookahead processing
When reducing the maximum speed due to the max_accel_to_decel setting,
move velocity limits must still be propagated.  Otherwise, the
trapezoid move planner may produce moves with velocity jumps.

Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-26 11:10:36 -04:00
Petri Honkala
f8f0c3f142 z-tilt: Unresolved symbol fixed
Signed-off-by: Petri Honkala <cruwaller@gmail.com>
2019-09-24 12:17:03 -04:00
Piotr Usewicz
a92bdf1d54 gcode_arcs: Use is operator for Null comparison (#1989)
Signed-off-by: Piotr Usewicz <piotr@layer22.com>
2019-09-23 16:49:52 -04:00
Piotr Usewicz
6b2b8f31ee gcode_arcs: Remove unused variables (#1988)
Signed-off-by: Piotr Usewicz <piotr@layer22.com>
2019-09-23 16:49:17 -04:00
Kevin O'Connor
626cb71428 stm32: Only prompt for a bootloader on stm32f103 and stm32f407
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-18 12:11:52 -04:00
Kevin O'Connor
9e2c17f468 atsam: No need to call SystemInit() from main()
The SystemInit() is already called from armcm_boot.c.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-18 11:59:43 -04:00
Kevin O'Connor
9b70c052cc armcm_boot: Export MCU definition from armcm_boot
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-18 11:59:43 -04:00
Kevin O'Connor
1c6a8267f9 armcm_reset: Add a new helper file defining command_reset()
Add a generic ARM Cortex-M implementation of the "reset" command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-18 11:59:43 -04:00
Kevin O'Connor
80e17b1e53 stm32: Move VTOR fixup from main() to chip specific code
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-18 11:59:43 -04:00
Kevin O'Connor
8cb3d09484 stm32: Move usb_request_bootloader() to chip specific code
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-18 11:59:43 -04:00
achmed20
fce98c5519 gcode_arcs: use z-height defined in f2/3 code, if present
Signed-off-by: Aleksej Vasiljkovic <achmed21@gmail.com>
2019-09-18 11:57:16 -04:00
Kevin O'Connor
8c69e1bcfe gcode: Allow M105 to produce output if called from a macro
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-18 09:58:16 -04:00
towe96
9be2250431 config: IMPROVED FYSETC F6 CONFIGURATION (#1985)
Since the previous config file was laid out only for TMC2208 drivers and was missing most other pins, I made a comprehensive configuration file, with hardware names for all available functionality.

Signed-off-by: Tobias Weiß <t.weiss@bk.ru>
2019-09-18 09:42:17 -04:00
Master92
3a37d4a208 safe_z_home: Hop only if necessary and add option to move xy back
Once a hop is performed, it will only be re-issued if the z-axis has been
moved in the meantime. Usually it is only moved by a z-homing so doing so
will cause safe_z_home to do the hop on the next homing action.

When z-axis is homed, x and y positions are known. When setting this
boolean option, these are set back to their last positions.

Whenever a hop is specified it is re-issued after the Z axis has been
homed. This is especially necessary when a pressure-based probe is used.
Also, the module decides if a hop is necessary, based on either a known
Z position or a flag that is set whenever the motors are disabled.

Signed-off-by: Nils Friedchen <Nils.Friedchen@googlemail.com>
2019-09-18 09:37:33 -04:00
Piotr Usewicz
80775faa09 config: Fix grammar and typos for the new arc config (#1968)
Signed-off-by: Piotr Usewicz <piotr@layer22.com>
2019-09-18 09:27:47 -04:00
John Jardine
020ca5ac2c samd_sercom: fix pin enumeration error when mcu is specified
Previously, when a sercom pin specified the mcu (myname:PIN), it would result in a pin enumeration error.

Signed-off-by: John Jardine <john@gprime.net>
2019-09-17 13:28:57 -04:00
Master92
fd2f17f847 controller_fan: Replace else followed by single if with elif
Signed-off-by: Nils Friedchen <Nils.Friedchen@googlemail.com>
2019-09-17 11:52:03 -04:00
Master92
4e09cacece controller_fan: Use keyword arguments to improve readability
Signed-off-by: Nils Friedchen <Nils.Friedchen@googlemail.com>
2019-09-17 11:52:03 -04:00
Master92
4fab93a8b0 controller_fan: Use snake-case for all variables and function-names
Signed-off-by: Nils Friedchen <Nils.Friedchen@googlemail.com>
2019-09-17 11:52:03 -04:00
Master92
6333dc2069 controller_fan: Use _ to declare discarded return value
Signed-off-by: Nils Friedchen <Nils.Friedchen@googlemail.com>
2019-09-17 11:52:03 -04:00
Master92
6250157397 controller_fan: Declare instance-attribute in __init__
Signed-off-by: Nils Friedchen <Nils.Friedchen@googlemail.com>
2019-09-17 11:52:03 -04:00
Kevin O'Connor
4f889ecd93 stm32: Fix usbfs rx buffer sizing
The usbfs receive buffers must also have space for the 2 byte crc at
the end of a transmission.  This fixes an error that could lead to
lost messages from mcu to host (resulting in bytes_invalid increasing
in stats) on the stm32f103.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-16 19:33:06 -04:00
Kevin O'Connor
045c938a61 stm32: Use official defines for EPR bits
Use the standard definitions for the endpoint register bits.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-16 18:39:54 -04:00
Kevin O'Connor
86cf361486 stm32: Rename USB_BTABLE to EPM in usbfs.c
Rename the internal definition so it isn't in conflict with the
USB_BTABLE register.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-16 18:39:47 -04:00
Kevin O'Connor
c780537c57 atsam: Add missing PB21 pin to ADC module
Reported by @mental405.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-16 10:50:24 -04:00
Kevin O'Connor
661fb613c7 config: Add display section to printer-wanhao-duplicator-6-2016.cfg
Reported by @KeiferMiller.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-14 19:52:19 -04:00
Kevin O'Connor
43103929e3 temperature_fan: Allow min_speed to be set to zero
Reported by @meteyou.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-14 15:35:09 -04:00
Kevin O'Connor
63311b2348 bltouch: Improve handling of low pin_move_time configuration
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-14 15:16:26 -04:00
Kevin O'Connor
2b3cd8db7f config: Move sections around in example-extras.cfg
Move the sections around in example-extras.cfg to try and group like
functionality together.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-13 15:32:23 -04:00
Piotr Usewicz
dd46e38628 config: Lower bigtreetech-skr-mini-e3 driver voltage (#1955)
As per 18e6772010

This lowers the voltage and thus brings the stepper motor temperature to
an acceptable level. Beforehand, motors would get very hot.

Signed-off-by: Piotr Usewicz <piotr@layer22.com>
2019-09-13 12:26:10 -04:00
Kevin O'Connor
1ac5c55359 config: Update bigtreetech-skr-mini-e3 to be more similar to ender3 config
The SKR mini E3 is marketed as being for the Ender 3, so it makes
sense for the example electronics config to be more similar to the
Ender 3 config.

Reported by @TheDogee.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-13 12:19:16 -04:00
Kevin O'Connor
1d7f6e1c13 test: Add initial test case for gcode_arcs support
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-13 12:05:15 -04:00
Aleksej Vasiljkovic
7d8c70363a gcode_arcs: Add support for G2/G3 commands
R Still missing, also might be somewhat dirty since code is converted
into G1 commands.

Signed-off-by: Aleksej Vasiljkovic <achmed21@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-13 11:57:54 -04:00
Kevin O'Connor
60ae92d143 stm32: Disable usb irqs in usbotg handlers
It appears the usbotg controller can get confused if the usb irq
handler runs while processing a usb request.  Disable usb irqs during
usb processing to avoid this.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-12 08:12:51 -04:00
Kevin O'Connor
361de30ad1 config: Note adc_voltage and pullup_resistance in adc_temperature module
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-11 00:31:48 -04:00
Arksine
49779f13a2 filament_switch_sensor: Add a delay between dispatch of pause and execution of pause gcode
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-09-08 20:42:43 -04:00
Kevin O'Connor
a78329d0b2 docs: Add additional "no delay" benchmarks to Benchmarks.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-08 10:37:25 -04:00
Kevin O'Connor
3a2d71038f docs: Update stm32f103 benchmarks
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-08 09:27:37 -04:00
Kevin O'Connor
7580fa2354 docs: Update sam4s8c benchmarks
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-08 09:13:51 -04:00
Kevin O'Connor
8d4a5c16be atsam: Enable flash loop caching optimization on sam4s
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-08 09:11:41 -04:00
Kevin O'Connor
8211415231 docs: Update sam4s8c step benchmarks
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-08 01:12:11 -04:00
Kevin O'Connor
d90116ef39 docs: Use tables for tick rates in Benchmarks.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-08 00:48:01 -04:00
Kevin O'Connor
4fa41d9c61 stm32: Rework usbotg transmit interrupts
Use the XFRC interrupt instead of TXFE.  Don't mask/unmask the tx
interrupts during runtime.  This fixes some race conditions where a tx
notification may have previously gotten lost.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-08 00:07:16 -04:00
Kevin O'Connor
ccb8db5ea1 lib: No need to make lpc176x SystemInit() externally visible
Now that the lpc176x code uses the armcm_boot mechanism, it is no
longer necessary for SystemInit to be externally visible.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-06 13:49:16 -04:00
Kevin O'Connor
83d600d518 lib: It is no longer necessary to modify the stm32f1 code
Now that the stm32f1 code uses the armcm_boot mechanism, it is no
longer necessary for SystemInit to be externally visible.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-06 13:49:16 -04:00
Kevin O'Connor
d60b143595 lib: It is no longer necessary to modify the stm32f4 code
Now that the stm32f4 code uses the armcm_boot mechanism, it is no
longer necessary for SystemInit to be externally visible.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-06 13:49:16 -04:00
Kevin O'Connor
97af0b3cb0 lib: Remove now unused ARM Cortex-M linker scripts and boot assembly
Remove the unused files for those boards converted to use the
armcm_boot mechanism.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-06 13:49:16 -04:00
Kevin O'Connor
a344f6d2ad docs: Update AVR benchmarks to use gcc v5.4.0
Current versions of OctoPi ship with avr-gcc v5.4.0, so update the
benchmarks to use that version.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-06 13:24:20 -04:00
Kevin O'Connor
f8b25a0104 docs: Update USB transfer benchmarks
It appears that the faster micro-controllers may have their transfer
speeds limited by the host USB controller.  Rerun the usb transfer
benchmarks using a high-speed hub.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-06 13:07:08 -04:00
Kevin O'Connor
01d2183f59 docs: Add STM32F407 benchmarks to Features.md document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-05 22:42:48 -04:00
Kevin O'Connor
0f1fcb017f config: Add example generic-bigtreetech-skr-pro.cfg config
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-05 22:42:48 -04:00
Kevin O'Connor
dc9f9ea1d6 stm32: Add support for SPI3 bus on alternate PC11,PC12,PC10 pins
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-05 22:42:48 -04:00
Julien Lirochon
12feb6d7fb configfile: Fix the exception raised when an included file is missing (#1931)
Signed-off-by: Julien Lirochon <julien@lirochon.net>
2019-09-01 18:28:18 -04:00
Kevin O'Connor
05edd556c3 toolhead: Fix homing moves not apply kinematic acceleration limits
During a "drip feed" move, both the move's maximum speed and maximum
acceleration may be limited by the kinematics.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-01 18:21:05 -04:00
Kevin O'Connor
296ab7d402 klippy: Warn if starting klippy with logging disabled
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-01 18:09:20 -04:00
Kevin O'Connor
4097a02585 tmcuart: Fix typo in function name
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-01 14:56:09 -04:00
Kevin O'Connor
1e3f6125fb config: Add a description of the EXP1/EXP2 pin locations to sample-lcd.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-01 12:49:28 -04:00
Kevin O'Connor
e47fa04a6f config: Add the "Fysetc Mini 12864Panel" to the example lcd configs
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-31 22:22:19 -04:00
Kevin O'Connor
f00c50a893 docs: Add stm32f407 benchmarks to Benchmarks.md document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-31 20:51:26 -04:00
Kevin O'Connor
7031202e7c stm32: Add support for SPI1 and SPI3 busses
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-31 19:55:30 -04:00
Kevin O'Connor
04db5f95d2 config: Minor formatting change to sample-lcd.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-31 19:00:52 -04:00
Kevin O'Connor
017a4d8321 stm32: Fix gpio enumerations (each bank has 16 pins, not 32)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-31 18:35:01 -04:00
Kevin O'Connor
c380d4639b stm32: Work around stm32f407 usbotg chip errata
It appears bogus entries can get placed on the rxqueue - detect and
clear them.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-31 15:16:46 -04:00
Kevin O'Connor
f7f6680bf6 config: Use position_endstop=0 for Creality printers
The default position_endstop=0.5 is causing confusion for some new
users - change the default to 0.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-31 11:43:02 -04:00
Kevin O'Connor
5e2c60bd67 config: Add example config files for the Fysetc Cheetah boards
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-31 11:02:44 -04:00
Kevin O'Connor
1b454c0943 mcu: Prevent "math domain errors" in stats calculation
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-30 13:57:07 -04:00
Kevin O'Connor
9335cc4804 stm32: Configure and enable usbotg endpoint0 during setup
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-30 12:15:45 -04:00
Kevin O'Connor
4a178824aa stm32: Disable and flush usbotg bulk transmit pipe on usb_set_configure()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-30 12:15:45 -04:00
Kevin O'Connor
7eba063ac8 stm32: Perform usbotg endpoint init during usb_set_configure()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-30 12:15:45 -04:00
Kevin O'Connor
917fd51057 stm32: Discard usbotg tx data until usb is ready
If the usb interface is not ready, just discard messages.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-30 12:15:45 -04:00
Kevin O'Connor
5e3acff8c7 stm32: No need to clear the usbotg address on reset
The controller automatically clears the address.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-30 12:15:45 -04:00
Kevin O'Connor
7229680227 stm32: Enable usbotg bulk reads during endpoint configuration
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-30 12:15:32 -04:00
Kevin O'Connor
f21f66a31f config: Add example SKR mini-E3 config
Signed-off-by: Ashley Izat <ashleyi100@googlemail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-29 10:19:05 -04:00
Kevin O'Connor
c95209bf7a atsam: ADC pins need to be in input mode with pullups disabled
The ADC pins (on at least the sam3x8e) need to be configured in input
mode with the internal pullups disabled in order to get accurate ADC
readings.

Reported by @bryanboettcher.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-28 13:45:01 -04:00
Kevin O'Connor
8f5c15d4dc buildcommands: Match DECL_X names to the actual C macro names
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 13:26:30 -04:00
Kevin O'Connor
caeb610bb9 armcm_link: Rename armcm_boot.lds.S to armcm_link.lds.S
Rename the linker script so the build does not have any conflicts with
the armcm_boot.d dependency file.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 13:18:24 -04:00
Kevin O'Connor
ff7be3e026 ctr: Encode negative integers in normal hex notation
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 13:06:44 -04:00
Kevin O'Connor
7d014933ce command: Allow count parameter of DECL_ENUMERATION_RANGE() to be an expression
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 12:22:51 -04:00
Kevin O'Connor
84fd89b8cf ctr: Add support for multiple integers in DECL_CTR_INT
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 12:22:51 -04:00
Kevin O'Connor
1b83fb72f5 Makefile: Use "tr -s" in compile_time_request.txt generation
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 11:40:02 -04:00
Kevin O'Connor
e59d875256 ctr: Encode integers in hex
Replace the custom encoding with a hex encoding.  This makes it a
little easier to inspect the CTR conversions.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 11:08:51 -04:00
Kevin O'Connor
69fc1e63b4 Makefile: Translate null characters to newline characters in ctr requests
Store the CTR requests in compile_time_request.txt with the null
characters removed.  This makes it slightly easier to inspect the CTR
conversions.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 10:35:26 -04:00
Kevin O'Connor
1022729a2a lpc176x: Update code to use armcm_boot mechanism
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 09:58:58 -04:00
Kevin O'Connor
6409eda058 lpc176x: Move irq handler code above irq setup
Only code movement.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 09:58:58 -04:00
Kevin O'Connor
44f862388f atsam: Update code to use armcm_boot mechanism
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 09:58:58 -04:00
Kevin O'Connor
fc879456db atsam: Move irq handler code above irq setup
Only code movement.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 09:58:58 -04:00
Kevin O'Connor
6338f6a5f0 atsamd: Update code to use armcm_boot mechanism
Replace the custom linker scripts with the src/generic/armcm_boot.c
mechanism.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 09:58:58 -04:00
Kevin O'Connor
4990fe814d atsamd: Move irq handler code above irq setup
Only code movement.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 09:58:58 -04:00
Kevin O'Connor
4ef53ab095 stm32: Update code to use armcm_boot mechanism
Replace the stm32 provided assembler with the src/generic/armcm_boot.c
mechanism.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 09:58:58 -04:00
Kevin O'Connor
a44bc950a3 stm32: Move irq handler code above irq setup
Only code movement.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 09:58:58 -04:00
Kevin O'Connor
2a2cf1f536 armcm_boot: Add generic code for early board init on armcm machines
Add basic ARM Cortex-M C init code and build linker scripts to
src/generic/ code.  This can be used to simplify the various ARM board
code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 09:58:58 -04:00
Kevin O'Connor
351910c5ac Makefile: Add generic rule for precompiling linker scripts
Add a general build rule to precompile *.lds.S files to *.ld files.
Remove the custom rules in src/atsamd/Makefile and src/stm32/Makefile.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-21 12:31:12 -04:00
Kevin O'Connor
9c15f00e60 armcm_timer: Fix typo in comment in armcm_timer.h
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-21 12:05:13 -04:00
Kevin O'Connor
078d278611 stm32: Initial support for i2c
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-20 19:39:58 -04:00
Kevin O'Connor
e32be928dc stm32: Add support for configuring open drain output mode
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-20 19:39:49 -04:00
Kevin O'Connor
c930fc392b stm32: Make sure to enable the gpio clock prior to setting the first value
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-20 01:10:14 -04:00
Kevin O'Connor
a67451fa36 console: Update for PinResolver changes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-19 23:52:02 -04:00
Kevin O'Connor
b4280fdfe0 board_pins: Improve config error checking
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-19 21:58:11 -04:00
Kevin O'Connor
67ddac776d config: Update bigtreetech skr boards to define EXP1/EXP2 plugs
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-19 21:40:20 -04:00
Kevin O'Connor
e817b85b78 config: Update several config files to use board aliases for lcd
Add a sample-lcd.cfg with the defintions for several common "reprap"
style LCD displays that use the EXP1/EXP2 plugs.  Update several
config files to add EXP1/EXP2 board aliases.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-19 12:57:59 -04:00
Kevin O'Connor
bfbcb90751 board_pins: Add a new "extras" module to support per-board pin aliases
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-19 12:57:59 -04:00
Kevin O'Connor
395429be14 pins: Move reserved pin handling into PinResolver class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-19 12:57:59 -04:00
Kevin O'Connor
a482ddf582 tmc2209: Add support for sensorless homing
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-19 12:05:09 -04:00
Kevin O'Connor
96fdb6ef36 uc1701: Add support for a reset line on SSD1306 displays
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-17 22:14:02 -04:00
Kevin O'Connor
05bb5484b4 bus: Add MCU_bus_digital_out helper class
Add a helper class for tracking gpio outputs that are synchronized to
bus updates on a particular command queue.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-17 22:14:02 -04:00
Kevin O'Connor
9c40394248 config: Note that samples_tolerance can be used in the bltouch config
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-17 15:15:49 -04:00
Kevin O'Connor
7598660542 docs: Sort transfer rate benchmark by rate
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-17 13:55:21 -04:00
Kevin O'Connor
6c908952bd spi_software: Remove unused include file
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-17 13:49:03 -04:00
Kevin O'Connor
8aca7764c3 stm32: Simplify usbotg packet reading and writing
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-16 21:03:47 -04:00
Kevin O'Connor
4ec6db7a87 stm32: Add support for additional ADC3 ports on stm32f4
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-15 23:21:41 -04:00
Kevin O'Connor
d3bd4f9622 docs: Update benchmarks with stm32f446 usb test
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-15 22:27:58 -04:00
Kevin O'Connor
aac51bdb0a stm32: Initial support for USB On-The-Go (OTG) driver on stm32f4
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-15 22:26:49 -04:00
Kevin O'Connor
841150ff00 stm32: Enable 48Mhz USB clock on stm32f446
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-14 19:33:11 -04:00
Kevin O'Connor
effe6f6ddd lcd_st7920: Add brief delay around gpio toggle calls on fast MCUs
On fast MCUs (like the SAMD51) it is possible for the gpio to toggle
faster than the st7920 can accept.  Add a small delay around the clock
rise signal.

Signed-off-by: Lars R. Hansen <popshansen@hotmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-10 11:45:15 -04:00
Kevin O'Connor
a3980cebcc neopixel: Add support for WS2811 RGB pixel color order
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-09 20:58:49 -04:00
Florian Heilmann
3d38211b8a extra: Add Safe Z home extra
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2019-08-09 20:49:17 -04:00
Florian Heilmann
f958542ebb kinematics: Add get_status() method to kinematics
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2019-08-09 20:49:17 -04:00
Kevin O'Connor
09f323a038 config: Update example stepper amps in generic-printrboard.cfg
Reported by @Grumps49.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-09 20:43:23 -04:00
Kevin O'Connor
a70055a625 stm32: Add support for the 32KiB bootloader on the SKR Pro
Signed-off-by: Gerrit Sturm <gsturm16@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-09 20:37:31 -04:00
Kevin O'Connor
96ff54e143 stm32: Add serial USART serial port option for port PD9/PD8
Signed-off-by: Gerrit Sturm <gsturm16@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-09 20:32:46 -04:00
Kevin O'Connor
8c5fc1688a pins: Add arduino aliases for Adafruit Grand Central board
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-09 20:15:40 -04:00
Kevin O'Connor
43ab8e7113 docs: Fix typo in Code_Overview.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-09 00:13:34 -04:00
Kevin O'Connor
f6d1ab2ea2 neopixel: Rework timing so that it works on AVR micro-controllers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-07 15:37:05 -04:00
Florian Heilmann
383fb1dbfd config: Fix pins for E6 in generic-duet2-duex.cfg
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2019-08-07 11:01:23 -04:00
Kevin O'Connor
8712648370 stm32: Fix memory sizing for STM32F405/7 chips
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-06 23:35:45 -04:00
Kevin O'Connor
9445e1d555 dotstar: Allow any number of chips to be daisy chained
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-06 22:49:05 -04:00
Kevin O'Connor
115b888106 neopixel: Use low priority for LED updates
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-06 22:25:26 -04:00
Kevin O'Connor
4c09d8bf02 dotstar: Initial support for "dotstar" LEDs
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-06 19:44:32 -04:00
Kevin O'Connor
c2a08962b7 spicmds: Rework spi config commands
Rework the spi_config commands so that bus configuration and shutdown
message configuration is done separately from the main "config_spi"
command.  This makes the spi configuration more flexible.  It's now
possible to use software spi without a CS pin.  It's now possible to
define multiple SPI messages to send on a shutdown event.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-06 18:56:53 -04:00
Kevin O'Connor
30bd7c0e47 docs: Update stm32f1.md document
Several restrictions documented in the stm32f1.md no longer apply.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-05 11:40:05 -04:00
Kevin O'Connor
3d0f7188df stm32: Automatically disable SWD if PA13/PA14 is used on stm32f103
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-05 11:39:42 -04:00
Kevin O'Connor
664c869f77 lib: Remove unused stm32f1 "hal" code
Now that the stm32f1 code has been merged into the stm32 code, there
is no longer a need to use the upstream stm32f1 "hal" code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-05 11:25:40 -04:00
Kevin O'Connor
36217f27aa stm32f1: Remove now unused src/stm32f1/ directory
Now that the stm32f1 code has been merged into the stm32 code, there
is no longer a need to keep the stm32f1/ directory.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-05 11:25:40 -04:00
Kevin O'Connor
fe065d72d0 stm32: Rename clock.c to stm32f4.c
Rename the clock.c file to stm32f4.c to make it more clear that the
code is specific to the stm32f4 chips.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-05 11:25:40 -04:00
Kevin O'Connor
8b9cc62359 stm32: Rename stm32f4/ directory to stm32/
Now that the code in stm32f4/ can handle both stm32f1 and stm32f4
chips, rename the directory to just "stm32".

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-05 11:25:40 -04:00
Kevin O'Connor
ec3d865b51 stm32f4: Add support for USB on stm32f103
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-05 11:25:40 -04:00
Kevin O'Connor
7efc53ff59 stm32f4: Add support for STM32F103
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-05 11:25:40 -04:00
Kevin O'Connor
485164b8b3 docs: Update MCU_Commands with schedule_soft_pwm_out changes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-01 00:23:09 -04:00
Kevin O'Connor
c356e8362d tmc_uart: Make sure address is at least 0
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-31 13:13:27 -04:00
Kevin O'Connor
a730aec8bc tmc_uart: Add support for configuring the uart address on tmc2209 chips
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-31 13:02:27 -04:00
fess
79cec9ba5c menu: use MOVE=1 for offset_z menu
use SET_GCODE_OFFSET's MOVE=1 parameter in the z offset menu.
Less confusing for people who think nothing happened.

Signed-off-by: John "Fess" Fessenden <fess@fess.org>
2019-07-31 11:17:31 -04:00
Kevin O'Connor
745a8dc0ac config: Add an example config file for the bigtreetech skr mini
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-30 21:42:20 -04:00
Kevin O'Connor
c176b66f29 stm32f4: Allow the USART serial port to be configured
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-28 22:55:48 -04:00
Kevin O'Connor
e6ffef9a9f stm32f4: Make using the internal clock source a low level option
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-28 22:55:48 -04:00
Kevin O'Connor
9bc3a29ee4 stm32f4: Add support for full range of GPIO pins
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-28 22:55:48 -04:00
Kevin O'Connor
bc9c8cd7a0 stm32f4: Only enable peripherals once
Add is_enabled_pclock() and only initialize spi and adc once during
configuration.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-28 17:57:02 -04:00
Kevin O'Connor
ef0784afe6 stm32f4: Encode mode/func into single parameter of gpio_peripheral
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-28 11:32:56 -04:00
Kevin O'Connor
7d4c475e52 docs: Update Features.md to note Duet2 Maestro support
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-28 11:21:38 -04:00
Kevin O'Connor
92c2fbdce4 armcm_timer: Improve comments on wrap_timer code
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-27 22:05:50 -04:00
Kevin O'Connor
7bc0a261ab stm32f4: Automatically calculate dynmem start/end
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-27 21:32:04 -04:00
Kevin O'Connor
16616662ed stm32f4: Add Kconfig build rules for STM32F405/7
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-27 21:32:04 -04:00
Kevin O'Connor
961d13ee1a stm32f4: Add support for SPI
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-27 21:01:01 -04:00
Kevin O'Connor
d79f99b188 stm32f4: Add support for ADC
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-27 10:58:28 -04:00
Kevin O'Connor
a878831d5e mcp4728: Update to better match printrbot revf requirements
Reported by @Grumps49.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-26 11:02:56 -04:00
Kevin O'Connor
73709984b0 stm32f4: Add support for watchdog
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-26 08:36:11 -04:00
Kevin O'Connor
899b6726fa stm32f4: Improve serial baud rate calculation
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-26 08:01:31 -04:00
Kevin O'Connor
f3d7287a28 stm32f4: Add support for external 8Mhz crystal
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-26 07:51:12 -04:00
Kevin O'Connor
658088b753 docs: Add initial STM32F446 benchmark results
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-25 18:18:42 -04:00
Kevin O'Connor
1487f8a257 stm32f4: Add support for GPIO
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-25 18:13:06 -04:00
Kevin O'Connor
d501ca6b0b stm32f4: Add initial support for STM32F446 chip
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-25 18:08:28 -04:00
Kevin O'Connor
5a02572001 lib: Update stm32f4 code to support gcc -fwhole-program
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-25 18:05:13 -04:00
Kevin O'Connor
a31a6c1d6a lib: Add stm32f4 cmsis files
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-25 18:05:13 -04:00
Kevin O'Connor
52dd6f0b57 atsamd: Fix comment typo in serial.c
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-25 12:18:21 -04:00
Kevin O'Connor
634ec46813 initial_pins: Only build when CONFIG_HAVE_GPIO is enabled
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-24 01:09:45 -04:00
Kevin O'Connor
79bd13dba7 armcm_timer: Support micro-controllers faster than 160Mhz
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-24 01:08:18 -04:00
Kevin O'Connor
4e5ddff00b neopixel: Update to more flexible bit-banging timing
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-23 22:00:12 -04:00
Kevin O'Connor
46041f5411 neopixel: Add support for daisy-chained chips
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-23 21:59:38 -04:00
Kevin O'Connor
abf3fa4b71 neopixel: Add support for setting a default color at startup
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-23 21:59:38 -04:00
Kevin O'Connor
197030c684 docs: Update FAQ to reference Bootloaders.md on "make flash" failure
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-22 10:07:34 -04:00
Kevin O'Connor
893acdb56b lib: Update stm32f1 code to version 1.8.0
Update the stm32f1 code to the latest from ST.  Merge the
lib/cmsis-stm32f1/ and lib/hal-stm32f1/ into a single lib/stm32f1/
directory.  Document all the differences from the pristine upstream
code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-21 22:40:56 -04:00
Kevin O'Connor
17bd595b15 check_whitespace: Warn on trailing tabs in Makefiles
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-21 21:49:37 -04:00
Kevin O'Connor
1a387ad509 stm32f0: Remove trailing tab from Makefile
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-21 21:49:22 -04:00
Kevin O'Connor
1fcfff2ac6 tmc_uart: Remove references to the TMC2208 in the generic UART code
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-21 09:39:07 -04:00
Kevin O'Connor
4d90b60fdb config: Fix example beeper pin in generic-bigtreetech-skr-v1.3.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-18 11:15:02 -04:00
Kevin O'Connor
bf23302918 toolhead: No need to build entire look-ahead queue before homing
It's not necessary to fully build up the look-ahead queue prior to
starting a "drip move" homing operation.  Instead, allow the
look-ahead queue to flush normally.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-18 10:50:04 -04:00
Kevin O'Connor
e3c5638147 neopixel: Warn that the neopixel isn't currently supported on AVR
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-17 16:54:47 -04:00
Kevin O'Connor
d5cc2a7b7b neopixel: Improve timing of gpio bit-banging
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-17 16:36:28 -04:00
Kevin O'Connor
0af5b9ff6d neopixel: Be sure to set the line low on a failed write
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-13 00:00:57 -04:00
Kevin O'Connor
be2d0abbab neopixel: Optimize the update loop
Optimize the transmit code so it can run on some slower ARM cpus.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-12 23:39:00 -04:00
Kevin O'Connor
b7bc96c3b2 neopixel: Add initial support for "neopixel" leds
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-12 21:44:01 -04:00
Kevin O'Connor
977d0cf711 toolhead: Delay calculating homing print_time until ready to move
If the homing move is exceptionally long, it could take a long time
for the host to process the look-ahead queue.  Delay the print_time
calculation until moves are ready to be sent.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-12 13:52:33 -04:00
Kevin O'Connor
bc78bc4864 replicape: Try to detect shift register spi on spidev2.1
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-12 11:39:14 -04:00
Kevin O'Connor
25438a7901 config: Simplify generic-bigtreetech-skr-v1.3.cfg
Move the TMC2208 and TMC2130 blocks to later in the file.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-12 08:28:10 -04:00
Kevin O'Connor
28aa2f507a endstop: Rename mcu end_stop commands to endstop
Rename the commands.

The main reason for this change is to force a micro-controller code
updated (due to important bugfix in 7fefe52d).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-12 08:10:53 -04:00
Kevin O'Connor
7fefe52df7 stepper: Don't update SF_LAST_DIR if SF_NEED_RESET
If the move is not added to the move queue, then the SF_LAST_DIR
setting must not be changed.  Otherwise, it could result in an
incorrect direction being set on the stepper after a homing operation.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-12 07:54:24 -04:00
Kevin O'Connor
b2a8b0dd65 config: Update default serial setting of generic-duet2-duex.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-11 10:35:22 -04:00
Kevin O'Connor
a34613cf86 config: Add a simplified Duet2 Eth/Wifi example config file
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-11 10:35:22 -04:00
Kevin O'Connor
e2d8a6f02d config: Rename generic-duet2.cfg to generic-duet2-duex.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-11 10:35:22 -04:00
Kevin O'Connor
b77375e955 lpc176x: Reset LPC_UART0->FDR when using serial
The popular "LPC17xx-DFU-Bootloader" alters the LPC_UART0->FDR
register, so be sure to reset it back to its default when using serial
in Klipper.

Reported by @b-vs.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 20:00:58 -04:00
Kevin O'Connor
0343d0c73a firmware_retract: Remove z_hop support
The current z_hop support did not work correctly with common slicers
that change Z height between retract and unretract, and it did not
work correctly with slicers that issue a retract at the end of a print
and then at the beginning of the next print.

The z_hop support is therefore being removed until these issues can be
fixed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 19:25:56 -04:00
Kevin O'Connor
364c22fe84 probe: Rework the PROBE_ACCURACY command parameters
Don't default to a Z location of 10, as that could cause damage if the
probe's z_offset is greater than 10.  Instead, use the "retract
distance" method that is used for normal multi-sample probing.

Update the PROBE_ACCURACY command parameter names to use the same
parameter names as the PROBE command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 15:21:09 -04:00
Kevin O'Connor
a477c50592 config: Heater pins are inverted on the Duet2 Maestro
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 13:23:59 -04:00
Kevin O'Connor
c3fe3d0d2c stepcompress: Remove no longer needed stepcompress_set_homing()
Now that homing is implemented via "drip moves", it is no longer
necessary for the stepcompress code to have special homing logic.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor
07e8925e08 toolhead: Remove no longer needed reset_print_time()
Now that homing is implemented via "drip moves", it is no longer
necessary to move the print_time backwards.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor
dd34768e3a homing: Remove no longer needed homing time delay code
Now that homing is implemented via "drip moves", it is no longer
necessary to round the homing speed and it is no longer necessary to
add a delay for cpu processing time.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor
43064d197d homing: Implement homing via new toolhead "drip" movement
Rework the low-level implementation of homing movement.  The existing
mechanism buffers all homing movement into the micro-controller prior
to starting the home.  Replace with a system that buffers all movement
into the host look-ahead buffer and then "drip feed" those moves to
the micro-controllers.  Then clear the host look-ahead buffer when all
endstops trigger.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor
d6cce8a557 toolhead: Change the code to use more explicit state transitions
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor
84be96aeff mcu: Rework home_wait() to use a reactor completion
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor
4f6982c4d0 serialhdl: Update SendWithRetry to use reactor completions
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor
233da97b19 reactor: Add support for "completions"
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor
e148dbe52a mcu: Use regular send_with_response() for query_endstop()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor
a116fa9054 serialhdl: Use register_response() for both registering and unregistering
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor
b2c778b931 mcu: Integrate query_endstop_wait() into query_endstop()
There is no need to have two separate calls to query an endstop.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:43:20 -04:00
Kevin O'Connor
ced5e35f0c scripts: Minor improvement to feedback from travis-install.sh
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-10 10:38:47 -04:00
Arksine
d4d8bf795b filament_switch_sensor: add SET_FILAMENT_SENSOR gcode
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-07-10 09:57:46 -04:00
Arksine
856b22b387 filament_switch_sensor: postfix M400 to script
Finish Moves needs be a hard requirement for the event gcodes, as it eliminates the possiblility of an event firing while the gcode is executing.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-07-10 09:57:46 -04:00
Arksine
893c98ed1b filament_switch_sensor: remove stale _hande_ready call in the BaseSensor
The toolhead attribute is no longer required by the BaseSensor class

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2019-07-10 09:57:46 -04:00
Kevin O'Connor
ea6f30bd99 docs: Update Protocol.md to use enumerations for pins
Now that pins use enumerations, update the set_digital_out command
examples.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-09 14:17:28 -04:00
Kevin O'Connor
e7dd313a96 docs: Add information on using OpenOCD to Bootloaders.md
Add information on using OpenOCD.  Add information on flashing the
SAMD21 and SAMD51 with OpenOCD.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-09 13:37:17 -04:00
Arksine
0f1d42466b buttons: initialize mcu buttons based on inverted state
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-07-05 20:01:07 -04:00
Arksine
e19a41d0dd docs: Add documentation for [delayed_gcode]
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-07-01 11:09:30 -04:00
Arksine
314b9654c6 delayed_gcode: initial implementation
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2019-07-01 11:09:30 -04:00
Kevin O'Connor
02e579f578 config: Fix stepper_bed step_distance description in example-polar.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-07-01 11:00:37 -04:00
Janar Sööt
ec34d78d5e gcode_macro: add iterator to status wrapper
It really helps to see a snapshot of available printer variables when building menus and macros. The list of variables always depends on what printer config you have.

Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2019-07-01 10:59:13 -04:00
Arksine
57eb0e8975 docs: Update for latest changs to skew_correction
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-06-29 10:58:46 -04:00
Arksine
0c379d060f skew_correction: add SKEW_PROFILE gcode
Add profile managment similar to that of bed_mesh.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-06-29 10:58:46 -04:00
Arksine
026752e399 skew_correction: Add SET_SKEW gcode
This moves skew_correction configuration out of printer.cfg.   It is now dynamically set by the SET_SKEW gcode.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-06-29 10:58:46 -04:00
Kevin O'Connor
4df78cd843 tmc: Configure "intpol" field from TMCMicrostepHelper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-28 16:59:26 -04:00
Kevin O'Connor
7947dc3389 config: Use tmc2660 virtual_enable in generic-duet2.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-28 16:59:26 -04:00
Kevin O'Connor
b0c459d8bf config: Use tmc2208 virtual_enable in generic-duet2-maestro.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-28 16:59:26 -04:00
Kevin O'Connor
a2e550d1cd stepper: Add support for providing a list of pins to enable
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-28 16:59:26 -04:00
Kevin O'Connor
7702f0a027 tmc: Add support for virtual enable pins
Add support for enabling the stepper via the communication channel.
This improves support for boards with a shared enable line.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-28 16:59:26 -04:00
Kevin O'Connor
041831f93a tmc_uart: Hold a mutex during MCU_TMC_uart get/set_register()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-28 16:59:26 -04:00
Kevin O'Connor
844dca9c6e tmc2660: Hold a mutex during MCU_TMC2660_SPI get/set_register()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-28 16:59:26 -04:00
Kevin O'Connor
1f3b74d2f7 tmc2130: Hold a mutex during MCU_TMC_SPI get/set_register()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-28 16:59:26 -04:00
Arksine
3a3dfd51b9 docs: Add CLEAR_PAUSE to G-Codes.md
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-06-28 12:44:49 -04:00
Arksine
35a45e2446 pause_resume: add CLEAR_PAUSE gcode
Allow the user to clear the pause state without restoring  position.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-06-28 12:44:49 -04:00
Kevin O'Connor
505e96b7ed klippy: Only set the run_result if it hasn't already been set
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-28 10:21:50 -04:00
Kevin O'Connor
e5f74a64ed polar: Add initial support for multiple bed rotations
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-28 10:00:40 -04:00
Kevin O'Connor
d9d94c858a docs: Add skew_correction.md to Overview.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-27 09:50:17 -04:00
Arksine
a3b4543c97 skew_correction: add documentation
Signed-Off-By:  Eric Callahan <arksine.code@gmail.com>
2019-06-26 20:16:35 -04:00
Arksine
b37222e3a1 skew_correction: initial implementation
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-06-26 20:16:35 -04:00
Arksine
2d7f32584f gcode: Add support for stacked transforms
Add method from pull request #1243 to support stacked transforms.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-06-26 20:16:35 -04:00
Kevin O'Connor
9855354c75 tmc_uart: Use print_time=None as default (not print_time=0)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-25 18:27:59 -04:00
Kevin O'Connor
4aeb7d38a7 sx1509: Minor cleanup - don't default print_time to 0
It's not valid to use a print_time=0, and it isn't actually used in
the sx1509 code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-25 18:19:05 -04:00
Kevin O'Connor
6ec7dee07d tmc: It's not valid to schedule messages with print_time=0
A print_time of zero may translate to a negative clock on a secondary
micro-controller, which would cause an internal error.  Change the
code to pass a real print_time or None if it is not needed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-25 18:19:05 -04:00
Kevin O'Connor
79c24f95b3 config: Add example tmc2130 sections to SKR v1.3 board
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-25 13:49:35 -04:00
Kevin O'Connor
52b5ca182c tmc: Simplify internal DUMP_TMC interface
Only the tmc2208 driver needs special read register translation logic.
Rework the code so a default implementation is available for all the
other drivers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-25 11:40:15 -04:00
Kevin O'Connor
cf0a42ed6b test: Fix SET_TMC_FIELD test cases
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-24 08:05:45 -04:00
Kevin O'Connor
d9bddc35a1 docs: Add information on running the regression suite locally
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-23 17:59:23 -04:00
Kevin O'Connor
4bb0b6defd check_whitespace: Add script to run whitespace checks
Allow users to run the "travis ci" whitespace check directly from the
command-line.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-23 17:44:48 -04:00
Kevin O'Connor
a2c7fd369c docs: Note tmc2209 and tmc5160 support in Features.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-23 12:28:39 -04:00
Kevin O'Connor
e18dddd1ab config: No need to list all tmc drivers in endstop_phase description
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-23 12:27:09 -04:00
Kevin O'Connor
ba27e0aa02 docs: Warn against using "PreloadVE" on KISSlicer
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-23 12:18:24 -04:00
Kevin O'Connor
7173a2c427 config: Update example-extras.cfg for tmc2209
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-23 11:47:24 -04:00
Kevin O'Connor
4fb4a13fd7 endstop_phase: Add tmc2209 and tmc5160 to list of tmc drivers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-23 11:27:18 -04:00
Stephan Oelze
ec9fad758a tmc2209: Initial support for tmc2209 stepper driver
Signed-off-by: Stephan Oelze <stephan.oelze@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-23 11:26:20 -04:00
Kevin O'Connor
c3467f5b35 config: Add generic-printrboard-g2.cfg config file
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 23:12:31 -04:00
Kevin O'Connor
80194a7e18 endstop_phase: Fix endstop_phase on trinamic drivers that aren't inverted
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 22:56:16 -04:00
Kevin O'Connor
0b02d7a1f2 tmc_uart: Support print_time in set_register()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 21:47:37 -04:00
Kevin O'Connor
9feb05ce41 mcu: Support minclock in send_with_response() requests
Enhance send_with_response() so that it supports queries with a
minclock.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 21:42:20 -04:00
Kevin O'Connor
e202a8802b mcu: Move SerialCommand from serialhdl.py to mcu.py
Move the serial command wrapper class from serialhdl.py to mcu.py.
This will allow that class to better support higher level
functionality.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 21:42:20 -04:00
Kevin O'Connor
cc3666aa78 serialhdl: Introduce SerialReader.send_with_response()
Introduce a main send_with_response() helper function and use it
during identify and the setup of clocksync.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 21:42:20 -04:00
Kevin O'Connor
d98bbc772c serialhdl: Eventually timeout connect attempt
If the serial connection has not been successful after 2.5 minutes
then report an error.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 21:42:20 -04:00
Kevin O'Connor
ebb375fee9 serialhdl: Use send_with_response() to query identify data
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 18:48:33 -04:00
Kevin O'Connor
461ed4cb80 serialhdl: Add a get_msgparser() method
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 18:14:00 -04:00
Kevin O'Connor
647f1ee2e0 serialhdl: Rename register_callback() to register_response()
Rename the method and use that name in the mcu class as well.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 18:14:00 -04:00
Alec B. Plumb
daadb36cb4 gcode_button: Execute gcode when a button is pressed or released (#1745)
An extra to execute gcode when a hardware button is pressed or released. Uses the jinja2 templating system.

Inspired by pull request #545 from Miguel Moitinho miguel@moitinho.net and pull request #1098 from Paulo Drugos paulodrugos@gmail.com

Signed-off-by: Alec Plumb <alec@etherwalker.com>
2019-06-21 18:06:31 -04:00
Kevin O'Connor
83e6c01ada probe: Allow probe parameters to be specified as g-code parameters
Add PROBE_SPEED, SAMPLES, SAMPLE_RETRACT_DIST, SAMPLES_TOLERANCE,
SAMPLES_TOLERANCE_RETRIES, and SAMPLES_RESULT parameters to the PROBE
command (and to commands that indirectly invoke a probe).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 14:44:28 -04:00
Kevin O'Connor
c92aca74b5 probe: Add support for samples_tolerance
Add a check on the maximum Z distance between probe samples.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 14:06:20 -04:00
Alan Lord
a613045287 scripts: Update klippy-requirements.txt (#1744)
Signed-off-by: Alan Lord <alanslists@gmail.com>
2019-06-21 13:32:54 -04:00
Kevin O'Connor
f6e9db2d05 toolhead: Just warn if M204 doesn't contain valid S, P, or T
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 12:53:47 -04:00
Kevin O'Connor
98915fb1d0 probe: Always return just x,y,z from _probe()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-21 11:04:55 -04:00
Kevin O'Connor
3e741a1f88 config: Clarify which boards use lpc1768 vs lpc1769 when known
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-20 11:23:30 -04:00
Kevin O'Connor
8951dc3d51 lpc176x: Add more filtering to workaround adc hardware defect
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-20 08:57:24 -04:00
Kevin O'Connor
8d029ad652 lpc176x: Fix adc clock divisor
Commit 1096075d changed CONFIG_CLOCK_FREQ to the actual cpu frequency,
but that commit failed to update adc.c accordingly.  That made the adc
run 4 times slower.  Make the corresponding change to adc.c.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-19 21:21:01 -04:00
Kevin O'Connor
077c6f7e5e reactor: Fix some corner cases with self._next_timer handling
Make sure to update self._next_timer on greenlet start/stop.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-19 21:12:34 -04:00
Kevin O'Connor
8cce3cc8e7 graphstats: Add support for interactive graphs
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-19 21:12:26 -04:00
Kevin O'Connor
0173bb3f71 tmc_uart: Move UART code from tmc2208.py to new file tmc_uart.py
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-18 18:06:05 -04:00
Kevin O'Connor
3f79831485 tmc2208: Make sure each analog mux config is unique
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-18 17:58:20 -04:00
Kevin O'Connor
274857357e tmc: Retry register init during connect
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-18 17:54:02 -04:00
Kevin O'Connor
cfdb60ca23 tmc2660: Set SDOFF=0 before accessing DRVCTRL
Make sure to configure DRVCONF with SDOFF=0 prior to writing DRVCTRL
as that field controls access to that register.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-18 15:19:05 -04:00
Kevin O'Connor
587db5c315 tmc2660: Don't allow configuration of DEDGE
Setting DEDGE would just break the code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-18 13:24:54 -04:00
fess
49c36f868b z_tilt: Support retries
Support retrying Z_TILT_ADJUST a configurable number of times
to a configurable tolerance both in the config or as parameters.

- By default keeps original behavior of no retries.
- Adds parameters RETRIES and RETRY_TOLERANCE to QUAD_GANTRY_LEVEL gcode.
- adds config options retries and retry_tolerance to uad_gantry_level]
- issues an error if we are getting worse intead of approaching tolerance
- issues an error if retries were requested but we did not reach the tolerance
in the specified number of retries

the minimum change should  be a single z step for those
probing 2 points for 2 stepper motors and 3 for 3 stepper motors.

at one point it was suggested to use the amount of z adjustment instead of the
range of the probed points as a trigger for retry. I've chosen not to do this.
using z adustment in these cases means the minimum unit of change is related to
the angle created by the probed points  and the distance to stepper motor and
can be more than a couple steps which is rather unintuitive.

for the case when someone is using more probed points than z steppers the
probed points range will have some fixed minimum value that can't be reduced
which is also unintuitive but that case should idealy be the rarer case, and
the user can learn to set a higher tolerance that matches their probing setup.

Signed-off-by: John "Fess" Fessenden <fess@fess.org>
2019-06-18 12:12:25 -04:00
fess
bd40690bd1 quad_gantry_level: Support retries
Support retrying QUAD_GANTRY_LEVEL a configurable number of times
to a configurable tolerance both in the config or as parameters.

- By default keeps original behavior of no retries.
- Adds parameters RETRIES and RETRY_TOLERANCE to QUAD_GANTRY_LEVEL gcode.
- adds config options retries and retry_tolerance to `[quad_gantry_level]`
- issues an error if we are getting worse intead of approaching tolerance
- issues an error if retries were requested but we did not reach the tolerance
in the specified number of retries

Signed-off-by: John "Fess" Fessenden <fess@fess.org>
2019-06-18 12:12:25 -04:00
fess
4681775219 z_tilt: Add RetryHelper
add RetryHelper class in prep for implementing retries for both z_tilt
and quad_gantry_level

Signed-off-by: John "Fess" Fessenden <fess@fess.org>
2019-06-18 12:12:25 -04:00
Kevin O'Connor
bdf5898891 probe: Allow retries from ProbePointsHelper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-18 12:12:25 -04:00
Hywelmartin
771e7b2987 config: MKS mini 12864 LCD on SKR 1.3
Signed-off-by: Martin Malmqvist <hywelmartin@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-18 10:29:11 -04:00
nzlrhyz
631c3fe052 config: Create printer-wanhao-duplicator-i3-plus-mark2-2019.cfg
Reported by @nzlrhyz.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-18 10:13:41 -04:00
Kevin O'Connor
caea441edd config: Update tmc2660 block in example-extras.cfg
No need to describe the SET_TMC_CURRENT command in the
example-extras.cfg - it's describe in docs/G-Codes.md and is now
supported on all tmc drivers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-18 09:43:13 -04:00
Kevin O'Connor
20d0bb8354 config: Update tmc5160 block in example-extras.cfg
List all the configurable parameters in the tmc5160 example block and
use similar wording as the other tmc drivers.

Also, don't allow DEDGE to be configured as it would just break the
current code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-18 09:41:27 -04:00
Kevin O'Connor
494a5b732d quad_gantry_level: Use new ZAdjustHelper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-17 11:17:47 -04:00
Kevin O'Connor
20851ab3e9 z_tilt: Separate z adjustment code to new ZAdjustHelper class
Introduce a new class to perform the low-level Z stepper adjustments.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-17 11:17:47 -04:00
Kevin O'Connor
1ee2835eed config: Add LCD settings to config/generic-duet2-maestro.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-13 11:29:55 -04:00
Kevin O'Connor
c601d90b47 config: Add tmc2208 select_pins description to example-extras.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-12 23:09:56 -04:00
Kevin O'Connor
8f092b5966 config: Fix sensor_resistor in generic-duet2-maestro.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-12 22:26:44 -04:00
Kevin O'Connor
e697fc11af config: Add an example config for the Duet2 Maestro
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-12 22:14:41 -04:00
Kevin O'Connor
f6864da58b tmc2208: Add support for using an analog mux to access TMC uarts
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-12 22:14:41 -04:00
Kevin O'Connor
88fe2787a9 tmc2208: Separate low-level bit-banging code from MCU_TMC_uart class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-12 22:06:54 -04:00
Kevin O'Connor
47901e57c9 verify_heater: Don't raise a heater error if the heater is off
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-12 22:06:54 -04:00
Kevin O'Connor
64214255da test: Flush moves in quad_gantry_level and z_tilt_adjust tests
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-12 15:36:32 -04:00
Kevin O'Connor
c037d273f7 test: Add quad_gantry_level and z_tilt_adjust test cases
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-12 13:49:27 -04:00
Kevin O'Connor
82b58e46a7 temperature_fan: Remove executable flag from temperature_fan.py
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:30:48 -04:00
Kevin O'Connor
b21a22d744 tmc: Move common TMC stepper driver code to new file tmc.py
Move common code from tmc2130.py to tmc.py.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:29:35 -04:00
Kevin O'Connor
10c0da9a6c tmc2130: Rework remaining config helpers to use mcu_tmc interface
Introduce TMCMicrostepHelper and TMCStealthchopHelper helper code that
uses the mcu_tmc interface.  Update the callers to use these new
helpers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor
7f34264101 tmc2130: Move TMC virtual endstop code into a new TMCEndstopHelper class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor
35edc4d63c tmc2660: Move current setting code to its own helper class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor
b2729f38a6 tmc5160: Move current setting code to its own helper class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor
110bbb3843 tmc2130: Move current setting code to its own helper class
Concentrate the current setting code into its own TMCCurrentHelper
class.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor
6abe132cf0 tmc2130: Transmit register initialization during connect callback
Perform the register initialization directly from TMCCommandHelper and
perform it during the "connect" phase.  This unifies the register
setup for the TMC2130, TMC2208, TMC2660, and TMC5160.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor
6947548c17 tmc2660: Use TMCCommandHelper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor
c76428bd01 tmc5160: Use TMCCommandHelper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor
1bdd51d575 tmc2208: Use TMCCommandHelper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor
395c845ca1 tmc2130: Factor out g-code command handlers to their own class
Create a TMCCommandHelper class that implements INIT_TMC,
SET_TMC_FIELD, and DUMP_TMC.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor
6a7ddb6bf0 tmc2208: Move get/set_register functions to new MCU_TMC_uart class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor
ab710cd4de tmc2660: Move get/set_register functions to new MCU_TMC2660_SPI class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor
a122d113e8 tmc5160: Use tmc2130.MCU_TMC_SPI for low-level get/set_register access
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor
3becc6cf54 tmc2130: Move low-level get/set_register functions to new MCU_TMC_SPI class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor
9ce98fd769 tmc2660: Define get_register() method
Use a get_register() method instead of get_response().  This makes the
tmc2660 class more similar to other TMC drivers.  It also enables
DUMP_TMC to dump all the readable content.

Also, use the tmc2130.get_config_microsteps() helper.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor
2b0251ee99 tmc5160: Rename registers to Registers and fields to Fields
Minor change to the code so that it is more similar to the other tmc
drivers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor
5de9f74525 test: Add test cases for tmc drivers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-10 14:18:58 -04:00
Kevin O'Connor
700e35c6ac armcm_timer: Unify udelay() implementation
Move the udelay() code from various arm board directories into the
src/generic/armcm_timer.c code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-09 20:27:57 -04:00
Kevin O'Connor
97840f9851 serialhdl: Use reactor mutex in send_with_response()
Reduce the delay in send_with_response() by introducing a reactor
mutex to wake the main thread when the response is obtained.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-09 19:12:24 -04:00
Kevin O'Connor
30d2ae8f9f gcode: Eliminate the process_batch() method
Allow the callers of process_batch() to directly inspect the gcode
mutex.  Those callers can then directly invoke run_script().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-09 18:44:44 -04:00
Kevin O'Connor
962f7b98bd gcode: Convert input handling to use a reactor mutex
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-09 18:44:44 -04:00
Kevin O'Connor
afc10400e3 reactor: Be explicit on which handlers are timer_handler vs file_handler
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-09 18:44:44 -04:00
Kevin O'Connor
0546c18d27 reactor: Add support for mutexes
Add a mutex object that implements simple queing mutual exclusion for
greenlets.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-09 12:55:56 -04:00
Kevin O'Connor
61fc57e659 toolhead: Commands should still pause even when sync_print_time
If commands are slowly fed to the printer it could cause the number of
queued commands to grow without bound.  Be sure to pause the incoming
command stream even if the lookahead queue is empty.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-09 12:35:54 -04:00
Kevin O'Connor
d7754a8f93 homing_override: Pass params to template evaluation
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-09 11:14:31 -04:00
Kevin O'Connor
8b00580884 gcode_macro: Parse variable_X parameters using ast.literal_eval()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-07 19:33:31 -04:00
Kevin O'Connor
01f3b50e73 idle_timeout: Fix typo causing get_status() to fail
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-07 12:30:42 -04:00
Kevin O'Connor
9d33ef4061 config: Update example-extras.cfg to point to Command_Templates.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-07 11:57:54 -04:00
Kevin O'Connor
f1c6d04376 filament_switch_sensor: Use template evaluation on gcode
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-07 11:38:43 -04:00
Kevin O'Connor
d0be48da74 filament_runout_sensor: Auto load pause_resume module if pause_on_runout enabled
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-07 11:38:43 -04:00
Kevin O'Connor
3f4190c792 idle_timeout: Use template evaluation on gcode
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-07 11:38:43 -04:00
Kevin O'Connor
e60ee861f8 extruder: Use template evaluation on gcode
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-07 11:38:43 -04:00
Kevin O'Connor
27ca159285 gcode_macro: Add a default parameter to load_template
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-07 10:51:57 -04:00
Kevin O'Connor
9613cd2c8a config: Fix G90 use in sample-probe-as-z-endstop.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-07 10:37:10 -04:00
Kevin O'Connor
cacb6f4378 klippy: Provide global access to a printer.command_error exception class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-06 10:22:14 -04:00
Kevin O'Connor
a541c2f60e docs: Update Config_Changes.md with "samples" move to probe config section
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-06 10:15:47 -04:00
Kevin O'Connor
49a3083d6a manual_probe: Add extra checks to catch manual probe not finishing correctly
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-06 10:08:58 -04:00
Kevin O'Connor
40f73dd7f4 probe: Check for toolhead movement during activate/deactivate_gcode scripts
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-06 10:08:58 -04:00
Kevin O'Connor
df80d96ae6 manual_probe: No need to re-raise an EndstopError
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-06 10:08:58 -04:00
Kevin O'Connor
b8c7eb40c5 bed_screws: No need to re-raise an EndstopError
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-06 10:08:58 -04:00
Kevin O'Connor
1fd490ddf9 probe: No need to re-raise an EndstopError
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-06 10:08:58 -04:00
Kevin O'Connor
67964e71f1 homing: Catch the more generic CommandError during homing
Allow the low-level homing code to raise either a gcode.error or an
EndstopError during a fault.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-06 10:08:58 -04:00
Kevin O'Connor
e9935e1a41 gcode: No need to re-raise an EndstopError
Now that EndstopError and gcode.error use the same underlying
Exception object, it is no longer necessary to translate an error.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-06 10:08:58 -04:00
Kevin O'Connor
945a84c0ea gcode: Use the same underlying error object for homing and gcode errors
Introduce a homing.CommandError and use that as the basis for both
gcode and EndstopError exceptions.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-06 10:08:58 -04:00
Kevin O'Connor
97adca18c4 docs: Update Delta_Calibrate.md with probe location bias info
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-06 10:08:58 -04:00
Kevin O'Connor
e061029b3a docs: Update Probe_Calibrate.md with information on common probe errors
Add a section describing PROBE_ACCURACY, describing probe location
bias, and describing probe temperature bias.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-06 10:08:58 -04:00
Kevin O'Connor
15011012e5 probe: Simplify ProbePointsHelper start and end tracking
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-06 10:08:58 -04:00
Kevin O'Connor
bbc8637ed6 probe: Be sure to call gcode.reset_last_position() after any manual move
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-06 10:08:58 -04:00
Kevin O'Connor
74cc005ff3 probe: Unify mean and median code between run_probe() and PROBE_ACCURACY
Factor out _calc_mean() and _calc_median() functions and call from
both run_probe() and cmd_PROBE_ACCURACY().

This also fixes a subtle error in the run_probe() median function - on
some kinematics the x and y position can change on a z move so the x
and y should be taken from the z probe values actually used.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-06 10:08:58 -04:00
Kevin O'Connor
2b8dca5dbf probe: Move multi-sampling capability from ProbePointsHelper to Probe
This changes the config file so that the configuration of
multi-samples is now done in the [probe] (and [bltouch]) section
instead of the various delta, bed_mesh, z_tilt, etc. config sections.

With this change, PROBE and PROBE_CALIBRATE commands now also utilize
multi-sampling.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-06 10:08:58 -04:00
Len Trigg
5989f7a8a6 firmware_retraction: Implementation of tuneable G10/G11 firmware retraction (#1617)
This supports getting and setting of retraction parameters without
having to restart klippy.

Signed-off-by: Len Trigg <lenbok@gmail.com>
2019-06-06 09:10:09 -04:00
Kevin O'Connor
d065787afc gcode_macro: Add support "x in printer" to templates
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-04 12:41:28 -04:00
Kevin O'Connor
1c09a0935f idle_timeout: Add a get_status() method
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-04 12:35:50 -04:00
Kevin O'Connor
0bb714edd7 menu: Remove customized get_status overrides
Now that the extruder, display, heater_fan, output_pin, and servo
classes have get_status() methods, it is no longer necessary to
override them in the menu code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-04 11:55:40 -04:00
Janar Sööt
df765b33dc display: add get_status method
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-04 11:51:46 -04:00
Janar Sööt
9155886c21 extruder: add get_status method
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2019-06-04 11:44:57 -04:00
Janar Sööt
94f5fb3553 servo: add get_status method
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2019-06-04 11:44:50 -04:00
Janar Sööt
efecc96427 output_pin: add get_status method
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2019-06-04 11:44:35 -04:00
Janar Sööt
e519ab2031 heater_fan: add get_status method
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2019-06-04 11:43:34 -04:00
Kevin O'Connor
3f96c0abd8 docs: Minor wording change to Command_Templates.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-04 10:39:43 -04:00
Kevin O'Connor
962c48ecf7 docs: Fix github pages "liquid" rendering of Command_Templates.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-04 10:31:03 -04:00
Kevin O'Connor
94c1ad7241 docs: Add an initial Command_Templates.md document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-04 09:50:30 -04:00
Kevin O'Connor
52e7e52119 test: Add a macros.test test case for testing gcode_macro
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-04 09:50:30 -04:00
Kevin O'Connor
a68f577adf gcode_macro: Add support for SET_GCODE_VARIABLE command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-04 09:50:30 -04:00
Kevin O'Connor
6e88320d62 gcode: "gcode_position" and toolhead "position" as get_status() named tuple
Add "gcode_position" named tuple to gcode.get_status(). Add a
"position" named tuple to toolhead.get_status().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-04 09:50:30 -04:00
Kevin O'Connor
4ccc218b06 gcode: Add action_x() callables to get_status()
Add action_respond_info(), action_respond_error(), and
action_emergency_stop() callables to the get_status() return
dictionary.  This allows gcode macros to directly invoke these
actions.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-04 09:50:30 -04:00
Kevin O'Connor
ac8f6dfe20 gcode_macro: Rename "status" helper to "printer"
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-04 09:50:30 -04:00
Arksine
a238ec6f98 idle_timeout: Add SET_IDLE_TIMEOUT gcode
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-06-04 09:46:26 -04:00
Kevin O'Connor
fe1c57b098 bed_screws: Be sure to call gcode.reset_last_position() after any manual move
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-03 13:43:49 -04:00
Arksine
05a04d5d3d pause_resume: Use Octoprint's "paused" and "resumed" action commands.
These action commands prevent Octoprint from sending extra gcodes that can interfere with Klipper's pause/resume control.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-06-02 19:19:32 -04:00
Arksine
ca8233e6d5 pause_resume: use new save/restore gcodes to handle state
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-06-02 19:19:32 -04:00
Kevin O'Connor
89650a1e60 adc_temperature: Minor comment update
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-02 17:12:55 -04:00
Artem Belevich
72100bc1f2 tmc2130: Check field name validity. (#1697)
This avoids crashing Klipper if user entered invalid field name.

Signed-off-by: Artem Belevich <artemb@gmail.com>
2019-06-02 11:41:15 -04:00
Kevin O'Connor
3910a44cc9 atsam: Add support for "timer" controlled hardware pwm pins
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-02 10:59:33 -04:00
Kevin O'Connor
f96239019a mcu: Support a start value for soft pwm pins
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-02 10:59:33 -04:00
Kevin O'Connor
3e1c42da80 thermistor: Add support for printers with an "inline_resistor"
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-02 10:59:23 -04:00
Kevin O'Connor
e2e4a5d4e6 atsamd: Add build support for SAMD21E15 chip
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-06-01 13:43:37 -04:00
Kevin O'Connor
1a8bd750fc logextract: Update for absolutecoord -> absolute_coord change
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-31 11:13:22 -04:00
Kevin O'Connor
7f04dc46d0 config: Update M600 in sample-macros.cfg to use SAVE_GCODE_STATE
Save and restore state in the example M600 macro.  Also, add
pause_resume config section.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-31 10:29:09 -04:00
Kevin O'Connor
a5f82612a0 config: Add START_PRINT and END_PRINT examples to sample-macros.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-31 10:27:42 -04:00
Kevin O'Connor
8f5277c36a config: Formatting changes to sample-macros.cfg
Reformat some of the comments.  Add section headers.  Don't comment
out the config sections (so that it is more clear what needs to be
copied to the main config).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-31 10:27:38 -04:00
Kevin O'Connor
02eeb72713 manual_probe: Verify no XY moves since start of manual probe
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-31 10:24:52 -04:00
Kevin O'Connor
c54b8da530 gcode: Add support for SAVE_GCODE_STATE and RESTORE_GCODE_STATE commands
Add commands to save and restore the current g-code state.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-31 10:23:56 -04:00
Kevin O'Connor
9e7ef3cf89 atsamd: Reduce the compile size of the hard_pwm pin list
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-30 14:05:31 -04:00
Kevin O'Connor
6903ab87ca tmc2130: Add support for two's complement signed fields to FieldHelper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-29 09:33:51 -04:00
Kevin O'Connor
2cff3291c0 gcode: Rename absolutecoord/extrude to absolute_coord/_extrude
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-26 21:00:15 -04:00
Kevin O'Connor
862b97ce8f gcode: Fix SET_GCODE_OFFSET MOVE_SPEED parameter
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-26 20:04:50 -04:00
Kevin O'Connor
423bbada84 gcode: Minor code change to M206 to make the math similar to SET_GCODE_OFFSET
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-26 12:37:14 -04:00
Kevin O'Connor
d6b69938ab gcode: Don't apply the SET_GCODE_OFFSET to the next g-code command
The SET_GCODE_OFFSET command could cause unwanted behavior when an
offset is applied to the following g-code command.  (In particular,
when the following command is an extrude only move - as in
issue #1289.)

Don't apply the offset immediately.  Instead, add support for a MOVE=1
parameter which will schedule a move to apply the given offset.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-26 11:19:15 -04:00
Kevin O'Connor
500f37821d docs: Improve bltouch v3 documentation
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-26 11:09:32 -04:00
Kevin O'Connor
7702cc2972 bltouch: Update command timing
Prior to the BLTouch v3, the recommended command times were 700us
(pin_down), 1200us (touch_mode), 1500us (pin_up), 1800us (self_test),
and 2200us (reset).  However, the recommended Marlin timing (via servo
"angles") was 647.111, 1162.667, 1472, 1781.333, and 2193.778us.

As of the BLTouch v3, the recommended times are now 650, 1165, 1475,
1780, and 2190us.  The v3 continues to recommended Marlin timings of
647.111, 1162.667, 1472, 1781.333, and 2193.778us.

Update Klipper to use the new BL-Touch v3 recommended timing.  The new
timings are required for the BL-Touch v3 and they are closer to what
the Marlin firmware has historically used.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-26 11:09:32 -04:00
Kevin O'Connor
8532e2123e gpiocmds: Specify soft pwm duration in clock ticks
Improve the precision of soft pwm pulses by allowing the host to
directly specify the clock duration of the pulse.  This improvement in
precision may be noticeable when controller servos (and bltouch).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-26 11:09:32 -04:00
Kevin O'Connor
8cd8cb492e buttons: Minor code movement
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-26 00:18:48 -04:00
Kevin O'Connor
9e1d79500a config: Add "CR10 stockdisplay" to generic-bigtreetech-skr-v1.3.cfg
Reported by @povlhp.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-25 12:16:54 -04:00
Kevin O'Connor
772ad53e20 manual_probe: Make sure the nozzle has moved during a manual probe
Make sure the TESTZ procedure is followed prior to accepting a manual
probe.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-24 22:54:35 -04:00
Kevin O'Connor
c77285287b docs: Try to be more clear that the "paper test" steps need to be run
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-24 22:44:00 -04:00
Kevin O'Connor
7792b0f2bb gcode: Store internal speed in mm/s
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-24 19:37:08 -04:00
Kevin O'Connor
b8a4cf7701 gcode: Add '_' prefix to internal methods
Mark methods internal to gcode.py with an underscore so that it is
easier to see which functions are purely helper functions.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-24 18:45:18 -04:00
Kevin O'Connor
61530138a0 config: Force PB0 high in fysetc f6 config
There are reports that SPI does not work correctly on the Fysetc F6 if
the PB0 (sdcard cs enable line) isn't pulled high.  Update the default
config to enable that line.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-24 18:07:41 -04:00
Kevin O'Connor
6c4c26c319 docs: Minor wording change to Bed_Level.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-23 19:31:44 -04:00
Kevin O'Connor
bd5c1d7088 config: Advise against using hardware_pwm for fans
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-23 19:29:24 -04:00
Kevin O'Connor
2469356861 stm32f1: Add support for building with a 0x7000 code offset
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-23 13:36:15 -04:00
Kevin O'Connor
edb679b83d atsam: Enable pullup on i2c SDA line
The internal pullup helps ensure i2c errors are detected properly.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-23 09:32:10 -04:00
Kevin O'Connor
24b1638c25 atsam: Improve i2c timeout detection
Unify timeout detection in i2c_write() and i2c_read().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-23 09:32:10 -04:00
Kevin O'Connor
5fe5f09244 atsam: Minor whitespace changes to i2c.c
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-23 09:13:55 -04:00
Kevin O'Connor
6268c702e5 spi_temperature: MAX6675 and MAX31855 should use spi mode 0
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-22 11:40:53 -04:00
Kevin O'Connor
bcfd101867 spi_software: Minor simplification to spi_software_prepare()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-22 11:40:30 -04:00
fess
260e4f54cf quad_gantry_level: Require exactly 4 probe points
quad_gantry_level requires exactly 4 probe points assert as much at
config time.

Signed-off-by: John "Fess" Fessenden <fess@fess.org>
2019-05-21 14:17:09 -04:00
fess
7d2e3de977 z_tilt: minimum points 2
"The z_tilt_adjust was coded to require 3 points because the original
intent was for railcore-xl and voron.  Since then, a number of users
have started using z_tilt_adjust for prusa i3 style printers with dual z
steppers.  That's fine, but we just haven't gotten around to removing
the superfluous check in the code." -- Kevin O'Connor

remove that check.

Signed-off-by: John "Fess" Fessenden <fess@fess.org>
2019-05-21 14:17:09 -04:00
fess
9887e72570 probe: ProbePointsHelper adjustable minimum points
Factor out minimum required points check for ProbePointsHelper
in prep for setting different values for quad_gantry_level
and z_tilt_adjust

Signed-off-by: John "Fess" Fessenden <fess@fess.org>
2019-05-21 14:17:09 -04:00
Kevin O'Connor
84bae6ff41 mcu: Fix reserve pin check
Fix typo causing conflict with mcu name and constant name.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-21 09:40:13 -04:00
Kevin O'Connor
1856f95503 docs: Recommend OctoPrint 1.3.11 or later
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-20 23:01:04 -04:00
Kevin O'Connor
7c3ee0f1e9 scripts: Use /tmp/klippy.log in install-ubuntu-18.04.sh
Use /tmp/klippy.log in the install script - all the documentation
currently uses that file location.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-20 20:01:06 -04:00
Kevin O'Connor
ad12ffa981 docs: Use markdown syntax for http links in Bootloaders.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-20 17:19:33 -04:00
LyleCheatham
1235972b77 util: Ignore errors in clear_hupcl (allows OSX to run)
Signed-off-by: Lyle Cheatham <hello@lylecheatham.com>
2019-05-20 16:49:42 -04:00
LyleCheatham
f7cb0875f4 makefile: Fixed build on OSX
Signed-off-by: Lyle Cheatham <hello@lylecheatham.com>
2019-05-20 16:49:16 -04:00
Stephan
de7ead1783 tmc5160: Add support for TMC5160 steppers (#1637)
Signed-off-by: Stephan Oelze <stephan.oelze@gmail.com>
2019-05-20 16:29:37 -04:00
alfsoft
777013da4f menu: Changed Menu item "Feed Filament" name (#1609)
"Feed Filament" menu item value was off-screen that made this item useless. So I changed its name to just "Feed". Users shall easily guess that this item is for filament feeding because this item is located in "Filament" menu.

Signed-off-by: Alexander Fadeev <alfsoft@gmail.com>
2019-05-09 14:41:37 -04:00
Kevin O'Connor
fd1dff3f02 docs: Fix numbering in FAQ
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-08 16:48:14 -04:00
Kevin O'Connor
73fd292637 docs: Update "avr restart=command" FAQ to point to bootloaders.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-07 23:02:20 -04:00
Kevin O'Connor
ab5238317b avr: Simplify spi mode setting
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-07 23:02:20 -04:00
Matt Baker
c95705ba3a spi_software: save mode setting in config structure.
Signed-off-by: Matt Baker <baker.matt.j@gmail.com>
2019-05-07 00:03:17 -04:00
Kevin O'Connor
f444177bb4 test: Add printer-creality-ender5-2019.cfg to printers.test
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-01 15:27:11 -04:00
Billy Jones
8d19351ea0 config: Add Creality Ender 5 2019
This config is based on the existing Ender 3 example config but some of 
the directions for the steppers have been reversed. It works for me so 
far, but feel free to modify.

Signed-off-by: Billy Jones <billyajones@gmail.com>
2019-05-01 15:25:42 -04:00
Kevin O'Connor
a0f2d54743 config: Add comments to generic-fysetc-f6.cfg for extruder1/2 pins
Reported by @SimoneBnc.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-01 14:56:11 -04:00
Kevin O'Connor
12e6aaf316 config: Updates to kit-zav3d-2019.cfg
Minor updates to the kit-zav3d-2019.cfg to make it look more like
other config files: specify the micro-controller type, use the
klipper3d.org site for documentation links, avoid using SAVE_CONFIG
sections in the example configs, add config to printers.test.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-05-01 14:50:06 -04:00
Nurmukhamed Artykaly
493d74acda config: Zav3d example config (#1571)
Zav3d - a popular russian corexy plywood printer.

Official web site is https://www.zav3d.ru/

Social network community is https://vk.com/zav3d

Signed-off-by: Nurmukhamed Artykaly <nurmukhamed.artykaly@hdfilm.kz>
2019-05-01 14:40:17 -04:00
fess
0a9e3b744c quad_gantry_level: Limit maximum adjustment
safety feature that prevents quad_gantry_level from trying to do a
correction that might break things - if your probe fires early for
whatever reason and tries to do an 8mm correction in one corner instead
we abort if a correction is over a configurable limit by default 4mm

configurable via `max_adjust` parameter in the config

Signed-off-by: John "Fess" Fessenden <fess@fess.org>
2019-05-01 14:35:24 -04:00
fess
af78d854ac quad_gantry_level: More compact info messages
In particular trying to keep the output from a single quad_gantry_level
so that it fits in the octoprint terminal window without the need to
scroll

Signed-off-by: John "Fess" Fessenden <fess@fess.org>
2019-05-01 14:34:10 -04:00
Kevin O'Connor
2d864489a0 docs: Update main README file to point to website
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-20 13:43:35 -04:00
Kevin O'Connor
b6637c6c73 config: Add button support for anet a8
Reported by @noud-github.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-19 10:43:22 -04:00
Kevin O'Connor
8524602b6e docs: Fix inclusion of CONTRIBUTING.md in the automatic html generation
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-18 23:10:32 -04:00
Kevin O'Connor
17dd6e5097 docs: Fix markdown table layout in html rendering
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-18 22:56:56 -04:00
Kevin O'Connor
b5f79d5e77 docs: Simplify main html page now that there is a logo
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-18 22:37:56 -04:00
Kevin O'Connor
57cf0759c0 docs: Add logos to web page
Also, move docs/index.md to docs/_layouts/home.html.  Add a
docs/_layouts/README file.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-18 22:35:35 -04:00
Kevin O'Connor
85c01d4b6a docs: Minor node changes to klipper logo
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-18 11:42:40 -04:00
Kevin O'Connor
49b18a6be7 docs: Update logo so that edges overlap
Overlapping edges reduce the effects of anti-aliasing.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-18 11:31:29 -04:00
Kevin O'Connor
9b960e63fb docs: Add a Klipper logo
Signed-off-by: Jonne Kuusela <johnedwa@gmail.com>
Signed-off-by: Michael J Shephard <michael.j.shephard@gmail.com>
Signed-off-by: Thomas Herrmann <therrmann23@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-18 11:31:29 -04:00
Kevin O'Connor
6f34ba59cb docs: Add an index page for the www.klipper3d.org website
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-16 22:00:35 -04:00
Kevin O'Connor
4739e28137 docs: Add a github pages html template
Add an html template so that each page has a navbar at the top and a
sidebar on the left with an auto-generated table of contents.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-16 20:55:41 -04:00
Kevin O'Connor
64e7235e48 docs: Rewrite the Overview.md - just list documents by category
Replace the Overview.md document description with a list of documents
and a brief description of their contents.  The goal is to make it
easier for users to find information.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-16 20:45:00 -04:00
Kevin O'Connor
cb04e4c45d docs: Fix alignment of tmc2208.svg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-16 11:34:45 -04:00
Martin Nowroth
60bc93f36b temperature_fan: Add gcode command for temperature_fan.py (#1520)
Adding gcode command for setting the target temperature of temperature_fan.
Example gcode: SET_TEMPERATURE_FAN_TARGET temperature_fan=chamber target=35.0

Signed-off-by: Martin Nowroth <madnoth@gmail.com>
2019-04-15 21:13:29 -04:00
Len Trigg
1102c6c232 tsl1401cl_filament_width_sensor: Fix incorrect math in filament width sensor. (#1541)
The parameter to the M221 command should be the ratio of the nominal to
measured filament area, rather than the ratio of the diameters. Since we
are taking the ratio, most of the area calculation cancels out.

Fixes #1535.

Signed-off-by: Len Trigg <lenbok@gmail.com>
2019-04-15 21:11:26 -04:00
Dmitry
1b92af6078 display: Add ST7567 display support (#1540)
Signed-off-by: Dmitry Budaev <condemil@gmail.com>
2019-04-15 21:07:29 -04:00
Kevin O'Connor
c440c6b7aa docs: Start of google pages _config.yml file
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-15 11:04:23 -04:00
Kevin O'Connor
e3df39245f docs: Fixup github pages
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-14 22:41:23 -04:00
KevinOConnor
8a6d415745 Update CNAME 2019-04-14 21:25:54 -04:00
KevinOConnor
b90a04a5cf Create CNAME 2019-04-14 21:21:14 -04:00
KevinOConnor
5068c8b088 Set theme jekyll-theme-leap-day 2019-04-14 21:18:21 -04:00
KevinOConnor
63f8d8cc79 Set theme jekyll-theme-leap-day 2019-04-14 21:17:52 -04:00
Kevin O'Connor
8bc9f39c58 docs: Avoid using .. in markdown links
Using .. in the markdown link can confuse some document processors.
Use an absolute link to github instead.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-14 21:12:21 -04:00
Trevor Jones
9cb21de68e virtual_sdcard: consistent sorting (#1387)
Signed-off-by: Trevor Jones <trevorjones141@gmail.com>
2019-04-14 11:34:22 -04:00
Daniel
7373e92092 serialhdl: Enforce exclusive access on POSIX, this is default behavior on windows. (#1216)
Signed-off-by: Daniel Joyce <daniel.a.joyce@gmail.com>
2019-04-14 11:27:43 -04:00
Kevin O'Connor
41ce7cdf1c klippy-requirements: Update Jinja2 version
There's a security bulletin for Jinja2 v2.10 (CVE-2019-10906).  This
wont impact Klipper, but best to upgrade the package requirements to
avoid getting security alerts.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-14 11:20:04 -04:00
Janar Sööt
0a392b6543 menu: initial support for analog buttons (#977)
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2019-04-14 11:18:52 -04:00
Kevin O'Connor
d7e1061c63 bus: Don't reserve any pins if BUS_PINS_x is not defined
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-07 20:43:23 -04:00
Matt Baker
38f3d65ac5 lpc176x: refactor usbserial to use udelay helper.
Signed-off-by: Matt Baker <baker.matt.j@gmail.com>
2019-04-06 20:53:15 -04:00
Matt Baker
e83071c9fe lpc176x: force minimum usb disconnect time
Fixes GitHub Issue #1499. Resolves USB hang by forcing a minimum
USB disconnection time at boot.

Signed-off-by: Matt Baker <baker.matt.j@gmail.com>
2019-04-06 20:53:15 -04:00
Kevin O'Connor
04adde9a02 docs: Update Installation.md to point to list of supported ARM mcus
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-06 18:47:02 -04:00
Kevin O'Connor
62bdc2709f config: Update generic-bigtreetech-skr-v1.3.cfg with e0/e1 defs
Use the HE0 for the extruder0 heater and add comments describing the
nominal extruder1 pins.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-06 16:18:15 -04:00
Janne Grunau
478a916f51 replicape: add support for Linux hardware PWM (#1443)
The servo pins (P9_14/P9_16) are muxed to the SOCs hardware PWM unit
driven by a 13MHz GP timer. They have to be driven by the linux host
mcu. This commits adds hardware PWM support using the linux sysfs
user space interface.

The servo pins can be specified as "replicape:servo0" and
"replicape:servo1". Removes the "servo0_enable", "servo1_enable"
configuration parameters.
Fixes #1105.

Signed-off-by: Janne Grunau <janne-3d@jannau.net>
2019-04-06 13:51:51 -04:00
Kevin O'Connor
8c54fc8753 config: Minor change to generic-bigtreetech-skr-v1.3.cfg
Interpolate is enabled by default.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-05 20:07:13 -04:00
Aleksander Sobolewski
ccc1107dbe config: Generic board BIGTREETECH SKR V.1.3 config
Signed-off-by: Aleksander Sobolewski <aleks.sobolewski@outlook.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-05 19:56:22 -04:00
Kevin O'Connor
1c56ba0ca7 config: Update generic-bigtreetech-skr-v1.1.cfg - make flash should now work
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-05 19:51:10 -04:00
Janne Grunau
aab89e7f85 linux: add support for Linux hardware PWM
The replicape servo pins (P9_14/P9_16) are muxed to the SOCs hardware
PWM unit driven by a 13MHz GP timer. They have to be driven by the
linux host mcu. This commits adds hardware PWM support using the linux
sysfs user space interface.

Signed-off-by: Janne Grunau <janne-3d@jannau.net>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-05 19:06:15 -04:00
Janne Grunau
e6c3eeafd7 pwmcmds: allow 16-bit resolution
Signed-off-by: Janne Grunau <janne-3d@jannau.net>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-05 19:02:48 -04:00
Kevin O'Connor
de124677b0 docs: Update BLTouch.md to refer to Probe_Calibrate.md for offset config
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-05 18:22:57 -04:00
Kevin O'Connor
9f9262cba8 docs: Minor wording changes to BLTouch.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-05 18:20:21 -04:00
Kevin O'Connor
54a2c5d58e BLTouch: Use G90 in the BLTouch.md homing_override example
Reported by @sgtnoodle.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-05 17:49:58 -04:00
Kevin O'Connor
a5a6ae83ff docs: Wrap BLTouch.md to 80 columns.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-05 17:48:51 -04:00
Kevin O'Connor
6318bdc99b docs: Note the python software dependency update in Config_Changes.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-05 11:20:36 -04:00
Kevin O'Connor
516fbf4f32 klippy: Report the underlying error on an internal error during connect
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-04 18:38:46 -04:00
Kevin O'Connor
79ecee0996 homing_override: Use gcode_macro style templates on gcode
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-04 18:35:23 -04:00
Kevin O'Connor
7d246e2624 probe: Use gcode_macro style templates on activate/deactivate_gcode
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-04 18:35:23 -04:00
Kevin O'Connor
486c07c190 gcode_macro: Evaluate macros using Jinja2 template engine
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-04 18:35:23 -04:00
Kevin O'Connor
890a5ea6bb scripts: Update klippy-requirements.txt to latest version of packages
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-04 18:35:23 -04:00
Kevin O'Connor
e6157c1600 atsamd: Minor whitespace changes to sercom.c
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-04 18:30:05 -04:00
Kevin O'Connor
0615ab5f89 docs: Note the use of bus enumerations in Config_Changes.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-04 18:30:04 -04:00
Kevin O'Connor
f8bde6b1ef linux: Convert SPI to use enumerations
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-04 18:29:31 -04:00
Kevin O'Connor
3e71a57f67 lpc176x: Use enumerations for buses and reserve pins
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-04 18:29:31 -04:00
Kevin O'Connor
bc9fd03dab atsamd: Use enumerations for buses and reserve pins
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-04 18:29:31 -04:00
Kevin O'Connor
7e8ecfe177 atsam: Use enumerations for buses and reserve pins
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-04 18:29:31 -04:00
Kevin O'Connor
7765653d83 avr: Use enumerations for buses and reserve pins
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-04 18:29:31 -04:00
Kevin O'Connor
1ab02e5225 bus: Support bus enumerations and add support for reserved pins
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-04 18:29:31 -04:00
Kevin O'Connor
4c3d50693e bus: Change bus parameter in config_spi/config_i2c
Be explicit when using an spi_bus vs i2c_bus in the parameter name.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-04 18:29:31 -04:00
Kevin O'Connor
be6b29fabf sx1509: Convert code to use generic i2c bus support
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-04 18:29:30 -04:00
Arksine
2e16be224e uc1701: make contrast configurable
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-04-02 15:53:16 -04:00
Kevin O'Connor
9bd3e80421 docs: Note that graphstats.py can produce different types of graphs
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-01 22:24:45 -04:00
Kevin O'Connor
2a55e09ff8 scripts: Add a new klippy-requirements.txt file for virtualenv installs
Place all of the host software python requirements into a config file.
This makes it easier to update the python requirements without having
to update several installation scripts.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-01 22:20:21 -04:00
Kevin O'Connor
2980c2e12c docs: Minor wording change in MCU_Commands.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-01 22:04:56 -04:00
Kevin O'Connor
c30a6f2e6b docs: Update Protocol documentation with enumerations
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-04-01 21:41:33 -04:00
Kevin O'Connor
2c851e1621 avr: Add enumerations for the atmega168/328 analog only pins
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-31 21:47:27 -04:00
smark-
eedc773d69 stm32f1: Fix ADC (#1474)
The sampling time of the ADC was too slow (239 ADC clock cycles), causing the reading of the next ADC channel to have cross talk as per issue #1261. Sampling time updated to 41 ADC clock cycles.

Signed-off-by: Marco D'Alessio <marco@wrecklab.com>
2019-03-31 14:32:27 -04:00
Kevin O'Connor
d1eefba453 pru: The TMR_CNT is cleared by writing all ones
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-31 13:48:50 -04:00
Kevin O'Connor
72d0c770d3 pru: Avoid using a timer wake time of exactly zero
It appears the PRU timer will not trigger on a match of exactly zero.
If the next timer happened to be set to exactly zero, it could cause
software timers to get stuck and result in "move queue empty" errors.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-31 13:37:05 -04:00
Kevin O'Connor
8b48de1be8 logextract: Add mcu annotation on send/receive shutdown reports
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-31 13:37:01 -04:00
Kevin O'Connor
fbbe2cf9d6 lpc176x: Explicitly disconnect USB on a bootloader request
It appears some host machines may not recognize that the USB device
has disconnected upon start of bootloader mode.  Explicitly disable
USB and add a 5ms delay to help signal the host of the upcoming
change.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-31 13:37:01 -04:00
Kevin O'Connor
60ff2e9dc1 force_move: Avoid divide by zero in move time calculation
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-31 09:00:23 -04:00
Kevin O'Connor
75b73b09d6 corexy: Fix minimum halt velocity
Due to the corexy kinematics, the individual steppers may have a
velocity of sqrt(2) times faster than the cartesian velocity _and_ can
have an acceleration of sqrt(2) times faster.  Make sure to calculate
in the higher acceleration.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-30 14:35:18 -04:00
Eugene Krashtan
8c7f1546ab stm32f0: Wrong port definition for GPIOF (#1463)
Signed-off-by: Eugene Krashtan <eug.krashtan@gmail.com>
2019-03-29 09:41:05 -04:00
Eugene Krashtan
b35e07ca2b docs: STM32F0 benchmarks (#1462)
Signed-off-by: Eugene Krashtan <eug.krashtan@gmail.com>
2019-03-29 09:38:54 -04:00
Douglas Hammond
c105adc80b temperature_fan: Fix. Temperature fan min speed should be used (#1405)
Signed-off-by: Douglas Hammond <wizhippo@gmail.com>
2019-03-28 14:07:40 -04:00
Eugene Krashtan
5913170b6b stm32f0: minor i2c bugfix (#1461)
Signed-off-by: Eugene Krashtan <eug.krashtan@gmail.com>
2019-03-28 12:27:57 -04:00
Eugene Krashtan
c7330e07a4 stm32f0: Various fixes according to comment: (#1453)
* Copyright in log.c
* GPIO check completely removed
* generic/timer_irq added
* Change in doc section

Signed-off-by: Eugene Krashtan <eug.krashtan@gmail.com>
2019-03-28 10:21:51 -04:00
Kevin O'Connor
312cabc3f7 docs: Move benchmark information from Debugging.md to new Benchmarks.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-28 09:52:06 -04:00
Kevin O'Connor
907dd88ceb msgproto: Propagate original error message in create_command()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-28 09:32:09 -04:00
Kevin O'Connor
de7444ca69 docs: Remove spurious executable flag from documents
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-24 12:17:12 -04:00
Eugene Krashtan
45f0ea29a6 stm32f0: SPI and i2c interfaces added
Signed-off-by: Eugene Krashtan <eug.krashtan@gmail.com>
2019-03-24 12:10:19 -04:00
Eugene Krashtan
b79db3e3d6 docs: Documentation draft for STM32F0
Signed-off-by: Eugene Krashtan <Eugene.Krashtan@opensynergy.com>
2019-03-24 12:10:11 -04:00
Eugene Krashtan
b822f38923 stm32f0: New target STM32F0 added.
Signed-off-by: Eugene Krashtan <Eugene.Krashtan@opensynergy.com>
2019-03-24 12:10:11 -04:00
Kevin O'Connor
74c6a85cde lib: Add stm32f0 hal and cmsis files
Signed-off-by: Eugene Krashtan <Eugene.Krashtan@opensynergy.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-24 12:10:11 -04:00
Kevin O'Connor
154823cc8f lib: Add cmsis-core/core_cm0.h header
Add cmsis-core cm0 header support in preparation for stm32f0.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-24 11:55:01 -04:00
Kevin O'Connor
74f9da8376 config: Update description of printer-tevo-flash-2018.cfg
Reported by @RadianceNL.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-24 10:56:20 -04:00
Kevin O'Connor
9aadc3c7fa docs: Also note that driver_VSENSE was removed from tmc2660 driver
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-22 22:40:42 -04:00
Kevin O'Connor
871e028c27 config: Document the [include] directive
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-22 20:48:15 -04:00
Kevin O'Connor
3945905420 config: Minor rearrangement of example-extras.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-22 20:46:37 -04:00
Kevin O'Connor
efab177645 docs: Note tmc2660 driver_HEND default change from 6 to 3
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-22 20:41:32 -04:00
Florian Heilmann
bece690c5b tmc2660: Automate VSENSE computation
Adjust the HEND default, which was faulty after the the fields update, remove disallowance of setting CS

Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2019-03-22 20:38:42 -04:00
amblidex
0980b7e4ec tmc2130: add SET_TMC_CURRENT and SET_TMC_FIELD commands (#1419)
Signed-off-by: Frank Kang <amblidex@outlook.com>
2019-03-22 20:37:03 -04:00
lauckhart
7a344acde8 configfile: Add "include" support (#1359)
Allows configuration files to include other configuration files using
[include filename.cfg] syntax.  Klippy loads include files in the
position of the include header; subsequent definitions override
included values.  Supports wildcards (e.g. [include macros/*.cfg).
Allows included files to include other files but blocks recursion.

Signed-off-by: Greg Lauckhart <greg@lauckhart.com>
2019-03-22 20:31:40 -04:00
Montbel
5bcf9f02cf config: Added Anycubic 4Max printer config file
Signed-off-by: Christian Toulon christian@bouncy-studio.com
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-22 13:02:01 -04:00
Kevin O'Connor
541c2990c6 test: Rename atmega2560-16mhz.config to atmega2560.config
There's no need to include the 16mhz as basically all atmega chips are
run at 16mhz.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-22 12:36:18 -04:00
Matt Baker
f2fbe98454 bed_mesh: enable relative offset bed meshes (#1323)
Adds parameter for bed meshes to be adjusted relative to a probed point
during calibration. This allows the probe z offset to be ignored for
probes that are not stable over time (for example, the thermal drift of
inductive probes). An endstop other than the probe is then necessary to
determine the bed-nozzle offset.

Signed-off-by: Matt Baker <baker.matt.j@gmail.com>
2019-03-21 10:39:22 -04:00
Robert Konklewski
6f91574cd9 menu: Show current positions based on gcode positions (#1389)
menu: Show current positions based on gcode positions

Added "move_[xyze]pos" properties to the "gcode" object for use in menus.
The new properties track the toolhead's position in gcode coordinates,
taking gcode and bed leveling offsets into account.
This position is equal to the value returned by M114 gcode.

Changes the move menus to show current position based on gcode
position. This allows gcode offsets and bed leveling offsets
to be taken into account, and prevents unexpected toolhead
movements when moving it using the menu.

Signed-off-by: Robert Konklewski <nythil@gmail.com>
2019-03-21 10:37:28 -04:00
Kevin O'Connor
d76658756e stepper: Fix reset_step_clock corruption due to bitset typo
Commit b9b03dd0 had a typo in the flag updating.  The typo could
result in corruption of the stepper state.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-19 20:57:17 -04:00
Frank Kang
06c0463d44 Update sensorless homing documentation to disable second home
Signed-off-by: Frank Kang <amblidex@outlook.com>
2019-03-19 10:55:59 -04:00
Kevin O'Connor
746a378c18 endstop: Use "pin_value" instead of "pin" when querying endstop state
Now that enumerations are available, any variable named "pin" can only
be used to describe a gpio pin.  Rename the end_stop_state "pin"
parameter to "pin_value".  Also, rename "end_stop_query" command to
"end_stop_query_state" to notify users to upgrade both host and mcu
code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-19 10:48:33 -04:00
Kevin O'Connor
ea0f231343 flash_usb: Improve USB reconnect timing
Instead of waiting one second after entering bootloader mode, wait for
the device file to reappear.  This should make the flashing more
resilient to slight timing difference in the OS.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-17 22:31:31 -04:00
Kevin O'Connor
53290664ee pins: Document support for '~' to enable pull-down resistors
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-17 21:07:31 -04:00
Kevin O'Connor
4a35f927fc initial_pins: Add ability to configure output pins at mcu startup
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-17 20:56:25 -04:00
Kevin O'Connor
0af89e4766 thermocouple: Define thermocouple types using enumerations
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-17 19:38:18 -04:00
Kevin O'Connor
618b374ae5 pins: Simplify alias code
Simplify the pin aliasing code now that all pins are defined via
enumerations.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-17 19:38:18 -04:00
Kevin O'Connor
df6136802a linux: Use enumerations for pin mappings
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-17 19:38:18 -04:00
Kevin O'Connor
ae24baf99a pru: Use enumerations for pin mappings
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-17 19:38:18 -04:00
Kevin O'Connor
91cf497656 stm32f1: Use enumerations for pin mappings
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-17 19:38:18 -04:00
Kevin O'Connor
8aa8feedb8 lpc176x: Use enumerations for pin mappings
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-17 19:38:18 -04:00
Kevin O'Connor
7e2c0ffa91 atsamd: Use enumerations for pin mappings
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-17 19:38:18 -04:00
Kevin O'Connor
8b0195f896 atsam: Use enumerations for pin mappings
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-17 19:38:18 -04:00
Kevin O'Connor
8f541d090e avr: Use enumerations for pin mappings
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-17 19:38:18 -04:00
Kevin O'Connor
db6e2d4c9e msgproto: Convert static strings to a more generic enumeration system
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-17 19:38:18 -04:00
Kevin O'Connor
7d73a35805 command: Support evaluating C expressions in DECL_CONSTANT()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-17 19:38:18 -04:00
Kevin O'Connor
b28e95ca1a command: Always pass a string to the DECL_CONSTANT() macro
Make it clear that the name of the constant being defined is a string.
When the value being defined is also a string, use a new
DECL_CONSTANT_STR() macro.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-17 19:38:18 -04:00
Kevin O'Connor
7eda55e2b0 buildcommands: Use dictionaries to describe commands, responses, and output
Avoid transmitting lists of message ids for commands and responses -
gzip doesn't do a good job of compressing them.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-17 19:38:18 -04:00
Kevin O'Connor
b9b03dd082 stepper: Require an explicit reset_step_clock after stepper_stop()
If the stepper is stopped by the endstop code, then ignore any further
stepper moves until a reset_step_clock command is received.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-17 19:38:18 -04:00
Kevin O'Connor
378402b4d6 config: Update extra extruder pins in generic-rumba.cfg
Reported by @jakep82.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-14 11:48:25 -04:00
Kevin O'Connor
b455f1fbe1 config: Reduce the stepper current in the example printrboard config
Reported by @drphil3d.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-14 10:44:02 -04:00
Kevin O'Connor
01c8705d92 config: Add printer-tevo-flash-2018.cfg
Reported by @RadianceNL.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-14 10:27:37 -04:00
Kevin O'Connor
4718f39b2f flash_usb: Run dfu-util via sudo
Default to running dfu-util via sudo as most machines will not have
the user setup with permissions to access the raw usb device.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-11 22:33:24 -04:00
Kevin O'Connor
12f6513ba2 docs: Recommend OctoPi v0.16.0
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-11 22:13:04 -04:00
Kevin O'Connor
96c4e1c5a0 docs: Update atsam usb transfer benchmarks
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-10 21:59:18 -04:00
Kevin O'Connor
a5aede52cb flash_usb: Try to make the bossac atsam reboot logic more stable
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-10 15:06:41 -04:00
Kevin O'Connor
d3f6dad853 controller_fan: Allow multiple controller_fan sections to be defined
It may be necessary to define multiple fans, so allow each config
section to be named.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-10 13:57:01 -04:00
Kevin O'Connor
19c7955f2a config: Improve the description of z_tilt z_positions
Reported by @sensille.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-10 12:24:34 -04:00
Arne Jansen
f145439267 z_tilt: bugfix for final correction of z-offset
The z_adjust offset provided to adjust_steppers is calculated given the
steppers adjust exactly according to the given x_adjust/y_adjust. As the
algorithm eliminates an offset that is common to all steppers, this offset
must be taken into account in the final correction.

Signed-off-by: Arne Jansen <arne@die-jansens.de>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-10 12:00:35 -04:00
Kevin O'Connor
34d32c7823 stepper: Support an optimized step/unstep function on ARM
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-10 10:27:02 -04:00
Kevin O'Connor
9466c2d66c stm32f1: Add support for entering the bootloader via USB
Add support for entering the "stm32duino" bootloader via the arduino
1200 baud USB request.  Add supprot for flashing over USB via the
"make flash" command.

Rename the existing "make flash" command to "make serialflash".

Default to using a bootloader in Kconfig.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-08 22:22:41 -05:00
Kevin O'Connor
6a16e1f4c5 atsamd: Add support to "make flash" to automatically enter the bootloader
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-08 22:22:41 -05:00
Kevin O'Connor
079fdf8807 atsam: Improve support for flashing over USB
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-08 22:22:41 -05:00
Kevin O'Connor
f5b10f0c13 lpc176x: Add support for flashing via "make flash"
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-08 22:22:41 -05:00
Kevin O'Connor
6ffbaa46c5 flash_usb: Add a helper script for flashing Klipper over USB
Add a script to help flash Klipper over USB.  This tool can instruct
Klipper to enter into bootloader mode and it can help track changes in
device name during that transition.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-08 22:22:41 -05:00
amblidex
e2af1c1f2a menu: Set input_max for moving toolhead in menu to same value for all move increments (#1372)
Signed-off-by: Frank Kang <amblidex@outlook.com>
2019-03-08 14:11:47 -05:00
Kevin O'Connor
1b1d3f15d8 probe: Fix PROBE_CALIBRATE command
The z_offset calculation should have been calculated from the probe
height to the measured bed position.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-08 12:34:13 -05:00
Kevin O'Connor
eac22df7cb probe: Catch toolhead.move() exceptions in cmd_PROBE_CALIBRATE()
Slightly rework the self._move_position() code and also use it in
PROBE_CALIBRATE.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-08 12:32:01 -05:00
Rui Caridade
5c0a2479be screws_tilt_adjust: Add new screws_tilt_adjust tool (#1367)
Signed-off-by: Rui Caridade <rui.mcbc@gmail.com>
2019-03-08 11:47:17 -05:00
Kevin O'Connor
fcaa75f014 config: Update default spi speed in tmc2660 description
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-08 11:27:50 -05:00
Kevin O'Connor
563bc37073 tmc2130: Rename driver_BLANK_TIME_SELECT to driver_TBL
Use the field names from the trinamic specification.  This makes the
field similar to all the other driver_XXX config options.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-08 11:25:19 -05:00
Kevin O'Connor
9c0cf829ee tmc2660: Minor indentation fix
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-08 11:20:32 -05:00
Kevin O'Connor
89935c6831 docs: Update Config_Changes.md with tmc2660 changes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-08 11:08:24 -05:00
Florian Heilmann
789379e95b tmc2660: Add INIT_TMC and SET_TMC_FIELD gcodes
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2019-03-08 11:04:14 -05:00
Florian Heilmann
8e17df5d78 tmc2660: Raise SPI speed to 4 Mhz
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2019-03-08 11:04:14 -05:00
Florian Heilmann
e96b71a9a3 tmc2660: Use helper functions for register access and simplify TMC2660 parameters
sense_resistor is now a mandatory parameter for tmc2660 blocks. Duet2 users should use a value of 0.051

Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2019-03-08 11:04:14 -05:00
Florian Heilmann
4541f16cd9 tmc2660: Add vsense_resistor config parameter
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2019-03-08 11:04:14 -05:00
Voron
975b0dbd84 quad_gantry_level: Fixing logic to use probed Z values correctly (#1328)
Signed-off-by: Maks Zolin <mzolin@vorondesign.com>
2019-03-08 11:01:49 -05:00
Kevin O'Connor
47d51d8613 config: Update verify_heater description
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-08 10:55:46 -05:00
Kevin O'Connor
8f37700d23 verify_heater: If the heating_gain check fails, just use max_error check
Don't immediately raise an error if the heating_gain check fails.
Instead, just transition to the normal max_error check.  This should
make the code less likely to raise an error should the heater have a
slow approach to the target temperature.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-08 10:55:46 -05:00
Kevin O'Connor
f2ca7d5c66 verify_heater: Improve handling of new targets when temperature is dropping
Allow the first check_gain_time interval to only require a
heating_gain relative to the lowest observed temperature during that
interval.  This makes the code less likely to raise a spurious error
when the heater is enabled while the heater temperature is dropping.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-08 10:55:46 -05:00
Kevin O'Connor
893bb32d01 verify_heater: Only reset the error count if within the hysteresis range
Don't reset the error counter if the reported temperature is
significantly above the target temperature.  This may help catch cases
where the temperature sensor reports random values.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-08 10:55:46 -05:00
Benoit Miller
8e8063a9d9 config: Fixed Duet2 reversed heater/fan output pins (#1350)
Using the Duet2 config as a base for your own config will no longer turn
on all heaters and fans at full power during the (almost inevitable) MCU
shutdown that will occur during initial Klipper setup.

Signed-off-by: Benoit Miller <github@benoitmiller.ca>
2019-03-04 13:37:38 -05:00
Kevin O'Connor
1731fbbca4 gcode: Change respond_info() to log by default
It makes sense to log most respond_info() content, so do that by
default.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-04 13:04:18 -05:00
Kevin O'Connor
d62a41b930 manual_stepper: Add support for moves with acceleration
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-03 13:38:10 -05:00
Kevin O'Connor
399d539969 Makefile: Reduce use of $^ in build rules
It's rare to use all of a target's prerequisites in a recipe - replace
most cases with $< (the target's first prerequisite).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-02 12:01:44 -05:00
Kevin O'Connor
9430fea2c5 Makefile: Fix lpc176x and stm32f1 builds
Commit e18501d0 broke the build for targets that added objects to
klipper.elf via adding dependencies.  Rework the build so that it is
possible to add objects to klipper.elf via a new OBJS_klipper.elf
makefile variable.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-02 11:26:14 -05:00
Kevin O'Connor
309a47c781 atsamd: Reduce memory for have_run_init in spi/i2c
Some of the samd21 chips have limited memory - change the code to
reduce the size of global variables.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-01 19:31:18 -05:00
Kevin O'Connor
946eb6b7ae atsamd: Add definitions for SAMD21E18 chip
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-01 19:05:00 -05:00
Kevin O'Connor
0b33e0b427 atsamd: Implement custom memory allocation functions
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-01 19:05:00 -05:00
Kevin O'Connor
a1d74a08e4 lib: Remove samd21/samd51 customizations that are no longer necessary
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-01 19:05:00 -05:00
Kevin O'Connor
fbef144e7b atsamd: Use CONFIG_MCU in Makefile
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-01 19:03:34 -05:00
Kevin O'Connor
d57bc79513 atsamd: Use the full micro-controller name for CONFIG_MCU
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-01 19:03:34 -05:00
Kevin O'Connor
d33c4820bd atsamd: Use local linker script
Use a local linker script instead of the linker script provided by
Atmel.  This will allow Klipper to use dynamic memory allocation.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-01 19:03:34 -05:00
Kevin O'Connor
e18501d01c Makefile: Explicitly list source code in klipper.elf compile
Don't use the list of dependencies in the klipper.elf build. This
allows the arch makefiles to add separate dependencies to klipper.elf.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-01 13:59:54 -05:00
Kevin O'Connor
027f52087c gcode: Improve handling of end of input when reading from a debug file
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-01 10:06:44 -05:00
Arksine
69491e2dab filament_switch_sensor: update documentation
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-03-01 00:45:51 -05:00
Arksine
3c79e484d5 filament_switch_sensor: initial implementation of switch based filament runout/insert sensor
This implementation includes a BaseSensor class that all underlying sensor implementations should subclass.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-03-01 00:45:51 -05:00
Arksine
3cd1f9676d pause_resume: Implement send_pause_command()
This allows for pausing from inside a reactor callback.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-03-01 00:45:51 -05:00
Kevin O'Connor
c8d7e28a35 atsamd: Add support for programming SERCOM pins
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-01 00:40:44 -05:00
Kevin O'Connor
8617cbcb76 tmc2130: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-01 00:35:20 -05:00
Kevin O'Connor
c039b33f2a tmc2130: Add support for INIT_TMC command
Signed-off-by: Frank Kang <amblidex@outlook.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-01 00:24:39 -05:00
Kevin O'Connor
8446f28850 config: Add buttons to printer-tronxy-x5s-2018.cfg
Reported by @blackyarr.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-03-01 00:09:30 -05:00
Kevin O'Connor
5f5d39ef3f bed_screws: Fix missing import
Reported by @JoaoFelipe.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-28 00:30:05 -05:00
Kevin O'Connor
b40a04fb8d docs: Update Installation document to emphasize the "stay connected" step
Move the OctoPrint "stay connected" during error configuration step to
its own paragraph. Hopefully this will make it less likely that users
skip this step.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 20:03:44 -05:00
Kevin O'Connor
88ebedcc63 docs: Update Installation document to suggest using /dev/serial/by-id/
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 19:58:09 -05:00
Kevin O'Connor
264505a1b0 tmc2130: Report write-only registers in DUMP_TMC
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 18:53:18 -05:00
Kevin O'Connor
f7d8fde502 tmc2208: Report write-only registers in DUMP_TMC
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 18:49:45 -05:00
Kevin O'Connor
5dc487faf9 check_whitespace: Enforce an 80 column limit on source code
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 14:33:17 -05:00
Kevin O'Connor
1b064b5a5d tmc2660: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 14:33:17 -05:00
Kevin O'Connor
c1670ea336 tsl1401cl_filament_width_sensor: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 14:33:17 -05:00
Kevin O'Connor
20040f4a18 quad_gantry_level: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 14:33:17 -05:00
Kevin O'Connor
a4a23dee9f respond: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 14:33:17 -05:00
Kevin O'Connor
0b095ddf47 temperature_fan: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 14:33:17 -05:00
Kevin O'Connor
f13c5d4cdb sx1509: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 14:33:17 -05:00
Kevin O'Connor
adc4af2fc4 serialqueue: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 14:20:15 -05:00
Kevin O'Connor
e4d52a19b8 stepcompress: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 14:20:15 -05:00
Kevin O'Connor
7c50bd89cf pru: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 14:20:15 -05:00
Kevin O'Connor
c3eb976119 stm32f1: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 14:20:15 -05:00
Kevin O'Connor
796b7ac738 avr: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 14:20:15 -05:00
Kevin O'Connor
2a64dfc242 spicmds: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 14:20:15 -05:00
Kevin O'Connor
f1be6a3969 pwmcmds: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 14:20:15 -05:00
Kevin O'Connor
69247d87fb stepper: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 14:20:15 -05:00
Kevin O'Connor
03348fab47 buttons: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 14:20:15 -05:00
Kevin O'Connor
7b3331ff52 atsamd: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 14:20:15 -05:00
Kevin O'Connor
c07371a2f0 simulator: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 14:20:15 -05:00
Kevin O'Connor
5a74549ef6 atsam: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 14:20:15 -05:00
Kevin O'Connor
2d99a1e802 buttons: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:34:22 -05:00
Kevin O'Connor
ef1bf60ab7 hd44780: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:31:47 -05:00
Kevin O'Connor
51051478af st7920: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:31:31 -05:00
Kevin O'Connor
d6d23c8415 thermistor: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:29:41 -05:00
Kevin O'Connor
9f1d9bf0f4 probe: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:28:55 -05:00
Kevin O'Connor
ea1814e017 Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:27:52 -05:00
Kevin O'Connor
e504147285 font8x14: Store font as strings instead of as bytearray
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:26:59 -05:00
Kevin O'Connor
af882ee0fe chelper: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:20:57 -05:00
Kevin O'Connor
9d8c7ddc1e pins: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:19:42 -05:00
Kevin O'Connor
9be6cf226b klippy: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:18:43 -05:00
Kevin O'Connor
75b01be87e logextract: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:18:07 -05:00
Kevin O'Connor
a6daa55484 checkstack: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:17:05 -05:00
Kevin O'Connor
060757764a avrsim: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:16:22 -05:00
Kevin O'Connor
72050e7352 buildcommands: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:15:48 -05:00
Kevin O'Connor
21e45cac64 spi_temperature: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:14:23 -05:00
Kevin O'Connor
ee1236805e toolhead: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:11:12 -05:00
Kevin O'Connor
b934313c3d heater: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:09:24 -05:00
Kevin O'Connor
d7e8264d92 extruder: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:07:41 -05:00
Kevin O'Connor
118b7593a6 msgproto: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:06:15 -05:00
Kevin O'Connor
45203070ed util: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:05:37 -05:00
Kevin O'Connor
e7eb745d99 mathutil: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:04:56 -05:00
Kevin O'Connor
5bbae0710a gcode: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:04:19 -05:00
Kevin O'Connor
65d6253fb8 clocksync: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:01:52 -05:00
Kevin O'Connor
e5e079faf2 console: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 13:00:30 -05:00
Kevin O'Connor
dddfb681c7 pins: Add support for pull down resistors
Add initial support for selecting pull down resistors (for
micro-controllers that support it).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-27 11:13:21 -05:00
Douglas Hammond
b6589406d4 temperature_sensor: Add generic temperature sensor support
Signed-off-by: Douglas Hammond <wizhippo@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-26 13:15:56 -05:00
Douglas Hammond
f9968904d6 temperature_fan: Remove stats as it now supports gcode reports
Signed-off-by: Douglas Hammond <wizhippo@gmail.com>
2019-02-26 12:07:00 -05:00
Douglas Hammond
3887ad4fce heater: Support generic gcode_id registration for sensors
Support reading a "gcode_id" parameter from heater/sensor config
sections.

Signed-off-by: Douglas Hammond <wizhippo@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-26 12:07:00 -05:00
Kevin O'Connor
34209e6189 heater_bed: Wrap lines to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-26 11:20:01 -05:00
Kevin O'Connor
adf6040e9e gcode: Use an event to handle restart request actions
Instead of directly turning off motors, heaters, and fans from
gcode.py, raise a new event and allow the heater, fan, and toolhead to
handle the event as needed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-25 21:26:27 -05:00
Kevin O'Connor
ff9605c082 gcode: The set_temp() takes an extruder number not a heater id
Commit cf6c5e6f did not fix the shared heater case - a set_temp()
request takes the extruder id, not the heater id (nor the gcode sensor
id).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-25 21:04:02 -05:00
Kevin O'Connor
c54c81dc2a heater: Return heaters with a gcode_id from new get_gcode_sensors()
The gcode.py code should not peek into the heater classes to obtain
the gcode_id.  Instead, introduce a new get_gcode_sensors() so that
the gcode.py code does not need to.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-25 20:34:26 -05:00
Kevin O'Connor
bb4fab5570 heater: Rename add_sensor() to add_sensor_factory()
Signed-off-by: Douglas Hammond <wizhippo@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-25 20:34:12 -05:00
Kevin O'Connor
cf6c5e6f18 gcode: A set temperature request should use the heater name, not the gcode id
When setting a temperature, lookup the heater via
self.heaters.lookup_heater() and do not use the gcode ids.  This fixes
temperature setting when multiple extruders share the same heater.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-25 20:32:30 -05:00
Kevin O'Connor
13b2e091b8 gcode: Rename self.heater to self.heaters
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-25 20:04:05 -05:00
Arksine
f7d8854587 bed_mesh: simplify configuration
The 'bed_shape' option has been removed.  The user will enter a 'bed_radius' if they have a round be, otherwise they should enter 'min_point' and 'max_point'.  When the bed is round the user should supply a 'round_probe_count' option, otherwise just 'probe_count'.

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2019-02-25 13:34:14 -05:00
Arksine
7694c3e1b8 bed_mesh: fix get_position()
Fix a bug where the fade factor is calculated incorrectly when get_position() is called.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-02-25 13:34:14 -05:00
Arksine
f308171be4 bed_mesh: refactor fade_target
Offset the entire mesh by the fade target amount rather than offset each z lookup.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-02-25 13:34:14 -05:00
Rui Caridade
749beb731c probe: Set z min value in probe_accuracy to z_offset. (#1314)
Signed-off-by: Rui Caridade <rui.mcbc@gmail.com>
2019-02-25 12:52:54 -05:00
Kevin O'Connor
31987c7bcd docs: Add a Manual_Probe.md document
Add information on calibrating the bed on traditional printers with a
Z endstop and bed screws.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-24 00:49:47 -05:00
Kevin O'Connor
80c8bd8b4d bed_screws: Add a helper tool for leveling bed screws
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-24 00:49:47 -05:00
Kevin O'Connor
9e8077009e atsamd: Default to using an external 32Khz crystal
Most samd boards have the crystal and it does improve the clock
accuracy, so default to enabling it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-24 00:37:03 -05:00
Kevin O'Connor
da68da7a63 atsamd: Add support for reference clock selection to SAMD21
Add support for using the internal clocks (with USB clock recovery
mode if available) on the SAMD21.  Don't use the internal clock if the
external crystal is requested (instead use the PLL synced to the
external 32Khz signal).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-22 09:07:26 -05:00
Kevin O'Connor
d452a1de48 atsamd: Update SAMD51 clock configuration
Add support for USB clock recovery mode if an external 32Khz crystal
is not in use.  If using an external crystal, then don't use the
internal 48Mhz DFLL48Mhz clock (just use the PLLs synced to the
external 32Khz signal).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-22 09:02:04 -05:00
Kevin O'Connor
7a32860455 atsamd: Increase ADC frequency on SAMD51
The SAMD51 ADC is only clocked on rising edges (vs both rising and
falling edges on the SAMD21) and it has a greater minimum frequency
than the SAMD21.  So, increase the ADC clock.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-22 08:56:44 -05:00
Kevin O'Connor
ebc80ecea4 atsamd: Only support 8KiB bootloader on SAMD21
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-22 08:51:46 -05:00
Kevin O'Connor
37797c8128 atsamd: Add a GET_FUSE() helper macro
Add a helper macro for accessing the non-volatile factory-calibrated
"fuse" values.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-22 08:51:46 -05:00
Kevin O'Connor
5bc47d9416 tmc2130: Use FieldHelper() to set/get driver fields
Use the field helper to simplify the bit manipulation in the driver.
This also enables the extended DUMP_TMC output.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-21 11:35:58 -05:00
Kevin O'Connor
328bd89fc1 docs: Warn against using the TMC2208 in standalone mode
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-20 16:22:06 -05:00
Kevin O'Connor
834b9e3d92 config: Warn that cycle_time may not match when using hardware_pwm
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-19 13:19:32 -05:00
Kevin O'Connor
b260eb9168 gcode: Raise a config error on invalid register_command()
Raise a printer.config_error() on an invalid register_command() call.
This error is easier to handle for the vast majority of callers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-18 18:04:42 -05:00
Rui Caridade
276d5a1436 probe: Add PROBE_ACCURACY command
Implementation of "PROBE_ACCURACY" to measure the maximum, minimum,
average and standard deviation of a probe.

Signed-off-by: Rui Caridade <rui.mcbc@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-18 00:36:28 -05:00
christian mock
82efed5e2a docs: added an answer to the FAQ about detecting lost steps (#1265)
Signed-off-by: christian mock <cm@tahina.priv.at>
2019-02-17 22:35:58 -05:00
Kevin O'Connor
a285668b46 avr: Only prompt for cpu speed and uart port on LOW_LEVEL_OPTIONS
The cpu is almost always 16Mhz and the serial port is almost always
UART0, so no need to prompt in the normal case.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-16 08:23:00 -05:00
Kevin O'Connor
cc4ecef88b mcp4018: Add initial support for the mcp4018 digipot
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-16 08:16:37 -05:00
Kevin O'Connor
a090b31713 atsamd: Fix samd51 get_clock() sync bit check
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-16 08:03:28 -05:00
Kevin O'Connor
52eef84228 atsamd: Fix typo in Makefile
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-16 07:57:30 -05:00
Kevin O'Connor
b33ad59e25 atsamd: Do not generate 200M/100M interal clocks
Now that the internal DWT timer is used for software timers, there is
no need to clock the peripherals at a higher clock speed.  Clock all
peripherals at 48Mhz and simplify the clock generation code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-16 07:57:24 -05:00
Kevin O'Connor
a00657d2ae atsamd: Don't clear the watchdog if a clear is still in progress
Clearing the watchdog while it is in progress can cause bus stalls on
the SAMD21.  It appears that clearing the watchdog on the SAMD51 can
cause lockups of the watchdog device.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-15 22:13:28 -05:00
Kevin O'Connor
00e0a70a94 atsamd: Move watchdog code to its own files
Move the watchdog code from main.c to watchdog.c and
samd51_watchdog.c.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-15 22:10:41 -05:00
Kevin O'Connor
021264a6f5 kconfig: Remove Save and Load buttons from "make menuconfig"
These two options don't provide any value and it is causing confustion
with some users.  Remove the buttons.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-15 21:06:12 -05:00
nopbit
0f674ef407 tsl1401cl_filament_width_sensor: Filament Width Sensor Support (#1132)
Support added for filament diameter sensor. Sample configuration parameters added to example-extras.cfg.

Signed-off-by: Mustafa YILDIZ <mydiz@hotmail.com>
2019-02-14 10:13:48 -05:00
KevinOConnor
c6d1d1bd8c Merge pull request #1242 from john--/pr_generic_heater
Generic Heater Support
2019-02-14 10:08:26 -05:00
Kevin O'Connor
dd303ec4a9 docs: Try to make manual vs automatic probing more clear in DELTA_CALIBRATE
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-13 23:20:34 -05:00
John Jardine
6316b2c1b6 Generic Heater Support
Adds the ability to register a custom/generic heater through a new extra called heater_generic.
This takes a gcode_id that is reported by M105. Adds a new command to set the temperature for any heater using the syntax:
SET_HEATER_TEMPERATURE HEATER=<heater_name> TARGET=<target_temp>

Signed-off-by: John Jardine <john@gprime.net>
2019-02-14 01:15:11 +00:00
Kevin O'Connor
0da65bf6b0 atsam: Fix hard pwm cycle divider calculation
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-13 18:18:12 -05:00
Boffgithub
a03e31809f config: Example config file for a stock 250mm build VORON2 printer
Example config file for a stock 250mm build VORON2 printer that
matches the manual diagrams exactly for the controller layout and pins
used.

Signed-off-by: Ben Warren <boffdroid@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-13 12:07:20 -05:00
Kevin O'Connor
98ed462865 spi_software: Implementation of software spi
Signed-off-by: Matt Janus <FragginRight@variabl.es>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-13 11:52:20 -05:00
Kevin O'Connor
090cd930d9 atsam: Add support for hard pwm via PWM controller
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-13 11:15:24 -05:00
Kevin O'Connor
d1d19d03f3 atsamd: Fix typo in header guard
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-13 09:32:06 -05:00
Kevin O'Connor
5aa4fd2b4a docs: Note MCP4728 in Features.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-12 18:39:12 -05:00
Kevin O'Connor
2d7c3a84ee manual_stepper: Add an "extras" module for manually controlling a stepper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-12 13:38:13 -05:00
Kevin O'Connor
57e6acbc5c docs: Add Bed_Level.md and Probe_Calibrate.md documents
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-12 13:20:32 -05:00
Kevin O'Connor
b0b9fc6f4a probe: Use manual_probe helper when performing manual probes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-12 13:20:32 -05:00
Kevin O'Connor
35ea4a137d probe: Add PROBE_CALIBRATE command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-12 13:20:32 -05:00
Kevin O'Connor
d14a53e160 manual_probe: Add a helper script for performing manual Z probing
Add MANUAL_PROBE and Z_ENDSTOP_CALIBRATE commands.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-12 13:20:32 -05:00
Kevin O'Connor
805e56008f docs: Note command dispatch benchmark needs desktop class machine
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-11 16:35:03 -05:00
Kevin O'Connor
5ab6bcd1d7 docs: Report the actual SAMD51 3 stepper rate in the Features benchmark
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-11 12:57:44 -05:00
Florian Heilmann
607461f7b6 docs: Update duet2 benchmarks
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2019-02-10 17:59:40 -05:00
Kevin O'Connor
59a60d68f5 Revert "serialhdl: Enforce exclusive access on POSIX, this is default behavior on windows. (#1216)"
This reverts commit fdbbda9484.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-10 11:57:02 -05:00
Kevin O'Connor
faedc77621 docs: Fix typo in Protocol.md document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-10 11:53:56 -05:00
Daniel
fdbbda9484 serialhdl: Enforce exclusive access on POSIX, this is default behavior on windows. (#1216)
Signed-off-by: Daniel Joyce <daniel.a.joyce@gmail.com>
2019-02-10 11:51:29 -05:00
AxMod 3D Print
cd6a181429 config: Azteeg X5 mini config (#1193)
Signed-off-by: Ax Smith-Laffin <ax@darknetweb.co.uk>
2019-02-08 15:00:23 -05:00
Kevin O'Connor
161cde4c5c config: Use "ATC Semitec 104GT-2" for CR10 (and similar) heater beds
Marlin examples use the "ATC Semitec 104GT-2" thermistor for the CR10,
CR10S, and CR10mini.  Reported by @dovcharov.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-08 12:20:16 -05:00
Florian Heilmann
af0d292e23 atsamd: Enable ADC support for samd51 devices (#1204)
* adc: Enable ADC support for samd51 devices

Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2019-02-08 12:02:32 -05:00
Kevin O'Connor
f1c804907c virtual_sdcard: Don't list files starting with a '.'
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-08 11:48:53 -05:00
Arksine
9766d62ad3 pause_resume: fixes
- When using absolute extrusion the gcode position e-axis position is now captured on PAUSE and restored in RESUME with a call to the G92 handler.
- Add a get_status() function that returns a dictionary with an 'is_paused' key.
- Do not allow consective calls to PAUSE or RESUME to exectue.  Also do not allow a RESUME to executed without a previous PAUSE.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-02-08 10:53:59 -05:00
Arksine
ca4e10dbd6 gcode: add 'abs_extrude' to get_status() dictionary
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-02-08 10:53:59 -05:00
Kevin O'Connor
6c10e4bcef config: Update generic-fysetc-f6.cfg display section
Reported by @bruce356 and @nandinho84.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-07 18:23:17 -05:00
Tschipel
33c6c8b803 config: Update generic-bigtreetech-skr-v1.1 (#1209)
Add "RepRapDiscount 128x64 Full Graphic Smart Controller" type displays

Signed-off-by: Mario Frost <waschbaerbauch75@ist-einmalig.de>
Co-Authored-By: Jens <malgangda@users.noreply.github.com>
2019-02-07 18:16:07 -05:00
Kevin O'Connor
32e0d4d3ac docs: Update atsam benchmarks
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-07 13:24:03 -05:00
Kevin O'Connor
74c216543c atsam: Configure the atsam sram matrix register
The sram matrix configuration is, bizarrely, configured with a slow
default.  It will typically add an extra wait state to every memory
access.  Set the matrix sram controller to improve the performance.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-07 13:12:35 -05:00
Kevin O'Connor
af8376e203 debugcmds: Add support for reading/writing 32bit values
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-07 11:50:14 -05:00
Kevin O'Connor
1f9208dc66 docs: Update benchmarks
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-06 22:08:39 -05:00
Kevin O'Connor
9f3517fdc7 stm32f1: Convert code to use armcm_timer
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-06 22:03:09 -05:00
Kevin O'Connor
eb8db46ca3 stm32f1: Use internal functions for early USB gpio toggle
Avoid using the "low-level" library timing utilities.  This is in
preparation for using SysTick as part of the timer implementation.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-06 22:03:09 -05:00
Kevin O'Connor
1096075d9b lpc176x: Convert code to use armcm_timer
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-06 22:03:09 -05:00
Kevin O'Connor
77db1aa379 atsam: Convert code to use armcm_timer
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-06 22:03:09 -05:00
Kevin O'Connor
26fb421d59 atsamd: Convert SAMD51 to use armcm_timer
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-06 22:03:09 -05:00
Kevin O'Connor
55df8bf55f armcm_timer: Add a generic timer mechanism for ARM CortexM3/M4 chips
The ARM CortexM3 (and later) chips almost always have a 32bit timer in
the "Debug and Watch Trace" (DWT) unit which resides within the cpu
core itself.  This timer is generally faster to access than timers
located on the chip's peripheral bus.  When combined with the standard
ARM SysTick timer it provides a (generally) portable mechanism to
implement Klipper's software timer mechanism.  It's generally also
faster than using the vendor specific timers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-06 22:03:09 -05:00
Kevin O'Connor
c171b28a0b gcode: Return to a default gcode speed of 25mm/s
Commit f4d323ad changed the handling of the self.speed variable, and
it inadvertently changed the default startup speed.  Return to the
default of 25mm/s.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-04 23:45:09 -05:00
Kevin O'Connor
4c48c1e8e4 bltouch: Issue just a pin_up command on a normal raise probe attempt
In the normal case, a regular pin_up command should be sufficient to
raise the probe.  (Should the regular pin_up fail, the code can issue
a "reset" command during the retry.)

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-04 18:03:07 -05:00
Kevin O'Connor
345a5f4e1f bltouch: Increase default pin_move_time from 200ms to 675ms
Use the same pin move time that Marlin uses.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-04 18:02:53 -05:00
Kevin O'Connor
cd8678aa6d spi_temperature: Fix order of init
Commit c3efcd9c moved the config_spi setup to a build_config callback.
It's also necessary to move the config_thermocouple to a build_config
callback as well.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-04 09:30:26 -05:00
Kevin O'Connor
5b9ce328e5 docs: Clarify FAQ item on running multiple instances of klippy
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-03 17:41:57 -05:00
Kevin O'Connor
d088a7ca72 tmc2130: Share config reading helpers with tmc2208.py code
Add helper function for reading current, microsteps, and stealthchop
settings from the config file.  Use these helpers in both the tmc2130
and tmc2208 modules.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-03 17:39:07 -05:00
Kevin O'Connor
0920a518ce tmc2208: Rename self.field_helper to self.fields
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-03 17:15:43 -05:00
Kevin O'Connor
30b6414295 tmc2208: move local set_field/get_field helpers to FieldHelper class
Move these helper functions to the FieldHelper class so that they can
be used by other Trinamic drivers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-03 14:07:27 -05:00
Kevin O'Connor
17a17c5b77 tmc2208: Add helper for setting fields from the config file
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-03 13:03:44 -05:00
Kevin O'Connor
83001959f1 tmc2208: Use field definitions during driver init
Reduce the amount of bit manipulations by using the FieldHelper class.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-03 12:22:12 -05:00
Dmitry Frolov
51f14b9c8c tmc2208: Add register field formatters
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Signed-off-by: Dmitry Frolov <dmitry.frolov@gmail.com>
2019-02-03 11:19:36 -05:00
Kevin O'Connor
955fdcaa0c tmc2130: Convert field helper into a class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-02-03 11:11:15 -05:00
Arksine
cdcc320710 bed_mesh: add support for round beds
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-02-02 23:29:00 -05:00
Arksine
542f941f07 bed_mesh: log when fade completes.
- Also simplify the math for the mesh x and y multipliers.

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2019-02-02 23:29:00 -05:00
lorf
54683c9535 tmc2208: Decode register fields in DUMP_TMC (#1156)
Report values of TMC2208 register fields in DUMP_TMC command to help in
tuning and diagnostics.

This also adds functions to refer to register fields by name for TMC drivers
and register mappings for TMC2208.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Signed-off-by: Dmitry Frolov <dmitry.frolov@gmail.com>
2019-02-02 19:46:27 -05:00
Kevin O'Connor
3b6ddb08a1 bltouch: Don't error on startup if the bltouch is in an error state
Stopping the connect sequence can make it difficult to get the bltouch
out of an error state.  Allow the connect to proceed, ideally if the
bltouch stays in an error state it will be detected during the first
probe attempt.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-31 09:43:35 -05:00
Kevin O'Connor
a5d3d161d3 bltouch: Retry reset/pin_up if the raise probe attempt fails
There's no harm in retrying the attempt if it appears to have failed
for some reason.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-31 09:43:29 -05:00
Samori Gorse
04c6e1f646 idle_timeout: Added a missing logging import
I noticed Octoprint was disconnecting after a while, and after reading the logs, I came across this error:

```
Unhandled exception during run
Traceback (most recent call last):
  File "/home/pi/klipper/klippy/klippy.py", line 171, in run
    self.reactor.run()
  File "/home/pi/klipper/klippy/reactor.py", line 176, in run
    g_next.switch()
  File "/home/pi/klipper/klippy/reactor.py", line 203, in _dispatch_loop
    timeout = self._check_timers(eventtime)
  File "/home/pi/klipper/klippy/reactor.py", line 82, in _check_timers
    t.waketime = t.callback(eventtime)
  File "/home/pi/klipper/klippy/extras/idle_timeout.py", line 62, in timeout_handler
    return self.check_idle_timeout(eventtime)
  File "/home/pi/klipper/klippy/extras/idle_timeout.py", line 59, in check_idle_timeout
    return self.transition_idle_state(eventtime)
  File "/home/pi/klipper/klippy/extras/idle_timeout.py", line 35, in transition_idle_state
    logging.exception("idle timeout gcode execution")
NameError: global name 'logging' is not defined
```

I therefore added the missing import.

Signed-off-by: Samori Gorse <samori.gorse+github@gmail.com>
2019-01-29 11:18:44 -05:00
Kevin O'Connor
c3e889a67c docs: Add performance results for SAMD51
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-28 20:05:50 -05:00
Kevin O'Connor
8cd83b4c2d atsamd: Initial support for SAMD51
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-28 20:02:16 -05:00
Kevin O'Connor
f6ce875818 lib: Update samd51 to work with gcc and bootloaders
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-28 20:02:16 -05:00
Kevin O'Connor
e47ba6374a lib: Add Atmel SAMD51 cmsis files
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-28 20:02:16 -05:00
Kevin O'Connor
c5fc264a07 atsamd: Add a get_pclock_frequency() helper function
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-28 20:02:16 -05:00
Kevin O'Connor
8f763d80b7 atsamd: Select the 8K bootloader by default
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-28 20:02:16 -05:00
Kevin O'Connor
40b5de1680 atsamd: Pass the power management id to enable_pclock()
Pass the power management id instead of the APBCMASK bit to the
enable_pclock() function.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-28 20:02:16 -05:00
Kevin O'Connor
ed1334c24b atsamd: Clarify clock generation code
Implement gen_clock() and route_pclock() helpers in an effort to make
the code more readable.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-28 20:02:16 -05:00
Arksine
893cbbab83 pause_resume: update documentation
Add updates to example-extras.cfg and G-Codes.md documenting pause_resume.  Also add M600 (filament change) to sample-macros.cfg.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-01-28 11:23:52 -05:00
Arksine
7605752dc2 pause_resume: initial implementation of pause/resume functionality for Klipper
This module adds PAUSE and RESUME gcodes that can programatically determine if the gcode is printing from virtual sd or over the serial connection.  It also captures the current toolhead position and gcode feedrate on pause, and recovers that position and feedrate on resume.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-01-28 11:23:52 -05:00
Arksine
8385dc20e6 gcode: add 'speed' parameter to dictionary returned by get_status()
Signed-off-by: Eric Callahan  <arksine.code@gmail.com>
2019-01-28 11:23:52 -05:00
Arksine
e69742df8f virtual_sdcard: prepare for pause_resume implementation
- Add is_active() member function to return the active printing status of the virtual sdcard
- M27 now reports current file position when file has been opened. See http://marlinfw.org/docs/gcode/M027.html

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2019-01-28 11:23:52 -05:00
Ales Stimec
0d4544e72a config: Added example config file for Geeetech gt2560 controller.
Signed-off-by: Ales Stimec <ales.stimec@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-28 11:20:01 -05:00
Kevin O'Connor
90827a88de docs: Minor wording change to step_distance FAQ
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-27 16:52:16 -05:00
Kevin O'Connor
71ef715a88 docs: Expand FAQ on why step_distance is used
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-27 11:29:42 -05:00
Kevin O'Connor
932acd3048 usbserial: Allow USB ids to be specified via Kconfig
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-25 19:04:14 -05:00
Kevin O'Connor
1ad1ed573a simulator: Fix simulator build
Commit b6ccd268 inadvertently broke the simulator build - fix it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-25 18:23:27 -05:00
Kevin O'Connor
ee86463ed2 avr: Only prompt for CLEAR_PRESCALER and SIMULAVR with LOW_LEVEL_OPTIONS
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-25 18:07:31 -05:00
Kevin O'Connor
b6ccd2682c Kconfig: Move SERIAL_BAUD to src/Kconfig and show with LOW_LEVEL_OPTIONS
Move the definition of SERIAL_BAUD to the main src/Kconfig file.  Only
show this as an option if the user selects the ability to configure
low-level options.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-25 18:02:03 -05:00
Kevin O'Connor
4fec225115 avr: Rename AVR_SERIAL and AVR_USBSERIAL to SERIAL and USBSERIAL
Rename the config options to be more consistent with other
architectures.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-25 17:52:09 -05:00
fredizzimo
15afcf69fe docs: Improve the BLTouch documentation (#1107)
Signed-off-by Fred Sundvik <fsundvik@gmail.com>
2019-01-25 12:53:00 -05:00
Kevin O'Connor
eb7842c221 atsam: Add support for the SAM3X8C micro-controller
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-22 09:07:12 -05:00
Kevin O'Connor
7327394c50 adc_temperature: Add support for linear interpolation of resistances
Add support for performing linear interpolation between a set of
measured temperature/resistance pairs.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-21 21:28:25 -05:00
Kevin O'Connor
fc946c796c adc_temperature: Split linear interpolation code into its own class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-21 20:27:41 -05:00
Kevin O'Connor
99980817c3 adc_temperature: Move PrinterADCtoTemperature to adc_temperature.py
Move the low-level PrinterADCtoTemperature() class from thermistor.py
to adc_temperature.py and use it from the Linear() class.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-21 20:24:51 -05:00
Kevin O'Connor
0c4fc64ef8 thermistor: Separate thermistor configuration from basic ADC callback logic
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-21 18:38:12 -05:00
Kevin O'Connor
76138fde5c docs: Add a FAQ item for "Do I have to use OctoPrint?"
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-21 12:01:24 -05:00
Kevin O'Connor
5a6a429bc0 bltouch: Take into account clock skew when calculating command duration
We want the duration of each command to be an exact multiple of
SIGNAL_PERIOD.  The durations might not be exact if the bltouch is on
a secondary mcu.  Account for this in send_cmd().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-21 09:56:08 -05:00
Kevin O'Connor
8a97bc592b bltouch: Add a pin_up_touch_mode_reports_triggered config option
Rework the undocumented test_sensor_pin config option into a
pin_up_touch_mode_reports_triggered option and document it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-21 09:52:11 -05:00
Kevin O'Connor
56141c21d7 bltouch: Raise probe on startup
Send a pin_up command during startup and try to verify that the probe
actually raises.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-21 09:52:11 -05:00
Kevin O'Connor
e36122797b bltouch: Attempt to verify that the probe raises after each probe attempt
Query the bltouch state during the pin_up command to try and verify
that the probe does actually retract.  This may be useful to detect if
the bltouch enters into an "error" state.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-21 09:52:11 -05:00
Kevin O'Connor
99f96f2832 bltouch: Use pin_down mode for probing
The BLTouch is more accurate when probing in "pin_down" mode than
"touch_mode" (at least on some hardware).  Rework the code to use that
mode.

When probing in pin_down mode, the BLTouch can go into an error state
if a pin_up is not sent immediately after a touch signal.  Rework the
pin_up code to reduce the time it takes to transmit the command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-21 09:52:11 -05:00
Kevin O'Connor
04f5baa182 bltouch: Simplify time keeping of scheduled events
Introduce a sync_print_time() method and update send_cmd() to track
the duration of bltouch commands.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-21 09:52:11 -05:00
Kevin O'Connor
26e818d900 bltouch: Verify probe always deploys during a homing operation
Verify that there is always some movement during a probing operation.
This is normally done by the homing.py code (via its verify_movement
check), but that check may not be enabled when z_virtual_endstop is
used.  So, always enable the check in the bltouch.py code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-21 09:52:11 -05:00
Kevin O'Connor
293366d033 thermistor: Breakout thermistor math to its own class
Separate the thermistor math from the heater temperature callback
system.  This may make it easier for debugging.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-20 18:51:00 -05:00
Kevin O'Connor
8c5a94f49f docs: Sort command dispatch table by transfer rate
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-20 14:17:08 -05:00
Kevin O'Connor
f0ac5c378f docs: Update Debugging document with SAM3X8E usb transfer benchmark
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-20 00:57:48 -05:00
Kevin O'Connor
efd1bf5e04 atsam: Add support for USB on SAM3X
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-19 22:32:28 -05:00
Kevin O'Connor
d4790356da atsam: Add MACH_SAM3X, MACH_SAM4, MACH_SAM4E, MACH_SAM4S definitions
Add additional Kconfig definitions to make it easier to select the
correct code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-18 09:56:24 -05:00
Rui Caridade
275df53b2e config: Generic board BIGTREETECH SKR V1.1 config
Signed-off-by: Rui Caridade <rui.mcbc@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-16 09:40:15 -05:00
Kevin O'Connor
d3ec103816 lpc176x: Implement a median filter on ADC readings
The lpc176x ADC is extremely noisy.  Implement a 5 order median filter
on each ADC read to weed out obviously incorrect readings.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-14 13:08:45 -05:00
Kevin O'Connor
cb2ecc68d2 graphstats: Add option to graph temperatures from log
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-13 22:00:08 -05:00
Kevin O'Connor
078a03dc21 lpc176x: Add mechanism for entering the bootloader from a USB signal
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-13 12:25:58 -05:00
Kevin O'Connor
093512b971 adccmds: Run gpio_adc_setup() before oid_alloc()
Order the adc config code so that a shutdown from gpio_adc_setup()
doesn't result in analog_in_shutdown() running on a 'struct analog_in'
that hasn't yet been configured.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-13 11:03:30 -05:00
Florian Heilmann
6256599a6d src: Rename source folders for atsam and atsamd architectures
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2019-01-12 20:14:50 -05:00
Víctor Martínez
432e6c490a util: Don't crash when calling get_cpu_info on OS X (#1102)
Signed-off-by: Víctor Martínez <knoopx@gmail.com>
2019-01-11 13:00:44 -05:00
Kevin O'Connor
f0b7d6d67a klippy: Report the first error generated
Only update the status message with the first error report.
Subsequent errors are often the result of the first error and
reporting the last error can be misleading.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-11 12:41:55 -05:00
Kevin O'Connor
8a6125c81c stepper: Fix bug when using a non-zero CONFIG_STEP_DELAY on AVR
Make sure to explicitly cast to 32bit integers when doing math on
16bit integers that require the extra precision as the AVR uses a
16bit int.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-11 12:04:03 -05:00
Kevin O'Connor
32632c8226 mcu: Fix timing of endstop checking
Make sure to not query the given endstop until after the start of the
requested operation.  This ensures that the operation has started
prior to querying the status of that operation.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-10 12:27:56 -05:00
Kevin O'Connor
0119e42d13 homing: Always start endstop checking before the nominal move start
Make sure the endstop checking is started prior to any movement.  This
helps ensure the verify_movement check is accurate.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-10 12:17:57 -05:00
Master92
a27838bc05 controller_fan: Add support for a fan cooling the controller-board (#1070)
Whenever a stepper driver or a heater becomes active, it is desirable to turn on a fan cooling the associated parts on the controller board. This module implements such a fan that turns on whenever a stepper or specified heater turns on, decelerates to a configurable speed when all of the watched parts turn off, and returns to an off-speed, when a user-defined timeout is met.

Signed-off-by: Nils Friedchen <Nils.Friedchen@googlemail.com>
2019-01-10 12:12:15 -05:00
AxMod3DPrint
0ba1f5109d scripts: Add BASH uninstall Script for RasPi
Signed-off-by: Ax Smith-Laffin (AxMod3dPrint) <ax@darknetweb.co.uk>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-10 10:15:29 -05:00
SimoneBnc
15da5cc5aa config: Create generic-fysetc-f6.cfg
This is my current config file for Fysect F6 + TMC2208 running on my
Ender 3 with stock creality display.

Signed-off-by: Simone Bonacini <bonacini.simone@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-10 09:55:54 -05:00
Kevin O'Connor
2c31fd8313 tmc2208: Check for debugging mode before checking for a retransmit
Allow the tmc2208 code to be run from regression test cases.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-10 09:55:54 -05:00
Nathan
c9c8ae0499 Ubuntu 18.04 install script
Signed-off-by: Nathan Tsoi <nathan@vertile.com>
2019-01-10 09:38:15 -05:00
Kevin O'Connor
2ea7c97bbd stepper: Support configuring the stepper pulse length from Kconfig
Allow the stepper pulse length to be configured at compile time from
the Kconfig menu system.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-09 13:16:42 -05:00
Kevin O'Connor
c0ea0312e5 klippy: Fix error handling during connect phase
Make sure to exit the _connect() method if a connect event handler
raises an error.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-08 13:46:26 -05:00
Kevin O'Connor
bf647749dd menu: Don't peek into printer.objects member variable
Use the printer.lookup_objects() method to get the list of available
printer objects.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-08 12:03:46 -05:00
Kevin O'Connor
33f5b5f285 docs: Update Code_Overview.md with removal of printer_state() callback
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-08 11:34:09 -05:00
Kevin O'Connor
857e7ed5f1 klippy: Convert printer_state("connect") to an event handler
Convert all users of the printer_state("connect") handler to register
a "klippy:connect" event handler instead.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-08 11:09:55 -05:00
Kevin O'Connor
797367b9f5 klippy: Convert printer_state("ready") to an event handler
Convert all users of the printer_state("ready") handler to register a
"klippy:ready" event handler instead.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-08 10:59:43 -05:00
Kevin O'Connor
f4be0ac7be klippy: Convert printer_state("disconnect") to an event handler
Convert all users of the printer_state("disconnect") handler to
register a "klippy:disconnect" event handler instead.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-08 10:59:43 -05:00
Kevin O'Connor
fb7fe282c8 klippy: Convert printer_state("shutdown") to an event handler
Convert all users of the printer_state("shutdown") handler to register
a "klippy:shutdown" event handler instead.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-08 10:59:43 -05:00
Petri Honkala
b2d5a8e65b z_tilt: unresolved reference fixed
Signed-off-by: Petri Honkala <cruwaller@gmail.com>
2019-01-08 08:44:25 -05:00
Janar Sööt
3a4a1d678e menu: allow empty command gcode if action is present
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2019-01-07 21:39:50 -05:00
Janar Sööt
0cbe851777 menu: enhancements
- changes that make easier to use menu as module UI
- new helper method for delayed callbacks
- method for getting the menu instance from display
- new action for sending menu:action events
- allow_without_selection option for cards

Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2019-01-07 21:39:50 -05:00
Janar Sööt
005cbe157a menu: allow names in card content and simplify define single card decks
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2019-01-07 21:38:53 -05:00
Janar Sööt
b9cccc5959 menu: support for click button long press
- long press with timer (button release is not needed anymore)
- initial support for edit mode long press gcode

Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2019-01-07 21:38:45 -05:00
Janar Sööt
265769787f reactor: support for delayed callbacks
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2019-01-07 21:38:36 -05:00
Kevin O'Connor
e26d1a3567 i2ccmds: Pass the i2c address as a 7-bit number (0-127)
The sam3 i2c code and the linux code use a 7-bit i2c address, while
the avr, lpc176x, and samd21 i2c code uses an 8-bit address with the
least significant bit always zero.  A similar issue occurred in the
host code (sx1509.py and replicape.py use 7-bit addresses while
uc1701.py and mcp4451.py use 8-bit addresses).

Consistently use 7-bit addresses in all the code.  This breaks
compatibility between host and mcu software, so make a change to the
config_i2c command to force users to synchronize software updates.
This also breaks common Smoothieboard configs, so update the mcp4451
code to validate the i2c_address.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 20:00:44 -05:00
Kevin O'Connor
f2f54290e8 docs: Add a new Config_Changes.md document
Add a document to track non-backwards compatible changes to the
printer config file.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 20:00:44 -05:00
Kevin O'Connor
dc70a7c355 lib: Fix sam4e.patch name in README
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:55:32 -05:00
Kevin O'Connor
549e682069 docs: Add sam4s8c benchmarks
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:43:56 -05:00
Kevin O'Connor
8e0eb0d574 sam3: Implement board reset via SAM RSTC hardware
Use the RSTC hardware block to perform a full reset on a "reset"
command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:34:31 -05:00
Kevin O'Connor
02c558652f sam3: Add USB support for the SAM4 "UDP" hardware
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:34:31 -05:00
Kevin O'Connor
75ad16ea1a sam3: Add support for sam4s8c chips
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:34:31 -05:00
Kevin O'Connor
519f2cff41 lib: Update sam4s code so that it works with gcc's -flto feature
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:34:07 -05:00
Kevin O'Connor
6db21d3033 lib: Add sam4s cmsis headers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:34:07 -05:00
Kevin O'Connor
bf196c3028 sam3: Add additional SPI and USART buses to spi.c
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:34:04 -05:00
Kevin O'Connor
212813906a sam3: Merge sam4e_spi.c into spi.c
Determine at runtime if the SPI or USART devices should be used.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:33:26 -05:00
Kevin O'Connor
4683036f98 sam3: Add enable_pclock() helper function
Add a helper function to enable peripheral clocks.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:33:26 -05:00
Kevin O'Connor
b4baabe408 sam3: Enable i2c on sam3x8e
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:33:26 -05:00
Kevin O'Connor
94c86d6c6c sam3: Merge sam4e8e support into sam3 code
Most of the peripherals on the sam4e8e are similar to the ones on the
sam3x8e mcu.  Merge the code together and use just one code directory.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:33:26 -05:00
Kevin O'Connor
e278552d44 lib: Rename lib/cmsis-sam4e/ to lib/sam4e/
This is in preparation for merging the sam3 and sam4 code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:33:26 -05:00
Kevin O'Connor
70bbdf9334 sam3: Rename src/sam3x8e to src/sam3
This is in preparation for merging sam3 and sam4 code into one
directory.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:33:26 -05:00
Kevin O'Connor
e70b70fb75 sam4e8e: Move the sam4 cache setup to its own sam4_cache.c file
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:30:17 -05:00
Kevin O'Connor
a978167e39 sam4e8e: Use just a single 'chan' member in 'struct gpio_adc'
Remove the 'pin' and 'afec' variables from 'struct gpio_adc'.  This is
in preparation to merge the sam3x8e and sam4e8e code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:30:17 -05:00
Kevin O'Connor
8e2c1a4ab2 sam4e8e: Move ADC code to new file afec.c
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:30:17 -05:00
Kevin O'Connor
7707d5a74e sam4e8e: Rename gpio_set_peripheral() to gpio_peripheral()
Use the same definition for gpio_peripheral() that the sam3x8e code
uses.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:30:17 -05:00
Kevin O'Connor
f0715de004 sam4e8e: Move gpio_set_peripheral() definition from gpio.h to internal.h
Use internal.h in a similar way to the internal.h in sam3x8e.  Also,
move the twi pin definitions from internal.h to i2c.c (as they are only
used there).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:30:17 -05:00
Kevin O'Connor
9a2160f660 sam3x8e: Move adc support to a new adc.c file
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:30:17 -05:00
Kevin O'Connor
5b91c7a68d sam3x8e: Pass the gpio id directly to gpio_peripheral()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:30:17 -05:00
Kevin O'Connor
ecba3e9a19 sam3x8e: Add an internal.h header file with local definitions
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:30:17 -05:00
Kevin O'Connor
c3a2fc981d lib: Remove sam4e sam.h and component-version.h files
These two files from atmel have different licenses than the other
files.  Neither files provide any real value, so just remove them to
avoid any confusion.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:30:17 -05:00
Kevin O'Connor
22da8ca39c usb_cdc: Notify both the bulk_in and bulk_out tasks on a configure
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:30:17 -05:00
Kevin O'Connor
6e18af7057 stm32f1: It's only necessary to program the CR1 register during SPI init
Only set the CR1 register during spi_prepare().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 19:22:14 -05:00
Kevin O'Connor
c8e04274ad docs: Add a FAQ item for "multiple instances of klipper on the same machine"
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 13:59:52 -05:00
Yannic Schröder
d015209388 docs: Add guide for sensorless homing (#1004)
Signed-off-by: Yannic Schroeder <schroeder@ibr.cs.tu-bs.de>
2019-01-07 10:39:16 -05:00
Kevin O'Connor
28e68075c8 docs: Suggest checking for bad wires in "lost communications" faq entry
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 10:28:25 -05:00
Kevin O'Connor
fac2d7817c config: Update sample-probe-as-z-endstop.cfg to use set_position_z=0
It's confusing to use a non-zero set_position_z as an example.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-07 10:26:04 -05:00
Master92
6ccc0732c1 menu: Fix filament loading and unloading feature (#1082)
As discussed in #1057, the default loading- and unloading procedure does
not behave as expected. Setting the extruder to relative mode fixes this.

Signed-off-by: Nils Friedchen <Nils.Friedchen@googlemail.com>
2019-01-07 10:25:19 -05:00
Patrick Balsiger
bd410c22f7 config: pin mapping for ender 3 stock display and encoder on ramps (#1075)
Signed-off-by: Patrick Balsiger <patrick.balsiger@wirelos.net>
2019-01-06 11:51:27 -05:00
Kevin O'Connor
186d815469 docs: Documentation/FAQ, Raspii voltage
Add note that `under power` may be related to communication issues.

Signed-off-by: Wilfried Goesgens <dothebart@citadel.org>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-05 20:59:12 -05:00
Wilfried Goesgens
df42887193 docs: Bltouch documentation (#1073)
Add documentation on howto configure the BL-Touch device with
Klipper. A second paragraph addresses possible issues with BL-Touches

Signed-off-by: Wilfried Goesgens <dothebart@citadel.org>
2019-01-05 20:24:35 -05:00
Paulo Drugos
ffbb4198c1 menu: Correction for the resume option appears when the toolhead is not printing (#1077)
Signed-off-by: Paulo Drugos paulodrugos@gmail.com
2019-01-05 19:11:03 -05:00
Master92
d0b1b23c9b config: Add default kill_pin to RAMPS' display-section
Signed-off-by: Nils Friedchen <Nils.Friedchen@googlemail.com>
2019-01-05 19:07:02 -05:00
Kevin O'Connor
c3efcd9c8d bus: Set all SPI CS pins high before first config_spi message
If an SPI device is shared among many devices, then all the device's
CS pins should be set high prior to setting up the clk pin.
(Otherwise, there's a chance a device could interpret the clk pin
setup as part of a transmission.)

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-04 22:26:34 -05:00
Kevin O'Connor
24fe606d4d toolhead: Do not apply main printer accel/velocity to extrude only moves
Limit speed and acceleration of extrude only moves to just the
max_extrude_only_velocity and max_extrude_only_accel config settings.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-04 12:47:45 -05:00
Kevin O'Connor
a2f0c36e7d toolhead: Don't report an error if request too high in SET_VELOCITY_LIMIT
If a requested value is higher than the configured maximum, then just
limit the value to the configured maximum instead of raising an error.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-04 12:47:40 -05:00
Kevin O'Connor
7fe14f05e6 thermistor: Avoid divide by zero error if min_temp=-273.15
Reported by @TheGuv.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-04 12:47:37 -05:00
Kevin O'Connor
277a8185e1 lpc176x: Pass gpio id to gpio_peripheral()
Pass the gpio id instead of the bank/pin to gpio_peripheral().  This
is in keeping with other ARM ports.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-04 11:07:22 -05:00
Kevin O'Connor
a40df4b6f7 lpc176x: Move enable_peripheral_clock to main.c
Move and rename function to enable_pclock() - in keeping with other
ARM ports.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-04 11:00:09 -05:00
Kevin O'Connor
8f7fc4e6a9 lpc176x: Move ADC code to new adc.c file
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-04 10:42:36 -05:00
Kevin O'Connor
c2086796bf mcp4728: Add initial support for the mcp4728 i2c dac chip
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-02 18:17:56 -05:00
Graham Ambrose
0da064ccd9 config: Added encoder pins to radds example config
Signed-off-by: Graham Ambrose <graham.ambrose@gmail.com>
2019-01-02 17:46:06 -05:00
Alec B. Plumb
59e9b6562f respond: An extra for sending messages to the printer host. (#1053)
I have made one change to `gcode.py` to support quoted parameter
values.

I have added support for the basic `M118` command (see
https://reprap.org/wiki/G-code#M118:_Echo_message_on_host). I have
also added a `RESPOND` command that takes extended parameters.
`ECHO` might be a better name than `RESPOND` but is already defined
in `gcode.py`.

Signed-off-by: Alec B. Plumb <alec@etherwalker.com>
2019-01-02 17:45:35 -05:00
john--
f6c9150349 heater: take a gcode_id when setting up a heater (#1028)
Allow an arbitrary gcode_id to be supplied during heater setup. This allows future extras to register additional IDs beyond B, and T#.

Signed-off-by: John Jardine <john@gprime.net>
2019-01-02 17:44:02 -05:00
bondus
f4d323adbc gcode: Minor change to make M220 command take effect immediately (#1000)
This makes M220 (change print speed) command effect the next move command (G0/G1).
Before it only made a differenc once a G0/G1 command with an F parameter was executed.

Signed-off-by: Pontus Borg <liquidpontus@yahoo.se>
2019-01-02 17:41:35 -05:00
Kevin O'Connor
1be24b8fc7 bus: Don't raise a "duplicate pin" warning on None pins
If "None" is used for an spi cs pin, then it should not reserve "None"
for other uses.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-02 17:37:39 -05:00
Kevin O'Connor
68ebde0d86 display: Fix handling of M117 command if lowercase 'm' is used
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-01-02 17:34:56 -05:00
Petri Honkala
e4e0fec681 tmc2660: error and whitespace fixes
- redundant parentheses removed
	- parameter reference fixed
	- raise error fixed

Signed-off-by: Petri Honkala <cruwaller@gmail.com>
2018-12-27 11:44:41 -05:00
Petri Honkala
f99002df4f tmc2208: error raise fixed for rx/tx mcu check
Signed-off-by: Petri Honkala <cruwaller@gmail.com>
2018-12-27 11:44:41 -05:00
Kevin O'Connor
62fc5dc288 samd21: Add support for entering Arduino bootloader via USB
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-24 11:43:11 -05:00
Kevin O'Connor
b84ecebf8f usb_cdc: Add support for detecting a USB level Arduino bootloader request
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-24 11:42:19 -05:00
Kevin O'Connor
c6065e29a6 mcu: Allow set_stepper_kinematics() to set the kinematics back to None
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-24 11:42:13 -05:00
Kevin O'Connor
5dc74f3152 winch: Add experimental support for cable winch kinematics
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-24 11:38:59 -05:00
Kevin O'Connor
ec9cb3a1b3 polar: Experimental support for polar kinematics
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-24 11:38:59 -05:00
Kevin O'Connor
7e3e02a17a kinematics: Add a "none" debugging kinematics
Add a dummy kinematics class for development testing.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-24 11:38:59 -05:00
Kevin O'Connor
50e9c6738f scripts: Add a test case for Ubuntu 18.04 compiler error
Attempt to detect a bad build of Klipper and report an error.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-22 13:13:31 -05:00
Kevin O'Connor
2a74ffdb95 samd21: Add support for ADC
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-22 10:58:04 -05:00
Kevin O'Connor
d7b0a7e961 docs: Add a FAQ item on how to cancel a "wait for temperature" request
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-20 16:25:58 -05:00
Kevin O'Connor
566488dc01 docs: Add a FAQ item on Raspberry Pi reboots
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-20 16:25:58 -05:00
Kevin O'Connor
a5cb74d58d config: Add a generic-minitronics1.cfg example config file
Information provided by @BKLronin.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-20 11:09:20 -05:00
Kevin O'Connor
e4dac1039d docs: Update release notes for v0.7.0 release
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-20 09:15:24 -05:00
Kevin O'Connor
269305fa23 test: Add printer-creality-cr20-2018.cfg to printers.test
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-19 20:51:58 -05:00
Kevin O'Connor
e820ea3141 config: Add printer-micromake-d1-2016.cfg example config file
Reported by IRC user "Xantos".

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-18 20:59:43 -05:00
Kevin O'Connor
531575651c bltouch: Document that bltouch "clones" may not work correctly
There is concern that the bltouch.py module may not perform adequately
on some bltouch "clones".  Document that.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-18 17:12:44 -05:00
Kevin O'Connor
d0f09727a9 bltouch: Issue both a "reset" and a "pin_up" after a successful probe
Not all BLTouch clones raise the pin on a "reset" request, so
explicitly send a "pin_up" command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-16 11:06:46 -05:00
Kevin O'Connor
ccc25a03d5 bltouch: Add a config option to disable the bltouch sensor test
It appears some bltouch "clones" do not report the probe as triggered
when put in "touch mode" while the pin is raised.  Add a config option
to allow users to disable the test.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-16 11:06:41 -05:00
Kevin O'Connor
ce064e6e2d bltouch: Always make sure to check the endstop at least every 1ms
Some of the bltouch implementations may only respond to a probe event
with a 5ms pulse.  Make sure to check the signal pin at least every
millisecond to ensure no signal is lost.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-16 11:06:27 -05:00
Uri Shaked
79d65d8ead config: Fix CR-20 click pin polarity
Signed-off-by: Uri Shaked <uri@urishaked.com>
2018-12-15 18:38:03 -05:00
Uri Shaked
cc4227aec8 config: Add printer config for the CR-20 by Creality3D
Signed-off-by: Uri Shaked <uri@urishaked.com>
2018-12-15 17:42:23 -05:00
Yannic Schroeder
f100d75c19 stm32f1: Always read SPI receive buffer
Otherwise the first byte read via SPI may be the last byte
of the previous transfer

Signed-off-by: Yannic Schroeder <schroeder@ibr.cs.tu-bs.de>
2018-12-14 12:25:35 -05:00
TronskiFPV
ef4f84e3ae config: Update printer-creality-ender3-2018.cfg (#959)
Added options necessary for basic extruder calibration expected of a new install. Fixed bed size to correct 235x235. Removed 0.5 position_endstop setting as this crashes hot end into the bed on stock Ender 3's.

Signed-off-by: Troy nadeau <troyboy162@hotmail.com>
2018-12-05 16:43:14 -05:00
Kevin O'Connor
76b57ba05a bltouch: Fix typo in pin_move_time parsing
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-04 11:43:04 -05:00
Kevin O'Connor
44aa5def73 bltouch: Allow the pin_move_time to be configured
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-04 10:34:54 -05:00
Kevin O'Connor
e0b2d7c51d bltouch: Add a BLTOUCH_DEBUG command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-03 22:52:32 -05:00
Kevin O'Connor
aac92ffb91 bltouch: Fix bug - must restore stepper position after homing
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-12-01 22:09:06 -05:00
Kevin O'Connor
6df7356baa samd21: Fix gpio in support
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-30 23:10:23 -05:00
Kevin O'Connor
e505ab0df1 samd21: Add support for flashing an application via the bossac tool
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-30 22:22:42 -05:00
Kevin O'Connor
f2179da8ad samd21: Add support for hardware pwm
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-30 20:00:59 -05:00
Kevin O'Connor
0fd2dd7c11 samd21: Minor simplification to timer init code
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-30 11:50:50 -05:00
Kevin O'Connor
d6f3f6b664 samd21: Add support for SPI
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-30 11:50:50 -05:00
Kevin O'Connor
58d61c7887 samd21: Add support for basic i2c support (write only)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-30 11:50:50 -05:00
Kevin O'Connor
6d90ebe6f8 samd21: Use GPIO() macro when calling gpio_peripheral()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-30 11:50:50 -05:00
Kevin O'Connor
0af0bc946e samd21: Enable watchdog
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-30 11:50:50 -05:00
Kevin O'Connor
afa58de014 samd21: Try to clarify the "generic clock generator" configuration
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-30 11:50:50 -05:00
Kevin O'Connor
3a47d972db i2ccmds: Validate the i2c address
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-30 11:50:50 -05:00
Kevin O'Connor
db4f0c24cd spicmds: Check for an incorrect mode in spicmds.c
Check the mode parameter in spicmds.c so that the mcu code does not
need to check it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-30 11:50:48 -05:00
Kevin O'Connor
6b108aa885 stm32f1: Move ADC and SPI code from gpio.c to spi.c and adc.c
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-30 11:42:54 -05:00
Arksine
581b1439f3 config: Update bed_mesh in example-extras.cfg
Update documentation about the fade options. Also inform the user that it is recommended to home toward the center of the print area when using a probe for z homing.

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-11-30 11:37:21 -05:00
Arksine
cf6a56cebf bed_mesh: Introduce fade_target option
To deal potential z scaling when fade is enabled, a fade_target option has been introduced.  This option may either be set to 0.0 or any z position within the range of the mesh.  A value of 0.0 will result in previous behavior, where z adjustment phases out until no further adjustment is added.  A non-zero value will phase out adjustment until the target has been reached, after which the rest of the print will be offset along the z axis by the fade_target.  By default the fade_target will be calculated as an average of the mesh.

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-11-30 11:37:21 -05:00
Arksine
35f41b7402 bed_mesh: Disable z-adjustment fade by default.
Due to various potential issues with fading out z-adjustment, it is better to disable by default and allow users to opt-in.

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-11-30 11:37:21 -05:00
Kevin O'Connor
824e55d75a bltouch: Add initial support for a bltouch "extras" module
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-30 11:34:20 -05:00
Kevin O'Connor
f01ced8ed4 config: Rework sample-bltouch.cfg into sample-probe-as-z-endstop.cfg
The example configuration information is more useful for general probe
as z_endstop than as a bltouch example.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-30 11:34:20 -05:00
Kevin O'Connor
7699304f9b graphstats: Change stats filter to use print_time instead of bytes_write=0
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-26 17:37:04 -05:00
ruevs
b8f92c73ed config: Make the Anycubic delta configurations as similar as possible
Signed-off-by: Peter Ruevski <dpr@ruevs.com>
2018-11-25 17:14:16 -05:00
Kevin O'Connor
a726c58671 mcp4451: Minor update - remove unnecessary mcu import
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-24 00:36:49 -05:00
Kevin O'Connor
147d805231 mcp4451: Use bus.py helper code for i2c
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-24 00:33:22 -05:00
Kevin O'Connor
729a2e8306 avr: Add support for sending I2C messages
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-23 23:49:26 -05:00
Kevin O'Connor
e5150fe187 uc1701: Add support for SSD1306 in i2c mode
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-23 22:04:06 -05:00
Kevin O'Connor
043170265b i2ccmds: Minor whitespace changes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-23 21:36:44 -05:00
Kevin O'Connor
d2aa78c16a uc1701: Cache icons and fonts in byte display order
This reduces the amount of bit manipulaton needed during screen
updates.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-21 20:45:53 -05:00
Kevin O'Connor
065a8eb826 uc1701: Wrap code to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-21 20:45:53 -05:00
Kevin O'Connor
a79d87ca8e uc1701: Add all_framebuffers to reduce vram indexing in the code
Add a self.all_framebuffers variable and change self.vram to only
contain the new display data.  This allows the main code to access the
self.vram member variable without the need to index for current/old
data.  (It also updates the code to match the latest st7920 and
hd44780 code.)

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-21 20:45:53 -05:00
Kevin O'Connor
e231ac7422 uc1701: Add support for SSD1306 displays
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-21 20:45:53 -05:00
Kevin O'Connor
a00d7b418f display: Add a get_dimensions() method to lcd chip classes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-21 20:45:53 -05:00
Kevin O'Connor
cbbc6801a0 lpc176x: Enable full speed peripheral clocks on SPI and I2C
Scale the bus speed within the peripheral instead of on the system bus
as scaling on the system bus slows down general register access to the
peripheral.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-21 20:44:39 -05:00
Kevin O'Connor
4bbd631086 lpc176x: Add an enable_peripheral_clock() helper function
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-21 20:44:18 -05:00
Kevin O'Connor
9ba94ded9e tmc2660: Use bus.py helper code for spi
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-21 12:12:31 -05:00
Kevin O'Connor
1c71ea27e0 uc1701: Use bus.py helper code for spi
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-21 12:12:31 -05:00
Kevin O'Connor
5bb0bd755d tmc2130: Use bus.py helper code for spi
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-21 12:12:31 -05:00
Kevin O'Connor
ab6a8ec76e ad5206: Use bus.py helper code for spi
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-21 12:12:31 -05:00
Kevin O'Connor
be58c7f8ec replicape: Use bus.py helper code for spi
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-21 12:12:31 -05:00
Kevin O'Connor
7cadd8d3f4 spi_temperature: Use bus.py helper code for spi
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-21 12:12:31 -05:00
Kevin O'Connor
58890e32a2 bus: Add klippy/extras/bus.py module with SPI bus helper code
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-21 12:12:31 -05:00
Kevin O'Connor
7bb9ce8436 avr: Minor comment update in hard_pwm.c
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-20 13:14:53 -05:00
Kevin O'Connor
7c65e76ad0 avr: Rework hardware pwm pin definitions
Simultaneously define the hardware pin and the timer registers.  This
makes the table a little easier to understand.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-20 12:58:33 -05:00
Kevin O'Connor
bf92ffb5bf avr: Split gpio.c into gpio.c, adc.c, hard_pwm.c, and spi.c
Split up gpio.c into multiple files in an effort to make the code a
little more understandable.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-20 12:58:33 -05:00
Kevin O'Connor
2cc0313b72 avr: Add initial support for atmega32u4 chips
Signed-off-by: Trevor Jones <trevorjones141@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-20 12:58:33 -05:00
Kevin O'Connor
31687bc009 avr: Minor update to help text in Kconfig
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-19 22:05:26 -05:00
Kevin O'Connor
76f07979bb buildcommands: Make sure to not use 96 or more message ids
The mcu code assumes the encoder and parser id is always one byte.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-18 11:00:37 -05:00
Kevin O'Connor
150cae1d1f buildcommands: Remove unnecessary spaces from data dictionary
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-18 04:17:25 -05:00
Kevin O'Connor
9db0bec792 buildcommands: Detect duplicate strings when generating static string ids
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-18 03:13:31 -05:00
Kevin O'Connor
b3e8429b54 buildcommands: Move data dictionary generation to its own class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-18 03:11:00 -05:00
Kevin O'Connor
95e4c2d617 buildcommands: Move version generation to its own class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-18 03:06:52 -05:00
Kevin O'Connor
9f420f71a5 buildcommands: Move command/response code generation to its own class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-18 03:06:52 -05:00
Kevin O'Connor
67a5cd0409 buildcommands: Move DECL_CONSTANT code to its own class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-18 03:06:52 -05:00
Kevin O'Connor
334507306b buildcommands: Move DECL_STATIC_STR code to its own class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-18 03:06:52 -05:00
Kevin O'Connor
9cb98a00fc buildcommands: Move DECL_CALLLIST code to its own class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-18 03:04:18 -05:00
Kevin O'Connor
bb41765714 docs: Minor update to Code_Overview.md with further kinematics info
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-17 14:56:46 -05:00
Kevin O'Connor
cd1e669306 docs: Fix typo in command dispatch benchmarks
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-16 20:38:30 -05:00
Kevin O'Connor
64a1837fec docs: Round pru command parsing benchmark
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-16 20:31:41 -05:00
Kevin O'Connor
c349863988 docs: Add information on command parsing benchmarks
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-16 20:21:05 -05:00
Kevin O'Connor
52fa91fb9a docs: Update benchmarks
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-16 18:59:55 -05:00
Kevin O'Connor
b161a69e98 timer_irq: Increase maximum busy wait time to 2us
Increase the amount of time to "busy wait" in the timer dispatch loop
to 2 micro-seconds.  This, in practice, causes stepper step and unstep
events to occur within a single hardware interrupt.  Doing that helps
stabilize the single active stepper performance benchmarks.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-16 17:16:50 -05:00
Kevin O'Connor
ac72f8ec78 console: Try to improve the description of the SUPPRESS command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-16 17:16:14 -05:00
Kevin O'Connor
f3c4deb1ab lpc176x: Convert i2c code to use standard i2ccmds.c
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-14 10:23:56 -05:00
Kevin O'Connor
f973886dac docs: Minor rewording in Endstop_Phase.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-14 09:46:21 -05:00
Jiri Dobry
e541466591 servo: This patch create ability to enable/disable attached servo. (#880)
Cheap mechanical servos have small flickering. When this servo stay on one position, this flickering slowly destroy internal potentiometer and make servo unusable. Many mechanisms need servo only to change position. Therefore I create this minor path to enable/disable servo. It stop pulses for this servo, that's all.

Corresponding G-code is:
SET_SERVO SERVO=config_name [WIDTH=] [ENABLE=<0|1>]
SET_SERVO SERVO=config_name [ANGLE=] [ENABLE=<0|1>]

For example:
SET_SERVO SERVO=touch ANGLE=80 ENABLE=1 ; enable servo and set position
G4 P200 ; wait 200ms
SET_SERVO SERVO=touch ENABLE=0 ; disable servo

This patch add one option to servo configuration:
enable: <False/True> # default True

It not have impact to user code existing already because it is optional parameter and default value is same as original behavior.

Signed-off-by: Jiri Dobry <jdobry@centrum.cz>
2018-11-14 09:38:09 -05:00
Kevin O'Connor
31730fa031 docs: Minor wording change to Endstop_Phase.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-13 18:44:33 -05:00
Kevin O'Connor
c55842b428 docs: Note when endstop phases are useful in Endstop_Phase.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-13 18:36:00 -05:00
Kevin O'Connor
8d4f7db66e docs: Fix typo in Bootloaders.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-13 14:41:51 -05:00
Kevin O'Connor
097e6c524b docs: Fix link in FAQ document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-13 14:40:35 -05:00
Kevin O'Connor
077280bb62 config: Use consistent advice on flashing the Melzi board
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-13 14:32:52 -05:00
Kevin O'Connor
5f9ce32fae docs: Be more clear that a baud of 250000 is recommended
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-13 14:06:27 -05:00
ndupont-net
ccb660a0ea config: sample-macros.cfg creation and M300
Implementation of M300 "Play Tone"

Signed-off-by: Nicolas Dupont <ndupont@ndupont.net>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-13 12:42:10 -05:00
Kevin O'Connor
22f7be8b74 config: Add printer-velleman-k8200-2013.cfg example config
Based on config from @PerLangkjaer.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-11-13 10:46:57 -05:00
James
b45ccfea97 display: FR icon changed to "Feed Rate" (#860)
Signed-off-by: James Wood <j@j-w.co>
2018-11-13 10:14:01 -05:00
Lucas Fink
f6c2e8b4eb bed_mesh: Fix some fragile identity comparisons
Signed-off-by: Lucas Fink <software@lfcode.ca>
2018-10-31 16:02:45 -04:00
Florian Heilmann
3da7697c66 config: Add generic duet2 config and tests (#834)
This adds a generic duet config with quad-z and quad extruders which also tests TMC2660 and SX1509 extras

Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2018-10-31 09:58:43 -04:00
Florian Heilmann
b98e12c19a sx1509: Relax restrictions on SX1509 pins (#836)
This allows SX1509 pins to be used as temperature fans and heater fans. Heaters are still disallowed.

Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2018-10-30 18:08:12 -04:00
Florian Heilmann
3328ade194 tmc2660: Fix typo in TMC2660 extra (#830)
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2018-10-29 12:44:45 -04:00
Kevin O'Connor
8432f6f40c avr: Add support for atmega328p
The atmega328p is basically the same as the atmega328 - add explicit
support for it so that avrdude doesn't complain while flashing.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-29 11:55:15 -04:00
Florian Heilmann
90bc3be6a0 Add DUMP_TMC capabilities to the TMC2660 extra
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2018-10-28 18:45:49 -04:00
Florian Heilmann
4372d1812c Implement idle event support in the TMC2660 extra
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2018-10-28 18:45:49 -04:00
Kevin O'Connor
d25e02144c idle_timeout: Add printing/ready/idle tracking
Internally track the overall printer state.  Generate events on state
transitions.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-28 18:39:45 -04:00
Kevin O'Connor
a5e55c2acc gcode: process_batch() should execute commands atomically
Update the process_batch() method so that it will not interleave
commands read from the input fd with the batched commands.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-28 18:39:45 -04:00
Kevin O'Connor
37b9a2442f config: Add lcd encoder pins to generic-rumba.cfg
Reported by @elJosho.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-28 14:34:22 -04:00
Kevin O'Connor
c4058f71fb docs: Clarify M109/M190 in G-Code documentation
Signed-off-by: Lucas Fink <software@lfcode.ca>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-28 14:22:30 -04:00
Kevin O'Connor
057acb07b7 docs: Add a Slicers.md document
Add some information on configuring a slicer for use with Klipper.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-28 10:47:32 -04:00
Kevin O'Connor
47e45ab391 docs: Note the use of gcode_macro in G-Codes.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-28 10:38:03 -04:00
Kevin O'Connor
4f89251f03 sx1509: Raise an error if a pin max_duration is not zero
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-27 12:22:23 -04:00
Kevin O'Connor
c3f916c60e delta: Make sure to clear limit_xy2 after a homing move
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-27 11:54:17 -04:00
Kevin O'Connor
936a4acd0d delta: Make sure to also exempt the homing retract move from boundary checks
Commit 459e5219 added a special case to the boundary checks to permit
homing moves.  In some cases, the second home retract could also be
outside the normal boundary checks - extend the special case to also
permit that move.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-27 11:43:24 -04:00
lf
a33792f07e util: Fix versioning when gitdir is absent (#809)
The gitdir previously could be absent and produce a version of "" in
spite of checks for it. Fixed.

Parent directories with shlex-interpreted characters in their names
could be misinterpreted. Removed shlex parsing.

Packagers may want to remove the git history to slim down the package
size, so add an option for using a file 'version' in the klippy
directory to set version without using git.

Signed-Off-By: Lucas Fink <software@lfcode.ca>
2018-10-27 10:44:38 -04:00
Florian Heilmann
f57c29442c Add SX1509 extra
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2018-10-27 10:34:28 -04:00
Florian.Heilmann
99989a668f Implement I2C support in the SAM4E8E port
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2018-10-27 10:34:28 -04:00
Florian.Heilmann
5a919c892a Add generic i2c interface
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2018-10-27 10:34:28 -04:00
Kevin O'Connor
24bbc43fd0 config: Add encoder pins to printer-anycubic-kossel-plus-2017.cfg
Reported by @obalado.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-25 21:34:49 -04:00
Kevin O'Connor
97590b8e0b extruder: Don't use max_extrude_cross_section in max_extrude_only defaults
Some users increase max_extrude_cross_section to avoid issues with
some slicers.  However, increasing that value also increases the
defaults for the max_extrude_only parameters which is not obvious.
Base the max_extrude_only defaults only on the configured nozzle
diameter.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-25 19:09:47 -04:00
Kevin O'Connor
ed13c5733d config: Update wording of extruder parameters in example.cfg
Try to improve the description of the extruder config limits.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-25 19:09:47 -04:00
Kevin O'Connor
a7c8476e98 docs: Update pressure advance doc to note it only impacts the extruder
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-25 19:09:47 -04:00
Kevin O'Connor
3d7e8fa5ec docs: Note impact of warping during pressure advance tuning
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-25 12:10:47 -04:00
Kevin O'Connor
ca7dd8bfd4 docs: Update Pressure_Advance.md - don't set square_corner_velocity=0
Setting the square corner velocity to zero would cause stuttering
during the test if a bed mesh is in effect.  It's possible to get the
desired effect by reducing the square corner velocity and setting the
pressure advance lookahead time instead.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-25 11:43:03 -04:00
Kevin O'Connor
363bcfb233 logextract: Make sure config files end with a newline
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-24 16:02:03 -04:00
Florian Heilmann
b6bf455155 tmc2660: Add endstop phase detection functionality to TMC2660 extra (#816)
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2018-10-24 16:01:12 -04:00
Kevin O'Connor
1a437c1fd1 sam3x8e: Don't report an error if bossac errors during device restart
Sometime bossac reports an error during chip restart.  It appears this
error is spurious - just suppress it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-22 17:41:29 -04:00
Kevin O'Connor
04a12ec9bd docs: Update stm32f1.md - usb is now supported.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-22 13:22:58 -04:00
Kevin O'Connor
e4bb90a1ca bed_mesh: Do not automatically run G28 on BED_MESH_CALIBRATE / BED_MESH_MAP
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-22 11:26:01 -04:00
Kevin O'Connor
f382762962 bed_tilt: Do not automatically run G28 on BED_TILT_CALIBRATE
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-22 11:26:01 -04:00
Kevin O'Connor
925562cfb1 delta_calibrate: Do not automatically run G28 on DELTA_CALIBRATE
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-22 11:26:01 -04:00
Kevin O'Connor
ca04caa42c docs: Fix SAM4E8E benchmark test revision
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-22 11:21:43 -04:00
Kevin O'Connor
2b81b2935c docs: Update SAM4E8E benchmarks
New benchmark numbers reported by @FHeilmann.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-22 11:18:55 -04:00
Kevin O'Connor
34c3cb5c01 sam4e8e: Enable SAM4 cache at startup
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-22 11:16:18 -04:00
Kevin O'Connor
7fac0de1f8 config: Add display buttons to printer-creality-cr10s-2017.cfg
Reported on IRC by gueee.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-20 19:27:53 -04:00
Kevin O'Connor
b903f84c80 docs: Replace get_status example with get_clock in Protocol.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-20 11:53:32 -04:00
Kevin O'Connor
7efbc021a5 pid_calibrate: Add some comments on the calibration methodology
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-19 22:40:11 -04:00
Kevin O'Connor
e30053f2a9 test: Add printer-adimlab-2018.cfg to printers.test
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-19 11:12:20 -04:00
Jason Rahaim
c7f0d039ac config: ADIMlab Add support for LCD knob and caselight
Signed-off-by: Jason Rahaim <jason@jasonr.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-19 11:10:32 -04:00
Kevin O'Connor
29e0996858 display: Check for M117 inside of draw_status()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-18 20:43:43 -04:00
Kevin O'Connor
2549ccd722 klippy: No need to return anything from _connect() method
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-18 15:58:52 -04:00
Kevin O'Connor
530a37196c docs: Update LPC176x benchmarks
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-18 09:55:02 -04:00
Kevin O'Connor
8fca908445 lpc176x: Divide system clock within timer; not on system bus
Scaling the timer on the system bus has a notable impact on
performance.  So, scale the timer within the timer hardware itself.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-18 09:37:47 -04:00
Kevin O'Connor
0079311b0b docs: Add an Endstop_Phase.md document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-16 13:09:49 -04:00
Kevin O'Connor
1e71909d02 endstop_phase: Add support for an ENDSTOP_PHASE_CALIBRATE command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-16 13:09:49 -04:00
Kevin O'Connor
def524bdf4 endstop_phase: Add support for detecting phase via TMC stepper drivers
The Trinamic stepper motor drivers are capable of reporting the
stepper phase - add support for using that capability to the
enddstop_phases module.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-16 13:09:23 -04:00
Kevin O'Connor
a2df01b88e endstop_phase: Move endstop phase homing code to new "extras" module
Move the endstop phase tracking code from stepper.py to a new
extras/endstop_phase.py module.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-16 13:09:23 -04:00
Kevin O'Connor
216905ceca klippy: Add a basic event dispatch mechanism
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-16 13:09:23 -04:00
Kevin O'Connor
fedf90680e homing: Pass printer instead of toolhead object to Homing class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-16 13:09:23 -04:00
lf
e7498fa241 chelper: Add a quick __main__ to compile c helper (#782)
Signed-off-by: Lucas Fink <software@lfcode.ca>
2018-10-16 12:21:18 -04:00
Jason R
dd5695405f config: Add ADIMLab 3d printer (#781)
Configuration for ADIMLab printer. tested and working including LCD support. 

This printer was previously known as the HCmaker7

Signed-off-by: Jason Rahaim <jason@jasonr.com>
2018-10-16 12:07:47 -04:00
Kevin O'Connor
08d03ae0eb configfile: Strip trailing comments
The Python 2.x ConfigParser doesn't support stripping of trailing '#'
style comments.  Do that manually before parsing the config.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-16 11:45:20 -04:00
Kevin O'Connor
368703fd78 delta_calibrate: Perform coordinate descent in a background process
Run the coordinate descent in a background process so that the main
thread does not block.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-15 19:01:19 -04:00
Kevin O'Connor
46355f903e toolhead: Don't clear sync_print_time on a get_next_move_time() call
Only clear the internal sync_print_time flag if the code performs a
regular "lazy" flush of the look-ahead queue.  This helps build the
look-ahead queue even when running internal scripts.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-15 18:24:15 -04:00
Kevin O'Connor
21597f9b07 gcode: Report state message after any error in a STATUS response
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-13 17:24:37 -04:00
Kevin O'Connor
55eed2e9be gcode: Remove "Preparing to restart" message
Now that "Klipper state" messages are proactively sent, it is
redundant to send the "preparing to restart" message.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-13 17:21:15 -04:00
Kevin O'Connor
f5c99c1dec docs: Update benchmarks for Arduino Due
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-13 11:57:13 -04:00
Kevin O'Connor
67278a6d8a sam3x8e: Align loops to a 16 byte boundary
It appears the sam3x8e has a primitive cache prefetch mechanism (it
prefetches 32 bytes at a time aligned to a 16 byte boundary).
Aligning the main loop in timer_dispatch_many() to a 16 byte boundary
significantly improves performance.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-13 11:52:24 -04:00
Kevin O'Connor
fb798e3cba sched: Force sched_try_shutdown to be inlined
If sched_try_shutdown() is not inlined into timer_dispatch_many() it
can have a significant impact on benchmarks.  (Even though the
function isn't called in practice, the call causes gcc to organize the
function differently.)

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-13 11:47:00 -04:00
Kevin O'Connor
7a265f159a armcm_irq: Fix jump target alignment
The jump target needs to be 4 byte aligned (not 2^4 bytes).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-13 11:47:00 -04:00
Kevin O'Connor
0225d17343 stm32f1: Use __always_inline on timer_read_time
Some older versions of gcc need the __always_inline directive in order
to inline timer_read_time.  Inlining that function is important for
performance on the stm32f1.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-11 22:20:02 -04:00
Kevin O'Connor
aa693fbdc1 docs: Updates to stm32f103 benchmarks
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-11 10:57:24 -04:00
Kevin O'Connor
7cbc44b8d3 stm32f1: Use -O2 optimization and inline timer_read_time()
As long as timer_read_time() is inlined, I get better performance with
gcc -O2 optimization.  The binary is also dramatically smaller and O2
better matches the other platforms.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-11 10:50:51 -04:00
Kevin O'Connor
102ec4938d stm32f1: Use the main lib/cmsis-core directory for cmsis includes
Use the main cmsis header files with stm32f1.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-11 10:50:51 -04:00
Kevin O'Connor
75fa74313c stm32f1: Add support for building with bootloader support
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-11 10:50:51 -04:00
Kevin O'Connor
215b4c5a1e stm32f1: Move assembler build rules together
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-11 10:50:51 -04:00
Kevin O'Connor
b8745bc973 stm32f1: Pull the USB D+ line low briefly to signal a device connect
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-11 10:50:51 -04:00
Kevin O'Connor
bc5e961d73 stm32f1: Initial support for serial over USB
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-11 10:50:51 -04:00
Kevin O'Connor
1302514ea8 stm32f1: Serial should have a higher irq priority than timers
It's possible for the code to stay in the timer irq for up to 100ms,
so serial irqs should have a higher irq priority to prevent them from
being starved.  (The timer code disables irqs during event dispatch,
so serial irqs would only be permitted between events anyway.)

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-11 10:50:51 -04:00
Kevin O'Connor
d32506bd2e homing: Move homing offset adjustment logic to generic homing code
Move the "stepper phase" adjustment logic from the kinematic classes
to the generic homing.py code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-10 14:30:09 -04:00
Kevin O'Connor
770b92863f mcu: Add a set_commanded_position() method to MCU_stepper
Add the ability to directly set the "commanded" stepper position.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-10 14:30:09 -04:00
Kevin O'Connor
459e521991 delta: Add a special case to the limit checks for the homing position
When a delta printer has different arm lengths or different endstop
positions then the homing position falls outside of the normal
printable area.  Add a special check to the range checking code to
permit this move instead of homing to a position near the actual
homing position.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-10 12:18:22 -04:00
Kevin O'Connor
bd1ba86839 delta: Reorganize init()
Just code movement.  Move boundary check init to after tower init.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-10 12:18:22 -04:00
Kevin O'Connor
d4bf51231a homing: Implement second home from homing.py
Move the logic for performing the second home from the kinematics
classes to the generic homing code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-10 12:14:27 -04:00
Kevin O'Connor
3db483e270 delta: Wrap lines to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-10 12:14:27 -04:00
Kevin O'Connor
1146d228fa servo: Wrap lines to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-10 12:14:27 -04:00
Kevin O'Connor
1e07be4db4 docs: Add a "Lost communication with MCU" section to the FAQ
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-09 11:22:28 -04:00
Kevin O'Connor
e85f9473fc stepper: Wrap lines to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-09 11:17:39 -04:00
Kevin O'Connor
f7a7223b30 cartesian: Use homing_speed for homing retract speed
Commit b0d859f2 introduced a second_homing_speed parameter, and it
also changed the retract speed.  Revert the retract speed change (use
homing_speed when the head retracts).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-09 11:17:39 -04:00
Kevin O'Connor
36ae433b57 cartesian: Make sure to constrain second_homing_speed to max_z_velocity
Commit b0d859f2 introduced a second_homing_speed parameter; that
parameter needs to also be constrained to the max_z_velocity.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-08 10:52:46 -04:00
Kevin O'Connor
8eb1110aa8 logextract: Fix handling of clock reports at end of line
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-08 10:34:07 -04:00
alfsoft
909eef3978 display: Corrected Fan icon graphics (#753)
Added new Copyright string, corrected Fan icon graphics

Signed-off-by: Alexander Fadeev <alfsoft@gmail.com>
2018-10-07 13:38:11 -04:00
Chris Whiteford
c5d94a74a5 servo: Adding support for startup value for servos (#676)
Signed-off-by: Chris Whiteford <github@chrisandtennille.com>
2018-10-05 14:35:38 -04:00
Kevin O'Connor
852d1666bb docs: Fix typo in BED_MESH_PROFILE description in G-Codes.md
Reported by @fiveNinePlusR

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-04 19:01:18 -04:00
Chris Whiteford
b0d859f220 stepper: Adding support for a second_homing_speed parameter (#677)
Signed-off-by: Chris Whiteford <chris@chrisandtennille.com>
2018-10-04 18:55:58 -04:00
Kevin O'Connor
97927172f1 st7920: Use display xor capability when animating glyphs
Use the xor capability of the display to animate the glyphs, which
reduces the number of glyphs needed from 4 to 2.  This should make it
easier to add future animations if desired.

Suggested by @marcio-ao.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-04 13:49:00 -04:00
alfsoft
630989c0fe display: Change Extruder, Bed and Fan icons design (#740)
Based on replies from Issue 652 (https://github.com/KevinOConnor/klipper/issues/652) only Extruder, Bed and Fan icons are changed. Feedrate icon stays untouched.

Signed-off-by: Alexander Fadeev <alfsoft@gmail.com>
2018-10-04 13:25:29 -04:00
Arksine
d29eb731a9 bed_mesh: save mesh state to 'default' profile after calibration
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-10-04 12:53:03 -04:00
LazaroFilm
822616ae7f docs: Spelling error corrected in bed mesh comment (#735)
The comment for the algorithm setting had a spelling error, it said:
[...]May be either "langrange"[...]
Removed the n.

Signed-off-by: Victor Lazaro <lazarofilm@gmail.com>
2018-10-04 12:48:27 -04:00
Kevin O'Connor
978b321f80 avr: Disable usb serial interrupts while processing data
There's no need to keep taking interrupts if the high-level code is
busy processing messages.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-02 22:17:39 -04:00
Kevin O'Connor
7c7573f69f avr: No need to reset ep0 interrupts on a shutdown
The usb_cdc code will arrange to call usb_read_ep0_setup() after a
shutdown, so no need to have an explicit shutdown handler.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-02 21:41:36 -04:00
Kevin O'Connor
efd9e7a6df usb_cdc: Try to read new data before processing data blocks
Call usb_read_bulk_out() before calling command_find_and_dispatch() as
this optimizes the common case where each usb packet contains a single
new message block.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-02 21:38:58 -04:00
Kevin O'Connor
fe98dd3585 usb_cdc: Wake usb_bulk_out_task() on a shutdown
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-02 21:33:46 -04:00
Arksine
b261d31ec5 bed_mesh: Add ability to save mesh state to persistent memory
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-10-02 16:26:35 -04:00
Arksine
144868c600 bed_mesh: Extend BED_MESH_MAP to provide more information
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-10-02 16:26:35 -04:00
Kevin O'Connor
5c267e4f69 docs: Update Features.md document with tmc2660 support
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-02 14:07:33 -04:00
Janar Sööt
50d1ad9019 menu.cfg: add fan glyph to __screen2004_static & __screen2004_input
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2018-10-02 12:49:12 -04:00
Janar Sööt
b2691d4730 hd44780: new text glyph - fan
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2018-10-02 12:49:12 -04:00
Kevin O'Connor
d348f0da87 avr: Allow the serial port to be selected on the atmega2560/1280
Allow the serial port to be selected on the atmega2560 and atmega1280
chips in Kconfig.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 22:30:58 -04:00
Kevin O'Connor
0820394e13 toolhead: M204 must update max_accel_to_decel
The max_accel_to_decel variable must not be greater than the max_accel
variable.  Make sure to check this when M204 changes max_accel.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 22:02:33 -04:00
Kevin O'Connor
357b2f477c buttons: Clear pressed/last_pressed state on new buttons_query command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 12:40:28 -04:00
Kevin O'Connor
820dd0b5e3 display: Don't error if M73 is missing a P parameter
Try to avoid raising an error on an M73 command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 12:31:31 -04:00
Kevin O'Connor
f49f298003 probe: Merge ProbeVirtualEndstop and ProbeEndstopWrapper wrapper classes
No need to have two wrappers around the mcu_endstop class.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 11:14:23 -04:00
Kevin O'Connor
9f755750d3 test: Add a test case for probe:z_virtual_endstop support
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 11:12:30 -04:00
Kevin O'Connor
1940ba7062 config: Minor indentation fix to comments in example-extras.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 11:12:30 -04:00
Kevin O'Connor
a698aef29b config: Note probe activate/deactivate must not move the toolhead
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 11:12:30 -04:00
Kevin O'Connor
c5d4e14298 probe: Infer position_endstop when using probe:z_virtual_offset
Don't require (or permit) the user to specify a stepper_z
position_endstop when using the probe:z_virtual_offset mechanism.  In
that case the position_endstop should always equal the probe's
z_offset - so no need to have the user specify it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 11:12:30 -04:00
Kevin O'Connor
a9a0bb87fa probe: Verify the toolhead moves at least some distance on a probe
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 11:12:30 -04:00
Kevin O'Connor
31ec098577 config: The delta_calibrate bed radius uses nozzle coordinates
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 11:12:30 -04:00
Kevin O'Connor
43f2eac239 z_tilt: Wrap lines to 80 columns
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 11:12:30 -04:00
Kevin O'Connor
c3550158bb z_tilt: Take into account probe xy offset when calculating z_adjust
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 11:12:30 -04:00
Kevin O'Connor
19d18c2bc1 bed_tilt: Take into account probe xy offset when calculating z_adjust
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 11:12:30 -04:00
Kevin O'Connor
348a41c325 bed_tilt: Remove special probe:z_virtual_endstop handling
Remove the code to calculate and track the z_offset via
position_endstop updates.  It's simpler to always save and restore the
calculated z_adjust.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 11:12:30 -04:00
Kevin O'Connor
33887b8c39 probe: Support manual probing at runtime
Don't require the config file to specify manual probing.  Instead,
allow the user to select manual probing on each ProbePointsHelper
invocation.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 11:12:30 -04:00
Kevin O'Connor
0e9b8abde2 probe: Perform multi-sample averaging in ProbePointsHelper class
Now that all the callers of ProbePointsHelper take a cartesian
coordinate for the probe locations, it's possible to perform averaging
of multi-sample probes within the class.  This simplifies the callers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 11:12:30 -04:00
Kevin O'Connor
e5ef15ad0f probe: Separate out manual probing from automatic probing code
Only call cmd_NEXT() for manual probing.  This simplifies the code as
the automatic probing and manual probing have slightly different
probing mechanisms.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 11:12:30 -04:00
Kevin O'Connor
cb3fede19a probe: Move move_next() method within ProbePointsHelper class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 11:12:30 -04:00
Kevin O'Connor
8e7eac9b08 probe: Implement ProbePointsHelper get_probed_position() locally
Now that all users of ProbePointsHelper use the same
get_probed_position() code, it is possible to implement that locally
within the ProbePointsHelper class.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 11:12:30 -04:00
Kevin O'Connor
ae4eb35a70 delta_calibrate: Use kin.calc_position() in get_probed_position() callback
It's possible (and a little simpler) to use cartesian coordinates when
calculating a stable position.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 11:12:30 -04:00
Kevin O'Connor
c68c0c6526 avr: Increase stack size to 256 for all AVR targets
Recent code additions have increased the stack usage and it is no
longer clear that everything will fit in 128 bytes.  Increase all
targets to 256 bytes (the atmega2560 was already at 256 bytes).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-10-01 10:33:18 -04:00
Kevin O'Connor
b3a6fbed74 usbstd: Force usb_string_descriptor data field to match unicode string
Fix travis-ci build failure by forcing the data field of the struct
usb_string_descriptor to be the same type as a 16bit unicode string.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-30 23:50:51 -04:00
Kevin O'Connor
9ec2ad0992 lib: Remove pjrc_usb_serial
The pjrc_usb_serial is no longer used.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-30 22:55:21 -04:00
Kevin O'Connor
d05aa81927 avr: Use generic usb_cdc code for usb serial support
Use the generic usb_cdc driver code instead of the "pjrc" usb driver
code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-30 22:55:21 -04:00
Kevin O'Connor
c0311bee33 usb_cdc: Perform basic request validation
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-30 22:32:19 -04:00
Kevin O'Connor
93e4897044 usb_cdc: Add usb_read_ep0_setup() interface function
Use new usb_read_ep0_setup() function when reading a setup packet -
this allows the low-level usb hardware code to better handle errors.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-30 22:32:19 -04:00
Kevin O'Connor
731236cf20 usb_cdc: Add support for usb_send_ep0_progmem()
Add support for explicitly sending to the ep0 pipe from constant
"progmem" memory on the AVR.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-30 22:32:19 -04:00
Kevin O'Connor
92aea93500 usb_cdc: Fix handling of zero-length-packets
A zero length packet should only be sent at the end of a transmission
if the host is expecting more data.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-30 22:32:19 -04:00
Kevin O'Connor
be1effebc3 usb_cdc: Rework transfer state tracking code
Maintain the state tracking code entirely within a usb_do_xfer()
method.  This simplifies the callers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-30 22:32:19 -04:00
Kevin O'Connor
6ab16d2407 usb_cdc: Rename interface functions to avoid the term "setup"
Use "ep0" when referring to endpoint0 - don't use "setup" as that can
be confused with the low-level usb setup token.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-30 14:09:55 -04:00
Nikolai Ugelvik
50a8efe0a5 config: Add encoder and click pins for CR-10 mini
Signed-off-by: Nikolai Ugelvik <nikolaiu@gmail.com>
2018-09-30 12:52:06 -04:00
Kevin O'Connor
de7c1f76db gcode_macro: Provide more information on a formatting error
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-30 12:43:54 -04:00
Kevin O'Connor
b112cac47a config: Fix typo in gcode_macro default_parameter description
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-30 12:11:07 -04:00
Janar Sööt
68dc28580f gcode_macro: default parameter values
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-30 11:53:10 -04:00
Janar Sööt
d9e35481be configfile: add get_prefix_options method
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2018-09-30 11:51:26 -04:00
Kevin O'Connor
8c2991ceac tmc2208: Improve error handling
Configure the tmc2208 during the 'connect' phase so that a problem
during configuration is properly raised as a config error.  Catch
errors during DUMP_TMC and raise them as g-code errors.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-30 10:57:47 -04:00
Kevin O'Connor
864918b1f9 verify_heater: Don't report a heater error if printer is shutdown
Don't log a heater verification error if that error is due to the
printer being shutdown for some other reason.  Those spurious error
reports can be confusing.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-30 10:40:44 -04:00
Kevin O'Connor
47b6144ff6 logextract: Add support for extracting recent g-code from a shutdown
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-28 12:24:39 -04:00
Kevin O'Connor
cf79b3c342 config: Note gcode_macro string formatting in example-extras.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-26 08:25:44 -04:00
Kevin O'Connor
439f6684be config: Move some sections around in example-extras.cfg
Move the quad_gantry_level description closer to z_tilt section.  Move
the force_move section closer to the homing_override section.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-26 08:16:40 -04:00
Janar Sööt
d22b30342a gcode_macro: 2 lines wrapped at 80 chars
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2018-09-26 08:03:39 -04:00
Janar Sööt
51d64ad7f8 gcode_macro: macro improvement with parameters
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2018-09-26 08:03:39 -04:00
Kevin O'Connor
170b9678fb display: Don't error on an out of range M73 request
No need to report an error if the M73 is not between 0 and 100 - just
display the nearest valid value.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-25 20:51:51 -04:00
Kevin O'Connor
364faf497b toolhead: Update look-ahead flush comment
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-25 15:44:45 -04:00
Janar Sööt
18b56c3cda menu: vsdcard - scroll long filenames (#694)
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2018-09-25 14:52:23 -04:00
Kevin O'Connor
95392595f6 config: Wanhao Duplicator 6 likely does not need "restart: command"
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-25 14:29:05 -04:00
Kevin O'Connor
4b5db04f78 docs: Add Delta_Calibrate.md guide with "enhanced delta calibration"
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-25 13:48:46 -04:00
Charlie
1165c0c9c5 docs: Additional images for enhanced calibration procedure reference (#639)
Signed-off-by: Charles Galant <cgalant@cogwheel.net>
2018-09-25 13:48:46 -04:00
Kevin O'Connor
0b2c89ecaf delta_calibrate: Initial support for enhanced delta calibration
Add support for an enhanced delta calibration routine that performs XY
dimension calibration.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-25 13:48:46 -04:00
Kevin O'Connor
929733f0a7 delta_calibrate: Support save/restore of delta_calibrate state
Support using SAVE_CONFIG to store the results of DELTA_CALIBRATE to
the printer config file.  Store the low level probe measurements in
the config as well.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-25 13:48:46 -04:00
Kevin O'Connor
ed0882dc10 delta: Move "stable position" logic to delta_calibrate.py
Move the "stable position" logic from the delta.py kinematics code to
the delta_calibrate.py calibration code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-25 13:48:46 -04:00
Kevin O'Connor
d48e8ea162 bed_tilt: Support saving calibration data via SAVE_CONFIG command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-25 13:48:46 -04:00
Kevin O'Connor
5a1b2d61ae pid_calibrate: Support saving calibration data via SAVE_CONFIG
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-25 13:48:46 -04:00
Kevin O'Connor
531134f092 configfile: Add support for rewriting the printer config file
Add support for writing back the main printer config file with
additional calibration data stored in it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-25 13:48:46 -04:00
Kevin O'Connor
f80456a698 configfile: Move config file code from klippy.py to new file
Add a klippy/configfile.py file with the code needed to read the main
printer config file.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-25 13:48:46 -04:00
Janar Sööt
5144c5f01e menu: new fast step rate feature
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2018-09-21 19:29:30 -04:00
Kevin O'Connor
1379a59085 st7920: No need to clear glyph framebuffer before programming glyphs
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-21 16:39:38 -04:00
Kevin O'Connor
7cca8d970a hd44780: Simplify framebuffer access
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-21 16:39:38 -04:00
Kevin O'Connor
742d6481a9 st7920: Simplify framebuffer access
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-21 16:39:38 -04:00
Kevin O'Connor
05ba62600c st7920: Support writing degrees symbol
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-21 16:39:38 -04:00
Kevin O'Connor
a4e2540f14 uc1701: Support writing degrees symbol
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-21 16:39:38 -04:00
Kevin O'Connor
30a49d3186 display: Use write_glyph() when writing special characters
Always use the write_glyph() method when writing special characters
during status screen updates.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-21 16:39:38 -04:00
Kevin O'Connor
c8d9d575a1 display: Support writing single character glyphs using write_glyph()
Add write_glyph() support to hd44780.py.  Update uc1701.py and
st7920.py to support writing single character glyphs via
write_glyph().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-21 16:39:38 -04:00
Kevin O'Connor
2a5778be3a display: Move icon drawing from display.py to lcd_chip code
Move the st7920 icon rendering optimizations from display.py to
st7920.py.  This simplifies the code for other displays.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-21 16:39:38 -04:00
Kevin O'Connor
2857255ef1 icons: Add the bed to the bed heating animations
It isn't necessary to use the st7920's xor capabilities when drawing
the bed heating animations.  This makes it easier to use the icons for
other displays.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-21 16:39:38 -04:00
Kevin O'Connor
3d4ee9e962 docs: Add stm32f1.md link to Overview.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-20 20:11:04 -04:00
Kevin O'Connor
174754299a heater: Add new TURN_OFF_HEATERS command
Add a command that will turn off all heaters in the printer.  Run this
command in the default idle_timeout action.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-18 16:01:07 -04:00
Janar Sööt
7b6a44e8f9 menu: New Tune submenu (#653)
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2018-09-17 08:26:59 -04:00
Janar Sööt
f7f78433a2 gcode: modify get_status method to output more info (#651)
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2018-09-17 08:25:28 -04:00
Kevin O'Connor
48ddfba415 test: Add printer-wanhao-duplicator-6-2016.cfg to printers.test
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-16 22:45:31 -04:00
Clifford Raccani
67c6234907 config: Add printer-wanhao-duplicator-6-2016.cfg
Signed-off-by: Cliff Raccani <bramhall45@hotmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-16 19:52:41 -04:00
Maks Zolin
a9f2a1375a quad_gantry_level: Fix typo, add floating point error protection
Signed-off-by: Maks Zolin <mzolin@vorondesign.com>
2018-09-14 10:45:28 -04:00
Kevin O'Connor
390d549c0c delta: Fix maximum halt velocity calculation
If an arm is nearly parallel to the bed then that tower's carriage may
have a velocity up to 3 times greater than the toolhead's maximum
velocity (relative to the print).  Take that into account when
calculating the stepper's maximum halt velocity.

This fixes some rare "No next step" shutdowns on delta printers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-12 22:29:18 -04:00
Kevin O'Connor
094b9de69e gcode: Send proactive state messages
Send a g-code info message on printer state changes.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-12 21:31:27 -04:00
Kevin O'Connor
91691afdcf gcode: Catch errors on fd read and write
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-12 21:06:54 -04:00
Kevin O'Connor
d1da6100a6 klippy: Remove unneeded loop in run() method
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-12 21:06:54 -04:00
Kevin O'Connor
32b763efb1 config: Fix generic-re-arm.cfg encoder pins
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-12 14:43:10 -04:00
Kevin O'Connor
d459ae648d config: Update generic-re-arm.cfg with menu buttons
Reported by @J-charles-C.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-12 09:07:50 -04:00
Maks Zolin
e3a49dc692 quad_gantry_level: Add gantry leveling (ruled hyperbolic parabola correction) (#631)
Signed-off-by: Maks Zolin <mzolin@vorondesign.com>
2018-09-12 08:33:20 -04:00
Boffgithub
0c0087ce42 config: Update example-extras.cfg (#641)
Just correcting a couple of spelling errors I noticed.

Signed-off-by: Ben Warren <boffdroid@gmail.com>
2018-09-12 08:13:12 -04:00
Kevin O'Connor
5791a4d8c4 toolhead: Set commanded_pos[] to move.end_pos
Commit 4573932f allowed move.end_pos to differ from the requested end
position - the toolhead class should use the updated position when
storing its commanded position.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-11 13:45:33 -04:00
Kevin O'Connor
4573932f89 toolhead: Handle rounding errors with extrude only moves
It's possible that a g-code transform class may make an extrude only
move appear as a kinematic move due to limitations of double precision
math.  Handle this by checking for an inconsequential move distance
instead of checking for a move distance of exactly zero.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-11 13:40:52 -04:00
Florian Heilmann
947a7b2b0f tmc2660: Implementation of TMC2660 extra (#621)
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2018-09-11 12:34:05 -04:00
Kevin O'Connor
f15cd62587 docs: Update Pressure_Advance.md document
Update the document to recommend tuning with decreased acceleration
and with square_corner_velocity disabled. Using this approach makes it
possible to test with significantly higher pressure advance values.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-11 12:00:43 -04:00
Kevin O'Connor
ea7de3bcad config: Use fastest PWM time in mini-rambo PWM DAC config
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-11 09:40:48 -04:00
Kevin O'Connor
b595c3e423 config: Add example lcd section to smoothieboard config
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-10 15:29:54 -04:00
Arksine
d6f72eefa1 bed_mesh: Cache last position when get_position() is called.
Fixes issue #626.

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-09-10 15:10:43 -04:00
Kevin O'Connor
ea129d869e config: Fix position_endstop typo in sample-bltouch.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-09 10:30:06 -04:00
alemorbel
aac2fee9de config: Add display buttons pins for anycubic kossel pulley 2016 (#614)
Signed-off-by: Alejandro <alemorbel@alemorbel.es>
2018-09-06 18:31:55 -04:00
Kevin O'Connor
c8dc47b162 docs: Note digipot support in Features.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-03 21:10:53 -04:00
Kevin O'Connor
ac3aa097fb docs: Features.md updates
Add information on new features in Klipper.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-03 20:55:53 -04:00
Kevin O'Connor
ef6068dc42 mcu: Log MCU information before configuring
Log the details of the MCU prior to attempting to configure the MCU.
This way, the log contains the MCU information even if a configuration
error occurs.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-03 18:34:10 -04:00
Kevin O'Connor
5801e6f4d0 pins: Verify the pin_map setting
Raise an error if pin_map is not set to a valid value.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-03 18:16:44 -04:00
Kevin O'Connor
30013a1fb8 mcu: Rename add_config_object() to register_config_callback()
Change the name of the config registration method and pass an explicit
reference to the callback to the new method.  This makes the
relationship between mcu registration and build_config() more clear in
the calling code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-03 11:48:22 -04:00
Kevin O'Connor
a8d4a7ef46 config: Be clear that multi-line parameters must use indentation
Also, be clear that probe points are nozzle coordinates (not probe
coordinates).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-02 14:40:26 -04:00
Kevin O'Connor
8fe8a6deb3 statistics: Move stats handling to new "extras" module
Move the generation of statistics to its own module.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-02 13:46:19 -04:00
Kevin O'Connor
18b04ffe68 klippy: Rename lookup_module_objects() to lookup_objects()
Rename the method and support returning all known objects.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-02 12:53:34 -04:00
Kevin O'Connor
50196c7141 klippy: Use reactor register_callback() mechanism
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-02 12:43:40 -04:00
Kevin O'Connor
ab4060e145 console: Use reactor register_callback() mechanism
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-02 12:31:36 -04:00
Kevin O'Connor
165317e33f toolhead: Support M204 with P and T instead of S
Recent versions of Slic3r now send M204 with P and T instead of with
S, so support that.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-02 12:22:43 -04:00
Kevin O'Connor
5632cf6d77 serialqueue: Increase receive message debug queue to 100 messages
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-02 12:16:13 -04:00
Kevin O'Connor
ce79b6ca00 menu: Queue g-code commands to avoid command reordering
The gcode.run_script() code can pause which can result in the menu
code being called reentrant - avoid that by queuing the gcode commands
within the menu code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-02 12:14:27 -04:00
Kevin O'Connor
b656792616 config: Add encoder pins to Creality Ender2 and CR10 configs
Reported by @faboaic.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-09-02 11:52:20 -04:00
Kevin O'Connor
cf4f23ebf2 probe: Use probe speed for initial move to the Z height
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-30 16:20:23 -04:00
Kevin O'Connor
f3edea2943 toolhead: Forward original config error if raised in kinematics class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-30 10:19:08 -04:00
Arksine
40b7ba5111 probe: Add ability to multi-sample points to ProbePointsHelper
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2018-08-29 12:01:19 -04:00
Arksine
1588426229 probe: Refactor z lift code to its own function.
Call lift-z prior to the first move.  This prevents the nozzle from hitting the build surface in situations that home the nozzle off and below the bed.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2018-08-29 12:01:14 -04:00
Kevin O'Connor
4acda88e8d docs: Fix spelling error in example-extras.cfg
Fix "interally" spelling error - reported by @bistory.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-28 15:36:53 -04:00
Kevin O'Connor
6b4e44011c test: Make white space error report more pronounced
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 13:21:15 -04:00
Kevin O'Connor
ca7a80a946 tmc2208: Initial support for configuring TMC2208 drivers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 12:51:27 -04:00
Kevin O'Connor
afd5d55c00 tmc2130: Minor code cleanup
Rework the code to use set_register() with the string name of the
desired register to set.  Add a get_register() method.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 12:47:24 -04:00
Kevin O'Connor
e5d95fdd00 stm32f1: Add support for gpio_x_reset()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 12:45:01 -04:00
Kevin O'Connor
983c84b12f pru: Add wrappers for gpio_x_reset()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 12:45:01 -04:00
Kevin O'Connor
75de9cb4c0 simulator: Add support for gpio_x_reset()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 12:45:01 -04:00
Kevin O'Connor
fa3d2b97bd samd21: Add support for gpio_x_reset()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 12:45:01 -04:00
Kevin O'Connor
eec58b99fe sam4e8e: Add support for gpio_x_reset()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 12:44:59 -04:00
Kevin O'Connor
109eff0191 sam3x8e: Add support for gpio_x_reset()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 12:40:38 -04:00
Kevin O'Connor
5a993b743e lpc176x: Add support for gpio_x_reset()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 12:40:38 -04:00
Kevin O'Connor
1ae67441c3 avr: Add support for gpio_x_reset()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 12:40:38 -04:00
Kevin O'Connor
34fe4cce14 sched: Don't require 2ms pad in sched_add_timer()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 12:40:38 -04:00
Kevin O'Connor
480415d2e8 docs: Update Bootloaders.md with AVR lfuse hints
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 12:34:37 -04:00
Kevin O'Connor
a5189f7c25 docs: Add some notes to Bootloaders.md on using the atmega168
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 12:08:55 -04:00
Kevin O'Connor
0bce44e1bb avr: Disable HAVE_GPIO_BITBANGING on atmega168
The atmega168 doesn't have enough flash space to fit all features -
disable the "bit banging" interfaces to make room.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 11:20:29 -04:00
Kevin O'Connor
a20d9d3bd5 samd21: Enable HAVE_GPIO_BITBANGING
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 11:11:28 -04:00
Kevin O'Connor
82a542faed Kconfig: Rename HAVE_USER_INTERFACE to HAVE_GPIO_BITBANGING
Rename the HAVE_USER_INTERFACE definition in preparation for other
"bit banging" interfaces.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 11:09:47 -04:00
Kevin O'Connor
ee67715e2b docs: Fix link in Bootloaders.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 09:16:27 -04:00
Kevin O'Connor
28fe6a5df0 docs: Update SAMD21 flashing information in Bootloaders.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 09:07:27 -04:00
Kevin O'Connor
9b56c4f780 docs: Update Bootloaders.md with updated bossac info for sam3x8e
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 08:54:43 -04:00
Kevin O'Connor
daf4d237c0 scripts: No longer require bossa-cli in install-octopi.sh
Now that there is a local copy of bossac in the lib directory, there's
no reason to require a system version of it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 08:54:43 -04:00
Kevin O'Connor
051e8724a0 sam4e8e: Use local copy of bossac for flashing
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 08:54:43 -04:00
Kevin O'Connor
22f0db06a1 sam3x8e: Use local copy of bossac for flashing
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 08:54:43 -04:00
Kevin O'Connor
2b9124f3c0 lib: Add bossac 1.9 code to lib directory
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 08:54:43 -04:00
cfelicio
79632878ac config: Updates to printer-wanhao-duplicator-i3-v2.1-2017.cfg
Add lcd encoder pins. Add comment on 10K pullups.

Signed-off-by: Carlos Felicio <cfeliciomobil@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-27 08:45:04 -04:00
Kevin O'Connor
22132a5516 config: Add encoder buttons to generic-ramps.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-26 23:08:27 -04:00
Kevin O'Connor
ad480bd470 mcu: Avoid adding the same stepper multiple times to an endstop
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-26 23:06:32 -04:00
Kevin O'Connor
96acfdc6d2 docs: Minor rewording of Marlin pin number section of FAQ
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-26 23:06:32 -04:00
Gonzalo Ramírez
e6208c6f02 config: Added pins for LCD encoder and button click on Creality Ender 3 (#574)
Signed-off-by: Gonzalo Ramírez <controla@gmail.com>
2018-08-26 23:05:13 -04:00
Kevin O'Connor
a27e82aef3 docs: Add a section to the FAQ on translating Marlin pin numbers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-24 21:43:53 -04:00
Romain “Artefact2” Dal Maso
11e9bb286e probe: Allow restarting an incomplete probe set
Signed-off-by: Romain “Artefact2” Dal Maso <artefact2@gmail.com>
2018-08-24 13:20:55 -04:00
Florian Heilmann
b065f51454 sam4e8e: Fix bug in sam4e gpio.c (#563)
The bank_id was calculated erroneously. Also unify gpio_in_setup and gpio_out_setup a bit. Also disable make flash for the sam4e8e port as it currently references a version of bossac that is not present on all systems.

Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2018-08-24 13:17:53 -04:00
Florian Heilmann
a8a912fbb5 docs: Update sam4e8e docs and benchmarks (#562)
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2018-08-22 19:17:43 -04:00
Arksine
e94f3b7827 gcode: M117 fix
Resolves issue where M117 is not correctly executed when the message begins with numeric or special character.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2018-08-22 12:53:42 -04:00
Janar Sööt
65f0fd6238 display menu module for klipper
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2018-08-20 22:33:05 -04:00
Arksine
3387cccdcf bed_mesh: move probe x and y offsets to the [probe] module
All probe offsets are now passed to the finalize() callback in the ProbePointsHelper Class.

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-08-19 16:52:23 -04:00
Arksine
52df40dfbb bed_mesh: update z_offset check
Only check the probe's z_offset against the stepper_z endstop position if the probe is used as a virtual endstop.

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-08-19 16:52:23 -04:00
Boffgithub
08aacec0b2 config: Update example-extras.cfg (#544)
Changed 'endstop' to 'stepper' in 'multi-steppers axes' section

Signed-off-by: Ben Warren <boffdroid@gmail.com>
2018-08-19 10:15:48 -04:00
Kevin O'Connor
1b07be070b heater_fan: Allow multiple heaters to be defined for a heater_fan
Support the case where a single cooling fan is used with multiple
extruders.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-17 10:20:12 -04:00
Kevin O'Connor
e88eab18d0 test: Update .travis.yml to list apt packages one per line
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-17 09:47:57 -04:00
Arksine
868a1f951b docs: Add Mesh Bed Leveling to G-Codes.md
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-08-17 09:22:55 -04:00
Arksine
f337fb1802 config: update examples-extra.cfg to include the bed_mesh module
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-08-17 09:22:55 -04:00
Arksine
e0bd221c57 bed_mesh: mesh bed leveling for Klipper
Initial implementation of configurable Mesh Bed Leveling.

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-08-17 09:22:55 -04:00
Kevin O'Connor
be3131de3e docs: Update Config_checks.md to use STEPPER_BUZZ
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-09 13:46:07 -04:00
Kevin O'Connor
3f59c3dd48 docs: Add a Bootloaders.md document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-08 20:47:04 -04:00
Kevin O'Connor
5fb1c76c0e samd21: Fix description of bootloader offset
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-08 19:56:43 -04:00
Kevin O'Connor
71063fe500 docs: Warn about possible pin conflicts in benchmarks
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-08 13:52:08 -04:00
Kevin O'Connor
cbf019a468 docs: It's difficult to estimate real-world usage from the benchmarks
Remove the prediction on real-world usage as it's not really practical
to make a prediction.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-08 13:39:29 -04:00
Kevin O'Connor
fbec3ebb63 docs: Add benchmarking details to docs/Debugging.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-08 13:28:08 -04:00
Florian Heilmann
64e6d85898 sam4e8e: Add the SAM4e8e port
This can be flashed to e.g. the duet wifi using bossac. It requires a
later version as is currently included in the klipper repo (1.8
vs. 1.2). Comms are currently via UART0 only, USB serial is still TBD

Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2018-08-08 10:44:49 -04:00
Florian Heilmann
d15c106288 lib: Add SAM4E CMSIS HAL
Obtained from Atmel.SAM4E_DFP.1.1.57.atpack

Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
2018-08-08 10:44:38 -04:00
Kevin O'Connor
f067d0cc78 samd21: Minor fixes to usbserial
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-08 10:43:57 -04:00
Kevin O'Connor
2eaf3510ab test: Add SAMD21 compile test case
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-07 00:14:16 -04:00
Kevin O'Connor
a5d27c55e1 docs: Update perf benchmarks with SAMD21 results
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-07 00:03:42 -04:00
Kevin O'Connor
0daf19c003 samd21: Add support for USB
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-07 00:03:41 -04:00
Kevin O'Connor
cf2393efc8 samd21: Add support for gpio pins
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-07 00:03:21 -04:00
Kevin O'Connor
74cf4dc9e0 samd21: Initial support for SAMD21 micro-controllers
Add initial support for the Atmel SAMD21 micro-controllers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-07 00:03:18 -04:00
Kevin O'Connor
71db5fbe31 lib: Update samd21 code with local changes
A minor change is necessary to work with GCC's -flto and to work with
common bootloaders.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-07 00:02:44 -04:00
Kevin O'Connor
5633e6c249 lib: Add Atmel SAMD21 cmsis headers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-06 23:36:05 -04:00
Kevin O'Connor
50142cc1b3 armcm_irq: Enhance clear_active_irq() so it works on cortex-m0
Minor rework of the assembler so that it does not require thumb-2
instructions.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-06 23:36:05 -04:00
Kevin O'Connor
635a199a47 usb_cdc: Allow USB endpoint ids to be board specific
It's common for boards to have restrictions on the type of each
endpoint.  So, make it possible for the board to select the endpoint
ids for each endpoint.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-06 23:36:05 -04:00
Kevin O'Connor
f4910e119a lpc176x: Use common cmsis-core files
No need to include separate cmsis files from the mbed project - the
standard CMSIS_5 files work fine.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-06 23:36:05 -04:00
Kevin O'Connor
742048a08d lib: Remove the (now unused) cmsis-sam3x8e directory
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-06 23:36:05 -04:00
Kevin O'Connor
e1146c04fd sam3x8e: Use SAM3X CMSIS files instead of arduino CMSIS files
Update the sam3x8e port use the most recent SAM3X CMSIS files from
Atmel.  The Atmel files appear to have a more consistent license and
it is unclear if there were Arduino specific changes in the CMSIS
files obtained from the Arduino repo.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-06 23:36:05 -04:00
Kevin O'Connor
8572cae9a0 lib: Modify SAM3X CMSIS files to work with GCC's lto feature
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-06 23:36:05 -04:00
Kevin O'Connor
dd240f6471 lib: Add Atmel SAM3X CMSIS files
Add most recent SAM3X CMSIS files from Atmel.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-06 23:36:05 -04:00
Kevin O'Connor
454a873cb8 lib: Add CMSIS_5 files
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-06 23:36:05 -04:00
sillyfrog
ed011b5f25 dockerfile: Add a basic reference Dockerfile (#488)
Dockerfile: Add a basic reference Dockerfile

This is a sample of how to get Klipper running in Docker, because of the
virtual serial port, the user will have to modify things to include
something to send the GCode. I have included a link to my repo which has
OctoPrint up and running as an example.

Signed-off-by: Trent Davis <tgh@sillyfrog.com>
2018-08-06 13:11:01 -04:00
Kevin O'Connor
7783767c35 klippy: Move tracking of accessed config items into _read_config() method
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-03 18:54:23 -04:00
Kevin O'Connor
cd24d61515 docs: Minor change to wording of junction speeds
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-03 15:48:07 -04:00
Kevin O'Connor
1fefd695de docs: Note square corner velocity in lookahead description
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-03 15:43:46 -04:00
Kevin O'Connor
43179d7b6c config: Minor changes to example-extras.cfg documentation
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-03 13:00:40 -04:00
Kevin O'Connor
82738955d2 virtual_sdcard: Check if other events need to run after each file read
Periodically check if other events need to run - this prevents the
virtual_sdcard processing from starving other events.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-02 20:27:34 -04:00
Kevin O'Connor
f2d232ef77 force_move: Provide defaults for SET_KINEMATIC_POSITION parameters
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-02 08:58:18 -04:00
Kevin O'Connor
c5ecb37b4e test: Minor update to travis-build.sh mcu_compile start notifier
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-08-01 14:05:31 -04:00
Kevin O'Connor
ac5e207241 check_whitespace: Minor simplification of control char check
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-27 12:55:41 -04:00
Kevin O'Connor
7c7de85f01 test: Extend white space check to verify files are valid utf-8
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-26 16:16:05 -04:00
Kevin O'Connor
09a64d24f1 docs: Remove the Todo.md file
The Todo.md file has gotten stale, and it is no longer an effective
mechanism for tracking changes.  Remove it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-26 12:51:01 -04:00
Kevin O'Connor
c0c892d524 force_move: Add support for FORCE_MOVE command
Add initial support for commands that will forcibly move a stepper
(without updating the kinematic classes with the new position).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-26 12:44:07 -04:00
Kevin O'Connor
a434341aa9 force_move: Simplify STEPPER_BUZZ code
Separate the setup and movement parts of cmd_STEPPER_BUZZ() into their
own functions.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-26 11:45:18 -04:00
Kevin O'Connor
2c5eba44ee force_move: Rename stepper_buzz.py to force_move.py
This is in preparation for extending the ability to make manual moves.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-26 11:15:51 -04:00
Kevin O'Connor
13ccb1a46f mcu: Minor whitespace changes
Wrap lines at 80 columns.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-26 10:54:31 -04:00
Kevin O'Connor
98580ac1c2 adc_temperature: Minor whitespace changes
Wrap lines at 80 columns.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-26 10:51:48 -04:00
Kevin O'Connor
334a839123 stepper: Minor whitespace changes
Wrap lines at 80 columns.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-26 10:18:10 -04:00
Kevin O'Connor
273a98d39a pins: Explicitly pass can_invert and can_pullup to lookup_pin()
Don't pass pin_type to lookup_pin() - instead, if a pin can be
inverted or can have a pullup, then the caller must explicitly specify
that when calling lookup_pin().  This simplifies the code for the
cases where it is not valid to invert or pullup.

Explicitly pass the pin_type to setup_pin() and have ppins.setup_pin()
apply default pullup and invert flags.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-26 09:44:45 -04:00
Kevin O'Connor
7a9553b38a thermocouple: Minor fixes
Send the temperature before checking for an out of range error (that
makes it easier to debug).

The query_thermocouple clock parameter is unpredictable and a value of
zero can't be used to disable the query - use rest_ticks instead.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-25 09:06:50 -04:00
Kevin O'Connor
7d0f3649f3 spi_temperature: The query_thermocouple command is an init command
Make sure to use is_init=True when sending query_thermocouple -
otherwise, the config CRC is likely to mismatch on every connection.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-24 19:50:11 -04:00
Kevin O'Connor
63dffd9307 spi_temperature: Provide a default value for spi_speed
All of the Maxim chips support a 4Mhz spi transfer rate, so use that
as a default spi speed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-24 15:49:14 -04:00
Kevin O'Connor
5b124d59f2 spi_temperature: Remove spi_mode parameter
All of the Maxim chips can use SPI mode 1, so no need to configure it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-24 15:47:17 -04:00
Kevin O'Connor
70f765f62f spi_temperature: Don't raise error on a fault - invoke a shutdown
Raising an error from the background message reception thread isn't
well defined.  Instead, on a temperature fault, invoke a printer
shutdown.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-24 15:20:45 -04:00
Kevin O'Connor
a084c38b41 spi_temperature: Eliminate get_configs() callback
Those chips that require an spi init sequence can generate the message
directly in the chip specific class.

Also, don't send an spi init message for chips that are read-only.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-24 15:20:38 -04:00
Kevin O'Connor
c52c398ae8 spi_temperature: Eliminate self.chip_type variable
The chip type is now always unique in each class.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-24 15:00:23 -04:00
Kevin O'Connor
f168032901 spi_temperature: Eliminate check_faults() callback
The faults can be checked from the calc_temp() method.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-24 14:54:31 -04:00
Kevin O'Connor
f20dd0c9be spi_temperature: Break up thermocouple code into individual classes
Break the Thermocouple() class into MAX31856(), MAX31855(), and
MAX6675() classes.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-24 14:54:31 -04:00
Kevin O'Connor
7510efe827 spi_temperature: Use setup_minmax() to set the temperature range
Use setup_minmax() instead of directly reading the min/max temperature
from the config.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-24 14:12:00 -04:00
Kevin O'Connor
270080cd4c spi_temperature: Remove non-spi flags from SensorBase
The SensorBase class is used exclusively for SPI transfers, so no need
to track non-spi settings.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-24 14:05:35 -04:00
Kevin O'Connor
c0bf4327fd test: Add a test case for less common temperature sensors
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-24 12:54:22 -04:00
Ricardo Amezquita
756514adef thermocouple: Add support for MAX6675 chip
The MAX6675 chip has a different read sequence than the MAX31855 chip.

Signed-off-by: Ricardo Amézquita <ramezquitao@cihologramas.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-24 11:16:05 -04:00
Kevin O'Connor
eba252d3fd thermocouple: Add initial support for common SPI temperature sensing chips
Signed-off-by: Petri Honkala <cruwaller@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-24 11:16:05 -04:00
Ricardo Amezquita
940db6bd70 linux: Add support for bi-directional SPI communication
Signed-off-by: Ricardo Amézquita <ramezquitao@cihologramas.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-24 11:16:05 -04:00
Kevin O'Connor
6a60fe998d mathutil: Log starting error in coordinate_descent()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-24 08:32:35 -04:00
Kevin O'Connor
fce993478c delta_calibrate: Fix typo in config output (radius should be delta_radius)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-22 11:47:49 -04:00
Kevin O'Connor
cb29143939 itersolve: Support calculating a stepper position from a cartesian coordinate
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-18 11:51:28 -04:00
Kevin O'Connor
e2b4b1616f lpc176x: Add support for SPI
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-18 10:11:29 -04:00
Kevin O'Connor
acefe26e0f idle_timeout: Move timeout handling from toolhead.py to new extras module
Move the "motor_off_timeout" tracking to a new module in the extras/
directory.  This makes it easier to customize the idle timeout
behavior.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-16 10:32:48 -04:00
Kevin O'Connor
0025fbf10d toolhead: Replace junction_deviation with square_corner_velocity
The junction_deviation configuration parameter has a number of quirks
that make it difficult to configure.  Replace it with a
"square_corner_velocity" configuration parameter.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-16 10:32:43 -04:00
Kevin O'Connor
ca505bf4ac kinematics: Convert get_rails() method to get_steppers()
All callers of get_rails() actually just want the steppers, so return
them directly.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-16 10:16:16 -04:00
Kevin O'Connor
89835940f7 query_endstops: Move QUERY_ENDSTOP command to it own extras/ module
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-16 10:06:30 -04:00
Kevin O'Connor
28fa954487 delta: Store stable positions as integers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-15 22:05:13 -04:00
Kevin O'Connor
94dc8167c9 z_tilt: Don't default "points" parameter to "z_positions" parameter
It's rare to have all the Z stepper locations directly under the
printable surface, so using z_positions for points is not a good
default.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-15 10:30:27 -04:00
Kevin O'Connor
260d12af6d probe: Make sure there are at least 3 points even if using default_points
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-14 15:33:58 -04:00
Kevin O'Connor
ce0f4fe038 delta: Minor change to get_position_from_stable()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-14 11:55:15 -04:00
Pascal Albert
244d0aa65b atmega1284p: Add choice between UART0 or UART1 to Kconfig
Signed-off-by: Pascal Albert <lucky@foxserver.org>
2018-07-13 19:58:04 -04:00
Kevin O'Connor
2af73d1006 probe: Simplify mcu_probe stepper registration
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-13 17:14:33 -04:00
Kevin O'Connor
a31c31aed4 mcu: Enhance itersolve stepper kinematics allocation
Allocate the stepper_kinematics directly in mcu.py - that way the
kinematic classes don't have to interact with the chelper code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-13 11:37:36 -04:00
Kevin O'Connor
b988596519 toolhead: Fill cmove in toolhead instead of in each kinematic class
This simplifies the kinematic classes.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-13 11:37:20 -04:00
Kevin O'Connor
8faab46ed2 toolhead: Move kinematic modules to new kinematics/ directory
Move extruder.py, cartesian.py, corexy.py, and delta.py to a new
kinematics/ sub-directory.  This is intended to make adding new
kinematics a little easier.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-12 22:50:25 -04:00
Kevin O'Connor
7d897d84d7 klippy: No need to pass printer reference to add_printer_objects()
The config reference already stores a reference to the printer object.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-12 22:26:32 -04:00
Kevin O'Connor
5cdba1fda8 mcu: Send mcu config and init immediately after building it
Don't issue a get_config command after building the config as the
built config may contain time sensitive initialization commands.
Instead, send the config and init commands immediately after invoking
the build_config() callbacks.  This avoids some rare "timer too close"
errors during configuration.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-12 12:54:12 -04:00
Kevin O'Connor
211e34e62b mcu: Add leading underscore to handle_shutdown() and handle_mcu_stats()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-12 12:19:04 -04:00
Kevin O'Connor
21563c5965 config: Minor updates to example-extras.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-12 12:18:31 -04:00
Kevin O'Connor
32a85edb16 spidev: Minor rework to spidev_transfer()
Gcc does a better job of inlining code if spidev_transfer() is
reworked slightly.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-11 19:43:20 -04:00
Kevin O'Connor
733506dfb2 sam3x8e: Configure spi transfer in spi_prepare()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-11 19:40:51 -04:00
Kevin O'Connor
d9f960fb0c avr: Configure spi transfer in spi_prepare()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-11 19:40:21 -04:00
Kevin O'Connor
f60b0093b7 docs: Add a section with micro-controller porting tips to Code_Overview.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-11 14:40:39 -04:00
Kevin O'Connor
5294b3cd2d simulator: Rework dummy simulator code to user timer_irq / serial_irq
Change the simulator to use the generic timer_irq.c and serial_irq.c
code for (dummy) timer and io handling.  This is just to make the code
a better example for other developers (most micro-controllers will use
the timer_irq.c and serial_irq.c code).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-11 14:35:24 -04:00
Kevin O'Connor
00ea4428a3 test: Add recent printer config files to printers.test test case
Add printer-tronxy-x8-2018.cfg and printer-anycubic-kossel-plus-2017.cfg.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-10 12:04:39 -04:00
Seyed Seraj
70b5e1eb69 Add Printer Configuration File for the Tronxy X8
Added printer-tronxy-x8-2018.cfg for the Tronxy X8 with the CXY-V2-0508 board.

Signed-off-by: Seyed Seraj <s.seraj@hotmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-10 11:59:07 -04:00
Kevin O'Connor
68d78f0791 delta: Minor comment updates
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-09 18:00:58 -04:00
Kevin O'Connor
e1833e020a chelper: Use CLOCK_MONOTONIC_RAW
Switch the host code from the CLOCK_MONOTONIC clock to the Linux
specific CLOCK_MONOTONIC_RAW clock.  It's common for ntp to slew the
CLOCK_MONOTONIC clock to account for drift, and that can break the
host's ability to make accurate predictions of the micro-controller
clock.  This could lead to "move queue empty" errors.  The
CLOCK_MONOTONIC_RAW clock is not slewed and thus should not have this
problem.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-09 12:25:19 -04:00
Kevin O'Connor
4125e176b7 docs: Expand on why it is important to provide the log in Contact.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-08 20:30:35 -04:00
Kevin O'Connor
fa9b321991 docs: Update main documentation to not Smoothieboard support
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-08 11:01:54 -04:00
Kevin O'Connor
f7c2d918b6 config: Update Smoothieboard configs with notes on flashing the devices
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-08 10:45:17 -04:00
Kevin O'Connor
f3ac1a2306 docs: Add M206 and M119 to G-Codes.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-08 10:23:44 -04:00
Kevin O'Connor
b4f03e8363 docs: Add display g-code commands to docs/G-Codes.md
Add M117 and M73 to the list of supported G-Codes.

Also, remove M117 from the list of commands reported by the HELP
command as that command is typically only used to list "extended
g-code" commands.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-08 10:12:23 -04:00
Kevin O'Connor
649d7c54f0 travis-build: Narrow portions of test run with "set +x"
No need to include all the test preparation in the verbose output - as
that can make the output more confusing.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-08 09:29:13 -04:00
Grigori Goronzy
2991c7a831 stm32f1: implement spi_prepare
Implement spi_prepare to fix the undefined behavior on SPI transaction
start.

Tested with the following command sequence:

allocate_oids count=2
config_spi oid=0 bus=0 pin=PA8 mode=3 rate=1000000 shutdown_msg=
config_spi oid=1 bus=0 pin=PA8 mode=1 rate=1000000 shutdown_msg=
spi_send oid=0 data=30313233343536373839
spi_transfer oid=1 data=3031

Discussion about this here:
https://github.com/KevinOConnor/klipper/pull/453#issuecomment-403131149

Signed-off-by: Grigori Goronzy <greg@chown.ath.cx>
2018-07-08 09:25:11 -04:00
Grigori Goronzy
ebd9035325 SPI: introduce spi_prepare function
The SPI interface needs to be enabled and configured to the correct
settings of a given oid before CS is asserted. The new function
spi_prepare() allows ports to do that.

This port only introduces the new function in all ports with no
implementation and adds the call to the Klipper generic firmware code.
That means everything still works as before. Ports need to be changed
to fix the underlying issue.

Discussion about the motivation here:
https://github.com/KevinOConnor/klipper/pull/453#issuecomment-403131149

Signed-off-by: Grigori Goronzy <greg@chown.ath.cx>
2018-07-08 09:25:11 -04:00
Grigori Goronzy
5c7c8c984b stm32f1: add SPI support
Add basic SPI support and associated documentation.

v2: remove baud rate check, fix baud rate calculations
v3: finish transaction with BSY check, disable SPI when not in use

Signed-off-by: Grigori Goronzy <greg@chown.ath.cx>
2018-07-07 11:05:33 -04:00
Kevin O'Connor
b0ee323e2e heater: Introduce smooth_time config option; remove pid_deriv_time
Add generic temperature smoothing to the Heater class.  This is useful
to avoid min_extrude_temp and verify_heater errors due to measurement
noise.

Rename the pid_deriv_time config option to smooth_time so that the
smoothing amount need only be specified once.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-06 13:47:10 -04:00
Kevin O'Connor
32175bc66a test: Minor comment update in travis-build.sh
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-05 15:19:37 -04:00
Kevin O'Connor
bbd3f18178 test: Clean up travis-ci build output
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-05 11:49:10 -04:00
Kevin O'Connor
85797a1f76 test: Add additional commands to test in commands.test
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-05 11:02:48 -04:00
Kevin O'Connor
295a6f48fc test: Add additional movement commands to move.gcode
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-05 11:02:09 -04:00
Kevin O'Connor
1eb416002b sam3x8e: Read from the SPI_RDR on SPI send even if no data needed
Be sure to read the SPI_RDR as that clears the RDRF flag.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-05 10:29:52 -04:00
Kevin O'Connor
7e9ee6aef7 docs: Minor updates to Code_Overview.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-03 13:33:48 -04:00
Kevin O'Connor
80bcafda77 test: Add a test case for common g-code configuration and status commands
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-03 12:34:33 -04:00
Eric Callahan
b91b0f24db gcode: fix for GET_POSITION (#454)
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-07-03 12:22:55 -04:00
Kevin O'Connor
0dbfa915de adccmds: Add support for min/max temperature check filtering
Extend the ADC out of range check so that it is possible to sample
multiple times before going into a shutdown state.  This reduces the
chance that measurement noise will cause an error.  In an actual over
temperature (or under temperature event) it is expected that the
sensor will consistently report the problem, so extra checks for an
additional second or two should not substantially increase risk.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-02 13:56:34 -04:00
Hans Raaf
5b3444c060 config: Add Anycubic Kossel plus size delta printer config
Signed-off-by: Hans Raaf <hr-klipper@oderwat.de>
2018-07-02 12:28:19 -04:00
Kevin O'Connor
bae094eac3 test: Expand whitespace checks to test files and test compile configs
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-01 10:52:30 -04:00
Kevin O'Connor
58b77e783f test: Expand whitespace checks to *.lds files
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-01 09:50:42 -04:00
Kevin O'Connor
997719af13 test: Fix typo in whitespace check - there is no src/lib/ directory
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-01 09:46:07 -04:00
Kevin O'Connor
f767bee8ff test: Expand whitespace checks to docs/ and test/ directories
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-01 09:42:09 -04:00
Kevin O'Connor
e08bb4f196 docs: Fix whitespace error in stm32f1.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-07-01 09:41:35 -04:00
Janar Sööt
3a1d9e779c buttons: Improve rotary encoder handler by using Ben Buxton state machine. (#445)
https://github.com/brianlow/Rotary

Signed-off-by: Janar Sööt <janar.soot@gmail.com>
2018-07-01 08:41:14 -04:00
Kevin O'Connor
b41770caa6 tmc2130: Add a DUMP_TMC helper command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-30 19:01:56 -04:00
Kevin O'Connor
38d7b9ada0 buttons: Add initial support for detecting button presses
Add mcu support for periodically polling for a button press.  Add host
code support for registering buttons and invoking callbacks for them.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-30 14:28:51 -04:00
Kevin O'Connor
4061026c25 reactor: Add ability to register callbacks
Add the ability to register callbacks - both asynchronous (ie, from
another thread) and synchronous.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-30 14:13:47 -04:00
Kevin O'Connor
ecf53e6194 gcode: Add run_script() method that is valid from non-command contexts
Add an ability to run a series of g-code commands from a reactor
callback that isn't part of the normal g-code command processing.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-30 14:13:06 -04:00
Kevin O'Connor
4ad44e3e83 gcode: Rename run_script() to run_script_from_command()
Emphasize that the run_script() method is only valid when run from a
g-code command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-30 14:08:02 -04:00
Kevin O'Connor
53b718a621 pins: Strip pin names before trying to parse them
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-30 14:05:27 -04:00
Kevin O'Connor
0cbfcfd3d1 test_klippy: Add option to not remove temporary files
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-30 12:31:49 -04:00
Kevin O'Connor
d725160706 mcp4451: Add initial support for programming the mcp4451 on lpc176x
Add support for programming smoothieboard current.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-29 21:20:12 -04:00
Kevin O'Connor
cc6b416660 test: Add support for testing klippy with multi-mcu configs
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-29 13:52:23 -04:00
Kevin O'Connor
5922a1ea1b test: Add example kinematic config files to printers.test testcase
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-29 13:16:50 -04:00
Kevin O'Connor
fe676fa099 test: Add Ender2 and ReArm configs to printers.test testcase
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-29 13:14:14 -04:00
Kevin O'Connor
cda08a844a test: Add a build test case for the PRU
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-28 17:01:12 -04:00
Kevin O'Connor
6aba3c552b build: Build pru gcc in travis-ci scripts and then cache it for later use
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-28 17:01:11 -04:00
Kevin O'Connor
52ab93be6d build: Collect travis build files travis build specific directories
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-28 15:03:41 -04:00
Arksine
640169310f display: fix for 128 x 64 pixel displays
Right justify fan speed and feed rate, keep progress centered.

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-06-28 13:11:44 -04:00
Kevin O'Connor
154397b92c test: Add a whitespace check to the travis build
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-28 13:02:55 -04:00
Kevin O'Connor
efb27f095c build: Cleanup whitespace errors
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-28 13:00:20 -04:00
Arksine
e11851276d display: uc1701 spi fix
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-06-28 10:01:57 -04:00
Arksine
f529d7476d config: update Creality Ender 2 configuration to include display
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-06-27 19:46:38 -04:00
Arksine
696ee69f2c config: update example-extras.cfg to include uc1701 display
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-06-27 19:46:38 -04:00
Arksine
593b4d2656 display: add UC1701 graphics controller support
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-06-27 19:46:38 -04:00
Arksine
19d6205492 display: add VGA font
Font from fntcol16.zip package:
ftp://ftp.simtel.net/pub/simtelnet/msdos/screen/fntcol16.zip
(c) Joseph Gil
Font is public domain

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-06-27 19:46:38 -04:00
Grigori Goronzy
6078145dcd stm32f1: fix ADC pin list
For some reason, the upper two pin definitions were missing. Found while
writing the port documentation.

Signed-off-by: Grigori Goronzy <greg@chown.ath.cx>
2018-06-27 18:22:06 -04:00
Grigori Goronzy
eb02043943 stm32f1: add port documentation (#425)
Fixes #412.

Signed-off-by: Grigori Goronzy <greg@chown.ath.cx>
2018-06-27 18:21:23 -04:00
Kevin O'Connor
4889e8241d pid_calibrate: Update the heater's target temperature during calibration
Update the target temperature during the pid calibration.  This gives
additional feedback to the user and it makes it less likely that a
verify_heater error will be raised during calibration.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-27 14:39:20 -04:00
Kevin O'Connor
7e497af184 heater: Don't peak into Heater class member variables
The control classes should not peak into the heater member variables.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-27 14:32:10 -04:00
Kevin O'Connor
483c51e864 display: Move icons to their own module
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-27 13:18:03 -04:00
Kevin O'Connor
e907253dba display: Move st7920 code to its own module
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-27 13:18:03 -04:00
Kevin O'Connor
f85b43a789 display: Move hd44780 code to its own module
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-27 13:18:03 -04:00
Kevin O'Connor
373c7ff301 display: Move klippy/extras/display.py to klippy/extras/display/display.py
Move the display code into its own directory.  This is in preparation
for splitting it up into its own modules.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-27 13:18:03 -04:00
Kevin O'Connor
2622b439fc klippy: Allow extras modules to be directories
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-27 13:01:48 -04:00
Arksine
af1cd3c4ce config: add configuration for Creality Ender 2
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-27 12:35:08 -04:00
Arksine
d350e2c617 display: add M117 "show message" support
When M117 is followed by an empty string, the display will reset to
Klipper's default.

Internal modules may look up the display and directly call
set_message(), with a timeout if desired.

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-06-27 12:33:25 -04:00
Arksine
8a0c9a457a display: M73 Updates
- Add M73 support for HD44780
- Include HD44780 USB and SD glyphs to differentiate progress type
- Fix bug that prevented M73 from updated when virtual_sd is enabled
- Add 5 second timeout to reset display when not Printing

Signed-off-by: Eric Callahan <arksine.code@gmail.com>
2018-06-27 12:32:30 -04:00
Kevin O'Connor
06ef60011e gpiocmds: Add update_digital_out command
Add a command that can immediately set the value of a digital output
pin created with config_digital_out.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-27 12:10:39 -04:00
Kevin O'Connor
7aec52dfb3 avr: Don't set SS high on spi_init()
The AVR requires that the SS pin be an output pin for correct SPI
operation.  Some boards use the SS pin to control devices separate
from SPI, however.  Don't change the output level if the pin is
already an output, and prefer setting it low if it is not already an
output pin.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-27 12:10:25 -04:00
Kevin O'Connor
d651851567 pru: Disable ADC reading directly from the PRU
The PRU code size has grown too close to the maximum - remove the ADC
code to reduce its overall size.  (On the beaglebone, the Linux
process can, and typically does, do the ADC reading.)

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-27 12:10:25 -04:00
Kevin O'Connor
41058d22a6 toolhead: Disable all extruder motors on a motor_off()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-23 20:41:43 -04:00
Kevin O'Connor
f08a0c5e93 lcd_st7920: Use a longer delay at the start of each command/data
It appears the st7920 requires a longer delay when switching from
command to data mode (and vice-versa).  Slower MCUs don't show a
problem because the klipper command processing time results in a
sufficient delay.  However, some of the faster MCUs can process
klipper commands fast enough that the next st7920 transfer is sent too
fast.  Add an additional delay to account for this.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-22 23:47:09 -04:00
Kevin O'Connor
74de181e59 delta: Don't peak into PrinterRail class from get_calibrate_params()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-22 15:42:20 -04:00
Kevin O'Connor
d9a32f75fa probe: Rename get_position() callback to get_probed_position()
The different uses of get_position() can be confusing, so choose a
different name for the ProbePointsHelper callback.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-22 15:33:12 -04:00
Kevin O'Connor
3e88ffabf1 mathutil: Move trilateration code from delta.py to mathutil.py
Move the trilateration algorithm to mathutil.py.  It may be useful
outside of delta kinematics, and it complicates the delta code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-22 14:12:09 -04:00
Kevin O'Connor
77a2c95b5e delta: Remove the unnecessary StepList constant
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-22 14:09:01 -04:00
Kevin O'Connor
4e01ab4ef0 corexy: Remove the unnecessary StepList constant
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-22 14:09:01 -04:00
Kevin O'Connor
13acdf7832 cartesian: Remove the unnecessary StepList constant
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-22 14:09:01 -04:00
Kevin O'Connor
890298d34d itersolve: Support setting the stepper position via a cartesian coordinate
Add support for an itersolve_set_position() function that sets a
stepper position from a cartesian coordinate.  This eliminates the
need for both the python and C code to be able to translate from a
cartesian coordinate to a stepper position.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-22 14:09:01 -04:00
Kevin O'Connor
0216201cb6 delta: Rename get_position() to calc_position()
Calculating the cartesian position from the stepper positions can be
complex and cpu intensive, so rename it to calc_position() to be more
descriptive.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-22 14:09:01 -04:00
Kevin O'Connor
20b404ecf5 probe: No need to call kin.get_position() to report position
After a probe operation, homing_move() will already have recalculated
the toolhead position.  The get_position() method can be slow, so use
the already calculated position.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-22 14:09:01 -04:00
Kevin O'Connor
0791c69499 stepper: Replace PrinterHomingStepper with PrinterRail
Update the code to use the term "rail" when dealing with a motor
controlled "axis".  A rail has a series of steppers and endstops that
control that motor controlled "axis".

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-22 14:09:01 -04:00
Kevin O'Connor
93d0526a77 stepper: Add a get_homing_info() method to PrinterHomingStepper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-22 14:09:01 -04:00
Kevin O'Connor
968ed58b61 stepper: Add a get_range() method to PrinterHomingStepper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-22 14:09:01 -04:00
Kevin O'Connor
b96542f0e5 stepper: Don't peak into PrinterStepper members
Add additional wrapper functions so that no outside callers need to
peak into the member variables of PrinterStepper.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-22 14:09:01 -04:00
Kevin O'Connor
9a97a348ae stepper: Add a is_stepper_enabled() method to PrinterStepper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-22 14:09:01 -04:00
Kevin O'Connor
28b7a28651 stepper: Don't store step_dist in PrinterStepper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-22 14:09:01 -04:00
Kevin O'Connor
544f8c1e85 stepper: Add a get_name() method to PrinterStepper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-22 14:09:01 -04:00
Kevin O'Connor
d0590ccb0e stepper: No need to pass printer reference to kinematic/stepper constructors
The config reference already stores a reference to the printer object.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-22 14:09:01 -04:00
AxMod 3D Print
76e2b041b4 config: Add generic config for Re-Arm (LPC1768)
Signed-off-by: Ax Smith-Laffin (ax@darknetweb.co.uk)
2018-06-21 15:51:40 -04:00
Kevin O'Connor
d94c856118 display: Allow the ST7920_DISPLAY parameter to be configured
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-21 09:58:35 -04:00
Kevin O'Connor
3ac9fc6e63 docs: Update documentation with iterative solver changes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-20 09:26:10 -04:00
Kevin O'Connor
926829e737 itersolve: Move tracking of commanded position to itersolve code
Track the commanded position in just the itersolve.c code instead of
in mcu.py.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-20 09:26:10 -04:00
Kevin O'Connor
8f747e2720 kin_cartesian: Remove stepcompress_push_const()
All the kinematic code now uses the iterative solver to generate
steps.  Remove the old stepcompress_push_const() mechanism.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-20 09:26:10 -04:00
Kevin O'Connor
eb73b5d0b0 stepper_buzz: Convert to iterative solver
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-20 09:26:10 -04:00
Kevin O'Connor
bbe53cf8e5 extruder: Convert to using iterative solver
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-20 09:26:10 -04:00
Kevin O'Connor
7148ebd565 cartesian: Convert cartesian kinematics to use the iterative solver
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-20 09:26:10 -04:00
Kevin O'Connor
fc4a9e7564 corexy: Convert corexy to use the iterative solver
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-20 09:26:10 -04:00
Kevin O'Connor
ca0d0135dc delta: Convert delta kinematics to use iterative solver
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-20 09:26:10 -04:00
Kevin O'Connor
2511471b0d itersolve: Add kinematic iterative solver code
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-20 09:26:10 -04:00
Kevin O'Connor
ba3428822d stepcompress: Allow stepcompress_alloc() to be called early
Don't require an mcu connection to allocate the stepcompress object.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-20 09:26:10 -04:00
Kevin O'Connor
9a2eb4bedd chelper: Move cartesian and delta kinematics code to their own C files
Move the cartesian and delta specific code to new files
kin_cartesian.c and kin_delta.c.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-20 09:26:10 -04:00
Kevin O'Connor
8a830ff0ce chelper: Compile with gcc -fwhole-program option
Use the -fwhole-program option when compiling the host C code.  This
makes it easier to support inlining across C files.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-20 09:26:10 -04:00
Kevin O'Connor
189ebb4c7d chelper: Add compiler.h header
Add the compiler.h header file to the chelper code - this adds a
number of useful gcc definitions.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-20 09:26:10 -04:00
Kevin O'Connor
bedbfceafc stepper_buzz: Move STEPPER_BUZZ command from stepper.py to new file
Add a klippy/extras/stepper_buzz.py file to handle the STEPPER_BUZZ
command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-20 09:26:10 -04:00
Kevin O'Connor
c60c9ee302 klippy: try_load_module() should return the module loaded
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-20 09:26:10 -04:00
pyr0ball
995367bd52 scripts: Add installation script for CentOS (#367)
The purpose of this PR is to add an installation script to klipper for use on Centos. Several packages names are different from debian based installs, and the system service is handled via systemd rather than LSB.

Signed-off-by: Alan Weinstock <pyroballpcs@gmail.com>
2018-06-19 15:57:21 -04:00
Douglas Hammond
9519e05394 temperature_fan: Fix issue 403 use max_speed
Signed-off-by Douglas Hammond  <wizhippo@gmail.com>
2018-06-19 11:51:07 -04:00
Oli
7a606633fa config: anet e10 update
Signed-off-by: Zsolt Olah <beer.olius@gmail.com>
2018-06-19 11:36:52 -04:00
Kevin O'Connor
d887a403ff test: Try to cache gcc arm download during travis-ci builds
The gcc arm download sometimes fails - try to cache it within the
travis-ci system to prevent that.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-18 13:19:12 -04:00
Kevin O'Connor
4fbecfa1fc lpc176x: Build with LCD support
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-18 12:46:08 -04:00
Kevin O'Connor
711a69396f test_klippy: Default to only showing log information on an error
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-17 11:48:06 -04:00
Kevin O'Connor
c89983fd96 scripts: Add additional explicit dependencies to install-octopi.sh
Add virtualenv, build-essential, gcc-arm-none-eabi, and
binutils-arm-none-eabi packages - just in case they aren't already
installed.  Reported by @AxMod3DPrint.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-17 10:49:06 -04:00
Kevin O'Connor
d94dc44e98 test: Add a dual_carriage test case
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-17 10:03:43 -04:00
Kevin O'Connor
ea18034258 test: Add STEPPER_BUZZ and DELTA_CALIBRATE tests to delta.test
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-17 09:55:30 -04:00
Kevin O'Connor
6841f0b5a8 test_klippy: Use verbose output when running klippy
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-17 09:55:30 -04:00
Kevin O'Connor
9972db5a2a test: Add multi_z test case
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-17 09:47:34 -04:00
Kevin O'Connor
eb801631b9 test: Add basic klippy regression tests
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-16 16:20:49 -04:00
Kevin O'Connor
780e3c3022 klippy: Return an error code if batch input results in an error
When reading from a debug input file, propagate any errors to the
program return status.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-16 16:18:01 -04:00
Kevin O'Connor
efe63d5efe toolhead: Add support for the M204 command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-15 12:05:45 -04:00
Hans Raaf
4ec1244c31 Extras: Probing does reply with the z position where the probe triggers.
This change will make the "PROBE" command actually reply with the
z-position where the probe triggers. As this command is called
internally for the BED_TILT_CALIBRATE and Z_TILT_ADJUST those commands
will also give a response while probing, which I see as advantage over
the silent operation.

This change also lets one define some gcode for a repeatable probing
test to meassure the quality of the sensor and overall probing accuracy.

Signed-off-by: Hans Raaf <hr-klipper@oderwat.de>
2018-06-13 22:34:25 -04:00
Kevin O'Connor
268e39fe52 config: Add "axes: z" and "G4 P100" to sample-bltouch.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-13 22:32:45 -04:00
Kevin O'Connor
064212a191 logextract: Detect clock field even if it is last field on line
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-13 22:32:41 -04:00
Kevin O'Connor
3819ad2986 probe: Catch and propagate errors raised during ProbePointsHelper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-11 21:35:53 -04:00
Hans Raaf
e110e1fecc homing_override: Add axes config parameter
Added a config parameter to define the homing override axes. This way
one can still home x and y axis without the z-probe cycle coming in the
way.

Signed-off-by: Hans Raaf <hr-klipper@oderwat.de>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-11 20:41:18 -04:00
Kevin O'Connor
5f640699b7 scripts: Add python-dev dependency to install-octopi.sh
The python-dev package is usually already installed, but there's no
harm in stating it explicitly.  Reported by @yschroeder.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-09 19:12:52 -04:00
Kevin O'Connor
4367a985e2 verify_heater: Disable when writing output to a debug file
Disable the verify_heater checks when debugging, as otherwise it can
cause failures when processing files in batch mode.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-08 23:51:41 -04:00
ruevs
e90edc0447 config: Add configuration file for the Anycubic Kossel delta printer
The printer uses the TriGorilla board which is an
AVR ATmega2560 Arduino + RAMPS compatible board.
The diplay is a RepRapDiscount Smart Controller 2004 compatible one.

Signed-off-by: Peter Ruevski <dpr@ruevs.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-07 13:46:33 -04:00
Kevin O'Connor
1ace688ea3 extruder: Report max_extrude_ratio in log
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-05 20:48:55 -04:00
Kevin O'Connor
183e0decf8 output_pin: Fix SET_PIN max_val check
The maxval should be self.scale.  Reported by @mvturnho.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-05 09:12:31 -04:00
Michael Barbour
a748cf39eb stepcompress: Fix comment typo.
Signed-off-by: Michael Barbour <barbour.michael.0@gmail.com>
2018-06-04 09:41:55 -04:00
Kevin O'Connor
f020ed179e config: Add sample voron2 config file
Add config/kit-voron2-2018.cfg - a sample configuration file for the
Voron2 printer.  Based on config file from "Maglin".

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-01 21:38:19 -04:00
Kevin O'Connor
2c4ca88887 docs: Update documentation to note use of /dev/serial/by-path/
When using multiple micro-controllers it may be necessary to use an id
from /dev/serial/by-path/ instead of /dev/serial/by-id/.  Also,
emphasize that in config/example-multi-mcu.cfg.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-06-01 17:22:03 -04:00
cruwaller
404cd376b5 gcode: mux command is already registered error print fixed
Signed-off-by: Petri Honkala <cruwaller@gmail.com>
2018-06-01 16:05:10 -04:00
cruwaller
26378c2564 mcu: config_reset_cmd typo fixed
Signed-off-by: Petri Honkala <cruwaller@gmail.com>
2018-06-01 09:49:55 -04:00
Kevin O'Connor
ff9543eee2 clocksync: Simplify is_active() check
In some rare circumstances it was possible for the host software to
become so busy that it does not transmit a get_clock request for
several seconds.  (In particular, this could occur with some complex
calls to coordinate_descent.)  If that happened, it was possible for
the code to incorrectly report a "Timeout with MCU" error.  Rework the
is_active() check to prevent that.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-31 18:20:30 -04:00
Kevin O'Connor
1b1d2adb31 gcode: Apply SET_GCODE_OFFSET to next move command
Apply the changes made by a SET_GCODE_OFFSET command to the next move,
even if the move is relative to the last movement.  This allows the
command to implement "babystepping" requests.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-29 14:09:04 -04:00
Kevin O'Connor
b93fd5b1b5 basecmd: Rename get_status to get_clock
Change the get_status command to get_clock.  Don't report the shutdown
status in the new get_clock command.

The primary purpose of this change is to force the host code to report
a firmware version mismatch with older firmwares as recent changes
(namely the ordering of message block acks) have subtle
incompatibilities if different host/mcu code is used.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-29 10:57:29 -04:00
Kevin O'Connor
879c45db19 mcu: Do not automatically restart MCU with new config if it is shutdown
Normally, the MCU is restarted on a config change.  However, that
should not be done automatically if the MCU is in a shutdown state.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-29 10:57:29 -04:00
Kevin O'Connor
d798fae20b serialqueue: Limit message transmission to available receive buffer size
If the mcu is using a traditional serial port, then only send a new
message block if there is space available in the mcu receive buffer.
This should make it significantly less likely that high load on the
mcu will result in retransmits.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-28 11:12:30 -04:00
Kevin O'Connor
0728c1a8be msgproto: Add support for a get_constant_int() method
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-28 10:43:40 -04:00
Kevin O'Connor
75f8709947 command: Wait to send ack until after processing commands
Send the ack after processing commands - this gives the host code more
information on serial buffer utilization.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-28 10:43:40 -04:00
Kevin O'Connor
528f9f7604 command: Add command_find_and_dispatch() helper
Add a helper function that calls command_find_block() followed by
command_dispatch().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-28 10:43:39 -04:00
Kevin O'Connor
c8af3feee6 command: Add a command_encode_and_frame() helper
Add a helper function that calls command_encodef() followed by
command_add_frame().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-28 10:43:39 -04:00
Kevin O'Connor
cb4e165071 command: Prefer uint8_t* for buffers; prefer uint8_fast_t for lengths
Prefer using 'uint8_t' buffers as it is too easy to run into C sign
extension problems with 'char' buffers.  Prefer using 'uint_fast8_t'
for buffer lengths as gcc does a better job compiling them on 32bit
mcus.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-28 10:43:39 -04:00
Zsolt Olah
2a55741ea8 config: Anet E10 config added
Signed-off-by: Zsolt Olah <beer.olius@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-28 09:46:15 -04:00
Kevin O'Connor
c9dfdf21e5 docs: Remove lpc176x item from Todo
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-25 13:56:54 -04:00
Kevin O'Connor
20ddd842b7 klippy: Fix detection of mixed case section names
If a section name had mixed case it would cause an incorrect error
during the section/option config checking.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-25 12:47:51 -04:00
Kevin O'Connor
c38a63d4db gcode_macro: Add the ability to define custom g-code macros
Add the ability to add a custom g-code command that in turn executes
one or more configured g-code commands.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-25 12:40:06 -04:00
Kevin O'Connor
2994638380 lpc176x: Add a dummy "make flash" command to advise users on how to flash
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-25 11:58:23 -04:00
Kevin O'Connor
ef7d4dd3cb config: Add example generic-smoothieboard.cfg config file
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-25 11:52:13 -04:00
Kevin O'Connor
4344f7fc10 lpc176x: Add build rules for smoothieware bootloader support
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-25 11:52:13 -04:00
Kevin O'Connor
c381d03aad lpc176x: Initial support for serial over usb
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-25 11:52:13 -04:00
Kevin O'Connor
c812a40a37 lpc176x: Add ADC support
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-25 11:52:13 -04:00
Kevin O'Connor
65613aeddf lpc176x: Enable watchdog
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-25 11:52:13 -04:00
Kevin O'Connor
83d3c17280 docs: Add LPC1768 benchmarks to Features.md document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-25 11:52:13 -04:00
Kevin O'Connor
141bd0ce9b test: Add LPC176x compile test case
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-25 11:52:13 -04:00
Kevin O'Connor
c78b90767f lpc176x: Add support for GPIO pins
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-25 11:52:13 -04:00
Kevin O'Connor
970831ee0d lpc176x: Add initial support for LPC176x processors
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-25 11:52:13 -04:00
Kevin O'Connor
5ae22a5e51 tmc2130: Allow the PWMCONF register to be configured
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-25 11:38:27 -04:00
Kevin O'Connor
1e6fa5722a tmc2130: Initial support for sensorless homing
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-25 11:38:23 -04:00
Kevin O'Connor
26246b1f28 tmc2130: Use an SPI rate of 4Mhz
The spec recommends 4Mhz for SPI, so use that.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-25 11:38:18 -04:00
Kevin O'Connor
3799f40f29 tmc2130: Configure stealthchop velocity limit
Change stealhchop config option to a stealthchop_threshold
configuration option.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-25 11:38:12 -04:00
Hans Raaf
739d37feac config: Add printer config for the Ender 3 by Creality3D
- Changed max positions
- Tuned PIDs for my stock Ender 3 heaters (using 200/50)
- Added the serial device as 'by-id'. Not sure if that is working as I
expect it :)
- I did set the position endstop to 0.5 .. Not sure if people like that.

Signed-off-by: Hans Raaf <hr-klipper@oderwat.de>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-24 18:04:25 -04:00
Kevin O'Connor
c4fe43ffce tmc2130: The default TOFF time should be 4
The recommended TOFF time in "standalone mode" according to the
tmc2130 is 4, so use that as the default.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-24 10:44:45 -04:00
Kevin O'Connor
ee4f37fe0c stepper: Add STEPPER_BUZZ command
Add a new command that can help diagnose stepper motor connectivity.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-24 09:49:17 -04:00
Kevin O'Connor
e50c2aa38d docs: Remove "touch panel" item from Todo document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-23 22:31:45 -04:00
FeepingCreature
237c242d65 Display M73-indicated progress plus linear ETA on ST7920 displays.
Signed-off-by: Mathis Beer <mathis_beer@yahoo.de>
2018-05-23 20:46:17 -04:00
Kevin O'Connor
d7b29eca47 temperature_fan: Don't write "temperature_fan " to prefix stats
Just write the user provided name in the stats.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-23 18:22:02 -04:00
Kevin O'Connor
bf301a977e graphstats: Make check for stats prefixes more robust
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-23 18:19:50 -04:00
Kevin O'Connor
3e1febce78 temperature_fan: Don't always enable stats generation
Don't return True from the stats() method - that keeps stats logging
on permanently.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-23 00:27:32 -04:00
Kevin O'Connor
3025638b9b z_tilt: Add support for Z_TILT_ADJUST
Add new module to support independent adjustments to multiple Z
steppers to account for bed tilt.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-22 22:23:44 -04:00
Kevin O'Connor
4bf1b042b1 console: Report timestamp on each read message
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-21 12:01:26 -04:00
Kevin O'Connor
c2d48aba87 byteorder: Add a header file defining common byteswap functions
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-21 09:44:40 -04:00
Kevin O'Connor
e3e3aa63d7 build: Add gcc option -std=gnu11
Some older versions of gcc require this flag in order to compile the
code correctly.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-21 09:43:48 -04:00
Kevin O'Connor
42ca985bef docs: Add reference to homing_override in FAQ
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-20 19:33:54 -04:00
Kevin O'Connor
2db5415d09 config: Add example config file for the Einsy-Rambo board
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-20 18:11:26 -04:00
Kevin O'Connor
680c92de40 tmc2130: Add initial support for TMC2130 stepper motor drivers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-20 18:03:06 -04:00
Kevin O'Connor
61fbd193f9 gcode: Reset extrude_factor and extruder position on a tool change
The extrude_factor and extruder position are specific to the current
extruder, so reset them to default values on a Tn command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-20 13:47:00 -04:00
Kevin O'Connor
33c2c8f1bd gcode: Raise an error if a duplicate command is registered
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-20 13:08:22 -04:00
Kevin O'Connor
2ab47cd20c extruder: Fix SET_PRESSURE_ADVANCE so that it works with multiple extruders
Use the new gcode.register_mux_command() so that SET_PRESSURE_ADVANCE
works correctly with multiple extruders.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-20 12:52:19 -04:00
Kevin O'Connor
75a1e9ea21 output_pin: Use new gcode.register_mux_command()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-20 12:44:02 -04:00
Kevin O'Connor
5a88a14afc servo: Use new gcode.register_mux_command()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-20 12:40:10 -04:00
Kevin O'Connor
abe79056c9 gcode: Add ability to register a "mux" command
It's common to add commands that dispatch to a particular object
instance depending on the value of a command parameter.  (For example,
the command "SET_SERVO SERVO=xyz" wants to be handled by the
particular "xyz" servo instance.)  Add a register_mux_command() helper
to gcode.py make it easier to do this.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-20 12:33:43 -04:00
Kevin O'Connor
6869e7d1ec probe: Verify horizontal_move_z not less than probe's z_offset
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-20 11:41:28 -04:00
Kevin O'Connor
c5bff88943 probe: Move code from bed_tilt and delta_calibrate into ProbePointsHelper
Move the common config reading and probe object lookup from the
bed_tilt.py and delta_calibrate.py code into the ProbePointsHelper
class.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-20 11:41:07 -04:00
Kevin O'Connor
11816295e7 stepper: Raise an error if position_endstop is not in min/max range
Raise an error during config parsing if the position_endstop is not
between the position_min and position_max.  This avoids a confusing
error message during homing.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-18 19:41:03 -04:00
Kevin O'Connor
2740838b2e fan: Allow the fan shutdown_speed to be configured
Add a shutdown_speed config option to fans so that users can specify
the speed on a shutdown event.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-18 19:12:03 -04:00
Douglas Hammond
5712283e91 Add temperature controlled fans
Signed-off-by Douglas Hammond  <wizhippo@gmail.com>
2018-05-17 12:50:21 -04:00
Kevin O'Connor
6d376017bc config: Fix printer-tronxy-x5s-2018.cfg file flags
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-17 12:47:08 -04:00
Kevin O'Connor
a11add60e2 config: Add example config file for the creality cr10 mini
The cr10 mini is the same as the cr10, but with different Y and Z
dimensions.  Reported by @cassianoleal.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-17 12:43:25 -04:00
Kevin O'Connor
c331406774 util: Change the /tmp/printer pty to be group readable
For some reason, Linux creates the pseudo tty with group writable
permissions, but not group readable.  Use chmod to allow the device to
also be group readable.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-16 13:25:21 -04:00
Kevin O'Connor
3505a0727d config: Update printer-creality-cr10s-2017.cfg to use z position_max=400
The cr10s should has a z length of 400mm.  Reported by @nic-str.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-15 18:53:40 -04:00
Kevin O'Connor
70068985a7 stepper: Introduce and use gpio_out_toggle_noirq()
The gpio_out_toggle() function in the sam3x8e and stm32f1 code was
only valid if it was called with irqs disabled.

Commits 018c5daa and 9c52ad43 enabled the lcd code which called
gpio_out_toggle() with irqs enabled.  This could cause corruption of
the gpio state.

Introduce a gpio_out_toggle_noirq() function that will only be invoked
with irqs disabled, and fix gpio_out_toggle() on sam3x8e and stm32f1
so that it safe to call even if irqs are enabled.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-15 17:09:11 -04:00
Kevin O'Connor
907cfb9105 stepper: Fix typo in error report - name should be self.name
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-14 12:31:28 -04:00
Kevin O'Connor
6c3db80d89 homing: Apply speed rounding after calling home_prepare()
The step speed rounding and the cpu delay must be run after running
the endstop specific preparation code.  Otherwise, a delay in the
home_prepare() code could undo those calculations.  Specifically, this
could lead to errors on a multi-mcu setup when the Z is homed using a
virtual_z_offset and there is a delay in the activate_gcode section.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-14 11:40:35 -04:00
Michael Barbour
bf3c41cd06 temperature_fan: Add support for temperature-triggered fan.
Signed-off-by: Michael Barbour <barbour.michael.0@gmail.com>
2018-05-10 19:32:23 -04:00
Lukas Wingerberg
6ad344c8a6 config: Add example generic-radds.cfg config file
Signed-off-by: Lukas Wingerberg <lukas@wingerberg.de>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-10 11:40:09 -04:00
Kevin O'Connor
2e3fa8da13 console: Fix handling of bad commands
Don't return early on a command error - continue to process remaining
commands and pop commands from the queue.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-08 11:31:25 -04:00
Kevin O'Connor
f70fefa06f linux: Convert linux SPI code to use the generic spicmds.c code
Use the generic spi send/receive code on Linux.  Update the replicape
code to use the updated command format.

Also, update the replicape code to turn off the stepper motors on a
shutdown event.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-07 09:10:34 -04:00
Kevin O'Connor
31ae74c56c sam3x8e: Add SPI support
Signed-off-by: Petri Honkala <cruwaller@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-07 09:10:34 -04:00
Kevin O'Connor
22487d95e9 spicmds: Rework SPI message transmission
Improve the SPI message transmit system.  Add support for bus speed
and bus mode.  Add support for sending SPI messages on shutdown.

Signed-off-by: Petri Honkala <cruwaller@gmail.com>
Signed-off-by: Douglas Hammond <wizhippo@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-07 09:10:34 -04:00
Kevin O'Connor
838da992e8 msgproto: Support sending empty strings from create_message()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-07 09:07:22 -04:00
Kevin O'Connor
9c52ad4310 stm32f1: Enable lcd chip support
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-07 01:03:25 -04:00
Kevin O'Connor
018c5daa94 sam3x8e: Enable lcd chip support
Testing shows the hd44780 and st7920 chips do work on the Due.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-07 01:03:01 -04:00
Kevin O'Connor
99b233df3f serialqueue: Fix batching of BACKGROUND_PRIORITY_CLOCK messages
In order to properly delay BACKGROUND_PRIORITY_CLOCK messages, they
must be 5ms beyond the minimum defined by MIN_REQTIME_DELTA.  So, add
both MIN_REQTIME_DELTA and MIN_BACKGROUND_DELTA to the timing of these
messages.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-05 20:59:33 -04:00
Kevin O'Connor
640ff1ad56 clocksync: Change timer frequency to avoid resonating with other timers
If the clock querying messages occur at a similar frequency to other
events on the micro-controller or host, then it's possible for the
load created by those other events to skew the clock synchronization.
In particular, the 500ms lcd screen update could resonate with the 1
second clock query.  Use an unusual clock querying frequency to avoid
this issue.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-05 20:14:46 -04:00
Kevin O'Connor
cd9e21e3aa FAQ: Add item on TMC2208 being disabled in the middle of a print
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-05-05 13:06:55 -04:00
cruwaller
7fd14848ca chelper: Fix hub-ctrl compilation
Signed-off-by: Petri Honkala <cruwaller@gmail.com>
2018-05-05 11:23:18 -04:00
Kevin O'Connor
1f11c171c7 thermistor: Add Honeywell 100K and MGB18 thermistor definitions
Add two additional thermistors (as suggested by Tim Miller).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-30 16:08:17 -04:00
Kevin O'Connor
461390ac87 config: Add exaple generic-rumba.cfg config file
Add config file for the RUMBA board (from config provided by Tim
Miller).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-30 15:48:14 -04:00
Kevin O'Connor
15248706ae chelper: Move the host C code to a new klippy/chelper/ directory
Move the C code out of the main klippy/ directory and into its own
directory.  This reduces the clutter in the main klippy directory.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-30 11:44:53 -04:00
Kevin O'Connor
8e1b516eb6 config: Fix typo in adc_temperature section (Ohms vs Volts)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-30 10:31:39 -04:00
Kevin O'Connor
4a8f9407b8 avr: Do not use Idle mode
The AVR chips (bizarrely) start an ADC conversion when entering Idle
mode.  This behavior can cause the ADC to be busy when a sample is
required.  Worse, if a series of events cause the cpu to enter and
leave Idle mode with a timing similar to the ADC checking rate then it
can cause the ADC to show as busy for extended periods.  This could
cause high MCU load and possibly lead to a "Rescheduled timer in the
past" shutdown.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-28 21:26:42 -04:00
Kevin O'Connor
46cf3ef145 avr: Explicitly set ADCSRA on each conversion start
Don't logically or the ADSC bit on the start of a conversion -
explicitly set the full contents of the register.  Also, clear the
ADIF flag on each write.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-25 19:13:44 -04:00
Kevin O'Connor
cf475a9a39 avr: Clean up serial port register aliases
Define unique register aliases for all of the hardware serial port
definitions.  This makes it easier to deal with the AVR chips that use
different register names.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-25 10:55:18 -04:00
Kevin O'Connor
22c49a7c3f docs: Improve FAQ update software entry (use make menuconfig ; make clean)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-25 10:29:55 -04:00
Kevin O'Connor
76bafadb71 virtual_sdcard: Add logging on start, stop, stats, and shutdown
Add additional logging to the virtual_sdcard support.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-23 18:35:15 -04:00
Kevin O'Connor
3ef7c00b73 docs: Fix internal link description in Code_Overview.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-23 18:23:39 -04:00
Kevin O'Connor
bdd26e421b toolhead: Add a SET_VELOCITY_LIMIT command
Add a command to adjust the maximum velocity, acceleration, and
junction deviation parameters.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-20 22:36:05 -04:00
Kevin O'Connor
d5dc6b785d gcode: Add minval/maxval/above/below options to get_X parsers
Add value checking to gcode parameter parsing code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-20 22:24:36 -04:00
Kevin O'Connor
8f4f5da11c fan: Add a set_shutdown_speed() method
Add a set_shutdown_speed() method so that the heater_fan code does not
need to peek into the fan object's internal members.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-20 22:16:08 -04:00
Kevin O'Connor
6d03dee104 gcode: Add a SET_GCODE_OFFSET command
The M206 command is confusing (it uses negative offsets) and isn't
very flexible.  Add a new SET_GCODE_OFFSET command to make it easier
to add virtual offsets to gcode commands.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-20 20:04:41 -04:00
Kevin O'Connor
93262919ed gcode: Rename homing_add to homing_offset
The M206 command is confusing as positive values in that command
result in negative offsets to future g-code commands.  Perform the
parameter negation in the M206 command instead of storing it that way
internally.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-20 19:46:19 -04:00
Kevin O'Connor
68864333f3 probe: Limit Z lift speed to be the same as the probing speed
When using an automatic probe, limit the Z lift speed to be no greater
than the Z probing speed.  This can reduce Z jerks during probing.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-20 14:00:41 -04:00
Kevin O'Connor
eff1c8604d klippy: Reword the error messages during config file parsing
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-20 13:38:08 -04:00
Kevin O'Connor
85e6cd865c fan: Scale fan speed requests between 0 and max_power
If the fan's max power is limited by the config, then scale speed
requests between 0 and max_power.  This makes more sense for typical
g-code fan speeds.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-20 13:15:03 -04:00
Kevin O'Connor
48e9fa04e7 toolhead: Allow max_accel_to_decel to be greater than max_accel in config
If max_accel_to_decel is greater than max_accel in the config, then
just internally limit max_accel_to_decel to max_accel.  This makes it
easier to completely disable the max_accel_to_decel feature (as it can
just be set to a high value in the config).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-20 12:50:04 -04:00
Kevin O'Connor
832c0bc017 docs: Add more hints to use /dev/by-id/ for the serial device
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-20 11:57:49 -04:00
Kevin O'Connor
6793970198 serial_irq: Add new generic/serial_irq.c code
Extract out common code from avr/serial.c, sam3x8e/serial.c, and
stm32f1/serial.c into a new generic/serial_irq.c file.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-20 11:19:37 -04:00
Kevin O'Connor
606222da5b docs: Add STM32F103 benchmarks to the Features document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-20 11:19:37 -04:00
Kevin O'Connor
add370230f stm32f1: Use generic timer_irq.c dispatch code
With the optimized timer_read_time() it is no longer necessary to
implement custom timer dispatch code - use the generic mechanism in
timer_irq.c.  This simplifies the code and provides a small
performance increase.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-20 11:19:37 -04:00
Kevin O'Connor
2bf9e27b9e stm32f1: Use different method for handling 16bit -> 32bit timer conversion
Implement 32bit timer conversion without disabling interrupts.  This
uses the 16th bit of timer_high as a rollover detection flag.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-20 11:19:37 -04:00
Kevin O'Connor
06a4753f73 stm32f1: Prefer uint32_t over uint16_t in timer.c
The ARM architecture handles 32bit values faster than 16bit values -
use uint32_t where possible.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-20 11:19:37 -04:00
Kevin O'Connor
bf4e851e21 config: Update sample-bltouch.cfg with recent probe changes
Commit e3f9ff67 changed the probe code to require a z_offset parameter
- update the config/sample-bltouch.cfg file with the new parameters.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-18 18:04:21 -04:00
Kevin O'Connor
35f3f6506b scripts: Add stm32flash to octopi-install.sh package list
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-12 13:58:30 -04:00
Kevin O'Connor
c539fed8bb docs: Add additional information to FAQ on heater checks
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-09 22:00:26 -04:00
Kevin O'Connor
b5b365289c test: Add STM32F1 compile test case
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-09 19:23:55 -04:00
Grigori Goronzy
75d5737211 Add STM32F103 port
Add a fully functional STM32F1 port, currently mostly targeting STM32F103
microcontrollers. This requires an 8 MHz XTAL. The maximum possible step rate
is around 282K steps per second.

This uses stm32flash to burn the firmware. The bootloader needs to be started
by setting BOOT0 to 1 and resetting the MCU. There is no automatic bootloader,
unlike on Arduino.

Signed-off-by: Grigori Goronzy <greg@kinoho.net>
2018-04-09 18:08:29 -04:00
Grigori Goronzy
e097b08520 config: add display support for Anet A8
Signed-off-by: Grigori Goronzy <greg@kinoho.net>
2018-04-09 16:24:14 -04:00
Kevin O'Connor
6466af6313 adc_temperature: Support defining custom sensors in the config file
Allow the user to define a custom sensor with their own set of
temperature/voltage measurements.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-09 15:44:34 -04:00
Kevin O'Connor
c463893a5e adc_temperatures: Add "PT100 INA826" sensor type
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-09 15:12:35 -04:00
Kevin O'Connor
b2caa486c5 adc_temperature: Support multiple ranges for ADC lookup
Instead of supporting a single linear range for the temperature
lookup, allow multiple ranges to be defined.  This makes the lookup
more accurate when a full lookup table is available.

Update the AD595 sensor to use the full table defined in its spec.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-09 15:06:53 -04:00
Kevin O'Connor
75b89f5261 thermistor: Fallback to using beta if Steinhart-Hart c3 is negative
If the c3 coefficient is negative it can cause the adc calculations to
fail.  The c3 shouldn't be negative in practice, so fallback to a
simple beta calculation in that case.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-09 12:35:18 -04:00
Kevin O'Connor
8c8261ba80 thermistor: Add support for defining custom thermistors
Add the ability to define a new thermistor type in the config file.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-09 12:17:39 -04:00
Kevin O'Connor
f8a28401c0 config: Update indentation of display section in example-extras.cfg
Use the same indentation as the other sections.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-09 12:02:23 -04:00
Kevin O'Connor
97f30765a1 docs: Update installation document for OctoPrint 1.3.7
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-09 11:39:36 -04:00
Arkadiusz Gluszyk
f616a88b15 Adjusted Tronxy X5s settings
Signed-off-by: Arkadiusz Gluszyk <agluszyk@cs.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-09 11:24:31 -04:00
Kevin O'Connor
7c5f9ee458 config: Add display section to default Creality CR10s config
The CR10s uses a "12864" type display on the standard RAMPS pins.
Reported by @jm493.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-08 11:14:48 -04:00
Kevin O'Connor
460cc88f3d pid_calibrate: Make sure to unregister new control class on error
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-06 11:39:24 -04:00
Kevin O'Connor
06d73207e7 heater: Move Thermistor and Linear to their own files in extras/
Move the Thermistor code to a new thermistor.py module.  Move the
Linear code to a new adc_temperature.py module.  This simplifies the
heater.py code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-04 23:14:55 -04:00
Kevin O'Connor
0fc4f0946e heater: Move adc logic into Thermistor class
The Thermistor (and Linear) class should handle all the details of
reading the ADC values and converting them to temperatures.  So, move
that logic out of the Heater() class.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-04 23:14:33 -04:00
Kevin O'Connor
7e78b2665e heater: Merge ThermistorBeta class into Thermistor class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-04 23:13:55 -04:00
Kevin O'Connor
aed958eb5c heater: Add PrinterHeaters class that stores all sensors and heaters
Add a PrinterHeaters class that can stores references to available
temperature sensors and stores references to instantiated heaters.

Add a extras/heater_bed.py file and delay instantiation of the
heater_bed object.  This allows the heater.py module to be imported
earlier during the setup phase, and allows the PrinterHeaters class to
be available for registering sensors and heaters.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-04 23:13:53 -04:00
Kevin O'Connor
4eeb43b191 pins: Remove module level get_printer_pins() and setup_pin() functions
Most callers did a lookup of the pins module via
printer.lookup_object("pins").  Use that as the standard method and
remove these less frequently used methods.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-04 12:26:39 -04:00
Kevin O'Connor
a4439b93b7 toolhead: Limit junction speed of short moves
The existing junction algorithm limits the speed between two moves by
determining the maximum speed an arc between those two moves would
have if the cetripetal acceleration of that arc did not exceed the
printer's maximum acceleration.

However, should the slicer send an actual arc to the printer, then the
existing junction algorithm would not impose any significant limit on
the travel speed of that arc.  This would permit the head to travel in
a circle at high velocity and with a greater centripetal acceleration
than the printer's maximum acceleration.  To avoid this, impose a
limit on the junction velocity of short moves so that an approximate
centripetal acceleration of that move does not exceed the move's
acceleration limit.

Suggested by Michael Barbour.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-03 13:35:10 -04:00
Kevin O'Connor
5e060c3c65 bed_tilt: Apply bed_tilt_calibrate settings to current session
Apply the bed tilt settings immediately after finding them.  This
makes it easier for users to perform automatic tilt calibration at the
start of every print.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-03 13:18:53 -04:00
Kevin O'Connor
0f1a142779 extruder: Log SET_PRESSURE_ADVANCE changes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-03 13:18:53 -04:00
Kevin O'Connor
bb8926d67a klippy: Automatically clear rollover_info on each restart
Automatically clear the information printed at the start of each log
file rollover on a klippy internal restart.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-04-03 13:18:52 -04:00
Michael Barbour
a301713361 extruder: Add SET_PRESSURE_ADVANCE command.
Signed-off-by: Michael Barbour <barbour.michael.0@gmail.com>
2018-04-03 00:00:41 -04:00
Kevin O'Connor
bee179eab4 docs: Update release notes for v0.6.0 release
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-31 14:04:39 -04:00
Kevin O'Connor
039bb9f10f docs: Add Patreon link to FAQ page
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-31 13:55:41 -04:00
Kevin O'Connor
b0b4bc8958 heater: Add some comments to the thermistor math
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-29 16:40:26 -04:00
Kevin O'Connor
a6553538e6 docs: Update G-Codes.md with recent output_pin changes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-28 15:11:10 -04:00
Kevin O'Connor
019666a6f6 docs: Add a section on adding new host modules to Code_Overview.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-28 13:12:41 -04:00
Kevin O'Connor
7579b9671b stepstats: Add documentation clarification
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-23 10:51:11 -04:00
Kevin O'Connor
99f3c99238 display: Round temperature and position to nearest whole number
The "%d" formatting truncates a floating point number - use "%.0f" to
show a rounded number.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-19 15:17:53 -04:00
Kevin O'Connor
aba04bf3bd display: Remove unneeded semicolons from file
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-19 15:16:01 -04:00
Kevin O'Connor
f5c67baac2 docs: Recommend running PID_CALIBRATE in Config_checks.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-18 12:43:41 -04:00
Kevin O'Connor
973ef97143 pid_calibrate: Move PID calibration logic from heater.py to new file
Drop support for M303 and PID_TUNE, and replace it with a new
PID_CALIBRATE command.  Move the logic for this command from heater.py
to a new pid_calibrate.py file in the extras/ directory.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-18 12:02:30 -04:00
Kevin O'Connor
310cdf88cc config: Remove tabs from printer-wanhao-duplicator-i3-v2.1-2017.cfg
Remove tabs from example config file and replace with spaces.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-18 11:44:56 -04:00
Kevin O'Connor
5c05a24947 docs: Fix typo in M220 description in G-Codes.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-18 11:44:56 -04:00
Kevin O'Connor
c93dad8eba config: Update generic-cramps.cfg with P9_23 machine enable
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-18 10:33:40 -04:00
Kevin O'Connor
fb3065cfa7 config: Change pullup_resistor to 2000 in generic-cramps.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-17 14:18:49 -04:00
Kevin O'Connor
e3f9ff6701 probe: Add z_offset parameter
Move the probe_z_offset parameter from delta_calibrate and
bed_tilt_calibrate to a z_offset parameter within the probe config
section.  It's easier to understand the z offset setting when it is in
the probe config section.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-17 14:07:15 -04:00
Kevin O'Connor
c95cc3fb66 bed_tilt: Take into account the XY position used with z_virtual_endstop
If a z_virtual_endstop is in use, then record the last XY position
that is used when the Z is homed.  Use that XY position to report what
change is needed to the z position_endstop.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-17 13:47:31 -04:00
Kevin O'Connor
1dda4628a0 bed_tilt: Require at least 3 probing points for bed_tilt_calibrate
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-17 13:47:31 -04:00
Kevin O'Connor
36612fd544 probe: Default z_position to the configured minimum position on Z axis
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-17 13:47:31 -04:00
Kevin O'Connor
ef8c464d97 output_pin: Move pwm and digital output pins to new module in extras/
Rename the digital_output, pwm_output, and static_pwm_output config
sections to output_pin and move to a new module in the extras/
directory.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-17 13:46:36 -04:00
Kevin O'Connor
66eefa1da8 static_digital_output: Add static_digital_output section to extras/
Move the code for the static_digital_output config section from
chipmisc.py to a new file in the extras/ directory.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-17 13:06:51 -04:00
Kevin O'Connor
e78377eebd replicape: Add config controls for the servo[01]_enable lines
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-17 12:55:48 -04:00
Kevin O'Connor
451f7d5672 gcode: Position returned by M114 should be relative to last G92
It looks like OctoPrint is expecting the result from M114 to be
relative to the last G92 command.  Also, introduce GET_POSITION to
report the actual location that the printer is at.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-15 20:00:51 -04:00
Kevin O'Connor
ef820d98f6 docs: Add "will heaters be turned off on a crash" item to FAQ
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-13 11:36:45 -04:00
Kevin O'Connor
9dfe612516 verify_heater: Provide additional information on a heater error
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-12 23:31:17 -04:00
Kevin O'Connor
830cfc5414 klippy: Rework starting error message
Commit 9bc4239e now emphasizes the first line of a multi-line error
message, so rework startup_message to conform to that.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-12 23:15:22 -04:00
Kevin O'Connor
45afa04578 probe: Add some hints for common errors during PROBE
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-12 23:00:50 -04:00
Kevin O'Connor
9bc4239e9c gcode: On a multi-line error message, report the first line twice
Report the first line of a multi-line error message twice - once as
part of the informational content, and once with the "!!" error
prefix.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-12 22:56:31 -04:00
Kevin O'Connor
3a1cdc7d70 virtual_sdcard: Fix typo in seek error handling
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-12 22:36:39 -04:00
Kevin O'Connor
3a75748762 config: Reword the min_temp/max_temp description in example.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-12 14:37:02 -04:00
Kevin O'Connor
e336c24665 heater: Allow min_temp to go below zero
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-12 14:36:45 -04:00
Kevin O'Connor
849f4ed25f verify_heater: Scale hysteresis duration check
If a heater falls out of the target range, accumulate the temperature
differences to determine if an error should be raised.  This should
make it less likely to report an error for heaters that drift slightly
out of range, and it should make error reporting faster for heaters
that rapidly fall out of range.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-11 19:21:32 -04:00
Kevin O'Connor
57d342b455 verify_heater: Change default hysteresis to 10 degrees
A default of 4 degrees and 10 seconds may be too aggressive - change
the default to 10 degrees and 15 seconds.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-11 13:29:28 -04:00
Kevin O'Connor
5208fc38ed verify_heater: Add initial support for verifying heaters and sensors
Add runtime checks to heaters and temperature sensors to check for
possible hardware faults.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-11 00:49:11 -05:00
Kevin O'Connor
b549c3927e klippy: Allow external callers of try_load_module()
It can be useful to automatically pull in a module in the extras/
directory.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-11 00:04:30 -05:00
Kevin O'Connor
e53a589ac3 docs: Add SET_DUAL_CARRIAGE command to G-Codes.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-10 20:22:13 -05:00
Kevin O'Connor
4d48c111d8 cartesian: Initial support for dual carriages
Add support for additional carriages on cartesian printers.  This is
used by some printers to handle multiple extruders.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-09 10:26:21 -05:00
Kevin O'Connor
6c1e1dcc8d display: Use separate hd44780 screen drawing
Separate out the hd44780 screen drawing from the st7920 code.  Use a
layout that takes advantage of the 20 columns.  Add custom hd44780
fonts.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-08 22:44:40 -05:00
Kevin O'Connor
ddcf9a7ff7 docs: Add Tx command to G-Codes.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-08 14:40:26 -05:00
Kevin O'Connor
05ec7ca7ff docs: Add a G-Codes.md file with the list of available commands
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-08 14:11:20 -05:00
ghandye
ef0c80af51 config: Add working printer configuration for Wanhao Duplicator i3 v2.1
Working printer configuration for a Wanhao Duplicator i3 v2.1 and its
clones, including Monoprice Maker Select and Cocoon Create. Includes a
working config for the st7920-based front panel LCD.

Signed-off-by: Andy Ellsworth <andy+github@dar.net>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-08 10:26:21 -05:00
christian mock
d997821e58 config: Add LCD configuration to printer-trony-x5s-2017.cfg
I've added the LCD configuration for the Tronxy X5S printer and its
Melzi board and 128x64 LCD. This is tested and works.

I've also added the pins for the encoder, but that is untested.

Signed-off-by: christian mock <cm@tahina.priv.at>
2018-03-07 15:56:07 -05:00
Kevin O'Connor
385e6b67d9 config: Add display section to creality cr10 config
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-07 13:40:33 -05:00
Marcio Teixeira
04602b2470 display: Choose arrow character based on display
Choose the arrow character based on whether the display is ST7920 or
HD44780.

Signed-off-by: Marcio Teixeira <marcio@alephobjects.com>
2018-03-06 14:01:10 -05:00
cruwaller
923954772f homing: allow to disable homing retract
Homing retract can be disabled by setting homing_retract_dist to 0.

Signed-off-by: Petri Honkala <cruwaller@gmail.com>
2018-03-06 13:45:48 -05:00
Kevin O'Connor
5a16863465 config: Fix hd44780 typo in rambo and ramps example configs
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-06 13:15:09 -05:00
Kevin O'Connor
08a5f8a5ff display: Add initial support for LCD screens attached to an MCU
Add support for displaying basic status information on ST7920 and
HD44780 based LCDs that are attached directly to a micro-controller.

Signed-off-by: Marcio Teixeira <marcio@alephobjects.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-06 11:30:46 -05:00
Kevin O'Connor
43ac56766e serialqueue: Support sending messages at a background priority
Support low-priority message transmits.  This may be useful for bulk
commands that should be delayed util the comms are otherwise idle.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-06 11:30:41 -05:00
Kevin O'Connor
afc9bcf27b lcd_hd44780: Add micro-controller code for the HD44780 LCD chip
Add support for passing messages to an HD44780 chip via a 4-bit
bit-banging interface.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-06 11:30:34 -05:00
Kevin O'Connor
9140f36d99 lcd_st7920: Add micro-controller code for the ST7920 LCD chip
Add support for passing messages to an ST7920 chip via a SPI
bit-banging interface.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-06 11:30:30 -05:00
Kevin O'Connor
fa07be9346 mathutil: Move coordinate_descent() to new file
Add a new python file (mathutil.py) and move the coordinate_descent()
code to it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-04 09:56:50 -05:00
Kevin O'Connor
7290ed5f73 clocksync: Fix multi-mcu frequency adjustments with long moves
Commit 02ae2ab9 had a typo causing the new long move handling logic to
not take effect.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-03 21:54:25 -05:00
Kevin O'Connor
fc60bda4d1 virtual_sdcard: Remove trailing '*' checksum indicator from M23 command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-02 11:58:00 -05:00
Kevin O'Connor
82a65e9f4a docs: Note the use of the virtual_sdcard feature
Note that virtual_sdcard helps on slower machines.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-03-02 11:28:01 -05:00
Kevin O'Connor
b139a8561f serialhdl: Add a wrapper around the results of lookup_command()
Add a lookup_command() method to the SerialReader class that provides
a wrapper that stores the serial and commandqueue references.  This
makes it easier to run the send() method.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-27 21:06:16 -05:00
Kevin O'Connor
8518da9824 config: Move description of phase adjusted endstops to config-extra.cfg
Move the description of stepper phase adjusted endstops to a new
section in config-extra.cfg.  This keeps the main example config file
a little more concise.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-27 09:34:25 -05:00
Kevin O'Connor
656cb2c417 build: Use git describe --always
Add --always flag to "git describe" command to get a build identifier
even if one checks out the repo with a depth parameter that prunes out
the last tagged version.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-26 21:50:05 -05:00
Kevin O'Connor
239c1ad5c9 serialqueue: Don't clear must_exit flag at start of pollreactor_run()
Avoid a timing race where must_exit is set before pollreactor_run() is
started.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-26 16:21:10 -05:00
Kevin O'Connor
7733e1d832 test: Add travis_fold markers to build output
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-26 15:21:39 -05:00
Kevin O'Connor
99b4122901 test: Add compile tests for at90usb1286 and atmega1284p chips
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-26 15:03:05 -05:00
Kevin O'Connor
28d70eaf0c test: Update travis build to include a basic klippy host test
Move the travis installation steps from the travis-build.sh script to
a new script (scripts/travis-install.sh).  Move the travis-build.sh
script to the scripts/ directory as well.

The data dictionaries built in the compile tests are useful during
host software testing, so run all the compile tests sequentially in a
single VM and save the data dictionaries after each build.  Also,
build all the config files found in the test/configs/ directory.

Create the python virtualenv environment during the install phase and
invoke the klippy.py host software in the build phase to perform a
basic host software sanity check.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-26 14:58:49 -05:00
Kevin O'Connor
5d635c5252 config: Use .0025 as the default z step_distance in sample configs
Don't use tiny step distances on the Z as that could cause a surprise
to users that copy the config without updating all the settings.  (A Z
step distance that is too small would cause a high motor velocity.)  A
step distance of .0025 is very popular in practice, so change the
default example configs to use that.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-25 16:00:55 -05:00
Kevin O'Connor
22d7e48aa2 config: Add an example config file that uses multiple MCUs
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-25 12:59:09 -05:00
Sebastian Meyer
a6b0649cb1 test: Add travis CI
Signed-off-by: Sebastian Meyer <ich@sebmeyer.de>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-25 10:54:59 -05:00
Sebastian Meyer
58dd6d9106 build: Link objects ahead of libraries to avoid failures on some platforms
Signed-off-by: Sebastian Meyer <ich@sebmeyer.de>
2018-02-25 10:39:06 -05:00
Douglas Hammond
d139389267 avr: Add at90usb646 support
Signed-off-by: Douglas Hammond wizhippo@gmail.com
2018-02-25 10:23:00 -05:00
Kevin O'Connor
e99c0f53f8 graphstats: Support selecting an mcu to graph from the command-line
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-19 23:12:14 -05:00
Kevin O'Connor
02ae2ab984 clocksync: Rework multi-mcu adjust to better handle long moves
The multi-mcu clock syncing code relies on the ability to periodically
update the mcu clock adjustments.  If a series of very long moves are
submitted then it is possible the adjustments could become unstable.
For example, if an adjustment is made to reduce a clock error over the
next couple of seconds, but it is applied to a longer period because
the next move lasts many seconds, then this would result in a bigger
adjustment for the following move, which would result in an even
bigger error when that move lasts many seconds.  This can repeat until
the system destabilizes.

Check for cases where the print_time is far in the future of the
current estimated print time and average over a longer period in that
case.  That should reduce the possibility of the adjustment code
becoming unstable.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-19 22:13:28 -05:00
Kevin O'Connor
97f7735c6a graphstats: Set size on frequency graph
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-18 20:42:28 -05:00
Kevin O'Connor
69486e45c1 ad5206: Warn if ad5206 enable pin is inverted
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-17 23:18:10 -05:00
Kevin O'Connor
5e8aaed41f docs: Add tips for porting to new kinematics to Code_Overview.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-17 13:48:53 -05:00
Kevin O'Connor
c128a9dfd5 probe: Increase calibration log level from debug to info
Output more information by default from the bed_tilt and
delta_calibrate commands.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-16 13:30:49 -05:00
Kevin O'Connor
6dc623b35d config: Expand homing_override description in sample-bltouch.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-13 15:29:49 -05:00
Kevin O'Connor
8fc3487a8a config: Reword description of set_position_x paramter in homing_override
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-11 15:35:10 -05:00
Kevin O'Connor
82db072151 config: Add a config snippet for the BLTouch probe
Add an example to help users with a BLTouch probe.  This is based on
information from @mediumo and @riddlez666.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-11 15:11:11 -05:00
Kevin O'Connor
41f73d0c8c config: Add a "printer-" prefix to example printer config files
Add a prefix to the example printer config files so that a sorted
directory listing shows all the samples bundled together.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-11 14:58:48 -05:00
Kevin O'Connor
08a1183a01 virtual_sdcard: Initial support for virtual sdcard
Add support for directly printing from a local file on the host.  This
may be useful if the host cpu is not fast enough to run OctoPrint
well.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-11 14:13:12 -05:00
Kevin O'Connor
f77e1b67f6 gcode: Introduce request_restart() method
Use request_restart() method instead of prep_restart() and
motor_heater_off().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-11 14:11:33 -05:00
Kevin O'Connor
11c7c110a1 gcode: Extract special cases from process_data()
Handle the unlikely case of pending commands in a new method
process_pending().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-11 14:10:09 -05:00
Dave Bacon
5abea041b4 mcu: Fix PWM static start value setup
config_setup uses ._start_value instead of ._static_value which isn't defined.

Signed-off-by: Dave Bacon <drb.github@mrbacon.com>
2018-02-10 13:00:22 -05:00
Dave Bacon
268d1cb27c docs: Update Config_checks.md
Navigation should be to the temperature tab to find the Tool temperature box.

Signed-off-by: Dave Bacon <drb.github@mrbacon.com>
2018-02-07 22:24:32 -05:00
Kevin O'Connor
561c84dd93 pins: Warn on invalid pin format
Raise an error if a pin description isn't formatted correctly.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-07 16:09:25 -05:00
Kevin O'Connor
955d940b60 bed_tilt: Negate parameters reported by bed_tilt_calibrate
The bed_tilt_calibrate command determines the tilt of the bed.
However, we need to report the tilt compensation which is the negative
of the bed tilt.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-05 14:52:38 -05:00
Kevin O'Connor
6ea36de9f2 config: Add a pointer to example-extras.cfg at the end of example.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-05 14:34:05 -05:00
Kevin O'Connor
e0cedfb853 heater: Report stats whenever the heater is active
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-05 13:55:59 -05:00
Kevin O'Connor
0a5b07f9da klippy: Allow any stats producer to determine when stats are needed
Instead of using the toolhead class to determine if stats should be
reported, allow every printer object with a stats() callback to
determine if stats are needed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-05 13:52:05 -05:00
Kevin O'Connor
08874b9c91 clocksync: Respond faster to clock changes
Average clock sync times over approximately 30 seconds instead of 120
seconds so that the clock prediction responds to changes faster.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-05 12:33:29 -05:00
Kevin O'Connor
8121a4a29f avrsim: Rework pacing mechanism
Rework the pacing mechanism to make it more stable.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-05 11:38:13 -05:00
Kevin O'Connor
d1c209c689 graphstats: Fix multi-mcu parsing with reordered stats
The mcu stats (that contain a prefix) may occur before some other
stats - make sure to only apply the stats prefix to those stats that
need it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-03 18:43:52 -05:00
Kevin O'Connor
f4bfce260a klippy: Introduce load_config_prefix() for modules that take parameters
Use both load_config() and load_config_prefix() functions when
dynamically loading a module from the extras directory - if the config
section name has parameters in it then use load_config_prefix().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-03 12:53:11 -05:00
Kevin O'Connor
7e3adde542 klippy: No need to store fileconfig in main printer object
Just pass the fileconfig reference to the ConfigWrapper instances.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-03 12:17:42 -05:00
Kevin O'Connor
33bdc2fc32 util: Call set_nonblock() in create_pty()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-02 18:32:03 -05:00
Kevin O'Connor
0b76864453 gcode: Make sure need_ack is always restored on run_script()
Restore need_ack even on a G-Code exception.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-02 18:32:03 -05:00
Kevin O'Connor
56bfb3280a gcode: Keep reading input to check for M112 (emergency stop)
OctoPrint (and other software) will sometimes send additional commands
even if the previous command has not yet responded with an "ok".
Change the g-code input reading code to keep reading input so that an
M112 can be detected (and processed out-of-order).  To avoid the
extreme case where one writes an entire g-code file to the input
without any pacing, disable the input reading if more than 20 commands
are pending.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-02 11:00:46 -05:00
Kevin O'Connor
3ddbd34a7c gcode: Propagate errors from run_script()
If the script being run raises an error, then stop running that script
and return the error to the caller.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-01 12:18:47 -05:00
Kevin O'Connor
67f9c4948d gcode: Ack even empty lines
An empty input line should still return an "ok" message.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-02-01 11:03:49 -05:00
Kevin O'Connor
7d3600f918 docs: Add github issue template
Add an issue template requesting the klippy log file.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-31 14:30:05 -05:00
Kevin O'Connor
21df21b7af fan: Clarify hardware_pwm and allow cycle_time to be set on software pwm
Specify hardware pwm cycle times using the same method as software pwm
(in seconds, not clock ticks).  Allow the fan code to be configured
with an explicit cycle time even when using software pwm.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-29 13:08:15 -05:00
Kevin O'Connor
b7b216af7f avr: Round hardware pwm clock ticks to nearest divisor
Instead of rounding down to the nearest supported pwm divisor, round
to the nearest divisor.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-29 11:54:15 -05:00
Kevin O'Connor
077a56c2ca mcu: Default the restart method to 'command' on non-serial ports
If the mcu supports command restarts and it does not appear to use a
real serial port, then default the restart method to 'command'.  This
is a better default on boards with native USB support.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-29 10:25:25 -05:00
Kevin O'Connor
a67306c76b msgproto: Support default values in get_constant() calls
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-29 10:10:27 -05:00
Kevin O'Connor
6eefbe5e30 heater: Add stats reporting
Report the current temperature, current pwm setting, and target
temperature as statistics in the log.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 23:37:56 -05:00
Kevin O'Connor
650d55d7b2 docs: Remove bed level probe from todo
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 20:36:04 -05:00
Kevin O'Connor
03bcae8a98 config: Add SeeMeCNC Rostock Max V2 Delta Printer Config
As provided by @FEsmondeWhite

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 20:31:15 -05:00
Kevin O'Connor
1a67902858 homing_override: Allow moves prior to homing an axis
Add support for disabling homing checks via the homing_override
mechanism.  This may be useful to move an axis prior to homing it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 12:19:26 -05:00
Kevin O'Connor
01bb4b291e probe: Create a probe:z_virtual_endstop pin
Create a virtual pin that may be used as the z endstop pin on
cartesian printers that use the probe in place of a z endstop.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 12:19:26 -05:00
Kevin O'Connor
e38c7df064 probe: Support activate/deactivate scripts on each probe
Allow a set of g-code scripts to be run on each probe invocation.
This may be useful for probes that need to be setup before they are
useful (eg, with servo actuated probes).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 12:19:26 -05:00
Kevin O'Connor
3001a089c0 homing_override: Add basic support for running custom g-code on G28
Allow users to override the behavior of G28 using a new
"homing_override" config section.  This may be used on printers that
require specific steps during the homing process.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 12:19:26 -05:00
Kevin O'Connor
39d62556b1 bed_tilt: Add support for automatic bed tilt move transformation
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 12:19:26 -05:00
Kevin O'Connor
434341d074 delta_calibrate: Add initial support for a DELTA_CALIBRATE command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 12:19:26 -05:00
Kevin O'Connor
ce9db609ad probe: Initial support for Z-Probe hardware
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 12:19:26 -05:00
Kevin O'Connor
6c252d30f5 delta: Allow the user to specify a minimum z position
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 12:19:26 -05:00
Kevin O'Connor
978777f09f replicape: Move the replicape code from chipmisc.py to extras directory
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 12:19:26 -05:00
Kevin O'Connor
5db84779c6 ad5206: Move the ad5206 code from chipmisc.py to extras directory
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 12:19:26 -05:00
Kevin O'Connor
1e3a03fbee servo: Move the servo code from chipmisc.py to extras directory
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 12:19:26 -05:00
Kevin O'Connor
01a89b951a multi_pin: Move the multi_pin code from chipmisc.py to extras directory
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 12:19:26 -05:00
Kevin O'Connor
d166d1f692 fan: Move fan code to extras directory
The print cooling fan and printer heater_fan are independent modules
that can reside in the extras directory.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 12:19:26 -05:00
Kevin O'Connor
9399911490 klippy: Add support for dynamic loading of python modules
Check if a config section matches a python filename in the
klippy/extras/ directory.  If it does, load that python code to handle
the config section.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 12:19:26 -05:00
Kevin O'Connor
d3665699f1 klippy: Support generic printer_state() and stats() callbacks
Instead of hardcoding which objects are called on state transitions,
allow any "printer object" to be invoked if it has a printer_state()
method.  Convert connect, ready, shutdown, and disconnect callbacks to
this mechanism.

Similarly, allow all printer objects to provide a stats() callback.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 12:19:26 -05:00
Kevin O'Connor
81013ba5c8 klippy: Add access methods and avoid peeking into the printer classes
Add get_reactor(), lookup_object(), lookup_module_objects(), and
set_rollover_info() to the main Printer class so that callers do not
need to peek into the class' members.  Similarly, add get_printer()
and get_name() methods to the ConfigWrapper class.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 12:19:26 -05:00
Kevin O'Connor
f0a754e496 gcode: Add a run_script() helper method to run g-code scripts
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 12:19:26 -05:00
Kevin O'Connor
51e1085dbc gcode: Extend register_command() so that it can also unregister a command
If register_command() is passed None as the function to call, then
treat it as an unregister command request.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 12:19:26 -05:00
Kevin O'Connor
47bb8b7cc2 graphstats: Fix for print_stall detection
The print_stall logic could cause large portions of the graph to show
up as 100% host utilized.  Rework the logic to avoid that.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 10:50:52 -05:00
Kevin O'Connor
33893ece1d logextract: Fix error in config file name print
Fix typo causing an error during the printing of the config file name.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-28 10:50:43 -05:00
Kevin O'Connor
1b3ef8a8fb config: Update anycubic-i3-mega-2017.cfg with stepstick fan
Based on conversation with Marcin Jedliński.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-22 11:28:20 -05:00
Kevin O'Connor
09eec3710d extruder: Add support for extruders sharing the same heater
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-21 23:25:11 -05:00
Kevin O'Connor
6fa95e12ea config: Update wanhao-duplicator-i3-plus-2017.cfg heater settings
Update config based on discussion with Max Holden and Josh Sutinen.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-21 18:52:14 -05:00
Kevin O'Connor
7a11b78fd4 config: Update anycubic-i3-mega-2017.cfg heater settings
Updates to heater settings.  Based on discussion with @bartolomeus and
Marcin Jedliński.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-21 18:47:34 -05:00
Kevin O'Connor
3d26bf6635 logextract: Better handle the case of a missing config section
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-21 15:56:13 -05:00
Kevin O'Connor
08444a8b89 docs: Try to make the klippy.log bug reporting more clear
Emphasize that the log file needs to be attached to the issue.
Encourage M112 to be issued on every bug report.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-21 13:08:31 -05:00
Kevin O'Connor
84c623e705 config: Add example generic-mini-rambo.cfg config file
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-17 01:00:20 -05:00
Douglas Hammond
72074078f9 config: Add tronxy x5s config
Signed-off-by: Douglas Hammond <wizhippo@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-16 22:20:55 -05:00
Kevin O'Connor
1d11c4e74d gcode: Use reset_last_position() from cmd_G28()
Use the existing reset_last_position() code in cmd_G28() instead of
manually implementing the logic.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-16 21:46:42 -05:00
Kevin O'Connor
f8bb383e9a extruder: Remove unused variable self.config
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-16 21:40:53 -05:00
Cymen Vig
8e5d228555 Add a CR-10S configuration file.
Signed-off-by: Cymen Vig <cymenvig@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-16 18:29:45 -05:00
Kevin O'Connor
6770aa96c9 graphstats: Use alpha transparency when plotting the stats
Use an alpha transparency on each of the stats, so that it is possible
to see how the values overlap.

Also, always enable the "awake time" stat - just use a lower alpha
transparency for it.

Also, explicitly set the graph size as some version of matplotlib have
a different default.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-14 10:46:48 -05:00
Kevin O'Connor
896c31fd05 graphstats: Fix filtering of normal buffer_time runoff stats
Update the mechanism to filter out cases where buffer_time is below
MAXBUFFER so that it works with the statistics currently generated.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-14 10:16:16 -05:00
Kevin O'Connor
054cbbe094 docs: Add a FAQ item on steps to upgrade the software
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-12 18:38:49 -05:00
Kevin O'Connor
0d8ddcadbb toolhead: Improve tracking of print_stall
The previous code increases print_stall if a move is proactively
flushed due to buffer_time_low and a follow up move is ready to send
before the existing moves are fully retired.  However, this would not
track the case where a move is proactively flushed and it takes an
extended amount of time to get sufficient moves to refill the queue.

Change the code so that print_stall increases anytime a new move is
queued after a proactive flush and there are existing moves not yet
fully retired.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-12 16:56:31 -05:00
Kevin O'Connor
d3eda337a9 logextract: Fix parsing of "is_shutdown" messages
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-12 16:44:21 -05:00
Kevin O'Connor
138f3c2646 config: Update avrsim.cfg to use unique pins
Commit 3833669c added checking that each pin is used once in the
config.  This exposed an error in the avrsim.cfg testing config -
analog1 conflicts with ar25.  Use analog7 to avoid this.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-12 16:44:21 -05:00
Kevin O'Connor
f1222565b8 docs: Update Debugging.md with information on logextract
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-11 13:48:40 -05:00
Kevin O'Connor
5caff594c5 heater: Report PID tuning results via the g-code terminal
Determine the median period from the pin tuning tests and use that to
recommend a set of PID parameters.  Report the results over the g-code
terminal.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-10 22:58:12 -05:00
Kevin O'Connor
5a68c636da chipmisc: Enable replicape steppers dynamically
Enable all the steppers via the shift registers when the first stepper
is enabled, and disable all the steppers once all steppers are
disabled.  This avoids having to enable all the steppers all of the
time.  Note that, this support is independent from the current control
for each stepper, which is still done individually.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-10 19:30:57 -05:00
Kevin O'Connor
02b141ac43 chipmisc: Fix replicape enable line setup
The enable lines are not one per stepper - instead there are 5
distinct enable settings.  Handle them properly.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-10 19:30:51 -05:00
Kevin O'Connor
47e458210e chipmisc: Support start values on pca9685 pins
Default the pca9685 enable line on if any of the pins attached to it
have a non-zero start value.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-10 19:30:47 -05:00
Kevin O'Connor
3833669c3a pins: Check if the same pin is referenced via different aliases
Change the update_command() call to use a new PinResolver class.  In
that new class, verify that the same pin isn't referenced in two
different parts of the config using different aliases for the pin.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-10 19:26:06 -05:00
Kevin O'Connor
df6528715e stepper: Automatically detect and handle shared stepper enable lines
It's common for multiple steppers to use the same stepper enable
line.  Detect this and only create a single digital_out oid on the
micro-controller.

Also, prohibit any other pin from being used multiple times in the
config file.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-10 19:10:26 -05:00
Kevin O'Connor
265b9097d5 pins: Rename parse_pin_desc() to lookup_pin()
Always set the pin_params['type'] field on a pin lookup.  Rename
parse_pin_desc() to lookup_pin() to make the change more clear.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-10 14:21:25 -05:00
mjedlinski
a6025686b6 config: Config file for Anycubic i3 Mega
Signed-off-by: Marcin Jedliński <mjedlinski@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-08 23:11:41 -05:00
Kevin O'Connor
ed80b92b59 mcu: Setup static values via setup_start_value() call
Add an "is_static" setting to setup_start_value() and remove the
setup_static() method.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-08 21:21:30 -05:00
nerobot
45e65580f7 config: Create creality-cr10
Signed-off-by: Steven Daglish <s.c.daglish@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-08 18:48:03 -05:00
Kevin O'Connor
f6f174ab36 extruder: Fix pressure advance on tiny moves with over extrusions
The extruder check_move() code will permit moves with huge extrusion
ratios if the amount extruded is tiny.  (Some slicers emit these silly
moves - they are allowed because they are harmless.)  Unfortunately,
the pressure advance code did not handle the huge extrusion ratios -
it would result in a massive, near instantaneous, extruder move in an
attempt to build pressure in the extruder.  Catch this case and limit
the impact to the pressure advance code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-08 14:39:19 -05:00
Kevin O'Connor
0cf06ee69a docs: Note pressure_advance over 0.20 is unlikely to improve quality
Update the pressure advance tuning document to note that 0.20 is
likely the ceiling of a useful pressure advance setting.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-08 11:07:26 -05:00
Kevin O'Connor
ed9dee4602 mcu: Only report an MCU timeout once
Don't flood the log with timeout messages.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-08 10:55:37 -05:00
tilsonm
f183871e28 config: Adopt Anet A8 cfg, Anet v1.0-1.5 Boards
This configuration file should work as a base for Anet A8 printers
using the stock Anet v1.0-1.5 boards from late 2016-2017, which are
based around the AVR atmega1284p. Minor tweaks may be required to such
things as /dev/serial/by-id/, thermistor sensor types, and offsets for
carriage and bed.

Signed-off-by: Matt Tilson <tilsonm09@gmail.com>
2018-01-07 22:22:08 -05:00
Kevin O'Connor
d891baa860 avr: Clear the TCNT1 register on timer startup
Just to be safe, clear the TCNT1 register during init.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-07 22:22:08 -05:00
Kevin O'Connor
f6cd51bfb7 avr: Clear the ADCSRA/ADCSRB registers on ADC init
When initializing the ADC, explicitly clear the registers (instead of
logically or'ing them with their previous values).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-07 22:13:39 -05:00
Kevin O'Connor
83e9e92b9a docs: Add a table of contents to the FAQ
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-05 11:42:00 -05:00
Kevin O'Connor
9e4eb050f9 config: Note the need to flash a bootloader on the Melzi
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-05 10:23:58 -05:00
Kevin O'Connor
5a86391f78 avr: Only use the avrdude "wiring" protocol on atmega2560 devices
It appears the most common type of avrdude protocol for devices other
than the atmega2560 is the "arduino" protocol.  Update the build to
select a different protocol based on the avr processor type.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-05 10:02:15 -05:00
Kevin O'Connor
29c83cec22 docs: Update installation document with pointers to FAQ
Add some pointers to the FAQ for common pitfalls during installation.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-04 13:29:17 -05:00
Josh Sutinen
db927bd822 config: Added Wanhao Duplicator i3 Plus configuration
The Wanhao Duplicator i3 Plus (aka Maker Select Plus,
Microcenter Powerspec Plus, and others) uses an
atmega2560 AVR. The config is based on generic-ramps.cfg
with pin numbers updated from the official Wanhao Marlin
sources at https://github.com/garychen99/Duplicator-i3-plus

Signed-off-by: Josh Sutinen <josh@damagedgoodz.net>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-04 12:10:01 -05:00
Chris Lee
cb969527bc config: Update TAZ6 defaults for hotend
Use values from Lulzbot fork of Marlin.

Signed-off-by: Chris Lee <clee@mg8.org>
2018-01-04 10:58:47 -05:00
Kevin O'Connor
3ab9a8d26c gcode: Add support for M221 (set extrude factor) g-code command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-03 17:12:31 -05:00
Kevin O'Connor
5db4886c9c gcode: Add support for M220 (set speed factor) g-code command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-03 17:12:26 -05:00
Andy Silverman
b22a81cd34 heater: Added config for heater PWM cycle time.
Added the pwm_cycle_time option for heater config sections.  Defaults
to previous value of 0.100 seconds, but may be reduced to shorter times
at the expense of MCU workload and possible MOSFET heating, depending on
controller design.  Some printers that need bed PID to be enabled,
notably the Felixprinters series, are known to benefit from shorter
cycle times, as the default 10hz rate results in excessive voltage
supply droop.

While this option can be used on extruder heaters as well, there
is not expected to be any particular benefit from doing so unless
the extruder heater presents a particularly large load.

Signed-off-by: Andy Silverman <andrewsi@outlook.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-03 12:32:11 -05:00
Chris Lee
9fc5506c83 config: Add Lulzbot TAZ6 printer configuration
Signed-off-by: Chris Lee <clee@mg8.org>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-03 12:10:40 -05:00
Kevin O'Connor
bba22ab7f0 heater: Provide symbolic names for pid check_busy (aka M109 / M190)
Add PID_SETTLE_DELTA and PID_SETTLE_SLOPE constants to the code to try
and make it a little more clear how the wait for temperature code
works.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-03 10:44:01 -05:00
Kevin O'Connor
a0b4cdb5c4 gcode: Don't wait for temperature if the temperature is disabled
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-03 10:33:10 -05:00
Kevin O'Connor
e4129a7e53 docs: Minor update to square.scad
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-02 21:56:29 -05:00
Kevin O'Connor
00ea3934ee logextract: Add support for extracting shutdown info on multiple mcus
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2018-01-02 21:48:25 -05:00
Kevin O'Connor
cf4c31cb88 graphstats: Add support for generating a graph of mcu frequency
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-30 18:29:58 -05:00
Kevin O'Connor
f10bd5726d graphstats: Use a smaller font in the graph legend
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-30 18:27:44 -05:00
Kevin O'Connor
7db6fa7bfc graphstats: Fix case where an Xwindows display may not be available
Matplotlib will try to open a display by default - tell it not to do
that so that it can run in batch mode on headless machines.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-30 18:26:49 -05:00
Kevin O'Connor
b05eb1e8e3 logextract: Fix handling of messages with retransmits
Properly handle the case where the original sequence number of a
message is not known.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-29 15:25:39 -05:00
Kevin O'Connor
1bdebeaebf docs: Add an initial configuration checklist document
Provide a document with basic steps that a user can run to verify that
the pins in the configuration file are set correctly.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-26 20:54:37 -05:00
Kevin O'Connor
479772ca00 docs: Add a CONTRIBUTING document
Add an initial document detailing best practices for contributing to
the document.  Add the "developer certificate of origin" document.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-24 12:33:01 -05:00
Kevin O'Connor
1d276d160f gcode: Dump internal g-code state in dump_debug()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-21 22:27:49 -05:00
Kevin O'Connor
9313e58123 gcode: Group similar G-Code commands together
Group commands by category instead of listing them in numerical
order.  This is just code movement; no code changes.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-21 20:58:25 -05:00
Kevin O'Connor
d778ae1846 build: Add gcc and binutils version to mcu data dictionary
Store the gcc and binutils versions used in the compilation of the
firmware in the firmware data dictionary.  Forward that information to
the log so it is available during debugging.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-21 20:32:10 -05:00
Kevin O'Connor
522093ef00 docs: Offer alternatives to ssh/scp/sftp
Try to make the Installation document more friendly to users not
familiar with the Linux command-line.  Offer some hints on how to
obtain ssh and how to edit the config file remotely.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-21 17:34:35 -05:00
Kevin O'Connor
d303e556ad sched: Interrupts must be disabled during setjmp() call
On the AVR platform (and possibly others) the longjmp() call will
restore the interrupt state saved during the setjmp() call.  So, the
setjmp() call must be invoked with interrupts disabled to ensure that
shutdown handling is run with interrupts disabled.  This fixes
potential corruption of the shutdown processing on AVR.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-21 12:54:33 -05:00
Kevin O'Connor
1d21bf66c6 homing: Handle speed rounding when homing speed greater than max_velocity
Commit 002dc0df added rounding to the homing speed, but it did not
work if the configured homing speed was less than the printer's
maximum velocity.  Move the speed rounding from stepper.py to
homing.py and make sure the rounded speed is less than the maximum
speed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-20 14:41:20 -05:00
Kevin O'Connor
1b07505973 chipmisc: Add multi_pin capability
Add the ability to alias multiple output pins from a single pin alias.
This makes it possible to support some cases where a single logical
output is driven by multiple output pins.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-18 21:00:06 -05:00
Kevin O'Connor
3c5649219f chipmisc: Add support for output pins set at runtime
Add the ability to define output pins that may be set at runtime with
a new SET_PIN extended g-code command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-18 20:59:07 -05:00
Kevin O'Connor
68d03e4a3e mcu: Allow both shutdown and startup values to be set for output pins
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-18 20:45:00 -05:00
Kevin O'Connor
e6e0a21b06 toolhead: Allow junction_deviation to be set to zero
Allow lookahead to be effectively disabled by setting
junction_deviation to zero.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-18 20:44:59 -05:00
Kevin O'Connor
0e0780a460 logextract: Update file comment
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-18 12:14:10 -05:00
Kevin O'Connor
9a4425c85a docs: Update square test print to contain notches on inside of square
Add additional notches and move them to the inside of the square where
they will not impact the outside perimeter test.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-17 12:18:25 -05:00
Kevin O'Connor
57c27f75ae gpiocmds: Clear SPF_NEXT_* flags on new schedule_soft_pwm_out
Properly handle the (unlikely) case that a schedule_soft_pwm_out
command is received before a previous command is fully processed,

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-16 20:21:38 -05:00
Kevin O'Connor
8d62318c5f clocksync: The clock estimate should add the rtt time not subtract it
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-16 20:21:38 -05:00
Kevin O'Connor
add528532e logextract: Rename extractconfig.py to logextract.py and add shutdown parsing
Add initial support for extracting out shutdown information from a
klippy.log file.  The shutdown dump will be reordered into the
sequence that they occurred, and timestamps/sequence numbers in the
mcu message dump will be expanded.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-16 20:21:34 -05:00
Kevin O'Connor
8944e2104d docs: Add FAQ item on AVR watchdog restart failures
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-11 18:17:14 -05:00
Kevin O'Connor
319221ee23 docs: Provide additional information on "make flash" failures
Add some additional information on "make flash" problems.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-11 17:33:29 -05:00
Kevin O'Connor
4a5801bb2e pins: Fix atmega168/328 mappings
The atmega168 and atmega328 need to define PE0 and PE1 in order to
support the 2 extra analog pins.

Also, support the arduino mappings for the atmega328.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-09 11:48:26 -05:00
Kevin O'Connor
f8acf0f54f delta: Default stepper_b/c position_endstop to stepper_a's
If the position_endstop is not set for stepper_b or stepper_c then use
the value from stepper_a.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-08 18:20:04 -05:00
Kevin O'Connor
bc5d900e61 delta: Support different arm lengths for each tower
Change the config file so that the delta arm length is specified
per-tower.  This makes it possible to support advanced calibration.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-08 18:20:04 -05:00
Kevin O'Connor
efb4a5daa1 delta: Rework actuator_to_cartesian() using trilateration
Use the formulas for trilateration (instead of the circumcenter
formulas) when calculating the position of the nozzle from the
position of the carriages.  The trilateration formula is more general
and it allows each tower to have a different arm length.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-08 18:09:19 -05:00
Kevin O'Connor
e0c947e188 mcu: Store MCU_stepper commanded_pos as a float
It's valid to consider the stepper at a position that is not on a step
interval - only the "mcu position" needs to be an integer.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-07 18:14:50 -05:00
Kevin O'Connor
3ffab763c0 stepper: Only align the stepper motor to a full step when requested
Add a new config option 'homing_endstop_align_zero' to enable the
alignment of the endstop to a stepper full step.  It's possible one
may wish to specify a homing_endstop_phase while not aligning the
endstop.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-07 17:35:19 -05:00
Kevin O'Connor
ef09ac5a7f extractconfig: Add helper script that extracts config files from a log
Add a helper script that can read a klippy.log file and extract the
printer.cfg files from it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-06 21:23:24 -05:00
Kevin O'Connor
f6d4284d5c homing: Directly interact with the kinematic class on query_endstops()
Move the query_endstop logic out of toolhead.py and into homing.py.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-06 19:13:54 -05:00
Kevin O'Connor
8d9ca6f2dd homing: Directly interact with the kinematic class when homing
Move the homing logic out of toolhead.py and into homing.py.  This
simplifies the toolhead logic and centralizes the homing code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-06 19:13:54 -05:00
Kevin O'Connor
1d6af72de5 mcu: Remove unneeded MCU_digital_out.get_last_setting() method
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-06 19:13:54 -05:00
Kevin O'Connor
2a8dd5c51f mcu: Reset the stepper step clock on init - not after each motor on
Reset the last step clock during the init phase and after each home -
this simplifies the runtime code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-06 19:13:54 -05:00
Kevin O'Connor
c78f66b8e8 mcu: Be sure all moves are completed before raising a home timeout
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-06 19:13:54 -05:00
Kevin O'Connor
b340fdcc4a homing: Make sure to clean up homing state even if homing fails
Make sure to always call MCU_endstop.home_wait() if
MCU_endstop.home_start() is invoked.  Rename
MCU_stepper.note_homing_triggered() to note_homing_end() and make sure
it is always called if MCU_stepper.note_homing_start() is invoked.

With these changes, MCU_endstop.home_finalize() is no longer needed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-06 19:13:53 -05:00
Kevin O'Connor
7785d3a87d homing: Pass list of endstops (not steppers) to the homing code
The homing code wants the list of endstops to enable during a homing
operation - it's confusing to pass the steppers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-06 18:49:14 -05:00
Kevin O'Connor
31db4cc772 mcu: Make sure steppers added to an endstop are on the same mcu
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-06 18:35:51 -05:00
Kevin O'Connor
7932de11a7 mcu: Make sure all endstop objects are disabled on a reconnect
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-06 18:35:51 -05:00
Kevin O'Connor
bc9cbc8133 gcode: Move SET_SERVO command from gcode.py to chipmisc.py
Now that commands can be registered dynamically, move the code for
SET_SERVO from gcode.py to the PrinterServo() class in chipmisc.py.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-06 18:35:51 -05:00
Kevin O'Connor
b5a41d0dd1 gcode: Rework gcode handler setup to allow dynamic command registration
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-06 18:35:51 -05:00
Kevin O'Connor
64a091fb98 gcode: Add a get_str() method
Add a get_str() method that can extract a required parameter from a
g-code command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-06 18:35:51 -05:00
Kevin O'Connor
80f23441dd gcode: Simplify exception handling
Translate caught exceptions into a gcode.error() exception.  This way
there is one standard place to invoke respond_error().  Also, always
reset the last_position on a handled error.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-06 18:35:51 -05:00
Kevin O'Connor
3a2d16abb3 gcode: Always allow M112 command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-06 18:35:49 -05:00
Kevin O'Connor
c70cc8fadb klippy: Always recommend a FIRMWARE_RESTART on a shutdown event
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-03 19:52:25 -05:00
Kevin O'Connor
10e11950ae stepper: get_homed_offset() should return a float
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-12-03 19:48:47 -05:00
Kevin O'Connor
37788c1e55 docs: Add a FAQ document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-11-30 15:19:40 -05:00
Kevin O'Connor
6d6638826c stepcompress: Fix proactive queue flushing on move with 64K+ steps
Commit e05c6354 changed the internal step compress queue from 64bit
integers to 32bit integers.  However, that commit broke the proactive
flushing of moves that could produce more than 64K steps.  This could
lead to large memory allocations and cpu slow downs on printers that
had a very large Z axis - possibly leading to a "Timer too close" mcu
shutdown.  Correct the code so that it properly generates a 64bit
flush clock.

Also, be sure to only expand / memmove the queue when there is no room
for a new element at the end.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-11-29 20:24:50 -05:00
Kevin O'Connor
6930a7de8d homing: Base homing cpu delay on estimated number of steps needed
Instead of adding 250ms to each homing operation add a time relative
to the number of estimated steps that are to be generated.  This
scales the delay to really large axes without adding a delay for
normal users.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-11-29 19:55:25 -05:00
Kevin O'Connor
6bbb84326d docs: Add further details on how to report a bug
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-11-21 18:27:22 -05:00
Kevin O'Connor
8c2fa2e2d6 stepper: Support for multiple steppers controlling a single axis
Allow multiple steppers to be defined for a single cartesian axis.
This adds support for dual-z setups.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-11-18 17:37:04 -05:00
Kevin O'Connor
38643f52c9 stepper: Add get_endstops() / set_position wrappers
Add wrappers around mcu_endstop and mcu_stepper so that the kinematic
classes do not need to directly access these low-level classes.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-11-18 17:36:45 -05:00
Kevin O'Connor
eecf3b6ea8 stepper: Store pointers to step_const and step_delta in PrinterStepper
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-11-18 17:29:23 -05:00
Kevin O'Connor
fc1d690d75 stepper: Remove unused variables from PrinterStepper class
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-11-18 17:29:23 -05:00
Kevin O'Connor
d10380e73f stepper: Additional code comments
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-11-18 17:29:23 -05:00
Kevin O'Connor
aaeda540b6 stepper: Calculate the stepper name directly from the config section
There is no need to pass the name to the PrinterStepper class as it
can determine the name itself.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-11-18 17:29:22 -05:00
Kevin O'Connor
fda988889b heater: Avoid math errors on extreme ADC readings
Avoid log(0) and divide by zero errors in the thermistor calc_temp()
method.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-11-13 11:07:20 -05:00
Kevin O'Connor
b58a897b70 config: List E1 micro-step pins in order in generic-rambo.cfg
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-11-08 11:14:37 -05:00
Kevin O'Connor
84d8cf9b7e config: Add a generic-printrboard.cfg file
Add an example config file for the Printrboard board.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-30 10:56:08 -04:00
Kevin O'Connor
8463a83324 graphstats: Fix graphing script
Update the graphstats.py graphing script so that it works with recent
stats changes - the stats can now contain groups that end with a ':'
and the print_time is no longer reset to zero on a new print.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-29 20:36:33 -04:00
Kevin O'Connor
fc0e016a6d docs: Note version 0.5.0 release
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-25 11:27:20 -04:00
Kevin O'Connor
f5c0148665 config: Warn Beaglebone PRU users that pinmux settings are not updated
The Beaglebone hardware prevents the PRU from updating the pinmux
board settings.  As a result, the PRU can't directly change the pin
direction or change the pullup resistor settings.  Warn the Beaglebone
users of this limitation.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-25 11:01:36 -04:00
Kevin O'Connor
3d78a99758 docs: Update Installation document to recommend latest octoprint version
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-25 10:44:49 -04:00
Kevin O'Connor
03e97c2d95 linux: Remove unneeded includes from timer.c
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-23 22:20:53 -04:00
Kevin O'Connor
eaacb928fc pru: Force load the ADC module during PRU startup
Make sure the ADC module gets loaded during startup - it's normally
loaded by the cape manager eeprom, but there's no harm in requesting
it explicitly.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-18 13:23:10 -04:00
Kevin O'Connor
75ba375b8a pru: Don't reset the ADC reset complete flag if a shutdown occurs
Only set the have_done_reset flag if the reset completes successfully.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-18 13:05:36 -04:00
Kevin O'Connor
cbd06f1433 linux: Fix typo causing config_reset to not fully restart
A typo in the code caused the wrong config_reset code to be run.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-15 21:05:08 -04:00
Kevin O'Connor
1c59a0d30a linux: Open watchdog device after console
Only open the watchdog device after the console has been opened.  The
machine should not reboot in the unlikely event the console can't be
opened.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-15 21:05:08 -04:00
Kevin O'Connor
d222ec1024 linux: Make sure to close fd on analog/pca9685 init failure
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-14 00:22:21 -04:00
Kevin O'Connor
674f584190 pca9685: Fix missing devices_count increment
The devices_count was not being incremented on each device add.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-13 22:05:19 -04:00
Kevin O'Connor
77fea562c4 clocksync: Start with adjusted_freq of 1.0
Avoid setting adjusted_freq to 0.0 as that can cause divide by zero
failures at startup.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-13 21:07:32 -04:00
Kevin O'Connor
e0f275cddf serialhdl: Don't open port at 1200 baud
The 1200 baud trick on the Arduino Due does both a reset and an
erase.  The erase is not desired.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-12 21:46:09 -04:00
Kevin O'Connor
07a69df62f mcu: Fix command restart
Fix omission in commit f8750b14 that broke restarts via Klipper
command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-12 21:43:33 -04:00
Kevin O'Connor
f8750b142f klippy: Rework shutdown handling
If an MCU signals a shutdown from the background thread, notify the
main thread and handle the shutdown there.  Dispatch shutdown handling
from the main Printer() class instead of from the Toolhead class.
This simplifies the shutdown logic.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-12 16:28:53 -04:00
Kevin O'Connor
3033b03789 config: Add generic-melzi.cfg file for Melzi boards
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-12 12:43:13 -04:00
Kevin O'Connor
3506d1e994 fan: Enable heater_fan objects on an MCU shutdown event
Should the MCU go into an error state, set the heater_fan to
max_power.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-12 11:59:27 -04:00
Kevin O'Connor
3c4d14bfa9 pca9685: Support default values
Allow the pwm pin to have a non-zero default value.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-12 11:59:27 -04:00
Kevin O'Connor
db97f36631 gpiocmds: Allow the start value for a pin to differ from the default_value
Allow the start value to be different from the default/shutdown value
for the pin.  This will be useful for "heater fans" that should
startup in the off state, and transition to full on in a shutdown
state.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-12 11:59:27 -04:00
Kevin O'Connor
d03cf2b83f adccmds: Continue to query analog inputs after a shutdown
Continue to sample the ADC input pins even if the MCU goes into a
shutdown state.  This enables the printer to continue reporting
temperatures even on an mcu error.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-12 11:59:27 -04:00
Kevin O'Connor
744c6d114e sched: Don't shutdown on a "timer in the past" if already shutdown
A shutdown will not help if the mcu is already in a shutdown state.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-12 11:59:27 -04:00
Kevin O'Connor
3b9b4e4d6f endstop: Eliminate end_stop_set_oversample command
Pass the sample_ticks and sample_count parameters directly in the
end_stop_home command instead.  This simplifies the code.

Also, simplify calculation of next wakeup time in
end_stop_oversample_event().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-12 11:59:27 -04:00
Kevin O'Connor
78ba7064a7 clocksync: Initialize clock_est in connect_file()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-12 11:59:27 -04:00
Kevin O'Connor
cc7c99a4a4 cartesian: Fix min_stop_interval calculation error
It is possible to have an acceleration greater than max_z_accel on
XY+Z moves.  That needs to be taken into account when calculating the
min_stop_interval.  This prevents spurious "No next step" MCU errors.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-12 01:16:11 -04:00
Kevin O'Connor
d3eb148cfa docs: Point to beaglebone.md from the main installation document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-11 21:03:13 -04:00
Kevin O'Connor
00d541b767 docs: Octoprint should not run at a higher priority than Klipper on beaglebone
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-11 20:23:58 -04:00
Kevin O'Connor
ecf2596469 gcode: Don't warn on fan not present if input is from a file
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-11 14:28:19 -04:00
Kevin O'Connor
6a2eaeae40 docs: Add mailing list to Contact.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-10 14:24:04 -04:00
Kevin O'Connor
ce7cc798dc docs: Add Contact.md file with developer contact information
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-10 12:43:44 -04:00
Kevin O'Connor
0ec7eda11b pins: Add pin mapping for atmega1284p
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-05 16:57:44 -04:00
Kevin O'Connor
fb0f344346 avr: Add support for atmega1284p
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-05 13:51:05 -04:00
Kevin O'Connor
afac81c161 pru: Update start script to always unbind the PRU before binding it
It appears some versions of Debian will load the PRU with firmware on
boot, so make sure to always deactivate the PRU before attempting to
activate it with new firmware.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-05 13:50:12 -04:00
Kevin O'Connor
5c982c90f3 docs: Add a notch to the default square.stl test object
Place a small notch on one side of the square.  The notch provides
interesting information on the extruder performance, and it makes it
easier to compare with previous prints of the object.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-03 22:08:36 -04:00
Kevin O'Connor
381304aa6f stepper: If homing_endstop_phase is configured, make 0.0 be at a full step
If the stepper phases are known then it is possible to arrange for the
0.0 position to occur at a full step.  On cartesian style printer,
this makes it possible for the Z levels to occur at full steps (which
may help reduce "Z ribbing").

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-03 22:06:51 -04:00
Kevin O'Connor
ce9523fb90 gcode: Report the raw MCU position from the M114 command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-03 22:03:52 -04:00
Kevin O'Connor
06420b0ddf gcode: Carry over #original and #command in get_extended_params()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-02 22:06:43 -04:00
Kevin O'Connor
c2e1c53356 clocksync: Implement a floor on the prediction filter
Don't discard samples that are less than 500us from the prediction
regardless of the prediction variance.  Also, don't use the prediction
variance in the external time estimate.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-02 11:00:24 -04:00
Kevin O'Connor
eaeb831107 endstop: Fix typo in comment
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-02 11:00:23 -04:00
Kevin O'Connor
459695e9d7 docs: Remove items from Todo.md
Several items were recently implemented.  Remove the "cubic vs
quadratic" item as investigations into cubic compression weren't
promising.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-01 19:34:00 -04:00
Kevin O'Connor
ece1f71c64 endstop: Support oversampling of the endstop
Some printers can show occasional noise on the endstop pin.  Support
sampling the endstop pin multiple times to attempt to filter out this
noise.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-10-01 19:15:55 -04:00
Kevin O'Connor
776d8f9f79 clocksync: Update clock synchronization code to use a linear regression
Implement a "moving" linear regression between the reported mcu clock
and the sent_time of the get_status message that generated that
report.  Use this linear regression to make predictions on the
relationship between the system time and the mcu clock.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-30 19:37:37 -04:00
Kevin O'Connor
61ee63f358 serialqueue: Don't report sent_time on responses that are retransmitted
On a retransmit, the sent_time of the command associated with the
given response message isn't accurate.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-30 19:37:20 -04:00
Kevin O'Connor
6f65ba9214 clocksync: Don't update prev_est on min rtt updates
Average frequency changes over the longer interval on a sample that
causes a minimum rtt update.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-28 01:09:18 -04:00
Kevin O'Connor
ba837c2641 clocksync: Fix serialqueue.set_clock_est() - don't track min_freq
Revert commit f37fc775.  It is not valid to pass a conservative
frequency to serialqueue.set_clock_est() as that function may not be
called for extended periods - a too low frequency would eventually
lead to "Timer too close" mcu errors.

Instead, increase the 1ms time offset to 5ms to avoid corner cases
that could lead to a message arriving too soon.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-28 00:51:48 -04:00
Kevin O'Connor
1518032606 clocksync: Default mcu_freq to 1 instead of 0
This prevents divide by zero errors during stats output if the stats
are generated before a connection completes.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-27 20:07:46 -04:00
Kevin O'Connor
6469cce2bc toolhead: Make sure reset_print_time() doesn't go backwards in time
Update the homing code to pass in the start of the homing operation to
toolhead.reset_print_time().  This prevents an error when batch
processing gcode files that contain multiple homing operations.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-27 19:21:26 -04:00
Kevin O'Connor
4c40b50fb5 docs: Add a section on time handling to Code_Overview.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-27 15:11:15 -04:00
Kevin O'Connor
a0f0911a95 docs: Reword performance paragraph in Features.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-27 13:59:47 -04:00
Kevin O'Connor
f658819862 clocksync: Add support for dumping internal state for debugging
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-27 13:13:38 -04:00
Kevin O'Connor
8d5a9143bb klippy: Avoid using '%' syntax when calling logging module
The logging module can build strings directly from printf syntax - no
need to build the string first.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-27 12:38:20 -04:00
Kevin O'Connor
8f8951b4c1 serialhdl: Make dump_debug() output atomic
Build a single (very large) logging message with the debug state.
This prevents the output from being fragmented.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-27 12:38:20 -04:00
Kevin O'Connor
6e5bcc69bc gcode: Make dump_debug() output atomic
Build a single (very large) logging message with the debug state.
This prevents the output from being fragmented.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-27 11:58:21 -04:00
Kevin O'Connor
8d04d3d8fd gcode: Exit if a shutdown occurs while running in batch mode
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-27 10:05:11 -04:00
Kevin O'Connor
f37fc775e5 clocksync: Be conservative when setting serialqueue.set_clock_est()
Accuracy is not as important as ensuring a message is never sent
before it can be received in the serialqueue code.  So, use the
smallest frequency ever seen and add the minimum rtt time when setting
set_clock_est().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-27 09:10:41 -04:00
Kevin O'Connor
ead99cf647 docs: Update Features.md document for multiple micro-controllers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-26 22:27:25 -04:00
Kevin O'Connor
3982b5030e serialqueue: Take baud_adjust into account when calculating receive_time
Use baud_adjust when determining the receive_time of a message read
from the serial port.  This improves the accuracy of the clock
synchronization code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-26 22:27:25 -04:00
Kevin O'Connor
d9fe4b6944 clocksync: Rework clock synchronization algorithm
Instead of tracking the minimum frequency ever observed, attempt to
track the actual frequency of the micro-controller (relative to the
host clock).  This improves the stability of the secondary mcu clocks
when multiple mcus are configured.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-26 22:27:25 -04:00
Kevin O'Connor
387cab27bd mcu: Separate restart_microcontroller() into multiple functions
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-20 16:04:41 -04:00
Kevin O'Connor
6dcc44ce2d chipmisc: Add initial support for servos
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-20 14:21:36 -04:00
Kevin O'Connor
3b4088c23f chipmisc: Add support for Replicape board
Add support for configuring and controlling the hardware specific to
the revision "B3" Replicape board.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-20 13:18:07 -04:00
Kevin O'Connor
5a85c1667a pru: Update installation and flash scripts
Update the scripts used to install and "flash" the pru
micro-controller code.  Also, add a "flash" script for the linux
micro-controller code.  This makes it easier to install Klipper on a
Beaglebone board that uses a Replicape.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-20 12:55:28 -04:00
Kevin O'Connor
16d2ec3a90 linux: Add support for analog IIO devices
Add support for reading analog values via the standard Linux IIO
interface.  This can be used on Replicape boards to sample analog
input pins.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-20 12:55:28 -04:00
Kevin O'Connor
4d60567bc6 linux: Add support for spidev devices
Add support for sending SPI messages to devices via the standard Linux
SPI interface.  This can be used to configure the shift registers on
Replicape boards.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-20 12:55:28 -04:00
Kevin O'Connor
73a1c9d249 linux: Add support for pca9685 i2c pwm devices
Add support for controlling pca9685 PWM drivers using the standard
Linux I2C interface.  The pca9685 device is found on Replicape boards.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-20 12:55:28 -04:00
Kevin O'Connor
d851882278 linux: Initial support for running Klipper in a Linux real-time process
Add support for compiling the Klipper micro-controller code as a
real-time process capable of running on standard Linux systems.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-20 12:55:28 -04:00
Kevin O'Connor
3ccecc568d mcu: Initial support for multiple micro-controllers
Add initial support for controlling multiple independent
micro-controllers from a single Klippy host instance.  Add basic
support for synchronizing the clocks of the additional mcus to the
main mcu's clock.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-20 12:45:00 -04:00
Kevin O'Connor
cee200e509 mcu: Move code around in MCU class to keep like code together
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-19 17:27:18 -04:00
Kevin O'Connor
f1b315e04f mcu: Move print_time to clock conversion code to clocksync.py
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-19 17:27:18 -04:00
Kevin O'Connor
94bcd9735a mcu: Add mcu wrapper functions and avoid direct acccess to mcu variables
Don't directly access any of the mcu class variables externally from
the class.  Add wrapper functions for those external callers that need
access to some internal state.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-19 17:25:43 -04:00
Kevin O'Connor
f662445766 stepcompress: Implement print time to clock conversion in C code
Implement the conversion from print_time to the local mcu's clock
within the C code.  This simplifies the python code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-19 17:25:43 -04:00
Kevin O'Connor
008be18f41 clocksync: Don't export get_last_clock()
Everywhere the data in get_last_clock() is used can be done just as
easily with estimated_print_time().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-19 17:25:43 -04:00
Kevin O'Connor
13812aa1c9 clocksync: Move clock synchronization code into new file
Move the low-level clock synchronization code from serialhdl.py to a
new file clocksync.py.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-19 17:25:42 -04:00
Kevin O'Connor
2089f19670 toolhead: Separate is_active() code from stats() code
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-19 17:25:42 -04:00
Kevin O'Connor
593741919f mcu: Update file purpose comment
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-19 17:25:42 -04:00
Kevin O'Connor
9d0fcca8a9 serialhdl: Reduce calculations done while holding the lock
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-19 17:25:42 -04:00
Kevin O'Connor
857eb01bfa homing: Move query_endstop() code from kinematic classes to homing.py
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-19 17:25:42 -04:00
Kevin O'Connor
a100f174f9 mcu: Pass print_time directly to MCU calls
Now that the print_time is always synchronized with the mcu_time,
there is no longer a need to track mcu_time as a separate quantity.
Eliminate references to mcu_time from the code and pass print_time
directly in its place.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-19 17:25:42 -04:00
Kevin O'Connor
5dfe4e1eb9 toolhead: Synchronize print_time to main mcu's time
Instead of starting the print_time at zero, start it at the estimated
time of the main mcu's clock.  This simplifies the code and it ensures
that print_time never goes backwards.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-19 17:25:38 -04:00
Kevin O'Connor
b9586bad18 mcu: Use is_fileoutput() externally
Use mcu.is_fileoutput() instead of looking up the "debugoutput" flag
in the start args.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-19 17:22:29 -04:00
Kevin O'Connor
f1c2f789b6 klippy: Do not start stats timer until after connect completes
Generating stats during connect leads to potential use of not yet
initialized variables.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-19 17:22:29 -04:00
Kevin O'Connor
123719bf92 stepper: Fix bug causing 'enable_pin' to be required
Make sure to initialize mcu_enable to None so that it is initialized
if no 'enable_pin' config value is provided.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-19 17:20:41 -04:00
Kevin O'Connor
14810d7e80 stepcompress: Return number of steps traveled from stepcompress_push()
Return the same information from stepcompress_push() that is returned
from stepcompress_push_const() and stpcompress_push_delta().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-13 09:24:27 -04:00
Kevin O'Connor
52156d2c41 pins: Don't pass mcu_freq to update_command()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-13 09:16:58 -04:00
Kevin O'Connor
2a6a9eb52f pru: Avoid calling "slp" instruction on pru0
If pru0 waits in sleep mode then a full beaglebone reboot is needed to
reprogram the pru0 firmware.  For now, avoid using the "slp"
instruction as a workaround.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-11 13:12:18 -04:00
Kevin O'Connor
bf85c61b48 corexy: Fix max_xy_halt_velocity calculation on corexy
On corexy, the stepper velocity of a diagonal move could be greater
than the maximum printer velocity.  Account for that when setting the
maximum xy halt velocity in the mcu stepper config.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-09 14:45:10 -04:00
Kevin O'Connor
dba488f30a extruder: Remove unused set_max_jerk() call
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-08 19:34:30 -04:00
Kevin O'Connor
d618affd63 pru: Batch outgoing writes
Allow pru0 to gather multiple outgoing message blocks into a single
rpmsg.  This can reduce communication overhead.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-08 11:50:21 -04:00
Kevin O'Connor
121c747cc8 pru: Fix race condition in clearing of irq flags
Each irq flag must only be cleared after it has been serviced.  This
fixes a race condition that could cause incoming commands to be
delayed for extended period.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-08 11:50:21 -04:00
Kevin O'Connor
91b9634198 serialqueue: Fix off-by-one error in retransmit sequence number tracking
Commit 4655a6bf allowed naks to be honored if receive_seq was greater
than the last retransmitted sequence.  However, receive_seq is the
receiver's next sequence number, so a nak should only be processed if
it is one greater than that.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-08 11:50:21 -04:00
Kevin O'Connor
7d17002b33 fan: Allow heater_fan to work with heater_bed
Fix order of init error preventing heater_fan from being used with
heater_bed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-07 11:19:27 -04:00
Kevin O'Connor
477b3941a6 console: Add support for SUPPRESS command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-07 11:19:27 -04:00
Kevin O'Connor
36dd7e7609 console: Add support for a FLOOD command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-07 11:19:27 -04:00
Kevin O'Connor
167a65d826 util: Fix reporting of git version of klippy code
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-07 11:19:27 -04:00
Kevin O'Connor
c9cd8cea66 mcu: Limit value range of PWM and digital outputs prior to transmission
Make sure schedule_digital_out and schedule_pwm_out commands always go
out with a value that is in range for the particular command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-06 12:04:05 -04:00
Kevin O'Connor
dfdcbece53 mcu: Improve error descriptions in Common_MCU_errors
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-06 12:03:49 -04:00
Kevin O'Connor
5b62f15c6d extruder: Provide more details on extruder errors
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-05 22:12:15 -04:00
Kevin O'Connor
09e32d1b84 mcu: Provide some further help on common MCU shutdown errors
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-05 22:12:15 -04:00
Kevin O'Connor
68fc6abf74 avr: Check that FLASH_DEVICE is set on "make flash" command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-05 22:12:15 -04:00
Kevin O'Connor
ff56c0fb74 extruder: Fix typo in init
Commit 7a81bfc4 broke extrude only moves due to a typo in the commit.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-05 22:12:15 -04:00
Kevin O'Connor
36de6118c1 mcu: Limit ADC min/max range to a 16bit integer
Make sure the ADC range sent to the MCU can be encoded into a 16bit
integer.  Otherwise, if the provided min_temp/max_temp was outside the
range of possible values it could result in a spurious mcu shutdown.
In particular, the AD595 could not properly encode a min_temp of zero.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-05 18:22:21 -04:00
Kevin O'Connor
7083a33ecd pru: Support config_reset command to manually reset mcu
Add support for resetting the MCU via a software only mechanism.  This
is useful on the PRU.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-03 23:16:38 -04:00
Kevin O'Connor
7b7f57e01c pru: Only sleep the pru0 if the incoming queue is fully empty
It's possible for multiple blocks to be pending on the incoming
"rpmsg" stream.  Don't sleep unless the input is confirmed to be
empty.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-03 23:15:49 -04:00
Kevin O'Connor
8d0ef49e8f toolhead: Permit look-ahead between Z moves
Extend the look-ahead mechanism to work between moves that contain Z
movement.  This improves Klipper's handling of g-code produced in
"vase mode".

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-03 15:46:48 -04:00
Kevin O'Connor
7a81bfc4a4 toolhead: Eliminate set_max_jerk() from kinematic classes
Allow the kinematic classes to query the max velocity, max accel, and
max halt velocity from the toolhead class instead of having the
toolhead class call into the kinematic classes with those values.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-03 15:45:04 -04:00
Kevin O'Connor
0d13834293 gcode: Fix error that could cause commands to be processed out of order
Commit d0932009 changed the way command handling was performed, and
commit 95950949 fixed a defect in that commit.  Unfortunately, the fix
was incomplete.

If multiple commands were sent to Klippy without waiting for an "ok"
response from Klippy, then it was possible for those additional
commands to be queued and processed after subsequent commands.  This
would result in commands being processed out of order.

Fix this by only reregistering the input fd in the greenlet that
performs the unregistration of the fd.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-02 12:05:51 -04:00
Kevin O'Connor
ac53806e04 gcode: Add an ECHO command for debugging purposes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-09-02 12:05:51 -04:00
Kevin O'Connor
026b9c336c stepcompress: Minor performance tweaks for rpi
Invert the if conditional in queue_append() and change the order of
reads in minmax_point() - gcc on the rpi seems to do generate better
code this way.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-31 10:17:01 -04:00
Kevin O'Connor
60c77fff06 docs: Update Code_Overview.md - step compress queue no longer 64 bit
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-31 10:07:17 -04:00
Kevin O'Connor
588ecbe868 stepcompress: Use addition instead of multiplication on queue add
Replace multiplication with addition where possible.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-31 02:15:32 -04:00
Kevin O'Connor
e05c635489 stepcompreses: Change the step queue to use 32bit integers
The RaspberryPi processor implements 'double to int32' conversions
much faster than 'double to int64' conversions.  Rework the code so
that steps stored in the queue are always a small offset from the last
sent step time.  (In the unlikely event that a step is far from the
last step time, then the queue is flushed to maintain this invariant.)

This simplifies the step compression code as well - it no longer needs
to check for integer overflows.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-31 00:27:43 -04:00
Kevin O'Connor
f5cc355044 stepcompress: Refactor queue insertion to use a cursor
Create an insertion "cursor" for adding items to the step compression
queue.  This makes the calling code simpler and it makes it easier to
update the queue memory management in the future.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-31 00:15:03 -04:00
Kevin O'Connor
78f4c25a14 homing: Add a small delay before each homing operation
The homing operation can be cpu intensive for the host software.  Add
a small (250ms) delay before homing so that the host has additional
time to process the command before it is due on the mcu.  This is
intended to work around some reports of "timer too close" errors
during Z homing on RPi2 hosts and printers with high precision Z
positioning.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-29 18:02:36 -04:00
Kevin O'Connor
002dc0dfaf stepper: Adjust homing_speed so that it's an even number of ticks per step
Adjust the configured homing speed so that it always results in a
speed that is an even number of mcu ticks per step.  This ensures that
the code can always get good step compression during homing, which is
important as the entire homing operation must be able to fit within
the mcu's move queue.  This fixes some "move queue empty" mcu shutdown
errors that could occur when the Z step distance was an unusual size.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-29 18:00:17 -04:00
Kevin O'Connor
68d6788413 mcu: Add get_mcu() call to the mcu oid objects
Allow external code to obtain the mcu object that controls a pin setup
with setup_pin().  Also, don't bother defining print_to_mcu_time() and
system_to_mcu_time() on each pin object as they can be obtained via
the new get_mcu() method.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-29 17:59:27 -04:00
Kevin O'Connor
c7c551369f mcu: Fix bug causing corexy to not work (introduced in 9d75c3b0)
Commit 9d75c3b0 changed the order of allocation for mcu oid integer
ids.  However, the stepper oids must always be allocated before
endstop oids so that corexy can register multiple steppers on a single
endstop.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-29 17:59:15 -04:00
Kevin O'Connor
0c2919b534 klippy: Move restart logic into Printer() class
Move the restart logic out of main() and into Printer.run().  This
simplifies the code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-26 18:27:21 -04:00
Kevin O'Connor
d8c75fc608 klippy: Rename internal functions so that they are prefaced with "_"
Preface the internal functions to make it more clear which functions
are interfaces to external code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-26 18:27:21 -04:00
Kevin O'Connor
a42cb4fecf toolhead: Avoid directly accessing the printer.mcu field
Lookup the mcu object from the printer objects and store it locally in
the toolhead class.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-26 18:27:21 -04:00
Kevin O'Connor
68ba3d5106 mcu: Drop support for TICKS() expansion in mcu config commands
It's no longer necessary to use the TICKS() hack as the config
commands are now all generated after the mcu speed is known.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-26 18:27:21 -04:00
Kevin O'Connor
80dc1dfcc1 docs: Remove documentation for "custom" command blocks
It should no longer be necessary to configure "custom" commands during
mcu setup.  The ad5206 and static_digital_output config sections
should provide similar functionality.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-26 18:27:21 -04:00
Kevin O'Connor
931811ab59 chipmisc: Add support for configuring ad5206 digipots
Support an "ad5206" config section so that one can configure the
digipots found on Reprap "RAMBo" boards.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-26 18:27:21 -04:00
Kevin O'Connor
9d75c3b0ca chipmisc: Add support for statically configured output pins
Allow digital and PWM output pins to be setup via new config
sections.  This makes it easier to setup pin configurations.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-26 18:27:20 -04:00
Kevin O'Connor
6ab8567d51 mcu: Track stepqueues separately from steppers
The MCU() class needs to track the stepqueues so that it can
initialize the steppersync object.  Track the stepqueues directly
instead of via the list of steppers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-25 20:45:54 -04:00
Kevin O'Connor
c727ed3592 mcu: Track oids separately from objects requiring a build_config() callback
Track the oid count separately from the configurable object count -
this way it is possible to have internal objects that don't require an
oid in the mcu.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-25 20:44:51 -04:00
Kevin O'Connor
c72ca983ba mcu: Eliminate "init callback" phase during connect
It's not necessary to register and execute "init callbacks" when
configuring the mcu.  Instead, have each mcu object produce its init
messages in the build_config() callback.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-25 20:41:09 -04:00
Kevin O'Connor
ec7990796a pins: Support registering arbitrary chips that supply configurable pins
Allow multiple chips to provide pin mappings (not just the main mcu
chip).  Move the pin parsing from the mcu.py code to pins.py and
support mapping from pin descriptions to their corresponding chips and
parameters.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-25 20:38:55 -04:00
Kevin O'Connor
268834e4ae klippy: Store printer startup parameters in new "start_args" dictionary
Store pertinent information from the software startup in a dictionary
that the various printer components can access instead of in
individual variables in the Printer() class.  This makes it easier to
add future command-line options.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-25 19:27:05 -04:00
Kevin O'Connor
b80c488d36 heater: Another minor cleanup to Steinhart-Hart math
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-20 12:42:50 -04:00
Kevin O'Connor
f25cb33367 heater: Minor cleanup to Steinhart-Hart math
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-18 13:28:04 -04:00
Kevin O'Connor
4b5f3bec4b heater: Add support for a generic "NTC 100K beta 3950" thermistor
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-17 15:12:51 -04:00
Kevin O'Connor
1f4c6443ef heater: Calibrate thermistor directly from temperature and resistance
Store the underlying temperature and resistance values instead of the
Steinhart-Hart coefficents obtained from them.  This makes it easier
to add new thermistors.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-17 13:26:51 -04:00
Kevin O'Connor
0adea120cd pru: Compile the irq_poll() function with -O2 optimization
Compile the PRU binary with -Os optimization, but request that the
timer dispatch code be compiled with -O2 optimization.  This improves
the performance of timers slightly.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-15 11:05:30 -04:00
Kevin O'Connor
71bb7acb8e pru: Compile with -Os instead of -O2
The gcc -Os option significantly reduces the size of the PRU binary
and it has little impact on performance.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-14 21:08:28 -04:00
Kevin O'Connor
4b5109c1b9 serialqueue: Make sure fds are in non-blocking mode
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-14 21:08:28 -04:00
Kevin O'Connor
085817d332 serialhdl: Sometimes we get an IOError when serial port not found
Catch IOError when opening the serial port.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-14 21:07:26 -04:00
Kevin O'Connor
f8bd8b97be command: Don't pass max_size to command_encodef()
The command_encodef() can read the max_size parameter directly from
the 'struct command_encoder' passed into it.  Also, there is no need
to check that a message will fit in a buffer if the buffer is declared
to be MESSAGE_MAX in size.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-14 18:32:15 -04:00
Kevin O'Connor
f3da473285 docs: Update Code_Overview.md with PRU and command_dispatch() changes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-11 12:06:19 -04:00
Kevin O'Connor
f0f4ab7abe docs: Update benchmarks in Features document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-11 11:40:54 -04:00
Kevin O'Connor
d8225642fa stepper: Revert f8b0c884
Go back to scheduling the unstep time instead of busy waiting in the
timer dispatch.  With the unstep time increased to 2us, it no longer
makes sense to spin while waiting for the unstep.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-11 10:36:02 -04:00
Kevin O'Connor
8ebba6d27a avr: Make sure timer_high and timer_event() stay in sync
Schedule the next wakeup time of timer_event() using timer_high.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-11 09:32:06 -04:00
Kevin O'Connor
1051a52755 timer_irq: Rework timer irq handler to check for tasks pending
Allow timer_dispatch_many() to run for extended periods if there are
no tasks pending.  This reduces the amount of lost cpu time spent
entering and exiting the irq handler.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-09 21:08:40 -04:00
Kevin O'Connor
5583b050a0 graphstats: Increase maximum expected task duration
Now that tasks are only run when needed it's common for there to be a
larger variation in task execution time.  When graphing load, consider
a 99-percentile task duration of 2.5ms to be 100% loaded (up from
1ms).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-09 19:12:27 -04:00
Kevin O'Connor
a38082016d sched: Reduce the amount of time irqs are disabled in sleep check
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-09 12:55:44 -04:00
Kevin O'Connor
156e9b7556 sched: Write out a message on startup
Send a "startup" message after completing the mcu init functions.
This may help detect mcu reboots during debugging.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-08 00:27:28 -04:00
Kevin O'Connor
5e6acf7dbc console: Add support for a STATS command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-08 00:27:28 -04:00
Kevin O'Connor
58811b5c44 console: Add LIST command that shows available commands and variables
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-08 00:27:28 -04:00
Kevin O'Connor
86a762b2b7 console: Add a HELP command
Show available features at startup.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-08 00:27:28 -04:00
Kevin O'Connor
f886212b44 avr: Rework timer irq handler to check for tasks pending
Allow the timer dispatch irq handler to run for extended periods if
there are no tasks pending.  This reduces the amount of lost cpu time
spent entering and exiting the irq handler.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-08 00:27:28 -04:00
Kevin O'Connor
2c272f99a3 sched: Implement generic sleep mechanism based on tasks pending
Track when tasks are pending and spin in irq_wait() when no tasks are
pending.  This improves the mechanism for sleeping the processor -
it's simpler for the board specific code and it reduces the
possibility of the processor sleeping when tasks are busy.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-08 00:27:28 -04:00
Kevin O'Connor
a9982beacf sched: Introduce sched_wake_tasks() function to wake up tasks
Add function to indicate when tasks need to be run.  This will allow
the scheduler code to know if there are any tasks that need to be
processed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-08 00:27:28 -04:00
Kevin O'Connor
e9d2ec7c41 avr: Tune the low-level timer entry and exit heuristics
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-08 00:27:28 -04:00
Kevin O'Connor
78982ebb51 avr: Implement internal avr specific timer to handle 16bit overflows
Don't rely on the generic scheduler code to always have a timer no
more than 1ms in the future.  Instead, create an avr specific timer
that will be called every 0x8000 ticks.  This simplifies the generic
code and it reduces the amount of code that needs to be run every
millisecond.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-08 00:27:28 -04:00
Kevin O'Connor
6a63c27542 sched: Support adding timers to the start of timer_list
If sched_add_timer() is called on a timer that would make it the new
head of the list, then add it and signal the board code that the timer
should be rescheduled.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-08 00:27:27 -04:00
Kevin O'Connor
62f77f6bc5 sched: Don't count milliseconds in the periodic timer
It's not necessary to keep a millisecond counter.  Replace the two
users of sched_check_periodic() with explicit task wakeup flags.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-08 00:27:27 -04:00
Kevin O'Connor
88a10fb31c sam3x8e: Fix watchdog timeout calculation
Fix error causing the watchdog to be set to an ~4ms timeout instead of
500ms.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-08 00:27:27 -04:00
Kevin O'Connor
e12527b895 avr: Move prescaler and sleep initialization from timer.c to main.c
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-07 19:39:57 -04:00
Kevin O'Connor
114c8c5b6d avr: Enable watchdog code even on simulavr
The simulavr simulator will warn when writing to the watchdog
registers, but running code closer to what real hardware runs is worth
a few extra warnings.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-07 19:39:57 -04:00
Kevin O'Connor
d50f4e23e0 pwmcmds: Update event prototypes to use uint_fast8_t
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-06 20:24:22 -04:00
Kevin O'Connor
dca0fc91ea pru: Improve comments in pru0.c
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-08-02 11:02:45 -04:00
Kevin O'Connor
981c53682f stepper: Use a sane default for homing_positive_dir
Use the endstop position to determine a sane default for
homing_positive_dir.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-24 14:31:46 -04:00
Kevin O'Connor
143b7cccf4 stepper: Separate out homing code to its own PrinterHomingStepper class
Keep the homing code separate from the main stepper class.  This makes
it easier to verify the correct config parameters are provided.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-24 13:54:46 -04:00
Kevin O'Connor
8ce042bf04 config: Add additional pin definitions to ramps and rambo configs
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-24 13:18:45 -04:00
Kevin O'Connor
85a1e1118f config: Change default pins defined in example.cfg to use RAMPS pins
Change the example.cfg file to use the pins of a RAMPS config as that
is a very common setup.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-24 13:05:00 -04:00
Kevin O'Connor
51baeb3c2c config: Reduce max_z_velocity in example-delta.cfg to 150
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-24 11:47:25 -04:00
Kevin O'Connor
959a20888c serialhdl: Dump serial stats in dump_debug()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-24 11:43:54 -04:00
Kevin O'Connor
7bf0ec2fe7 gcode: Don't wait for moves to finish if both debug input and output
Don't wait for moves to finish if the output is going to a debug file.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-23 21:32:26 -04:00
Kevin O'Connor
c6231a16e3 serialqueue: Improve limit on number of in-flight bytes
Instead of limiting the amount of non-acked messages to 50ms, limit
the amount to one round-trip-time.  This should make it less likely
that the mcu will be overloaded and it should make retransmits faster.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-23 20:47:08 -04:00
Kevin O'Connor
a619aacfc6 serialqueue: Further retransmit timing fixes
The first message always has a sync byte with it, so its size should
be one larger.  Also, the idle_time should always be the minimum time
that the message could be received, so it should always be reset to
eventtime on a retransmit.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-23 19:32:42 -04:00
Kevin O'Connor
d469db84ee serialqueue: Allow a second nak after a retransmit
If a nak message causes a retransmission then also accept a second nak
message as long as it is for a sequence greater than the first nak.
This should allow faster retransmits when there are multiple
transmission errors in a small time period.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-21 23:49:44 -04:00
Kevin O'Connor
4655a6bfef serialqueue: Fix off-by-one error in retransmit sequence number tracking
Track the sequence number of the message last retransmitted (not the
sequence number of the next message to be transmitted).  This fixes a
small possibility of a valid nak not being honored.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-21 23:43:48 -04:00
Kevin O'Connor
61325c0a14 serialqueue: Improve timing of multiple retransmits
If a retransmit is triggered by a nak, then it is not necessary to
increase the rto.  The next retransmit time should be based on the
expected reception of the first retransmitted message, not the last.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-21 21:26:14 -04:00
Kevin O'Connor
7faa5fe233 gcode: Improve end-of-file handling when input is a debug file
Wait for any pending moves to be fully handled before exiting.  Make
sure the wait is done inside the "self.is_processing_data" check to
avoid infinite recursion.  Don't keep reading from the file while
waiting to exit.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-21 21:22:12 -04:00
Kevin O'Connor
19090bdd5b graphstats: Fix so that older files (predating mcu_awake) still work
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-21 14:19:59 -04:00
Kevin O'Connor
4a6254fac3 build: Allow boards to disable digital input/output support
Allow the micro-controller code to be built without support for
regular gpio pins.  In this case, the code for endstops, steppers, and
gpiocmds will be disabled.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-20 10:44:31 -04:00
Kevin O'Connor
649d26e093 basecmd: Move low-level alloc code into basecmd.c
Implement new dynmem_start() and dynmem_end() functions instead of
alloc_chunk() and alloc_chunks() in the board code.  This simplifies
the board code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-20 10:44:31 -04:00
Kevin O'Connor
2ee42997e4 docs: Update Kinematics.md with regards to stepper torque limits
It is not necessary to limit stepper acceleration - only the limiting
of stepper torque is important.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-19 19:09:14 -04:00
Kevin O'Connor
17a3e25036 docs: Improve description of delta stepper acceleration limits
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-19 14:14:01 -04:00
Kevin O'Connor
c4b8d3ea8b graphstats: Support graphing "mcu_awake" statistic
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-19 14:14:01 -04:00
Kevin O'Connor
118fd21cb8 irq: Support sleeping when mcu is idle
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-17 15:02:43 -04:00
Kevin O'Connor
969485c754 fan: Add support for heater_fan objects
Add support for fans designed to cool the components of an extruder or
heater.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-17 11:35:52 -04:00
Kevin O'Connor
519e81d0fa mcu: Support converting from a system time to an mcu time
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-17 11:35:48 -04:00
Kevin O'Connor
12ca45a264 gcode: Log g-code error responses
Be sure to log g-code errors even if debug logging is not enabled.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-17 11:24:15 -04:00
Kevin O'Connor
3ac60b31a2 pru: Move peripheral init from pru0 to pru1
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-17 11:16:55 -04:00
Kevin O'Connor
c105ff1c51 pru: Move ADC code from gpio.c to new file adc.c
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-12 23:03:14 -04:00
Kevin O'Connor
ae9bc93ccc avr: Fix readl() typo in serial.c
The code should have used a readb() call instead of readl().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-12 23:03:12 -04:00
Kevin O'Connor
afc665d7c8 config: Update PRU based configs to use the correct serial device
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-06 12:04:26 -04:00
Kevin O'Connor
2d173f51b1 pru: Add documentation and install scripts for running on the PRU
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-05 14:21:32 -04:00
Kevin O'Connor
b32ba3727b pru: Add support for "make flash" rule
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-05 12:50:54 -04:00
Kevin O'Connor
5793271308 fan: Support setting a max_power attribute for the print cooling fan
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-05 10:43:34 -04:00
Kevin O'Connor
09140a51d5 sched: Pass shutdown reason code via longjmp() parameter
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-04 12:49:58 -04:00
Kevin O'Connor
cf662b842b msgproto: Catch exceptions during identify data parsing
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-04 12:49:58 -04:00
Kevin O'Connor
0ac518040b msgproto: Export static_strings from mcu to host as a dictionary
Export the static strings as a dictionary instead of as a list.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-07-02 14:11:10 -04:00
Kevin O'Connor
067fac05a8 serialqueue: Rename clock estimation variable names
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-30 20:15:36 -04:00
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
Kevin O'Connor
c957e4ba86 serialqueue: Clarify code that associates sent messages to received messages
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-30 20:15:36 -04:00
Kevin O'Connor
c8dca0a56c pru: Use a pointer when working with send_data array items
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-30 19:54:40 -04:00
Kevin O'Connor
da3569c490 pru: Add hack to shutdown the PRU from a simple command request
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-30 19:54:33 -04:00
Kevin O'Connor
e8356afa26 pru: Rework command processing so that most of it is done on pru0
Change the command dispatch and response generation so that most of
the work is done on pru0 instead of pru1.  This allows more code to
fit into the limited space on pru1.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-30 19:53:04 -04:00
Kevin O'Connor
c1bd628ce5 command: Directly call command_sendf() for ack/nak messages
Don't use the sendf() macro for ack and nak messages - directly call
the command_sendf() code instead.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-29 13:33:59 -04:00
Kevin O'Connor
849096d5f3 sam3x8e: Integrate serial console functions
Now that console_get_input(), console_pop_input(),
console_get_output() and console_push_output() are local functions,
integrate them into their callers.  This simplifies the code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-29 13:33:59 -04:00
Kevin O'Connor
e681369a1a avr: Integrate usb serial console functions
Now that console_get_input(), console_pop_input(),
console_get_output() and console_push_output() are local functions,
integrate them into their callers.  This simplifies the code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-29 13:33:59 -04:00
Kevin O'Connor
faa29c8062 avr: Integrate serial console functions
Now that console_get_input(), console_pop_input(),
console_get_output() and console_push_output() are local functions,
integrate them into their callers.  This simplifies the code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-29 13:33:58 -04:00
Kevin O'Connor
44f2a2a952 command: Move low-level sendf transmission into board code
Export a new console_sendf() function from the board code instead of
console_get_output() and console_push_output().  This enables more
flexibility in how the board specific code produces output.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-29 13:33:58 -04:00
Kevin O'Connor
292453d306 command: Move command_task() to board specific code
Move the command_task() code from the generic code to the board
specific code.  This enables more flexibility in how the board
specific code processes input.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-29 13:33:58 -04:00
Kevin O'Connor
1ae78d08e9 command: Encode MESSAGE_MIN in command_parser->max_size
Add the message minimum into the stored constant so it does not need
to be added at run-time.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-29 13:33:58 -04:00
Kevin O'Connor
1c3cbe9456 command: Refactor message block generation
Separate out the buffer management, message encoding, and message
framing code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-29 13:33:58 -04:00
Kevin O'Connor
88f4c38dca command: Refactor the command reading task
Refactor the code so that message block framing, command parsing, and
command dispatch are distinct.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-29 13:33:58 -04:00
Kevin O'Connor
b7b368a1ed build: Default to python2 in the Makefile
Set PYTHON=python2 instead of python as some systems point python to
python3.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-28 10:52:05 -04:00
Kevin O'Connor
d2fafbdd9e build: Request python2 for all directly executed python binaries
Some systems point python to python3 instead of python2 - explicitly
request python2 to avoid conflicts.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-27 20:26:02 -04:00
Kevin O'Connor
d981973096 heater: Fix auto-tune code
Make sure the heater.target_temp is set during the auto-tune test so
that the heater.set_pwm() command will allow the heater to be turned
on.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-22 12:09:55 -04:00
Kevin O'Connor
b310501970 sam3x8e: Use readl/writel instead of readb/writeb() in serial.c
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-22 10:51:49 -04:00
Kevin O'Connor
e92ce565dd console: Support new artificial DELAY command
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-22 10:51:49 -04:00
Kevin O'Connor
da4f2c5ea0 checkstack: Continue to accumulate stack usage on misc instructions
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-22 10:51:49 -04:00
Kevin O'Connor
bd48c3a083 pru: Remove unnecessary barrier() calls
The writel() call already implements a barrier() internally.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-16 14:26:37 -04:00
Kevin O'Connor
ba58e0446d install-octopi: Add python-virtualdev to package list
Add python-virtualdev to the list of system packages to be installed -
it's usually already installed, but it doesn't hurt to add it to the
list in case it isn't already installed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-15 10:41:21 -04:00
Kevin O'Connor
c03b4921c3 klippy: Make sure to always sleep before retrying next stats() call
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-15 09:37:57 -04:00
Kevin O'Connor
c60e4aceed stepper: Increase the step delay time from 1us to 2us
Increase the step delay time so that it works with the common DRV8825
stepper drivers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-13 11:53:10 -04:00
Kevin O'Connor
156de2e4c2 delta: Fix support for different endstop_position settings on each stepper
The endstop_position is intended to support different values for each
stepper so that the individual tower heights can be configured.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-11 12:48:51 -04:00
Kevin O'Connor
959509496a gcode: Fix regression causing lost asynchronous commands
Commit d0932009 introduced an error that could cause lost input in
cases where the sender did not wait for an "ok" message before sending
the next command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-11 12:42:11 -04:00
Kevin O'Connor
8419e152bb klippy: Remove some obscure python2 dependencies
Don't modify dictionaries while iterating them and be careful to use
// when doing an integer divide.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-10 00:12:14 -04:00
Kevin O'Connor
1bc3e0a678 klippy: Use newer "except XYZError as e" python syntax
Use the newer syntax for python exceptions.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-10 00:08:06 -04:00
Kevin O'Connor
d093200966 gcode: Support running arbitrary gcode on extruder change
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-09 18:55:33 -04:00
Kevin O'Connor
72dc21fb1a gcode: Support for querying and setting multiple extruder heaters
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-09 18:55:30 -04:00
Kevin O'Connor
24b8f4ebc1 extruder: Add initial support for multi-extruders
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-09 18:54:38 -04:00
Kevin O'Connor
136dccbcdf klippy: Allow each module to define their config sections
Create add_printer_objects() functions in the fan, heater, extruder,
and toolhead modules.  Create the necessary printer component objects
from this call instead of placing the code directly in klippy.py.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-09 18:54:34 -04:00
Kevin O'Connor
d0e6a0928b pins: Fix typo in at90usb1286 support so PF0-7 pins are defined
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-09 18:46:07 -04:00
Kevin O'Connor
46846d4297 avr: Enable CLEAR_PRESCALER by default on at90usb1286
It appears this option is commonly needed on the at90usb1286 avr chip
(the printrboard requires it), so default it on.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-09 18:42:40 -04:00
Kevin O'Connor
01ee9e16c5 klippy: Prefer python dictionary comprehension to dict() call
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-06 12:35:13 -04:00
Kevin O'Connor
38411fd2e7 delta: Add support for specifying the angle each tower is at
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-05 18:05:45 -04:00
Kevin O'Connor
b8094de129 avr: Support using serial instead of usb on AT90USB1286
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-06-05 12:30:49 -04:00
Kevin O'Connor
73207a12ba avr: Allow atmega328 to select a cpu speed of 20Mhz
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-29 14:24:18 -04:00
Kevin O'Connor
3af87e1c42 avr: Add SIMULAVR build option; don't show WATCHDOG or SERIAL_BAUD_U2X
Add a CONFIG_SIMULAVR option to the Kbuild menus and don't directly
prompt users for CONFIG_WATCHDOG or CONFIG_SERIAL_BAUD_U2X.  The only
reason to disable these options would be if one were running on
simulavr.  This simplifies the user visible menu options.

Also, only show CONFIG_CLEAR_PRESCALER for at90usb1286 chips.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-28 11:04:59 -04:00
Kevin O'Connor
d2547ce6b0 avr: Add support for atmega328 chip
The atmega328 is basically the same as the atmega168 - it just adds
some additional memory.  Allow the chip to be selected during the
build.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-28 10:45:32 -04:00
Kevin O'Connor
7e3d7e071f avr: Reorder Kconfig entries so that atmega2560 at 16mhz is default
Reorder the MCU list so that newer chips are at the top of the list.
This causes the very popular atmega2560 to be the default chip
selected.

Reorder the frequency list so that higher frequencies are at the top
of the list.  Restrict the 20Mhz frequency to only chips that support
that speed.  This causes the popular 16Mhz frequency to be the default
speed on AVR.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-28 09:59:51 -04:00
Kevin O'Connor
d4bed025ed command: Store the command parsing information directly in array
Instead of defining an array of pointers, just define the array
directly.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-26 13:25:51 -04:00
Kevin O'Connor
a82e949c00 build: Use compile_time_request system for init, tasks, and shutdown
Avoid using linker magic to define the init, task, and shutdown
functions.  Instead, use the compile_time_request system.  This
simplifies the build and produces more efficient code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-26 12:39:34 -04:00
Kevin O'Connor
ca9756413f sched: Allow shutdown_reason to be uint8
Store the shutdown_reason code in an 8-bit integer - this produces
better code on AVR.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-26 12:32:05 -04:00
Kevin O'Connor
b9940f0e0d build: Avoid linker magic in compile_time_request.c unique id generation
Avoid generating unique ids via memory locations and linker scripts.
Instead, generate them using code produced by buildcommands.py.
Utilize gcc's ability to perform static string comparisons at compile
time to produce a unique id for each unique string.

This fixes a build failure on ARM introduced in 142b92b8.  It also
reduces the complexity of the build.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-26 12:32:02 -04:00
Kevin O'Connor
f91a49c65d docs: Note how to handle odd corner in Pressure_Advance.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-25 13:39:16 -04:00
Kevin O'Connor
4b8ad3fc03 docs: Add a prerequisites section to Pressure_advance.md
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-22 12:32:20 -04:00
Kevin O'Connor
e8aabbb40b docs: Add Todo item for supporting custom fan and pin config sections
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-22 11:55:41 -04:00
Kevin O'Connor
02a5fa2c79 config: Make it clear the "fan" section represents the print cooling fan
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-21 11:52:02 -04:00
Kevin O'Connor
944c121a00 config: Add periods to end of sentences in example configs
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-21 11:51:58 -04:00
Kevin O'Connor
c9b6662138 pru: Add support for ADC input
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-17 19:46:12 -04:00
Kevin O'Connor
b85755c0ff pru: Move communication code to second PRU
Perform input and output in the second PRU so that more space is
available in the primary PRU.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-17 10:46:38 -04:00
Kevin O'Connor
b6f24e78ac pyhelper: Fix GETHEX() macro used in dump_string() debugging
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-17 09:57:09 -04:00
Kevin O'Connor
fc24aa041b pins: Add pin mappings for Beaglebone boards
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-15 15:15:52 -04:00
Kevin O'Connor
c9b44b5bb6 serialhdl: Support working with pseudo serial devices
Support working with devices that aren't really serial ports and thus
do not have a baud rate.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-15 15:15:52 -04:00
Kevin O'Connor
2255176228 pru: Initial support for the Beaglebone PRU
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-15 15:15:52 -04:00
Kevin O'Connor
ccaa25eaa5 pru: Add initial pru_rpmsg library code for Beaglebone PRU
Add external code for using RPMsg on the Beaglebone PRU.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-15 15:00:52 -04:00
Kevin O'Connor
969ee4c8f9 irq: Add an irq_poll() stub for board code
Allow the board specific code to run checks prior to running each
task.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-15 15:00:45 -04:00
Kevin O'Connor
c35278e217 build: Avoid using noinline in common code
It's not necessary to use noinline for parsef() and stop_steppers().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-15 14:02:59 -04:00
Kevin O'Connor
039d3f0523 stepper: It is not necessary to ensure gpio_out_write value is 0 or 1
The gpio_out_write() and gpio_out_setup() calls will check for zero
and non-zero, so it is not necessary to explicitly convert to 0/1 in
the stepper.c code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-15 14:02:59 -04:00
Kevin O'Connor
d56f8407a5 debugcmds: Move debugging commands from basecmd.c to new file
Move the implementation of debug commands to their own file.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-15 14:02:59 -04:00
Kevin O'Connor
142b92b883 command: Use "i" instead of "m" constraint in _DECL_REQUEST_ID
On some architectures, gcc will allocate a register for inline
assembler with an "m" constraint.  Use "i" to avoid that.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-15 14:02:59 -04:00
Kevin O'Connor
c292006421 gpiocmds: Change MAX_SOFT_PWM from 255 to 256
Change the range of values used for software PWM to avoid doing an
integer division in the main code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-15 14:02:59 -04:00
Kevin O'Connor
5c4cc0d646 pwmcmds: Export the maximum PWM value
Instead of assuming the maximum PWM value is 255, export a constant
from the firmware to the host with the maximum value.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-15 14:02:59 -04:00
Kevin O'Connor
a361b92184 gpio: Fix off-by-one in declaration of ADC_MAX
The maximum value for the ADC is 1023 for 10bit samples and 4095 for
12bit samples.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-15 14:02:59 -04:00
Kevin O'Connor
37572bc217 command: Only implement 16bit signed conversion on AVR
On regular 32bit machines there is no need to implement explicit
signed conversion on 16bit integers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-15 14:02:04 -04:00
Kevin O'Connor
233adfe660 build: Add __visible to variables in compile_time_request.c
Add __visible to generated code in compile_time_request.c so that the
main code can be compiled with -fwhole-program.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-15 14:02:04 -04:00
Kevin O'Connor
450c14b286 build: Rename makefile CFLAGS-y to CFLAGS and LDFLAGS-y to CFLAGS_klipper.elf
Rename some makefile variables.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-15 14:01:56 -04:00
Kevin O'Connor
33dfc386c9 avr: Merge misc.c into main.c
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-11 13:56:21 -04:00
Kevin O'Connor
f331936969 basecmd: Avoid calling malloc() from main code
Introduce a new board function alloc_chunk() to allocate dynamic
memory.  This allows the board code to implement memory allocations
without using the standard malloc() interface.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-11 13:56:21 -04:00
Kevin O'Connor
8f1d0c2a7c docs: Note version 0.4.0 release
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-03 14:32:36 -04:00
Kevin O'Connor
02549c9299 docs: Make it clear a RESTART is likely needed in Installation document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-03 11:15:27 -04:00
Kevin O'Connor
98f2adbcb5 extruder: Rework maximum retraction check
On a retract move (which are common during "wipe" operations), treat
the move as if it were an extrude only move.  It's valid for a retract
move to reverse more filament then it would be practical to push.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-02 08:57:38 -04:00
Kevin O'Connor
c9d21574d8 gcode: Check for invalid speeds
Raise an error if the move speed is set to a zero or negative value.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-02 07:54:48 -04:00
Kevin O'Connor
253517096e extruder: Extend over extrusion checks to retractions
Ensure a move with a retraction (negative extrude) is also checked for
sane extrusion rates.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-02 07:54:48 -04:00
Kevin O'Connor
0fa35254c6 msgproto: Wrap strings passed via output() in repr()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-02 07:54:48 -04:00
Kevin O'Connor
fc9fb7473c gcode: Don't report an error if turning off an unknown fan or heater
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-01 15:02:27 -04:00
Kevin O'Connor
31ca2331d2 queuelogger: Add critical information to each logfile on rollover
When the log file does a rollover, start the top of the log with
critical system information (eg, software versions).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-01 14:48:44 -04:00
Kevin O'Connor
b5062a07d1 docs: Recommend users stop klipper before flashing the micro-controller
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-01 12:08:45 -04:00
Kevin O'Connor
4112007314 docs: Reword XY+Z delta moves in Kinematics
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-01 11:58:32 -04:00
Kevin O'Connor
a3162b17d9 docs: Use only single space at start of new sentence
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-01 11:58:32 -04:00
Kevin O'Connor
e177d4f70d docs: Reword smoothed look-ahead description in Kinematics
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-05-01 11:58:32 -04:00
Kevin O'Connor
631b0e6c37 docs: Improve wording of slow lookahead description
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-27 16:05:26 -04:00
Kevin O'Connor
a7f339ad1c docs: Improve documentation for those starting in docs/
Those that reach Klipper via github may jump directly to the docs/
directory in search of documentation.  Add README.md and rework
Overview.md with that in mind.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-27 16:05:26 -04:00
Kevin O'Connor
c1c0b2dd38 docs: Avoid using "firmware" in the documentation
The term "firmware" is ambiguous - it could refer to the entire
project (host and micro-controller software) or to just the
micro-controller software.  Avoid the term in the documentation.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-27 15:59:33 -04:00
Kevin O'Connor
d7a1111955 docs: Add backticks around commands in Firmware Commands
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-27 12:10:38 -04:00
Kevin O'Connor
d73340474b docs: Use "look-ahead" instead of "lookahead" in Code Overview
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-27 12:02:15 -04:00
Kevin O'Connor
4f7237de44 docs: Update Firmware Commands document with an integer example
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-27 12:00:10 -04:00
Kevin O'Connor
4096745a58 docs: Use a markdown link to docs/prints/square.stl
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-27 12:00:09 -04:00
Kevin O'Connor
a97e074022 docs: Kinematics document image updates
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-27 12:00:09 -04:00
Kevin O'Connor
917c6aa94a docs: Todo updates
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-27 09:52:38 -04:00
Kevin O'Connor
05bd6fda7e config: Add a sample config file for RAMBo boards
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-26 11:51:40 -04:00
Kevin O'Connor
7c78de989d config: Add a sample config file for RAMPS boards
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-26 11:48:35 -04:00
Kevin O'Connor
35a6d9ba87 gcode: Sort the order of commands in HELP
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-26 10:44:22 -04:00
Kevin O'Connor
c63754fc32 gcode: Limit build_handlers() method to just building available commands
The set_printer_ready() can be called from a background thread on a
shutdown event, so don't try to lookup the printer components in that
case.  Simplify build_handlers() so that it no longer tests for
components being available - test for component availability in the
command handlers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-26 10:31:58 -04:00
Kevin O'Connor
ccb93068fe msgproto: Rework dump() so it also works with params
Always call the regular .parse() method for each message type during
dump() - add a new .format_params() method for dumping a verbose
representation of the parsed message.  This allows the new
format_params() to also be used with data already parsed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-25 13:58:13 -04:00
Kevin O'Connor
a6fe355801 console: Automatically convert float values to int during evaluation
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-25 12:26:13 -04:00
Kevin O'Connor
fe11c3e348 console: Use stdout.write() instead of print
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-25 12:26:13 -04:00
Kevin O'Connor
56d4422d31 docs: Reword alternate linux machine in installation instructions
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-24 09:39:40 -04:00
Kevin O'Connor
e507848a8f docs: Remove "experimental" from descriptions
The Klipper software has progressed to the point where it does not
need to be described as "experimental" software.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-24 09:31:39 -04:00
Kevin O'Connor
70599667cb docs: Installation updates
Recommend using 'make flash' and clean up the octoprint instructions.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-24 09:21:21 -04:00
Kevin O'Connor
1878da228d build: Add workaround to suppress broken avr-gcc "misspelled" warnings
Detect avr gcc v4.8.1 and then disable warnings during the klipper.o
linking to suppress bogus "misspelled signal handler" warnings.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-24 08:54:10 -04:00
Kevin O'Connor
37865d69a2 basecmd: Add debugging commands for testing communication
Add "debug_ping" and "debug_nop" testing commands.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-23 13:37:49 -04:00
Kevin O'Connor
83eba902a3 build: Support makefile rule with default flashing commands
Support a "make flash FLASH_DEVICE=/dev/ttyACM0" rule with the default
commands for flashing a device.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-21 11:01:07 -04:00
Kevin O'Connor
ec805aee2e scripts: Add octopi installation scripts
Add a system startup script so that Klipper can automatically start at
boot time.  Create an installation script that will install the system
dependencies and the startup script.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-21 10:14:27 -04:00
Kevin O'Connor
167b18b58f gcode: Ignore M21 command
No need to recommend users disable "SD card support" in octoprint -
instead, just ignore the M21 command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-20 10:11:10 -04:00
Kevin O'Connor
4b1a530330 stepcompress: Simplify delta Z only move calculations
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-20 00:56:18 -04:00
Kevin O'Connor
19ffaa9ff0 docs: Reword parts of the pressure advance kinematics description.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-19 20:48:23 -04:00
Kevin O'Connor
0f5167a407 docs: Misc image updates
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-19 19:55:50 -04:00
Kevin O'Connor
563ab5caa5 docs: Add info on delta acceleration limits
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-19 19:54:48 -04:00
Kevin O'Connor
db5b5f121c docs: Add initial Pressure Advance tuning document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-19 16:02:11 -04:00
Kevin O'Connor
1f417a8441 docs: Update Todo - initial kinematic document written
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-15 22:59:34 -04:00
Kevin O'Connor
b74b09ea7a docs: Updates to Features document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-15 22:52:36 -04:00
Kevin O'Connor
2cce67ad84 docs: Add initial Kinematics document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-15 22:26:03 -04:00
Kevin O'Connor
2cb935c300 mcu: No need to log mcu_stats debugging
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-14 10:43:14 -04:00
Kevin O'Connor
b9623c1128 klippy: Don't log stats when the printer is idle
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-14 10:38:37 -04:00
Kevin O'Connor
7a386cff7d mcu: Change "Synchronizing mcu clock" logging to debug
Always log the last synchronized clock during a shutdown event, and
use debug level for normal reports.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-14 10:06:11 -04:00
Kevin O'Connor
839725e3c5 queuelogger: Automatically roll log file
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-14 09:58:34 -04:00
Kevin O'Connor
8920479f85 klippy: Remove CLEAR_SHUTDOWN command
Advice users to issue a FIRMWARE_RESTART command on a printer shutdown
event, and remove support for CLEAR_SHUTDOWN.  A full mcu reset is
preferable and it simplifies the interface.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-13 14:53:41 -04:00
Kevin O'Connor
4c25eae9b4 mcu: Make sure a FIRMWARE_RESTART actually resets the mcu
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-13 14:29:18 -04:00
Kevin O'Connor
a3a45b5037 docs: Update Todo - RPi power over USB now implemented
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-13 14:18:48 -04:00
Kevin O'Connor
dc645d76b4 docs: Reword and reformat parts of move code flow in Code_Overview
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-13 14:08:02 -04:00
Kevin O'Connor
daff83ee9a hub-ctrl: Add support for micro-controller reset via RPi usb power toggling
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-13 13:20:13 -04:00
Kevin O'Connor
9f9e3e61d6 mcu: Support reset command
Extend the FIRMWARE_RESTART command so that it can use the firmware
"reset" command instead of the "arduino" mechanism.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-13 13:20:13 -04:00
Kevin O'Connor
1592395036 reactor: Fix bug causing end() to not always work
Only set the self._process flag in run() not _dispatch_loop().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-13 13:20:13 -04:00
Kevin O'Connor
8491b1f86a docs: Update Features document with latest performance benchmarks
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-11 13:53:33 -04:00
Kevin O'Connor
a7b4d70cc6 docs: Add documentation on how to run the graphstats.py script
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-11 13:41:11 -04:00
Kevin O'Connor
fa193e9618 graphstats: The times are no longer in UTC time
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-11 13:40:25 -04:00
Kevin O'Connor
050008f3c8 docs: Update Debugging.md file with python virtual env setup
Direct readers to the main Installation file to setup the python
virtual environment and remove the outdated instructions in the
Debugging file.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-11 12:49:12 -04:00
Kevin O'Connor
70e53cb080 docs: Update Firmware_Commands with recent end stop changes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-11 12:36:29 -04:00
Kevin O'Connor
7b03b04c78 klippy: Support minimum/maximum value checks on configuration variables
Verify that numeric parameters are in a sane range when reading the
config.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-11 11:42:55 -04:00
Kevin O'Connor
7a7b98cc31 sam3x8e: Rework adc pin search to be more clear
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-11 10:01:22 -04:00
Kevin O'Connor
15d5837322 avr: Rework adc and pwm pin search to be more clear
Rework the pin search loop.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-11 10:01:22 -04:00
Kevin O'Connor
f9ebb8b23e avr: Move code around in gpio.c
Move the PWM, ADC, and SPI pin tables closer to their corresponding
code.  This is code movement only - no code changes.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-11 10:00:54 -04:00
Kevin O'Connor
77b94451de avr: Fix irqstatus_t typo in gpio_pwm_setup
The flags and cs variables should be uint8_t not irqstatus_t.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-11 09:49:35 -04:00
Kevin O'Connor
ca6245e974 docs: Update Code Overview document with code flow for a typical move
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-10 22:10:49 -04:00
Kevin O'Connor
1cdddeec30 stepcompress: Add comment on common suffixes and units
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-07 20:22:32 -04:00
Kevin O'Connor
657c908f88 stepcompress: Modify check_expand() into check_push()
Add the new item at the same time as checking if there is space in the
queue.

Also, update the default optimization level of c_helper.so to O2 to
improve the compiled code layout.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-07 19:05:04 -04:00
Kevin O'Connor
d7a0e22d59 stepcompress: Remove step_dist from stepcompress_push_delta()
Pass the step direction explicitly to the low-level delta kinematic C
code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-07 15:08:42 -04:00
Kevin O'Connor
33b809714f delta: Do reverse direction checking in C code
Calculate where a tower must reverse direction during a move in the C
code instead of the delta.py kinematic code.  This simplifies the
python code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-07 15:05:41 -04:00
Kevin O'Connor
b915a2ad7d delta: Make it clear that a "virtual tower" is created
The delta code calculates a "virtual tower" along the line of
movement.  Rework the variable names and comments to make it clear
that this is occurring.

It is not necessary to pass the start_pos variable to the C code as it
is simple to update the start_pos at the start of each movement.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-07 15:05:41 -04:00
Kevin O'Connor
85ed5cef7f stepcompress: Merge stepcompress_delta_const and stepcompress_delta_accel
It's not necessary to have separate C delta kinematic functions for
constant acceleration and constant velocity as constant velocity can
be obtained by using a constant acceleration of zero.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-07 14:47:00 -04:00
Kevin O'Connor
df42b0d1ac stepcompress: Pass delta velocity and acceleration directly to C code
Update the C delta kinematic code to take velocity and acceleration
directly in step distances and clock ticks.  This simplifies the
mcu.py python code as it only needs to do unit and axis conversion.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-07 14:43:48 -04:00
Kevin O'Connor
98add22891 stepcompress: Merge stepcompress_push_accel() and stepcompress_push_const()
It's not necessary to have separate C functions for constant
acceleration and constant velocity as constant velocity can be
obtained by using a constant acceleration of zero.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-07 14:43:25 -04:00
Kevin O'Connor
1d81bf5596 stepcompress: Pass constant velocity and acceleration directly to C code
Update the C code to take velocity and acceleration directly in step
distances and clock ticks.  This simplifies the mcu.py python code as
it only needs to do unit and axis conversion.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-07 13:57:24 -04:00
Kevin O'Connor
e4153a536f mcu: Change mcu_stepper.set_position() to take a location in millimeters
Update the set_position() method to convert from millimeters to
absolute step position.

Also, update PrinterStepper.get_homed_offset() and
mcu_stepper.get_commanded_position() to return millimeters.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-07 13:44:17 -04:00
Kevin O'Connor
79f31238b0 mcu: Don't export the commanded_position variable from mcu_stepper
Now that the kinematic classes call the mcu_stepper with millimeters
and seconds it is no longer necessary for them to directly access the
stepper's position in absolute steps.  Rename
mcu_stepper.commanded_position to mcu_stepper._commanded_pos to make
clear it is not a variable intended to be externally accessed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-07 13:44:17 -04:00
Kevin O'Connor
8c712d959d mcu: Pass delta velocity and acceleration directly to mcu_stepper
Rework the parameters of step_delta_const() and step_delta_accel() so
that they take velocity and acceleration directly in millimeters and
seconds.  This simplifies the delta.py kinematic code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-07 13:44:04 -04:00
Kevin O'Connor
c4b1a79db2 mcu: Pass constant velocity and acceleration directly to mcu_stepper
Rename step_sqrt/step_factor to step_accel/step_const and have them
directly take the velocity and acceleration in millimeters and
seconds.  This simplifies the kinematic classes.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-07 13:43:56 -04:00
Kevin O'Connor
47f12f107d stepcompress: Move stepcompress_push_* functions to their own section
This is only code movement; no code changes.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-07 13:26:39 -04:00
Kevin O'Connor
bfad970e4d mcu: Rename self.ffi_lib to self._ffi_lib
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-04 10:13:02 -04:00
Kevin O'Connor
49bdc6fbd1 corexy: Initial corexy kinematic implementation
Add initial support for corexy kinematics.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-03 17:27:14 -04:00
Kevin O'Connor
57f279677f endstop: Support halting more than one stepper on trigger
Extend the endstop code so that more than one stepper can be halted
during endstop homing.  Some kinematic setups (eg, corexy) require an
endstop to support this.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-03 17:27:10 -04:00
Kevin O'Connor
fff73c7735 avr: Invert diff in timer checks
Minor optimization on avr.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-03 10:39:49 -04:00
Kevin O'Connor
e44678ceba avr: Implement reset command
Support restarting the mcu using the watchdog feature of AVR chips via
a new reset command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-02 23:19:29 -04:00
Kevin O'Connor
85c0e9c574 sam3x8e: Implement reset command
Support restarting the mcu via a new reset command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-02 23:19:25 -04:00
Kevin O'Connor
0c3ec7f9a5 avr: Do not use --relax linker option
The relax option corrupts the compilation on at least some versions of
gcc/binutils (eg, on fedora's avr-gcc 6.2.0 / binutils 2.27) due to
corruption of switch tables that use jump offsets.  This issue is also
the root cause that resulted in commit d67f962a.  Since the --relax
option provides minimal size / performance improvements it can simply
be dropped.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-02 23:19:19 -04:00
Kevin O'Connor
74e15b2eb5 checkstack: Be more flexible in finding the timer irq function
If __vector_13 doesn't exist then try __vector_17.  If neither exists
then handle that gracefully.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-02 23:19:02 -04:00
Kevin O'Connor
565861f680 reactor: Support pause() command even when the reactor is not running
If the reactor isn't running then implement pause using the system
sleep command.  This simplifies the users of pause().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-04-01 12:26:24 -04:00
Kevin O'Connor
7c991399ac timer: Remove dup timer_shutdown code
Commmit a1c61563 renamed timer_shutdown() to timer_reset() but
neglected to delete timer_shutdown().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-31 19:20:45 -04:00
Kevin O'Connor
384c853a39 docs: Update benchmark results in Features document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-31 17:50:36 -04:00
Kevin O'Connor
c0380d0280 stepper: Disable homing_endstop_accuracy errors on debug runs
If klippy is started in file output debugging, disable the
homing_endstop_accuracy error check.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-31 14:38:09 -04:00
Kevin O'Connor
a1c61563a0 avr: Fix bug causing timer_read_time() to not be in sync with scheduler
Commit 16e3dbb1 changed the avr implementation of timer_read_time().
Unfortunately, it raised the possibility for timer_read_time() to be
out of sync with the scheduler's understanding of the current time.
In particular, it was common for the timer irq to overflow the 16bit
hardware counter once at startup, and this would lead to
timer_read_time() always returning a time ~4ms ahead of the scheduler
on 16Mhz chips.  This resulted in "Move queue empty" errors.

To resolve this issue, only increment timer_high from timer_periodic()
and make sure the timer irqs start immediately after timer_init().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-31 14:36:57 -04:00
Kevin O'Connor
aa0f1aaeb2 toolhead: Increase the motor_off_time default to 10 minutes
Increase the default motor_off_time from 1 minute to 10 minutes.  The
small value is a common source of confusion.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-30 14:09:17 -04:00
Kevin O'Connor
03ddd64b93 config: Decrease example max_z_velocity to 25mm/s
Change the example files for cartesian printers to have a 25mm/s
maximum Z velocity.  It's common to use lead screws for the Z axis on
cartesians and it is unlikely one would want to drive them at 250mm/s.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-30 14:05:05 -04:00
Kevin O'Connor
7fc9ba7d3a mcu: Log the mcu clock each time print_time is synchronized
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-30 12:51:10 -04:00
Kevin O'Connor
63b6bab5c3 sam3x8e: Align the TC0_Handler timer irq handler
The code alignment of the TC0_Handler function seems to noticeably
impact performance benchmarks.  Set the function alignment to 16 bytes
to improve testing consistency.  An alignment of 16 doesn't
necessarily improve performance, but it seems to improve testing
consistency on code changes unrelated to timer dispatch.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-30 12:04:08 -04:00
Kevin O'Connor
eb4eeb6f73 timer_irq: Integrate timer_try_set_next() into timer_dispatch_many()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-30 11:25:23 -04:00
Kevin O'Connor
6988507998 timer_irq: Rename generic/timer.c to generic/timer_irq.c
Rename the file to make it clear that the code is helper functions for
boards with irq based timers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-30 11:24:44 -04:00
Kevin O'Connor
65be6d5146 avr: Integrate timer_try_set_next() into the irq handler
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-30 11:24:44 -04:00
Kevin O'Connor
6d05dd07f5 sched: Move timer dispatch loop to board code
Rename sched_timer_kick() to sched_timer_dispatch() and move its loop
into its callers in the board code.  This eliminates the need to
export timer_try_set_next() from the board code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-30 11:24:42 -04:00
Kevin O'Connor
7436ec093a sched: Rename reschedule_timer() to insert_timer() and use in sched_add_timer()
Use the same code in both rescheduling of a timer and adding a new
timer.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-30 10:57:35 -04:00
Kevin O'Connor
2b735daae5 timer: Make sure to reset the timer repeat checks on a shutdown
Reset the timer repeat checks on shutdown, otherwise it is possible to
get into an infinite shutdown loop.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-30 10:57:35 -04:00
Kevin O'Connor
f8b0c884b0 stepper: Improve performance of scheduled unsteps
On faster MCUs where a delay is needed between step and unstep use a
"busy loop" in the scheduler instead of trying to schedule to the
unstep time.  This reduces the chance of jitter in the scheduler
accumulating.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-30 10:57:35 -04:00
Kevin O'Connor
18f4d343f5 avr: Remove F_CPU compile time definition
Directly use the Kconfig defined CONFIG_CLOCK_FREQ in the code and
avoid defining F_CPU.  Also, remove the unnecessary O2 option - that
is already the default from the main makefile.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-30 10:56:17 -04:00
Kevin O'Connor
31e78c90e2 avr: Minor optimization for timer_read_time() / timer_periodic()
Tell the compiler that the TOV1 bit is rarely set.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-27 13:37:20 -04:00
Kevin O'Connor
3238256b79 docs: Update benchmark results in Features document
Some additional tweeks to the scheduler has resulted in minor
improvements to the stepper benchmarks.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-26 23:31:33 -04:00
Kevin O'Connor
59b71d5d05 sched: Be explicit with loading of the waketime variable
Explicilty load the timer waketime variable into local variables in
sched_timer_kick().  Change the optimization level from Os to O2.
This helps gcc to avoid unnecessary reloads from memory in the common
stepper_event() case.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-26 22:45:58 -04:00
Kevin O'Connor
4dfa6c6ee4 avr: Introduce optimized timer_is_before()
Provide hand-coded assembler for timer_is_before() on AVR as that code
is used frequently in the time-critical timer dispatch loop and gcc
doesn't do a good job at compiling that comparison code.  Remove the
no longer needed waketime+1 hack from reschedule_timer().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-26 22:45:58 -04:00
Kevin O'Connor
60e488eb17 timer: Allow board code to define its own timer_is_before implementation
Move sched_is_before() from sched.c to timer_is_before() in the board
specific timer code.  This allows the board code to provide its own
definition.

Also, remove the sched_from_us() and sched_read_time() wrapper
functions and change the callers to directly invoke timer_from_us() /
timer_read_time().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-26 22:45:58 -04:00
Kevin O'Connor
14340ac4df timer: Organize timer_try_set_next() with priority for repeat timers
Organize the code flow to optimize for repeat timers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-26 22:01:07 -04:00
Kevin O'Connor
efbfc2b1ab avrsim: Catch simulation errors
Request that simulavr throw an exception on a fatal emulation error
instead of exiting the process.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-26 22:01:07 -04:00
Kevin O'Connor
d4f09bc20d checkstack: Updates for newer binutils
Newer versions of binutils report the variable name on memory
accesses.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-26 21:55:24 -04:00
Kevin O'Connor
d67f962a38 command: Simplify sendf() switch
Commit f28eb902 reworked the switch to fix int16 encoding.  However,
at least one version of avr gcc doesn't like that switch layout (it
uses a jump table).  Reorg the switch to avoid that issue.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-26 21:55:24 -04:00
Kevin O'Connor
6de85d02ae serialqueue: Message receive_time must be taken after read()
The est_clock calculation code requires timestamps on status messages
to never be prior to the reception of the message.  The eventtime of
handle_message() is taken before the read() and there is a small
possibility that it could be inaccurate enough to corrupt the
est_clock calculation.  Take a new timestamp when storing receive_time
to prevent this.  This fix prevents some firmware "Move queue empty"
shutdowns.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-24 19:16:33 -04:00
Kevin O'Connor
f28eb902df command: Fix encoding of 16bit signed integers
The code wasn't properly sign-extending 16bit integers which caused
int16_t reports in output() to appear as uint16_t.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-24 15:31:26 -04:00
Kevin O'Connor
9702d522a4 sched: Report the time of a shutdown
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-24 15:05:52 -04:00
Kevin O'Connor
4f710b0470 avrsim: Support pacing the simulation
Support timing the simulation scaled to the system clock.  This can be
used to make the host estimation of the mcu clock more accurate.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-24 13:55:55 -04:00
Kevin O'Connor
5f29787dc7 avrsim: Do IO directly from simulavr callbacks
Don't start/stop the simulavr simulation loop to do IO - instead
implement the IO directly in the serial callback handlers.  This
improves the speed and consistency of the simulation.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-24 11:58:32 -04:00
Kevin O'Connor
1fbb36fa87 serialhdl: Make sure to calculate est_clock before connect() finishes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-24 11:13:55 -04:00
Kevin O'Connor
3cafcc2bc7 serialqueue: Don't retransmit on a NAK if no sent data is pending
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-24 11:13:55 -04:00
Kevin O'Connor
8d92c898ee stepcompress: Always return 0 on negative number in safe_sqrt()
sqrt() of a negative number in the C code returns NaN.  This value
results in behavior that is difficult to debug.  Always return 0.0
instead as this results in better behavior that is easier to track
down.  Also, on some code paths, safe_sqrt is called on numbers that
are multiplied by very large amounts (eg, 16000000**2) and thus
distinguishing between large and small negative numbers is difficult.
For now, report in the log if the value is below -0.001.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-22 10:54:53 -04:00
Kevin O'Connor
9bf73cd72d extruder: Make sure EXTRUDE_DIFF_IGNORE doesn't trigger due to rounding
The code disables lookahead between two extruding moves with
significantly different extrude ratios.  Unfortunately, it was
possible for very tiny moves to show different extrude ratios just due
to how the slicer implements rounding when it produces the gcode.
Allow lookahead to be enabled between moves with extrude ratios that
are different if they don't noticeably produce more or less extrusion.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-20 14:39:06 -04:00
Kevin O'Connor
f97cf5c3b6 extruder: Avoid maximum extrude cross section errors on infinitesimal moves
Be less likely to raise a "Move exceeds maximum extrusion cross
section" error on very short moves.  It's okay to extrude a little
extra plastic on moves shorter than the nozzle diameter.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-19 21:38:59 -04:00
Kevin O'Connor
5ff2d5aee6 mcu: Defer MCU_adc register_msg until ready to receive messages
Register the callback handler only after it's required state is setup.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-16 14:41:26 -04:00
Kevin O'Connor
1f474742eb klippy: Log python info at start of log
Log the python version and startup command parameters to the log.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-16 14:41:25 -04:00
Kevin O'Connor
0041a0079d stepcompress: Improve check_line() error messages
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-16 13:15:25 -04:00
Kevin O'Connor
9bb8b0c622 toolhead: Don't raise exception from force_shutdown
Catch and ignore any exceptions when trying to shutdown the printer in
toolhead.force_shutdown() - there's a good chance an exception will be
raised as this method is often called after an invalid internal state
is found.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-16 13:15:25 -04:00
Kevin O'Connor
df6d3107f2 stepper: Fix set_min_stop_interval() calculation
The previous calculation was only valid if the stepper is always
commanded to a position that is an exact multiple of the
step_distance.  The safety check was programmed with a value too large
for other commanded positions, which could result in "No next step"
errors.  Fix by changing the calculation to use the worst case
scenario.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-16 13:15:09 -04:00
Kevin O'Connor
cbdc54843d gcode: Catch common gcode parameter errors
Don't force a firmware shutdown on a simple gcode parse error.
Instead, report the error back to the user and otherwise ignore the
command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-16 13:13:36 -04:00
Kevin O'Connor
d2027cb4a9 serialhdl: Catch SerialException as well as OSError on serial open
Catch the right exceptions so that a retry is possible when attempting
to open the serial port.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-16 12:49:15 -04:00
Kevin O'Connor
e60779bfe1 heater: Force set_pwm of zero when target_temp is zero
Fix a corner case where a residual in the PID could cause a non-zero
pwm request even when the target_temp is zero.  (Which could lead to a
firmware "Missed scheduling of next pwm event" shutdown.)

Simplify the logic for suppressing duplicate pwm updates and make sure
a zero target_temp always results in a zero pwm update on the
following set_pwm calculation.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-16 12:49:15 -04:00
Kevin O'Connor
f66b1ac450 heater: Add support for AD595 type sensors
Add support for sensor chips that produce a voltage that linearly
scales with temperature.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-13 00:48:30 -04:00
Kevin O'Connor
ff6a96665a heater: Rename thermistor_type config name to sensor_type
Rename the thermistor_type and thermistor_pin config variables to
sensor_type and sensor_pin.  This is in preparation for support of
sensors beyond thermistors.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-13 00:46:33 -04:00
Kevin O'Connor
4388a294a4 heater: Handle case where min adc value is less than max adc value
When using a sensor that isn't a thermisistor, the maximum and minimum
adc values may be swapped - handle that case.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-13 00:44:53 -04:00
Kevin O'Connor
d21b9280f0 klippy: Eliminate high-level build_config phase
Now that the mcu objects can be created prior to connecting to the
mcu, it is no longer necessary to separate the init and build_config
phases in the high-level code.  Move the mcu objection creation from
the build_config phase to the init phase and eliminate the
build_config phase.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-13 00:38:17 -04:00
Kevin O'Connor
92649332ce mcu: Delay setting of mcu_stepper.min_stop_interval
Create a separate callback for setting the min_stop_interval.

Also, move the setting of the stepper max_error from the stepper
configs to the mcu config and rename it to max_stepper_error.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-13 00:38:17 -04:00
Kevin O'Connor
be91c1229f gcode: Eliminate build_config() method
Lookup the printer components during the set_printer_ready() callback.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-13 00:38:17 -04:00
Kevin O'Connor
168cb95bd5 mcu: Allow each oid object to define its own build_config() method
Create a build_config() method on each oid object and call it just
after connecting to the MCU.  Move code that requires a connected
state from the oid init to its new build_config method.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-13 00:38:17 -04:00
Kevin O'Connor
1d796a4e24 mcu: Support config mechanism for translating seconds to clock ticks
Introduce a TICKS() macro during config parsing that will translate
time in seconds to time in clock ticks.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-13 00:38:17 -04:00
Kevin O'Connor
8e6d5efdac pins: Simplify pin map alias setup
Use map_pins() to obtain the pin mapping - don't export
mcu_to_pins().  The functionality of mcu_to_pins() can be obtained by
calling map_pins() with name=None.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-13 00:38:15 -04:00
Kevin O'Connor
0f2478b62f docs: Update benchmark results in Features document
Recent scheduler optimizations have made a minor improvement to the
stepper benchmarks.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-11 12:23:24 -05:00
Kevin O'Connor
e5d7e593ec generic: Move generic parts of sam3x8e timer.c to generic directory
Most of sam3x8e/timer.c is going to be platform agnostic for any board
with standard irq handling.  Move the generic code into a new file
generic/timer.c.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-11 12:15:07 -05:00
Kevin O'Connor
69b927bfe9 sched: Move functions within sched.c
Just code movement - no code changes.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-11 11:14:06 -05:00
Kevin O'Connor
944d176856 sched: Rename sched_timer() to sched_add_timer()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-11 11:14:06 -05:00
Kevin O'Connor
cdd5a772e8 sched: Don't overwrite shutdown reason if shutdown called while shutdown
If a shutdown occurs while the machine is already shutdown, then keep
the original shutdown reason code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-10 23:24:20 -05:00
Kevin O'Connor
0a3c23bcf6 sched: Avoid rescheduling the currently active timer
It's tricky to reschedule the timer irq correctly (due to race
conditions with the irq) and in practice it's very rarely needed.
Handle the special cases in the generic sched.c code so that the board
code doesn't have to handle it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-10 23:24:15 -05:00
Kevin O'Connor
cb286ede9d sched: Use a sentinel timer at the end of the timer_list
Introduce a dummy sentinel timer object that is always the last item
on timer_list.  This optimizes the timer_list walking code as it no
longer needs to check for NULL when traversing the list.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-10 16:14:49 -05:00
Kevin O'Connor
16e3dbb18c avr: Optimize 16bit timer upscaling
The hardware timer overflow bit can be used to optimize the conversion
from 16bit timers to 32bit timers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-10 13:31:38 -05:00
Kevin O'Connor
a38437f378 stepper: Introduce stepper_get_position command and remove from endstop.c
Move the logic to calculate and report the stepper's current position
from endstop.c to stepper.c.  This localizes the stepper code into
stepper.c.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-09 14:54:52 -05:00
Kevin O'Connor
8d6ecd9af8 endstop: No need to store pin_value
The pin_value can be stored in the existing flags variable.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-09 14:50:40 -05:00
Kevin O'Connor
342a7096ea basecmd: Remove unimplemented command_reset()
It's better to not have the unimplemented command defined so that the
host can detect when it is actually implemented.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-09 14:18:24 -05:00
Kevin O'Connor
60a4bda9d4 basecmd: Use oid_ prefix for the oid manipulation functions
Consistently use an "oid_" prefix on the oid functions - this makes
them similar to other functions with a common prefix.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-09 13:49:03 -05:00
Kevin O'Connor
d5fc594317 mcu: Support inverted PWM pins
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-09 00:46:53 -05:00
Kevin O'Connor
64407dc5d2 klippy: Support FIRMWARE_RESTART command
Add initial support for micro-controller resets via the Arduino reset
mechanism.  Also, automatically attempt a firmware restart if the
printer CRC does not match.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-08 23:02:31 -05:00
Kevin O'Connor
b0329465ec serialhdl: Make sure to close the serial port on disconnect()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-08 23:02:31 -05:00
Kevin O'Connor
0f70b420f2 mcu: Improve error messages on failure to config printer
Don't report a CRC mismatch if a shutdown or other failure occurs
during config - instead report the appropriate details.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-08 21:44:17 -05:00
Kevin O'Connor
21c4dea0e6 serialhdl: Detect timeout in SerialReader.send_with_response()
Raise an error if the response is never received.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-08 21:25:54 -05:00
Kevin O'Connor
bcaf818c0e fan: Default to using software PWM
Not all hardware has PWM support and there is no compelling reason to
use hardware PWM for fans.  Change the default to use software PWM.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-08 20:23:09 -05:00
Kevin O'Connor
37bac916e7 basecmd: Generalize the "move queue" runtime storage
Detect the maximum size of each "move queue" item during the
configuration phase instead of using the stepper move struct.  This
allows the stepper code to be contained entirely in stepper.c and it
allows for future run time allocations from other types of objects.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-08 13:37:51 -05:00
Kevin O'Connor
affdbbf9ca sam3x8e: Fix typo in gpio_in_setup() shutdown message
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-08 13:17:45 -05:00
Kevin O'Connor
4fcf0ff2ac docs: Fix typo in description of fan pin.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-07 19:13:37 -05:00
Kevin O'Connor
c19af4fb2b serialhdl: Load the mcu's 64bit clock at start of connection
Store a full 64bit uptime in the mcu and query it at the start of each
connection.  This ensures the host's 64bit clock is always in synch
with the mcu's clock.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-03 22:02:27 -05:00
Kevin O'Connor
f53897758d heater: Support max_power setting for heaters
Change the mcu PWM value from an integer (0-255) to a float (0. - 1.).
Add support for limiting the maximum power (as measured over a
sufficiently long duration) to a particular heater.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-03 20:00:16 -05:00
Kevin O'Connor
54002c4391 extruder: Pressure advance lookahead time should start after decel
The pressure advance lookahead time should start after any full
deceleration moves.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-03-03 14:20:41 -05:00
Kevin O'Connor
6a53eaefc0 extruder: Allow configuration of pressure advance lookahead time
Instead of defaulting the pressure advance lookahead time to be the
same as the pressure_advance variable, allow it to be configured.
Default the new config setting (pressure_advance_lookahead_time) to
10ms.

Also, make the setting more accurate if a future move is accelerating
in the middle of the lookahead window.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-22 15:20:22 -05:00
Kevin O'Connor
4bc114336c delta: Simplify maximum stepper velocity and accel checks
Simplify the mechanism for limiting stepper speed (introduced in
commit bdfdf7ef) - split the extreme end of the build envelope into
two zones and use the same speeds for all moves that traverse any part
of one of those zones.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-21 11:18:56 -05:00
Kevin O'Connor
47f1d377f5 heater: Enforce min/max_temp in heater.set_temp()
Raise an error if the user requests a temperate outside the configured
min/max_temp range.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-21 10:48:42 -05:00
Kevin O'Connor
566699f68a toolhead: Fix error in lookahead logic
Commit c24b7a7e reworked the way lookahead was done and it introduced
a bug when a full acceleration move is immiedietly followed by a full
deceleration move.  In that situation, depending on when the lookahead
queue was flushed, it was possible to call move.move() without calling
move.set_junction().  This resulted in a "Move instance has no
attribute 'accel_t'" internal error.

Simplify and fix the logic for checking full accel moves followed by
full decel moves.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-20 12:50:12 -05:00
Kevin O'Connor
29ba92a551 delta: Use position_endstop for position_max
There's no reason for the user to specify position_max - it can be
inferred on deltas from the endstop positions.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-19 11:00:46 -05:00
Kevin O'Connor
38e9484f9f armcm_irq: Move ARM Cortex-M irq handling to new file
The irq handling in sam3x8e isn't specific to the sam3x8e proccessor -
it's generic for all armcm type machines.  So, move the definitions
into a new file generic/armcm-irq.c

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-19 11:00:46 -05:00
Kevin O'Connor
fec12030a9 sam3x8e/timer: Be careful of races in timer_set_next()
It's possible for sched_del_timer() to be called on a timer that fires
just after sched_del_timer disables irqs but before the next timer is
scheduled.  In this case be sure to clear the irq pending status flag
after scheduling the next timer so that a delayed irq doesn't cause
the wrong timer to be run.  For the same reason, make sure to check
the irq pending status flag at the start of the timer irq.

Also, as a safety check, make sure timer_set_next() isn't called from
within the timer irq dispatch loop.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-14 22:15:51 -05:00
Kevin O'Connor
bdfdf7ef55 delta: Cap maximum stepper velocity and acceleration
Some XY moves at the extreme end of the build envelope could cause
excessive axis stepper movement.  Check for any moves that could
possibly result in a stepper movement of more than 3 times the XY
movement and cap the move's acceleration and speed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-13 21:47:10 -05:00
Kevin O'Connor
9f65ae72c3 delta: Rework boundary checks
Calculate and store the maximum xy2 value for the given z level each
time the head moves to a new z level.  This simplifies the boundary
check for common XY moves.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-13 17:51:13 -05:00
Kevin O'Connor
3434ea540c klippy: Log the type of cpu the host is running on
Report in the log the host CPU type and count.  This helps distinguish
between different rpi versions when debugging the log from a problem
report.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-12 19:14:26 -05:00
Kevin O'Connor
29131c873a gcode: Attempt to shutdown heaters and fans prior to a RESTART
If the user requests a restart and the machine appears to be otherwise
functioning normally, then attempt to stop the heaters and fans prior
to restarting the host.  This prevents the firmware from going into a
shutdown state when the heater is on and the host restarts.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-12 18:48:21 -05:00
Kevin O'Connor
ab1eb70d1c toolhead: Rework lookahead flush to be more stable during high cpu
Change the lookahead queue so that it attempts to buffer at least
buffer_time_high amount of moves when first starting a print.  This
helps ensure the buffer is normally always full.

If the buffer falls below buffer_time_low then it is either due to the
end of a print or because octoprint/klippy is unable to keep up.
Change the code so that in this case the lookahead queue will attempt
to gather buffer_time_high amount of moves before restarting movement.

Update the default buffer_time_low to 1 second and buffer_time_high to
2 seconds.  With the above changes a smaller buffer_time_high and a
larger buffer_time_low are more practical.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-12 17:20:40 -05:00
Kevin O'Connor
71256f9456 toolhead: Flush lookahead buffer by time
Use a minimum time window as a heuristic for determining when to try
to lazily flush the lookahead buffer.  In the common case this will
result in more moves processed for each flush and thus reduce the
overall cost of the lookahead processing.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-12 17:20:40 -05:00
Kevin O'Connor
6179839215 toolhead: Separate motor off timer from main flush timer
Move the motor off time checking to its own code.  This simplifies the
main flush handler.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-12 17:20:40 -05:00
Kevin O'Connor
0ca96e543c toolhead: Increase maximum stepper halt velocity
Do a better job of calculating the maximum halt velocity for the
stepper motors.  The maximum cornering velocity is related to both the
maximum acceleration and the junction_deviation, so both should be in
the formula.  Tests show that "math.sqrt(8. * self.junction_deviation
* self.max_accel)" very closely fits the maximum on cartesian robots.

This fixes potential "no next step" shutdowns that could occur on
some print moves.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-12 17:20:40 -05:00
Kevin O'Connor
acb0b8f599 klippy: Fix omission causing gcode dump to not function
Fix bug that broke the gcode command dump after a shutdown.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-12 17:19:58 -05:00
Kevin O'Connor
20d0936fa2 reactor: Use the system monotonic clock instead of the normal system clock
The normal system clock can have sudden jumps if the system clock is
changed.  Use the system monotonic clock to avoid these sudden changes
in time.

It appears the Raspbian OS (which is used by OctoPi) is setup to
update the system clock upon network connectivity.  This could cause
sudden system clock changes which could lead to Klippy processing
errors.  Using the monotonic clock eliminates these issues.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-06 13:31:34 -05:00
Kevin O'Connor
c24b7a7ef9 toolhead: Introduce "smoothed" acceleration during lookahead
Update the lookahead code to track both normal toolhead acceleration
as well as a pseudo acceleration to the point of deceleration.  This
reduces the top speed of small zig-zag moves and it reduces printer
vibration during these moves.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-06 12:17:50 -05:00
Kevin O'Connor
074495a13a toolhead: Remove unneeded forward pass in MoveQueue.flush()
Simplify the code now that the extruder lookahead is separate from the
main lookahead code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-06 12:17:50 -05:00
Kevin O'Connor
e14d86d8b8 toolhead: Remove the do_calc_junction flag
It is not necessary to track the do_calc_junction flag as it can just
as easily be determined at the top of the calc_junction() method.
This simplifies the code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-06 12:17:50 -05:00
Kevin O'Connor
528c29c01c extruder: Do extruder lookahead based on time instead of cornering
When calculating the extruder lookahead, determine how far to
lookahead by the amount of elapsed time each move takes.  This makes
the extruder lookahead code more flexible as it is no longer limited
to the next immediate cornering moves.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-06 12:17:50 -05:00
Kevin O'Connor
1bb7a22115 extruder: Move extruder specific lookahead into extruder class
Instead of calculating min/max_corner_v in the toolhead class,
calculate it in the extruder class.  This keeps the extruder specific
code together.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-06 12:17:50 -05:00
Kevin O'Connor
19ed67331d stepcompress: Propagate errors back to python code
Propagate error codes back to the python code and raise an exception
on an error.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-06 12:17:50 -05:00
Kevin O'Connor
667b72870f gcode: Exit on an unhandled exception when reading from a file
When testing via a gcode input file, it's easier to debug problems if
the program exits upon the first exception.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-06 12:17:50 -05:00
Kevin O'Connor
4194ebf9df graphstats: Display host buffer stats in graph
Prune host buffer stats near the start and end of the print.  Graph
the remaining buffer stats.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-02 10:46:48 -05:00
Kevin O'Connor
5beceaae5c io.h: read/write[bwl] should use barrier
Add barrier() calls to low-level read/write io calls so that their
callers don't need to.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-02-02 10:46:42 -05:00
Kevin O'Connor
9c1bf1387c toolhead: Make sure max_corner_v2 is fully calculated on a lazy flush
Make sure max_corner_v2 is fully calculated before proactively
flushing moves from the lookahead queue.  Without this, some moves
would do unnecessary pressure advance during cornering.

Also, handle the min/max_corner_v2 calculations correctly in the rare
case where a move that does only acceleration is immediately followed
by a move that does only deceleration.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-16 15:32:35 -05:00
Kevin O'Connor
fc6a31eac8 toolhead: Change variables to use suffix "_v2" instead of prefix "junction_"
The junction speeds are tracked in velocity squared - introduce the
common suffix "_v2" to track that instead of using a prefix of
"junction_".

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-16 15:32:35 -05:00
Kevin O'Connor
064e8bdd84 toolhead: Clear do_calc_junction if using non-default accel
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-14 12:48:16 -05:00
Kevin O'Connor
262ccbcf30 serial: Be careful with comparison of transmit_max to transmit_pos
There is a small possibility that a shutdown could occur between
clearing transmit_max and clearing transmit_pos - so make sure to
handle the case where transmit_pos > transmit_max.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-14 12:11:30 -05:00
Kevin O'Connor
7567885115 sched: Minor change - remove unneeded header files
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-14 11:32:27 -05:00
Kevin O'Connor
ed715ec437 command: No need to disable irqs in sendf reentrant check
As long as the code is careful when writing the in_sendf variable it
should be safe to update it without having to disable irqs.

Also, make sure in_sendf is cleared on shutdown.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-14 11:32:27 -05:00
Kevin O'Connor
9a44a20a9d command: Check for reentrant calls to sendf()
Allow sendf() to be called from irq and timer context - check for the
case where sendf() is called while already in sendf() and simply
discard those messages.  This makes it safe to use output() debugging
calls even in irq and timer context.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-13 12:10:00 -05:00
Kevin O'Connor
f335045273 heater: Resend PWM values even if last value was zero
Continue to resend the pwm value even if the last value was zero -
this extends the debugging info.

Also, add the target temperature to the pwm debugging.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-12 15:13:41 -05:00
Kevin O'Connor
4ea091339e heater: Only create a soft PWM object for PID heaters
The "watermark" style heater only needs a digital_out pin - not a
software PWM pin.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-10 18:36:43 -05:00
Kevin O'Connor
8378b7345b toolhead: Change cornering_min/max variable name to junction_corner_min/max
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-10 18:35:52 -05:00
Kevin O'Connor
4a71c7a2bd heater: Report last temperature in PWM debugging
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-10 12:36:51 -05:00
Kevin O'Connor
b2885a53cb klippy: Increase precision of reported statistics timestamp
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-10 12:35:30 -05:00
Kevin O'Connor
46b6b4037d reactor: Reload eventtime if a greenlet is reactivated
Fix a bug causing timers to be delayed when pause() is called from a
fd event.  The eventtime needs to be reloaded when an old greenlet is
reactivated.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-10 11:19:39 -05:00
Kevin O'Connor
93d3a6e1d1 klippy: Warn the user on common errors due to old firmware
Check for msgproto.error and warn the user about version firmware
version mismatch.  Raise msgproto.error when extracting firmware
constants.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-10 00:13:28 -05:00
Kevin O'Connor
eebaeeff96 util: Use path of script instead of current directory for git version
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-09 23:33:23 -05:00
Kevin O'Connor
3a7a77d49e basecmd: Improve accuracy of stats "sumsq" variable
Use a base of 256 instead of 65536 when calculating the sum of the
square of the clock differences in the stats.  This makes the
calculation more accurate.  Export the new base via DECL_CONSTANT for
the host to access.  Use DIV_ROUND_UP() when adjusting for the base to
ensure no lost ticks.  Do the division after multiplication in the
common case where the time between stats_task() invocations is less
than 64K ticks.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-09 23:08:23 -05:00
Kevin O'Connor
c87c090264 extruder: Calculate sane defaults for extrude only velocity and accel
Instead of requiring the user enter velocity and accel parameters for
extrude only moves, calculate sane defaults from the printer's maximum
velocity and accel.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-03 18:18:30 -05:00
Kevin O'Connor
b26922978a extruder: Do sanity checks on extrusion rates
Add a run-time check to ensure the incoming g-code doesn't have a
ridiculously large e move.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-03 18:17:43 -05:00
Kevin O'Connor
5a5bd2596a extruder: Add nozzle and filament diameter config settings
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-03 18:12:51 -05:00
Kevin O'Connor
38ca051381 config: Update example config files to be more clear on default values
Be more clear on which parameters have defaults and which parameters
must be specified in the config.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-02 13:22:20 -05:00
Kevin O'Connor
91056809dd mcu: Change the default baud rate to 250000
Update the default baud rate in mcu.py to 250000 (as that is the
default in all other places).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-02 12:22:43 -05:00
Kevin O'Connor
f75430e95f gpio: Fix sam38xe ADC startup check
The status register needs to be inspected, not the enable register.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2017-01-01 22:10:24 -05:00
Kevin O'Connor
8e797e6830 stepcompress: Flush periodically if adding more than 64K steps in a move
It's possible for a printer with very fine resolution to require a
large number of steps for a homing operation.  Instead of storing all
of those steps in memory, periodically flush the queue should more
than 64K steps be present.  This keeps a reasonable limit on the
amount of ram needed to store steps.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-31 13:21:53 -05:00
Kevin O'Connor
73c4be3fd3 docs: Update protocol document with internal VLQ link
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-31 11:30:50 -05:00
Kevin O'Connor
c552ba06b4 serialqueue: Remove serialqueue_flush_ready()
The serialqueue_flush_ready() code was used to flush queue_step
commands during a homing operation.  It's no longer necessary now that
moves during a homing operation use the normal message priority
system.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-30 20:15:05 -05:00
Kevin O'Connor
6bd5f4e44e stepcompress: Using normal message priority system during homing
The endstop homing system requires all queue_step commands be in the
MCU's 'move queue' before endstop checking starts.  Use the normal
message priority system to request that stepper queue_step commands
are received prior to the start of the end_stop_home command.  This
simplifies the code and removes the need for special serial queue
flushing.

This also fixes a bug in homing operations that take longer than 2^31
clock ticks.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-30 20:14:48 -05:00
Kevin O'Connor
6138d18f4b toolhead: Also call reset_print_time() on force_shutdown()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-28 22:38:29 -05:00
Kevin O'Connor
d028f42e99 mcu: Don't call steppersync_flush if steppersync not created
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-28 22:38:29 -05:00
Kevin O'Connor
860fc3e91d gcode: Add support for M115 command
Support querying the firmware type and version.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-28 22:38:29 -05:00
Kevin O'Connor
2e03d84755 gcode: Add support for M400 command
Add ability to fully stall the input until all moves are complete.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-28 22:38:28 -05:00
Kevin O'Connor
f2b406fc5e toolhead: Don't call into kinematic class on extrude only moves
Add a is_kinematic_move flag to the Move class and clear it on extrude
only moves.  Don't call the kinematic check_move() or move() methods
for extrude only moves.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-28 22:38:28 -05:00
Kevin O'Connor
f46bc0ef04 stepper: Change default max_error from 50us to 25us
Change the default compression error window (max_error) from 50us to
25us - it's common for stepper motor drivers to have 30us for their
"pwm fixed off time" and it would be good for the steps to be
scheduled within that time.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-28 22:38:27 -05:00
Kevin O'Connor
800d53db6a stepcompress: Rework addfactor integer overflow check
Revert 4a16053c and avoid integer overflows in the addfactor
calculation by exiting the loop early if count > 0x200.  This provides
stronger protection against overflows.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-26 12:47:17 -05:00
Kevin O'Connor
a9444d3399 mcu: Log the MCU configuration during connect phase
Log the constants reported by the MCU and log the number of move items
allocated after configuration.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-24 12:33:56 -05:00
Kevin O'Connor
4a16053c00 stepcompress: Fix integer overflow leading to infinite loop
Commit a217c0f3 changed the way the "addfactor" was calculated.
Unfortunately, it was possible for the updated method to cause an
integer overflow and have a negative addfactor.  Fix this by
explicitly casting the addfactor calculation to uint32_t.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-24 12:02:37 -05:00
Kevin O'Connor
d0c61f0f76 klippy: Log the contents of the config file at startup
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-24 10:18:41 -05:00
Kevin O'Connor
451ffd567d klippy: Log the host software git version at startup
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-24 10:17:48 -05:00
Kevin O'Connor
f3a49604f1 stepcompress: Increase check on max count to 10000000
Some motors have very small step distances and they can generate over
a million steps during a homing operation.  Increase the maximum count
to ten million to avoid triggering the internal sanity check.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-23 23:13:35 -05:00
Kevin O'Connor
3576dd6e87 docs: Note version 0.3.0 release
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-23 19:10:09 -05:00
Kevin O'Connor
3b668c9baf docs: Add Releases page with history of releases
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-23 18:28:42 -05:00
Kevin O'Connor
618fe0e6fb sam3x8e: Add support for ADC pins
Support analog-to-digital inputs.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-23 17:06:11 -05:00
Kevin O'Connor
872b08601a mcu: Obtain the maximum adc value from the firmware
Don't assume the hardware ADC has 10bit resultion - instead have the
firmware define a constant and read that constant in the host.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-23 17:06:10 -05:00
Kevin O'Connor
fe95ea221b build: Define DECL_CONSTANT mechanism for defining exported constants
Add a DECL_CONSTANT macro to allow the firmware to define constants
that are to be exported to the host during the "identify" phase.  This
replaces the existing hardcoded mechanism of scanning the Kconfig
header file for certain constants.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-23 17:06:10 -05:00
Kevin O'Connor
4e8674d5df build: Disable gcc's use-linker-plugin option
On GCC v6 the -fwhole-program option does not take effect when
-fuse-linker-plugin is also in effect. The -fuse-linker-plugin option
does not optimize as well as -fwhole-program, so explicitly disable
the linker plugin via -fno-use-linker-plugin.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-22 22:48:14 -05:00
Kevin O'Connor
9894348e12 docs: Add an example to the description of the message block contents
Use a more real-world example to improve the description of message
block contents. Make it more clear that the data dictionary contains
and utilizes the full command descriptions.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-22 13:38:45 -05:00
Kevin O'Connor
189ac86b06 docs: Update protocol document to highlight its "compression" system
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-21 15:10:25 -05:00
Kevin O'Connor
6f3bbafbbd docs: Minor wording change to protocol document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-21 14:06:44 -05:00
Kevin O'Connor
3a478adeaa docs: Minor updates to protocol document
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-21 13:54:45 -05:00
Kevin O'Connor
29aa6ef6c7 docs: Update installation document
Various installation updates.  Recommend upgrade to OctoPrint v1.3.0.
Recommend configuring OctoPrint to not disconnect on error.  Note
quirk with needing to reload page if "/tmp/printer" not in list of
serial connections.  Add brief documentation on use of extended
commands and checking for errors.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-21 12:01:39 -05:00
Kevin O'Connor
219796ef4e gcode: Add a "STATUS" command
Add a status command that will report the current printer status.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-21 11:35:00 -05:00
Kevin O'Connor
4f087c331c klippy: Update config error message - use "RESTART" when ready to continue
It is possible to restart the host software with a RESTART command
after manually resetting the micro-controller.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-21 11:16:06 -05:00
Kevin O'Connor
18456f71f8 docs: Add a features document
Add a document describing some high-level features in Klipper.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-20 22:31:46 -05:00
Kevin O'Connor
1d841eeb87 stepcompress: Prefer greater interval if all else equal
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-19 11:20:39 -05:00
Kevin O'Connor
19d1f83d97 stepcompress: Move check for add=0 sequences out of loop
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-19 11:20:38 -05:00
Kevin O'Connor
6efadf44d0 stepcompress: Favor higher add values when bisecting
Instead of splitting the available "add range" in half, try for add
values closer to the higher end of the range.  This heuristic seems to
result in better choices.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-19 11:20:38 -05:00
Kevin O'Connor
e4c4a4628b stepcompress: Use inclusive range on min/maxadd
Change the min/maxadd variables to use an inclusive range instead of
exclusive.  This better matches min/maxinterval.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-19 11:20:38 -05:00
Kevin O'Connor
a217c0f394 stepcompress: Be consistent with "point" vs "nextpoint"
Make it clear which variables refer to the best verified point found
so far, and which variables deal with the next (not yet verified)
point.

Also, remove checked_count as bestcount serves the same purpose.

Also, allow minmax_point to be inlined.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-19 11:20:38 -05:00
Kevin O'Connor
1dbd11446c stepcompress: Don't warn on multi-step interval=0 sequences
It is possible to get a valid multi-step sequence with an interval of
zero if the add is non-zero.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-14 11:03:16 -05:00
Kevin O'Connor
74fa8a3907 serialhdl: Clear "hupcl" bit from serial port
The arduino style serial port interfaces can reset the MCU when the
serial port is opened.  Clearing the HUPCL flag makes this less
likely.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-09 19:07:03 -05:00
Kevin O'Connor
cad1e0b985 docs: Recommend latest version of pyserial in installation instructions
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-09 18:59:36 -05:00
Kevin O'Connor
b099851a8b gcode: Increase initial speed
If a speed is never specified then default to 25mm/s (up from 1 mm/s).
If a user accidentally issues a move without setting the speed, the
default speed shouldn't be so slow that it takes minutes to finish the
move.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-09 17:28:09 -05:00
Kevin O'Connor
f25ead109c gcode: Handle M112 emergency stop command
Also try to support the command if it is sent out of order.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-09 17:09:51 -05:00
Kevin O'Connor
edd7dfe1c8 gcode: Rework toolhead stalling to use greenlets
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-09 17:09:51 -05:00
Kevin O'Connor
89f5452ddb gcode: Rework homing to use greenlets
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-09 17:09:51 -05:00
Kevin O'Connor
a6de1db94d gcode: Rework endstop query to use greenlets
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-09 17:09:51 -05:00
Kevin O'Connor
ed9d7e4fae gcode: Convert wait for temp to use greenlets
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-08 18:15:11 -05:00
Kevin O'Connor
e169f70bfb gcode: Convert busy handler from timer to greenlet
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-08 18:15:11 -05:00
Kevin O'Connor
35428f2e04 cartesian: Make it clear which methods of CartKinematics are internal
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-08 18:14:46 -05:00
Kevin O'Connor
0718a1bd1f delta: Make it clear which methods of DeltaKinematics are internal
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-08 18:13:34 -05:00
Kevin O'Connor
83f7d702e7 stepcompress: Encourage add=0 in compress_bisect_add()
Only use a non-zero 'add' if it actually extends the number of steps
the command covers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-06 19:01:00 -05:00
Kevin O'Connor
12d4888321 graphstats: Updates for recent stats changes
Update the graphstats helper script to account for recent changes in
the statistics output.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-06 11:10:52 -05:00
Kevin O'Connor
4565a73e91 stepcompress: Optimize push_delta_const() for common XY or Z only moves
Most moves are on the XY plane - avoid a few multiplications in the
inner loop in this case.  When there is a Z move, it is almost always
entirely a Z move - avoid the sqrt() call in the inner loop in this
case.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-05 14:40:29 -05:00
Kevin O'Connor
9c932ad514 delta: Rework delta math to avoid using inv_movexy_r
Taking the inverse of the XY move distance can lead to extremely large
values when the XY distance is very small.  This can lead to
saturation of the double precision variables and incorrect results.

Rework the delta kinematic math to avoid using this inverse.  Pass the
closestxy_d value directly to the C functions so that the C code can
calculate its intermediate constants.

After this change the move_z special case is no longer necessary as
the regular delta functions now work with movexy_r=0 and movez_r=1.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-05 14:36:02 -05:00
Kevin O'Connor
5458f3cbd2 delta: Make sure homing distance is large enough to hit the endstop
The head may be far away from an axis at the start of a home, and that
axis must then traverse more than just the distance from zero height
to the endstop position.  Add in additional distance to account for
this.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-05 14:06:38 -05:00
Kevin O'Connor
611e1d239b config: Update avrsim.cfg with recent config file changes
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-02 16:21:23 -05:00
Kevin O'Connor
d2abbd8f5d extruder: Fix retract
Commit 7554c7f6 broke retract moves.  Fix by making sure extrude_r is
always a positive number.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-01 18:17:54 -05:00
Kevin O'Connor
00b40b720f klippy: stats() method must check that mcu and toolhead classes exist
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-01 18:17:54 -05:00
Kevin O'Connor
71b4923208 delta: Support limiting the maximum velocity of z moves
On a delta printer, z moves require the mcu to support the greatest
number of steps per second.  However, z moves are rare, so it makes
sense to limit the velocity of z moves separately from the velocity of
normal xy moves.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-01 18:17:54 -05:00
Kevin O'Connor
c49d3fdb17 toolhead: Specify maximum acceleration and velocity in toolhead class
Change the config file so the maximum accel and velocity are specified
in the "printer" section instead of the individual "stepper" sections.
The underlying code limits the velocity and accel of the toolhead
relative to the print object, so it makes sense to configure the
system that was as well.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-01 18:17:54 -05:00
Kevin O'Connor
fcaf359e89 stepstats: Update stepstats script with change in dir_pin meaning
Commit afecf7ce inverted the direction of the direction pin in
queue_step commands - update the stepstats script to conform.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-01 18:16:18 -05:00
Kevin O'Connor
9a31c068c4 klippy: Fix typo causing missing stats on 'exit_eof' case
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-01 10:55:04 -05:00
Kevin O'Connor
babc9e7a1e docs: Minor updates to wording of some documents
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-01 10:21:36 -05:00
Kevin O'Connor
d2ecc9d80c gcode: Add support for CLEAR_SHUTDOWN command
Add ability to clear the MCU shutdown flag from the console.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-12-01 00:21:20 -05:00
Kevin O'Connor
fbd7cc243b klippy: Add ability to restart the host software
Add a "restart" gcode command that will cause the host "klippy"
software to reload its config and restart.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-30 23:53:03 -05:00
Kevin O'Connor
a6055ce069 gcode: Support parsing of "extended" gcode commands
Support human readable commands (eg, "help").  Add a "help" command to
list these extended commands.

Also, add support for declaring command aliases, command help, and
command availability next to the handlers themselves.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-30 23:00:29 -05:00
Kevin O'Connor
35719e665c delta: Fix delta kinematics startup
Commit 1e1364c3 moved the storage of the stepper position to the
mcu_stepper class.  The initializing of that position needs to be
pushed back until after the mcu_stepper class is instantiated.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-30 21:24:03 -05:00
Kevin O'Connor
bc80ed4e88 mcu: Detect if the communication channel to the firmware is lost
Detect a comms loss and report it to the user.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-30 21:20:09 -05:00
Kevin O'Connor
5ebe8ce025 gcode: Don't dump the message log directly from set_printer_ready()
The set_printer_ready() method can be called from a background thread.
Have the main Printer class call a new dump_debug() method in the main
thread on a shutdown event.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-30 21:20:09 -05:00
Kevin O'Connor
17dcb42752 klippy: Validate that options in the config file exist
Check that all options specified in the config file are valid.  This
catches possible typos and spelling errors in variable names that have
a default.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-30 21:20:09 -05:00
Kevin O'Connor
2f97b2d7c2 klippy: Add ConfigWrapper.getchoice method
Add helper function that ensures a config option is one of several
choices.  This helps ensure that a proper error is raised if an
invalid choice is made.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-30 21:19:44 -05:00
Kevin O'Connor
57244de37d klippy: Throw an exception if any required config parameter is missing
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-30 21:19:44 -05:00
Kevin O'Connor
3806ed882a mcu: Raise a config error on an invalid pin name in the config file
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-30 21:19:44 -05:00
Kevin O'Connor
ce7e7c4048 klippy: Report an error if the config file does not exist
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-30 21:19:44 -05:00
Kevin O'Connor
524e0290bc klippy: Improve error reporting during connect
Catch exceptions during the connect phase and report them via the
gcode interface to the user.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-30 21:19:44 -05:00
Kevin O'Connor
dbdf1e137e gcode: Support reading from gcode input before mcu is ready
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-30 21:19:43 -05:00
Kevin O'Connor
6ebb1a68cb klippy: separate initial config file load into load_config() method
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-30 21:19:43 -05:00
Kevin O'Connor
7e7e607e3f klippy: Create the /tmp/printer pseudo tty before opening config file
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-30 21:19:43 -05:00
Kevin O'Connor
4eb21a71ae klippy: Defer calling mcu.connect_file() to connect() method
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-30 21:19:43 -05:00
Kevin O'Connor
4f07ee4d92 pyhelper: Add ability to route error messages to python logging
Instead of writing error messages to stderr, route them into the
python code and use the standard python logging system.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-30 21:19:43 -05:00
Kevin O'Connor
b14db404b5 pyhelper: Move helper functions from serialqueue.c to new file
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-30 13:33:16 -05:00
Kevin O'Connor
7cb71df02c mcu: Be careful to free memory allocated in C code
Free steppersync, stepcompress, and commandqueue objects.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-30 13:33:16 -05:00
Kevin O'Connor
55fc11ff02 serialhdl: Retry opening of serial port
Continually retry to open the serial port.  This helps with connecting
to some micro-controllers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-29 21:58:48 -05:00
Kevin O'Connor
0d43d269ed serialhdl: Fully deallocate serialqueue on disconnect
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-29 21:58:48 -05:00
Kevin O'Connor
a0829c63de serialhdl: Make SerialReader.send_with_response() blocking
Use the greenlet mechanism to wait for the response directly in the
send_with_response() method.  This simplifies the calling code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-29 21:58:45 -05:00
Kevin O'Connor
535c7b99b4 serialhdl: Make SerialReader.connect() blocking
Use the greenlet mechanism to wait for the connection to come up in
the serial connect() method.  This simplifies the calling code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-29 21:57:49 -05:00
Kevin O'Connor
5d805ba550 klippy: Run the MCU connect code within the reactor
Setup the reactor and run the MCU connection code as a timer within
the reactor.  The connection code will make use of reactor greenlets
so that it can wait for events during the connection phase.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-29 21:54:45 -05:00
Kevin O'Connor
bafe796eeb reactor: Add support for greenlets
Add support for greenlets - a mechanism for tasks that can pause while
still allowing regular reactor events to occur.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-29 21:54:45 -05:00
Kevin O'Connor
ceb60ffcc6 mcu: Rename output_file_mode variable to is_fileoutput
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-29 21:54:40 -05:00
Kevin O'Connor
72c4f353e6 serialqueue: Kick the background thread from serialqueue_exit
Wake the background thread up when exiting - as this makes the exit
complete faster (and have more predictable timing).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-29 18:49:12 -05:00
Kevin O'Connor
4d6830a373 serialqueue: Fix possible memory leak in serialqueue_extract_old()
Make sure to free all messages even if the requested size is smaller
than the number of messages.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-29 18:49:12 -05:00
Kevin O'Connor
f547cab710 klippy: No need to define __str__ and __init__ methods on exception classes
The base Exception class already defines these methods.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-29 18:49:12 -05:00
Kevin O'Connor
7835f50722 klippy: Eliminate write_dictionary command line option
The feature is not necessary and it will be difficult to maintain
in the future.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-29 18:21:57 -05:00
Kevin O'Connor
d161d66741 mcu: Handle adc initialization entirely in mcu code
Don't expose the ADC initialization to the gcode and heater code -
instead, register a callback within the MCU_adc class and call it
directly from the MCU class after configuration completes.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-29 18:21:56 -05:00
Kevin O'Connor
9755182adf homing: Check homing distance to verify endstop trigger after retract
Instead of checking the endstop trigger directly after a retract move,
verify some distance is traveled during the following homing
operation.  This reduces the amount of synchronization between mcu and
host during homing.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-28 11:23:26 -05:00
Kevin O'Connor
a5637bb9d4 mcu: Track the stepper position in the MCU in the MCU_stepper class
Support tracking of both the commanded_position and the mcu_position
in the MCU_stepper class.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-28 11:22:01 -05:00
Kevin O'Connor
1e1364c3d4 mcu: Store the stepper position in the mcu_stepper class
Move the storage of the stepper location from the kinematic classes to
the low-level mcu_stepper class.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-19 11:34:42 -05:00
Kevin O'Connor
7cf914537b stepper: Raise an EndstopError if invalid phase found during homing
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-18 14:39:48 -05:00
Kevin O'Connor
ab1972d1cf homing: Verify the endstops are no longer triggered after retract move
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-18 14:17:53 -05:00
Kevin O'Connor
e0aa067cc9 homing: Check for timeout during homing operation
Should a homing move complete without hitting the endstop, then
disable motors, disable the endstop checking, and report the error to
the user.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-18 14:17:53 -05:00
Kevin O'Connor
4f30dce64f homing: Add EndstopMoveError wrapper around EndstopError
Allow an EndstopError to be raised without a destination position.
Introduce EndstopMoveError wrapper so that current callers can
continue to pass in a move destination.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-18 14:17:53 -05:00
Kevin O'Connor
2b5b899d35 homing: Direct stepper phase detection from kinematic classes
Change the scheduling of the final homed position (which takes into
account the stepper phases) so that it is scheduled from the kinematic
classes instead of from the toolhead class.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-18 14:04:10 -05:00
Kevin O'Connor
781cf608d7 homing: Create Homing class from gcode
Create the Homing class in the gcode handler instead of in the
kinematic classes.  This will make it easier to pass error messages
back to the user.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-18 14:04:09 -05:00
Kevin O'Connor
9e1059afb4 homing: Create QueryEndstops class from gcode
Create the QueryEndstops in the gcode handler instead of in the
kinematic classes.  This simplifies the gcode handler as it can
directly register its response callback.

Also, store the stepper name in the stepper class.  Also, propagate
the print_time of the query request to the mcu_endstop class.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-18 14:04:09 -05:00
Kevin O'Connor
7ef8c0442a mcu: Remove support for DummyMCU class
It's easier to test with the file output mechanism and the DummyMCU
code has grown stale.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-16 12:09:26 -05:00
Kevin O'Connor
6ab269ceb7 stepcompress: Don't bother loop unrolling in push_sqrt()
It's not necessary to have two loops - checking if factor is greater
than zero in the loop is fine.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-14 15:36:11 -05:00
Kevin O'Connor
fd7cb99f47 stepcompress: Optimize safe_sqrt() code
Optimize the code by putting the uncommon case out-of-line.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-14 15:12:53 -05:00
Kevin O'Connor
5a1ec817d4 stepper: Check if the motor needs to be enabled in the kinematic classes
Check for motor enable in the kinematic classes so it doesn't need to
be checked on every move.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-14 13:40:35 -05:00
Kevin O'Connor
9ad8153d33 stepper: Reset the next step time on a stepper stop
Automatically reset the next step time to zero on a stepper_stop()
call.  This makes the host code simpler as it no longer needs to
schedule an explicit reset_step_clock command on the step after a
homing operation.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-14 13:10:14 -05:00
Kevin O'Connor
941427554a delta: Initial support for linear delta kinematics
This adds support for delta based robots.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-14 12:35:36 -05:00
Kevin O'Connor
7554c7f694 stepcompress: Do all step rounding in C code
Commits f0cefebf and 8f331f08 changed the way the code determined what
steps to take on fractional steps.  Unfortunately, it was possible in
some situations for the C code to round differently from the python
code which could result in warnings and lost steps.

Change the code so that all fractional step handling is done in the C
code.  Implementing the step rounding logic in one location avoids any
conflicts.

In order to efficiently handle the step rounding in the C code, the C
code has also been extended to directly send the "set_next_step_dir"
command.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-13 18:29:45 -05:00
Kevin O'Connor
79da35d023 stepcompress: Minor code movement
Move flush() and check_expand() code to a new location so that the
stepcompress_push_X() functions can flush.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-12 22:55:27 -05:00
Kevin O'Connor
1dee1ba64e queuelogger: Add support for background log writing
Writing to the debug log can cause an unbounded delay due to disk IO.
This is particularly so on embedded machines such as the Raspberry Pi
that run on SD cards.  These log writing delays can cause problems for
the main processing threads.

The new "queuelogger" code forwards all the main thread log messages
to a queue, and a background thread writes the log messages from the
queue to the destination file.  This eliminates the IO delay from the
main threads.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-12 22:53:43 -05:00
Kevin O'Connor
afecf7ce36 stepper: Default to a high direction pin meaning positive direction
Invert the default meaning of the stepper direction pin.  Instead of
treating a low value as position motion, treat a high value as
positive motion.  This matches what other firmwares do, and it matches
what common stepper motor drivers document.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-08 10:39:32 -05:00
Kevin O'Connor
5e6127869a mcu: Do not invert the direction of pullup pins by default
A pullup setting on an input pin (ie, '^') should enable the hardware
pullup resistor, but it should not invert the trigger level (ie, it
should remain trigger on high).  Those that need to change the trigger
level (ie, trigger on low) must now do that explicitly (ie, '^!').
This makes the code match what other firmwares do.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-08 09:29:38 -05:00
Kevin O'Connor
3b5b895a10 heater: Do not require target temperature be above min_extrude_temp
Only disable the extruder if the last measured temperature is below
the minimum extrude temperature setting.  Verifying the target
temperature is not necessary, and it can incorrectly prevent some
valid moves.  It's not uncommon for scripts to retract filament
immiedietly after setting the extruder temperature to zero.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-08 09:22:43 -05:00
Kevin O'Connor
345fc41482 extruder: Don't do pressure advance on velocity changes due to cornering
Due to the lookahead, small changes in the direction of the toolhead
cause minor changes in toolhead velocity.  These "cornering" velocity
changes cause the current extruder code to trigger pressure advance
and its associated pressure retract.  This causes the extruder to
rapidly "jerk" the filament.

This code change updates the extruder to detect velocity changes due
solely to cornering and avoid pressure advance.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-05 11:06:58 -04:00
Kevin O'Connor
93dd310add extruder: Don't assume start_v matches last end_v in pressure advance
Due to minor differences in the extrude ratio, the last end velocity
of the filament may not exactly match the next move's start velocity
of the filament.  Implement more precise calculations for pressure
advance to take this into account.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-05 11:06:58 -04:00
Kevin O'Connor
a201385008 extruder: Consistently use extrude distance in calculations
Avoid mixing the travel distance of the head (and its associated
velocity and acceleration) with the distance the filament moves.
Instead, use the filament travel distance.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-05 11:04:50 -04:00
Kevin O'Connor
9d7aa1e155 toolhead: Support calculation of cornering minimum and maximum
Calculate the next "cornering" minimum and maximum for each move.  The
"cornering minimum" is the lowest speed the head will reach
immediately after this move (with no interleaving acceleration or
cruising).  The "cornering maximum" is the maximum speed the head will
reach after the cornering minimum (with no interleaving deceleration
or cruising).

These cornering calculations will be helpful in the extruder "pressure
advance" code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-05 10:59:36 -04:00
Kevin O'Connor
6285cc6f66 toolhead: Simplify calculation of junction_cruise
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-05 10:59:36 -04:00
Kevin O'Connor
8e165fecc0 toolhead: Calculate maximum junction start when adding moves
Take into account the maximum possible start speed of a move when
calculating junction_start_max.  This simplifies the lookahead logic.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-05 10:56:47 -04:00
Kevin O'Connor
7c8addc5c5 gpio: Merge gpio_adc_sample_time() into gpio_adc_sample()
Return the number of clock ticks to wait directly from
gpio_adc_sample().  This simplifies the ADC interface.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-02 17:36:43 -04:00
Kevin O'Connor
5419c456ac docs: Add information on the "move queue" to Firmware_Commands
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-02 13:22:35 -04:00
Kevin O'Connor
2b7ab290b8 mcu: Remove python checks for stepcompress integer overflow
Now that the C code checks for overflow, it is no longer necessary for
the python code to check.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-02 13:22:35 -04:00
Kevin O'Connor
508a934d62 stepcompress: Do 32bit integer overflow checks internally in C code
Update the stepcompress C code to check for integer overflow so that
the python code does not need to.  The new checks also handle the
possibility of a single move lasting long enough to cause an overflow.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-02 13:22:35 -04:00
Kevin O'Connor
8025921fc8 stepcompress: Invert the meaning of the min_clock flag
Use a non-zero qm->min_clock value to indicate that the command uses
the move queue and to also store the clock of when that move queue
item will be released.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-02 10:12:26 -04:00
Kevin O'Connor
ff6fef927a stepcompress: Store step times using 64bit integers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-11-01 19:38:37 -04:00
Kevin O'Connor
77d486f8d2 sam3x8e: Rework timer priority code to use time instead of event count
Rework the timer prioritization code so that is compares against the
current time instead of the number of repeat timers in a given
interrupt.  This makes the code slightly faster and it should provide
better protection against task starvation.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-31 11:48:27 -04:00
Kevin O'Connor
233a90ce8b sam3x8e: Clear all bits of PSR register when clearing IRQ status
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-31 11:47:57 -04:00
Kevin O'Connor
41ef0bd98c stepstats: Add debugging script to calculate stats on stepper movement
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-31 11:15:38 -04:00
Kevin O'Connor
f58d93c0bf graphstats: Add new helper script that generates graphs of MCU load
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-31 11:15:38 -04:00
Kevin O'Connor
8f331f08d2 extruder: Determine start step offset using last commanded position
The existing code calculates the number of steps in a move and then
spreads them out evenly throughout that move.  Change the code so that
step timing is based on where the head is commanded to be relative to
the stepper step locations.  This makes the timing more accurate - in
particular the stepper velocities will be more accurate during
cornering introduced by the lookahead code.  It also results in
slightly smoother stepper motion which results in better step
compression.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-31 11:14:28 -04:00
Kevin O'Connor
f0cefebff7 cartesian.py: Determine start step offset using last commanded position
The existing code calculates the number of steps in a move and then
spreads them out evenly throughout that move.  Change the code so that
step timing is based on where the head is commanded to be relative to
the axis step locations.  This makes the timing more accurate - in
particular the axis velocities will be more accurate during cornering
introduced by the lookahead code.  It also results in slightly
smoother stepper motion which results in better step compression.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-31 11:06:19 -04:00
Kevin O'Connor
2904a0bbac cartesian: Rename step_dist to move_step_d
Don't use step_dist for the "distance along the line of movement per
step" as it's too similar to the stepper.step_dist variable.  Use the
name "move_step_d" instead.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-31 11:05:52 -04:00
Kevin O'Connor
6a96e83ea9 toolhead: Store both the start and end position in the Move class
Store the start position (in addition to the existing end position) in
the Move class.  The start position can be useful to the kinematic
classes.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-25 19:19:29 -04:00
Kevin O'Connor
306db9a851 build: Be sure to also include out/*.d files in Makefile
Not including the out/*.d build files can cause the build to be
incomplete.  In particular, without this fix, if the code is built for
ARM and then configured for AVR, the build can produce a corrupt AVR
binary.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-21 12:00:03 -04:00
Kevin O'Connor
93bd19a8c2 docs: Todo updates
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-19 13:35:49 -04:00
Kevin O'Connor
98ce7dc465 docs: Add Firmware_Commands.md with information on common firmware commands
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-19 13:35:49 -04:00
Kevin O'Connor
9edf60ffc6 docs: Add Protocol.md with information on host / firmware communication
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-19 13:35:49 -04:00
Kevin O'Connor
884cee27eb sched: Improve AVR optimization of reschedule_timer()
Tweak the AVR register pressure optimization in reschedule_timer() to
optimize it further.  This improves the performance of AVR timers when
there are several pending timers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-19 13:35:48 -04:00
Kevin O'Connor
0f87493487 timer: Rework AVR timer priority code to use time instead of event count
Rework the timer prioritization code so that is compares against the
current time instead of the number of repeat timers in a given
interrupt.  This makes the code slightly faster and it should provide
better protection against task starvation.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-19 13:35:48 -04:00
Kevin O'Connor
8be8cb7a91 serial: Increase AVR serial receive buffer
Increase the size of the serial receive buffer.  With transmit rates
of 250000 baud, it only takes a little over a millisecond to overflow
the existing buffer.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-18 15:01:29 -04:00
Kevin O'Connor
977aabe038 stepper: Return homing offset in steps instead of an absolute position
Rename get_homed_position() to get_homed_offset() and return the
endstop position delta in steps instead of an absolute position
relative to position_endstop.  The conversion to absolute positions
can be dependent on the type of kinematics in use, so is inappropriate
to do in the low level stepper.py code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-13 10:09:56 -04:00
Kevin O'Connor
da7d8dbcac docs: Add todo list to documentation
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-12 10:06:18 -04:00
Kevin O'Connor
3809e4c055 gcode: Reset current position after an endstop error
If the printer is commanded to an invalid location, reset the current
position to the last successfully commanded position.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-11 15:10:19 -04:00
Kevin O'Connor
7f8a94ff48 heater: Make it possible to disable min_extrude_temp for testing
Allow a config file to specify 'min_extrude_temp: 0' to disable the
minimum extrude temperature test.  This makes it easier to perform
testing on the avr simulator.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-11 00:21:30 -04:00
Kevin O'Connor
ee56b14faa mcu: Fix endstop query timeout checking
Commit 0685802c changed the query endstop timeout to use host time
instead of the mcu clock.  However, it is possible for an endstop
homing request to be in the future which makes using the host time
inappropriate.  Revert back to using the mcu clock to determine when
to send an endstop query.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-11 00:21:24 -04:00
Kevin O'Connor
ab54fcd443 stepcompress: Check for small negative numbers on sqrt() calls
It's theoretically possible for floating point truncation to cause a
math formula to return a small negative number instead of 0.  If
sqrt() is called on this small negative number it could cause a
crash.  Check for this case and return 0.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-10 11:39:26 -04:00
Kevin O'Connor
9fa0a62c8a stepcompress: Eliminate possible infinite loop in compress_bisect_add()
Commit 47f30331 converted compress_bisect_add() to use "best reach"
instead of "best add".  However, that change caused
compress_bisect_add() to behave poorly when passed in invalid data
(negative times).  Change the code to better handle invalid data.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-10 11:31:56 -04:00
Kevin O'Connor
9faa0fbd25 extruder: Support a minimum extrude temperature
Allow the config file to specify the minimum temperature for the
extruder and check for that temperature prior to moving the extruder
motor.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-09-30 21:36:51 -04:00
Kevin O'Connor
3167e8ddbe extruder: Remove unnecessary getsection('extruder') call
The passed in config object is already pointing to the 'extruder'
section.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-09-30 21:36:51 -04:00
Kevin O'Connor
b53da365a1 cartesian: Enforce endstop min and max boundaries
Verify that each move command is within range of the configured
minimum and maximum for each axis.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-09-30 21:36:51 -04:00
Kevin O'Connor
275b386856 toolhead: Allow kinematics class to verify the move prior to queuing it
Introduce a check_move() method in the extruder and cartesian
kinematic classes.  This allows the lower level classes to verify the
contents of the move prior to queing that move.

The speed and acceleration handling for special Z and extrude only
moves are also moved from the generic toolhead class to the low-level
classes.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-09-30 21:27:46 -04:00
Kevin O'Connor
e9505697fb gcode: Keep a log of incoming gcode data and report it on a shutdown
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-09-30 21:27:46 -04:00
Kevin O'Connor
47f303317b stepcompress: Compress for greatest "reach" instead of greatest "add"
Search for the maximum reachable value instead of the maximum "add".
The maximum reachable value encompasses both the maximum count and a
closest step time to the last requested step time.  This allows for
more "add=0" sequences to be generated which the mcu can optimize for.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-09-24 11:42:06 -04:00
Kevin O'Connor
0685802cb8 homing: Support querying the current status of endstops
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-09-22 11:29:27 -04:00
Kevin O'Connor
c8ff439722 stepper: Disable "no next step" check for some count=1 queue_step commands
It's possible for a "count=1" stepper move immediately after a
set_next_step_dir or reset_step_clock command to be valid and have an
interval less than min_stop_interval.  Make sure this case does not
result in a shutdown.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-09-22 11:15:17 -04:00
Kevin O'Connor
a7b81dc05c toolhead: Force a firmware shutdown on an unhandled exception
Check for unhandled exceptions and force the MCU to shutdown in that
case.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-09-22 11:15:17 -04:00
Kevin O'Connor
0824d32319 cartesian: Minor change to clarify end stop homing direction code
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-09-15 12:20:16 -04:00
Kevin O'Connor
9ff5600421 docs: Clarification of some installation and config steps
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-09-15 12:19:30 -04:00
Kevin O'Connor
94272ed072 heater: Add "ATC Semitec 104GT-2" thermistor definition
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-09-15 12:16:08 -04:00
Kevin O'Connor
7b2f6f89f0 heater: Remove redundant float conversion
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-09-15 12:15:35 -04:00
Kevin O'Connor
06dbc40f53 docs: Describe running Klippy in batch mode for debugging
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-09-10 20:49:25 -04:00
Kevin O'Connor
1bbcb51066 mcu: Write initial config commands when in file output mode
When doing serial file output debugging, write the config commands as
they are often useful to inspect.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-09-10 20:26:52 -04:00
Kevin O'Connor
33a48d926c build: Support creating and storing the data dictionary on each build
Generate the data dictionary in out/klipper.dict on each build.  This
makes it easier to use the dictionary when debugging.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-09-10 20:01:52 -04:00
Kevin O'Connor
c5f50e73c2 mcu: Consistently use mcu_freq variable name (instead of clock_freq)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-08-25 12:09:37 -04:00
Kevin O'Connor
7276c7085a mcu: Internally store _print_start_time instead of _print_start_clock
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-08-25 12:07:08 -04:00
Kevin O'Connor
e52113a319 mcu: convert stepper, endstop, and digital_out to take mcu_time
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-08-24 16:42:25 -04:00
Kevin O'Connor
11ecac626d mcu: Convert PWM and ADC objects to take mcu_time instead of clock
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-08-24 15:16:02 -04:00
Kevin O'Connor
5a24ab06d8 docs: Update Installation.md - Arduino Due is also supported
Update the document introduction to note that the Arduino Due is also
now supported.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-28 12:12:44 -04:00
Kevin O'Connor
654546e338 stepper: Support stepper phase adjustments when homing
Add support for enhancing the precision of endstop switches by also
inspecting the phase of the stepper motor when the endstop triggers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-28 11:22:28 -04:00
Kevin O'Connor
170389ef14 extruder: Add some additional comments
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-26 11:17:26 -04:00
Kevin O'Connor
a17229a4c1 docs: ARM updates for Code_Overview.md
Some details on the code flow and organization have changed since
support for ARM processors was added.  Update Code_Overview.md
accordingly.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-26 10:58:33 -04:00
Kevin O'Connor
92f81d51f4 homing: Move low-level coordinate manipulation to kinematic class
Rework the code so that the kinematic class (currently just
cartesian.py) has more control over the homing process.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-25 23:47:30 -04:00
Kevin O'Connor
e9c03f2e4a gcode: Error on G20 (set units to inches) command
Respond with an error to a G20 command (instead of effectively
ignoring the command).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-25 22:46:11 -04:00
Kevin O'Connor
dc37a07a8e extruder: Add support for "pressure advance" on extrusion
Add a config option to define an amount of additional filament to feed
into the extruder during acceleration and deceleration of the
extruder.  This can help ensure plastic is deposited in the correct
places during a print.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-25 21:57:23 -04:00
Kevin O'Connor
c847606311 toolhead: Limit lookahead optimization to moves with similar extrude ratios
Only skip acceleration between moves if both moves perform a similar
amount of extrusion.  This ensures the extruder has sufficient time to
accelerate to and from each extrude move.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-22 15:42:19 -04:00
Kevin O'Connor
589017a3d6 stepper: Have caller calculate max jerk velocity
Allow the owner of the stepper object to cacluate the maximum step
jerk velocity.  This is used to ensure there is no communication error
between mcu and host.

Disable checking of jerk velocity for extruder stepper motors.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-22 15:42:18 -04:00
Kevin O'Connor
d3c27c514f toolhead: Add some comments to acceleration code
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-16 21:33:35 -04:00
Kevin O'Connor
777a0b817b serialhdl: Calculate baudadjust from MCU's baud instead of host baud
Store the baud rate the MCU is configured for in the "identify" data
and use that rate when calculating the baudadjust parameter.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-16 21:33:35 -04:00
Kevin O'Connor
4988ba9a71 stepcompress: Fix error causing queue to not be expanded in expand_queue()
The test to check if the queue only needed to be moved was not correct
and it could lead to a segfault if clean_queue() was called instead of
actually increasing the queue size.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-16 21:33:35 -04:00
Kevin O'Connor
3fa7da804d stepcompress: Check for invalid count in step_factor and step_sqrt
Check for an invalid count and report an error if found.  This
prevents some segfaults when count goes negative.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-16 21:33:15 -04:00
Kevin O'Connor
af99ab1645 extruder: Create a new class and python file to track the printer extruder
Create a new python file (extruder.py) to control the extruder heater
and stepper motors.  This separates the extruder control logic from
the cartesian robot code - making it easier to customize both the
kinematic control of the robot as well as the extruder.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-10 22:49:02 -04:00
Kevin O'Connor
4a527a46ce stepper: Store max_velocity/max_accel instead of max_step_velocity/accel
All users of max_step_velocity and max_step_accel end up multiplying
by step_dist anyway, so it's easier to store max_velocity and
max_accel.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-10 22:49:02 -04:00
Kevin O'Connor
5829aa8bd7 toolhead: Avoid using a dummy_move for an empty move_queue
Explicitly check for when the move_queue is empty and only call
move.calc_junction() when there is a previous move.  This avoids the
need to create a dummy "sentinal" move object and it simplifies the
code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-10 22:49:01 -04:00
Kevin O'Connor
9bb1ae079f toolhead: Merge lookahead.py into toolhead.py
Remove the lookahead.py file and move its code directly into
toolhead.py.  The MoveQueue() class is small and tightly coupled to
the toolhead code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-10 22:49:01 -04:00
Kevin O'Connor
e0a9a1b800 toolhead: Split toolhead code from cartesian.py to new file toolhead.py
Separate out the toolhead logic to its own python file.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-10 22:48:59 -04:00
Kevin O'Connor
861f5a5387 cartesian: Separate out cartesian robot handling from ToolHead class
Separate out the low-level stepper motor kinematics handling from the
ToolHead class into its own class.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-10 22:47:54 -04:00
Kevin O'Connor
20ae4e5d98 cartesian: Rename CartKinematics class to ToolHead
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-10 22:47:13 -04:00
Kevin O'Connor
b3e8b430e5 cartesian: Do acceleration and lookahead on requested coordinates
Perform all acceleration calculations and lookahead checks in
millimeters using the cartesian coordinate system of the request.  The
conversion to step coordinates is now done at the time of the step
timing creation.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-10 22:47:08 -04:00
Kevin O'Connor
ae8d57e650 stepcompress: Fix compress_bisect_add() infinite loop
At high step speeds, it is possible to exit the inner scan due to
integer truncation.  Always update minadd or maxadd so that the outer
loop always terminates.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-10 21:46:57 -04:00
Kevin O'Connor
b0b2e9c4aa build: Avoid objcopy --dump-section flag
Commit da305e6b changed the objcopy command to use the --dump-section
flag.  However, the 2.24 version of avr-objcopy (which is common on
raspbian installs) does not support this flag.  Avoid using
--dump-section and continue to use the -j option instead.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-07-10 21:46:57 -04:00
Kevin O'Connor
409904c61c pins: Add Arduino Due pin name aliases
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-14 15:41:18 -04:00
Kevin O'Connor
afb1839b6b docs: Update documentation with Arduino Due installation info
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-14 15:17:03 -04:00
Kevin O'Connor
cc62a3dbf3 sam3x8e: Add initial support for Arduino Due boards
This adds basic support for running on the Atmel SAM3x8e
micro-controllers that are found in the Arudino Due boards.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-14 14:27:30 -04:00
Kevin O'Connor
31c04261c1 lib: Add Atmel SAM3x8e ARM CMSIS files
Add the ARM CMSIS definitions (obtained from an Arduino copy of
libsam) in preparation for Arduino Due support.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-14 14:25:42 -04:00
Kevin O'Connor
6220cdda92 stepper: Support rescheduling of step events on faster MCUs
On faster MCUs the step and unstep events may be too close for the
stepper motor driver.  Add a CONFIG_NO_UNSTEP_DELAY build option and
support the case where it is not set.  This allows faster MCUs to
schedule two events for each step (one for the step and one for the
unstep).

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-14 14:24:14 -04:00
Kevin O'Connor
da305e6b61 build: Update declfuncs.lds.S to only use progmem sections on AVR
On non-avr platforms the declfunc stuff still needs to be in the
binary in a rodata section.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-14 14:00:57 -04:00
Kevin O'Connor
343de9c454 serialhdl: Avoid using 1200 baud during serial reset
The Arduino Due uses a 1200 baud connection to signal an erase
sequence, so avoid it during normal serial resets.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-14 14:00:57 -04:00
Kevin O'Connor
e59951c8ae avr/serial: Separate out low-level hardware manipulation to its own function
Introduce enable_tx_irq() for manipulating the AVR hardware.  This
keeps the low-level hardware code together.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-14 14:00:57 -04:00
Kevin O'Connor
ea5f825a91 build: Default to O2 optimization
Default to O2 and set Os in the AVR makefile.  Platforms besides AVR
are likely to produce better code with O2 so make that the default.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-14 14:00:57 -04:00
Kevin O'Connor
b3e4ff7ef0 sched: Use 'unsigned int' instead of 'uint16_t' for shutdown reason
Use 'unsigned int' instead of 'uint16_t' as is faster on some
platforms.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-14 14:00:57 -04:00
Kevin O'Connor
b0524947e5 sched: Use uint_fast8_t for return type of timers
Some architectures are faster passing regular integers than 8bit
integers.  Use uint_fast8_t so that the architecture chooses the
appropriate type.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-14 14:00:53 -04:00
Kevin O'Connor
fa85094cbb irq: Allow boards to define the return type of irq_save()
The AVR wants a uint8_t return type for irq_save(), but other
architectures will generally prefer int.  Allow the board to configure
the size of the flag by introducing an irqstatus_t typedef.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-13 23:18:59 -04:00
Kevin O'Connor
9dd101c26f irq: Prefer irq_disable/enable instead of irq_save/restore in cmds/tasks
Task and command handlers always run with irqs enabled, so it is not
necessary to save/restore the irq state when disabling irqs in these
handlers.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-13 23:18:59 -04:00
Kevin O'Connor
4fcf5a31f5 pwmcmds: Add Kconfig option to allow boards to disable hardware PWM commands
Some boards may not support hardware based PWM.  Update the build so
that those commands do not need to be compiled if they are not
available.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-13 23:18:59 -04:00
Kevin O'Connor
c20f993747 spicmds: Add Kconfig option to allow boards to disable SPI commands
Some boards may not support SPI transfers.  Update the build so that
those commands do not need to be compiled if they are not available.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-13 23:18:59 -04:00
Kevin O'Connor
71947d6bea gpiocmds: Add Kconfig option to allow boards to disable ADC commands
Some boards may not support the ADC hardware.  Update the build so
that those commands do not need to be compiled if they are not
available.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-13 23:18:59 -04:00
Kevin O'Connor
220a1e4197 compiler.h: Check if __aligned and __section macros are already defined
Don't define these macros if they are already - doing so causes
compiler warnings.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-13 23:18:59 -04:00
Kevin O'Connor
4dd3478fc1 Makefile: Move listing of directories to create to board makefiles
Rename DIRS to dirs-y and populate it in the per-board Makefile rules.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-13 23:18:59 -04:00
Kevin O'Connor
8e1c0941b0 generic: Add new file generic/io.h and move read/writeb() to it
Move the definitions of the readb() style functions to a new header
generic/io.h.  This eliminates the dependency of stdint.h on
compiler.h.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-13 23:18:59 -04:00
Kevin O'Connor
62f96f0911 generic: Move simulator/gpio.h to generic/gpio.h
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-13 23:18:59 -04:00
Kevin O'Connor
73f3b0636a generic: Move simulator/irq.h to new file generic/irq.h
Move the generic irq definitions into generic/irq.h and move the
simulator irq code into main.c.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-13 23:18:58 -04:00
Kevin O'Connor
9f8817a47e generic: Move board timer.h files into generic/misc.h
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-13 23:18:58 -04:00
Kevin O'Connor
9971f999b3 generic: Create generic board infrastructure and move misc.h to it
Instead of creating a misc.h file in each board directory, create a
generic board directory and declare misc.h there.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-13 23:18:58 -04:00
Kevin O'Connor
ff789058df console: Update the debugging console to support setting local varables
Add a "SET varname value" local command to the console.py script.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-13 23:18:58 -04:00
Kevin O'Connor
bd07cd1193 sched: Optimize timer list handling
Rework the timer list rescheduling to be more optimized.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-13 15:34:56 -04:00
Kevin O'Connor
a6de2184ba stepper: Optimize for case where add is zero
At high rates, the "add" field is frequently zero.  It's possible to
optimize for that case.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-13 15:34:56 -04:00
Kevin O'Connor
bb3b881e21 docs: Change the debugging docs to recommend a serial baud rate of 250000
A baud of 250000 is a better choice for production use.  It's better
to test with that rate also.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-13 15:34:23 -04:00
Kevin O'Connor
e4859d2e9a gpio: Fix off-by-one bug in check for the maximum gpio port
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-13 15:34:23 -04:00
Kevin O'Connor
91e7807af6 avr: Add config option to clear the CPU prescaler
Some AVR chips ship with a 1/8th clock divisor set.  Add a compile
time option to manually clear this field at startup.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-05 10:52:46 -04:00
Kevin O'Connor
38f1d78e1b serialqueue: Add debugging helper functions for dumping a binary buffer
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-05 10:52:46 -04:00
Kevin O'Connor
b52b65624b avr: Separate out gpio pwm pin definitions from pwm register definitions
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-05 10:52:46 -04:00
Kevin O'Connor
2a17d9457a avr: Eliminate gpio_adc_info struct in gpio adc pin definitions
The gpio_adc_info only contains a single uint8_t field - it's simpler
to use an array of uint8_t instead.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-05 10:52:46 -04:00
Kevin O'Connor
7531d0c678 avr: Define timer1 timers and prevent their use as PWM at runtime
Instead of commenting out the timer1 pwm definitions, detect them at
runtime.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-05 10:52:45 -04:00
Kevin O'Connor
3eafc83458 avr: Initial support for Atmel AT90USB1286 mcu
Add GPIO definitions for the AT90USB1286.  Add code for communicating
over USB port on AT90USB1286.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-05 10:52:45 -04:00
Kevin O'Connor
4326a3adce buildcommands: Fix max_size calculation
The maximum max_size value should not include MESSAGE_MIN - that is
already added by the runtime code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-05 10:52:45 -04:00
Kevin O'Connor
ed103822f5 sched: Change sched_from_ms() to sched_from_us()
Some code may require micro-second precision so update sched_from_ms()
to use micro-seconds.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-02 17:52:11 -04:00
Kevin O'Connor
d68cb264c4 stepper: Use stepper_stop() instead of stepper_reset() in stepper_shutdown()
The stepper_stop() function is equivalent to stepper_reset() during a
shutdown event.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-02 17:52:05 -04:00
Kevin O'Connor
45ba03efa3 timer: Move union u32_u16_u from compiler.h to avr/timer.c
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-06-01 09:54:13 -04:00
Kevin O'Connor
f582a36e4d Initial commit of source code.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-05-25 11:37:40 -04:00
1258 changed files with 946179 additions and 4 deletions

31
.github/workflows/stale-issue-bot.yaml vendored Normal file
View File

@@ -0,0 +1,31 @@
# Enable the github stale issue bot tracker
name: "Close stale issues"
on:
schedule:
- cron: "0 0 * * *"
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-issue-message: |
Hello,
It looks like there hasn't been any recent updates on this
Klipper github issue. If you created this issue and no
longer consider it open, then please login to github and
close the issue. Otherwise, if there is no further activity
on this thread then it will be automatically closed in a few
days.
Best regards,
~ Your friendly GitIssueBot
PS: I'm just an automated script, not a human being.
exempt-issue-labels: 'enhancement,bug'
days-before-stale: 21
days-before-close: 7

6
.gitignore vendored Normal file
View File

@@ -0,0 +1,6 @@
out
*.so
*.pyc
.config
.config.old
klippy/.version

27
.travis.yml Normal file
View File

@@ -0,0 +1,27 @@
# This is a travis-ci.org continuous integration configuration file.
language: c
dist: bionic
addons:
apt:
packages:
# AVR GCC packages
- gcc-avr
- avr-libc
# PRU GCC build packages
- pv
- libmpfr-dev
- libgmp-dev
- libmpc-dev
- texinfo
- libncurses5-dev
- bison
- flex
cache:
directories:
- travis_cache
install: ./scripts/travis-install.sh
script: ./scripts/travis-build.sh

674
COPYING Normal file
View File

@@ -0,0 +1,674 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program 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.
This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.

127
Makefile Normal file
View File

@@ -0,0 +1,127 @@
# Klipper build system
#
# Copyright (C) 2016-2019 Kevin O'Connor <kevin@koconnor.net>
#
# This file may be distributed under the terms of the GNU GPLv3 license.
# Output directory
OUT=out/
# Kconfig includes
export HOSTCC := $(CC)
export CONFIG_SHELL := sh
export KCONFIG_AUTOHEADER := autoconf.h
export KCONFIG_CONFIG := $(CURDIR)/.config
-include $(KCONFIG_CONFIG)
# Common command definitions
CC=$(CROSS_PREFIX)gcc
AS=$(CROSS_PREFIX)as
LD=$(CROSS_PREFIX)ld
OBJCOPY=$(CROSS_PREFIX)objcopy
OBJDUMP=$(CROSS_PREFIX)objdump
STRIP=$(CROSS_PREFIX)strip
CPP=cpp
PYTHON=python2
# Source files
src-y =
dirs-y = src
# Default compiler flags
cc-option=$(shell if test -z "`$(1) $(2) -S -o /dev/null -xc /dev/null 2>&1`" \
; then echo "$(2)"; else echo "$(3)"; fi ;)
CFLAGS := -I$(OUT) -Isrc -I$(OUT)board-generic/ -std=gnu11 -O2 -MD -g \
-Wall -Wold-style-definition $(call cc-option,$(CC),-Wtype-limits,) \
-ffunction-sections -fdata-sections
CFLAGS += -flto -fwhole-program -fno-use-linker-plugin
OBJS_klipper.elf = $(patsubst %.c, $(OUT)src/%.o,$(src-y))
OBJS_klipper.elf += $(OUT)compile_time_request.o
CFLAGS_klipper.elf = $(CFLAGS) -Wl,--gc-sections
CPPFLAGS = -I$(OUT) -P -MD -MT $@
# Default targets
target-y := $(OUT)klipper.elf
all:
# Run with "make V=1" to see the actual compile commands
ifdef V
Q=
else
Q=@
MAKEFLAGS += --no-print-directory
endif
# Include board specific makefile
include src/Makefile
-include src/$(patsubst "%",%,$(CONFIG_BOARD_DIRECTORY))/Makefile
################ Common build rules
$(OUT)%.o: %.c $(OUT)autoconf.h $(OUT)board-link
@echo " Compiling $@"
$(Q)$(CC) $(CFLAGS) -c $< -o $@
$(OUT)%.ld: %.lds.S $(OUT)autoconf.h $(OUT)board-link
@echo " Preprocessing $@"
$(Q)$(CPP) -I$(OUT) -P -MD -MT $@ $< -o $@
################ Main build rules
$(OUT)board-link: $(KCONFIG_CONFIG)
@echo " Creating symbolic link $(OUT)board"
$(Q)mkdir -p $(addprefix $(OUT), $(dirs-y))
$(Q)touch $@
$(Q)rm -f $(OUT)board
$(Q)ln -sf $(PWD)/src/$(CONFIG_BOARD_DIRECTORY) $(OUT)board
$(Q)mkdir -p $(OUT)board-generic
$(Q)rm -f $(OUT)board-generic/board
$(Q)ln -sf $(PWD)/src/generic $(OUT)board-generic/board
$(OUT)%.o.ctr: $(OUT)%.o
$(Q)$(OBJCOPY) -j '.compile_time_request' -O binary $^ $@
$(OUT)compile_time_request.o: $(patsubst %.c, $(OUT)src/%.o.ctr,$(src-y)) ./scripts/buildcommands.py
@echo " Building $@"
$(Q)cat $(patsubst %.c, $(OUT)src/%.o.ctr,$(src-y)) | tr -s '\0' '\n' > $(OUT)compile_time_request.txt
$(Q)$(PYTHON) ./scripts/buildcommands.py -d $(OUT)klipper.dict -t "$(CC);$(AS);$(LD);$(OBJCOPY);$(OBJDUMP);$(STRIP)" $(OUT)compile_time_request.txt $(OUT)compile_time_request.c
$(Q)$(CC) $(CFLAGS) -c $(OUT)compile_time_request.c -o $@
$(OUT)klipper.elf: $(OBJS_klipper.elf)
@echo " Linking $@"
$(Q)$(CC) $(OBJS_klipper.elf) $(CFLAGS_klipper.elf) -o $@
$(Q)scripts/check-gcc.sh $@ $(OUT)compile_time_request.o
################ Kconfig rules
define do-kconfig
$(Q)mkdir -p $(OUT)/scripts/kconfig/lxdialog
$(Q)mkdir -p $(OUT)/include/config
$(Q)$(MAKE) -C $(OUT) -f $(CURDIR)/scripts/kconfig/Makefile srctree=$(CURDIR) src=scripts/kconfig obj=scripts/kconfig Q=$(Q) Kconfig=$(CURDIR)/src/Kconfig $1
endef
$(OUT)autoconf.h : $(KCONFIG_CONFIG) ; $(call do-kconfig, silentoldconfig)
$(KCONFIG_CONFIG): src/Kconfig ; $(call do-kconfig, olddefconfig)
%onfig: ; $(call do-kconfig, $@)
help: ; $(call do-kconfig, $@)
################ Generic rules
# Make definitions
.PHONY : all clean distclean FORCE
.DELETE_ON_ERROR:
all: $(target-y)
clean:
$(Q)rm -rf $(OUT)
distclean: clean
$(Q)rm -f .config .config.old
-include $(OUT)*.d $(patsubst %,$(OUT)%/*.d,$(dirs-y))

16
README.md Normal file
View File

@@ -0,0 +1,16 @@
Welcome to the Klipper project!
[![Klipper](docs/img/klipper-logo-small.png)](https://www.klipper3d.org/)
https://www.klipper3d.org/
Klipper is a 3d-Printer firmware. It combines the power of a general
purpose computer with one or more micro-controllers. See the
[features document](https://www.klipper3d.org/Features.html) for more
information on why you should use Klipper.
To begin using Klipper start by
[installing](https://www.klipper3d.org/Installation.html) it.
Klipper is Free Software. See the [license](COPYING) or read the
[documentation](https://www.klipper3d.org/Overview.html).

81
config/example-corexy.cfg Normal file
View File

@@ -0,0 +1,81 @@
# This file serves as documentation for config parameters of corexy
# style printers. One may copy and edit this file to configure a new
# corexy printer. Only parameters unique to corexy printers are
# described here - see the "example.cfg" file for description of
# common config parameters.
# DO NOT COPY THIS FILE WITHOUT CAREFULLY READING AND UPDATING IT
# FIRST. Incorrectly configured parameters may cause damage.
# The stepper_x section is used to describe the X axis as well as the
# stepper controlling the X+Y movement.
[stepper_x]
step_pin: ar54
dir_pin: ar55
enable_pin: !ar38
step_distance: .01
endstop_pin: ^ar3
position_endstop: 0
position_max: 200
homing_speed: 50
# The stepper_y section is used to describe the Y axis as well as the
# stepper controlling the X-Y movement.
[stepper_y]
step_pin: ar60
dir_pin: ar61
enable_pin: !ar56
step_distance: .01
endstop_pin: ^ar14
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: ar46
dir_pin: ar48
enable_pin: !ar62
step_distance: .0025
endstop_pin: ^ar18
position_endstop: 0.5
position_max: 200
[extruder]
step_pin: ar26
dir_pin: ar28
enable_pin: !ar24
step_distance: .0022
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: ar10
sensor_type: ATC Semitec 104GT-2
sensor_pin: analog13
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: ar8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog14
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: ar9
[mcu]
serial: /dev/ttyACM0
pin_map: arduino
[printer]
kinematics: corexy
# This option must be "corexy" for corexy printers.
max_velocity: 300
max_accel: 3000
max_z_velocity: 25
max_z_accel: 30

81
config/example-corexz.cfg Normal file
View File

@@ -0,0 +1,81 @@
# This file serves as documentation for config parameters of corexz
# style printers. One may copy and edit this file to configure a new
# corexz printer. Only parameters unique to corexz printers are
# described here - see the "example.cfg" file for description of common
# config parameters.
# DO NOT COPY THIS FILE WITHOUT CAREFULLY READING AND UPDATING IT
# FIRST. Incorrectly configured parameters may cause damage.
# The stepper_x section is used to describe the X axis as well as the
# stepper controlling the X+Z movement.
[stepper_x]
step_pin: ar54
dir_pin: ar55
enable_pin: !ar38
step_distance: .01
endstop_pin: ^ar3
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: ar60
dir_pin: ar61
enable_pin: !ar56
step_distance: .01
endstop_pin: ^ar14
position_endstop: 0
position_max: 200
homing_speed: 50
# The stepper_z section is used to describe the Z axis as well as the
# stepper controlling the X-Z movement.
[stepper_z]
step_pin: ar46
dir_pin: ar48
enable_pin: !ar62
step_distance: .0025
endstop_pin: ^ar18
position_endstop: 0.5
position_max: 200
[extruder]
step_pin: ar26
dir_pin: ar28
enable_pin: !ar24
step_distance: .0022
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: ar10
sensor_type: ATC Semitec 104GT-2
sensor_pin: analog13
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: ar8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog14
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: ar9
[mcu]
serial: /dev/ttyACM0
pin_map: arduino
[printer]
kinematics: corexz
# This option must be "corexz" for corexz printers.
max_velocity: 300
max_accel: 3000
max_z_velocity: 50
max_z_accel: 30

132
config/example-delta.cfg Normal file
View File

@@ -0,0 +1,132 @@
# This file serves as documentation for config parameters of delta
# style printers. One may copy and edit this file to configure a new
# delta printer. Only parameters unique to delta printers are
# described here - see the "example.cfg" file for description of
# common config parameters.
# DO NOT COPY THIS FILE WITHOUT CAREFULLY READING AND UPDATING IT
# FIRST. Incorrectly configured parameters may cause damage.
# The stepper_a section describes the stepper controlling the front
# left tower (at 210 degrees). This section also controls the homing
# parameters (homing_speed, homing_retract_dist) for all towers.
[stepper_a]
step_pin: ar54
dir_pin: ar55
enable_pin: !ar38
step_distance: .01
endstop_pin: ^ar2
homing_speed: 50
position_endstop: 297.05
# Distance (in mm) between the nozzle and the bed when the nozzle is
# in the center of the build area and the endstop triggers. This
# parameter must be provided for stepper_a; for stepper_b and
# stepper_c this parameter defaults to the value specified for
# stepper_a.
arm_length: 333.0
# Length (in mm) of the diagonal rod that connects this tower to the
# print head. This parameter must be provided for stepper_a; for
# stepper_b and stepper_c this parameter defaults to the value
# specified for stepper_a.
#angle:
# This option specifies the angle (in degrees) that the tower is
# at. The default is 210 for stepper_a, 330 for stepper_b, and 90
# for stepper_c.
# The stepper_b section describes the stepper controlling the front
# right tower (at 330 degrees).
[stepper_b]
step_pin: ar60
dir_pin: ar61
enable_pin: !ar56
step_distance: .01
endstop_pin: ^ar15
# The stepper_c section describes the stepper controlling the rear
# tower (at 90 degrees).
[stepper_c]
step_pin: ar46
dir_pin: ar48
enable_pin: !ar62
step_distance: .01
endstop_pin: ^ar19
[extruder]
step_pin: ar26
dir_pin: ar28
enable_pin: !ar24
step_distance: .0022
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: ar10
sensor_type: ATC Semitec 104GT-2
sensor_pin: analog13
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: ar8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog14
control: watermark
min_temp: 0
max_temp: 130
# Print cooling fan (omit section if fan not present).
#[fan]
#pin: ar9
[mcu]
serial: /dev/ttyACM0
pin_map: arduino
[printer]
kinematics: delta
# This option must be "delta" for linear delta printers.
max_velocity: 300
# Maximum velocity (in mm/s) of the toolhead relative to the
# print. This parameter must be specified.
max_accel: 3000
# Maximum acceleration (in mm/s^2) of the toolhead relative to the
# print. This parameter must be specified.
max_z_velocity: 150
# For delta printers this limits the maximum velocity (in mm/s) of
# moves with z axis movement. This setting can be used to reduce the
# maximum speed of up/down moves (which require a higher step rate
# than other moves on a delta printer). The default is to use
# max_velocity for max_z_velocity.
#minimum_z_position: 0
# The minimum Z position that the user may command the head to move
# to. The default is 0.
delta_radius: 174.75
# Radius (in mm) of the horizontal circle formed by the three linear
# axis towers. This parameter may also be calculated as:
# delta_radius = smooth_rod_offset - effector_offset - carriage_offset
# This parameter must be provided.
#print_radius:
# The radius (in mm) of valid toolhead XY coordinates. One may use
# this setting to customize the range checking of toolhead moves. If
# a large value is specified here then it may be possible to command
# the toolhead into a collision with a tower. The default is to use
# delta_radius for print_radius (which would normally prevent a
# tower collision).
# The delta_calibrate section enables a DELTA_CALIBRATE extended
# g-code command that can calibrate the tower endstop positions and
# angles.
[delta_calibrate]
radius: 50
# Radius (in mm) of the area that may be probed. This is the radius
# of nozzle coordinates to be probed; if using an automatic probe
# with an XY offset then choose a radius small enough so that the
# probe always fits over the bed. This parameter must be provided.
#speed: 50
# The speed (in mm/s) of non-probing moves during the calibration.
# The default is 50.
#horizontal_move_z: 5
# The height (in mm) that the head should be commanded to move to
# just prior to starting a probe operation. The default is 5.

2319
config/example-extras.cfg Normal file

File diff suppressed because it is too large Load Diff

73
config/example-menu.cfg Normal file
View File

@@ -0,0 +1,73 @@
# This file serves as documentation for config parameters. One may
# copy and edit this file to configure a new menu layout.
# The snippets in this file may be copied into the main printer.cfg file.
# See the "example.cfg" file for description of common config parameters.
# Available options in menu Jinja2 template context:
# Read-only attributes for menu element:
# menu.width - element width (number of display columns)
# menu.ns - element namespace
# menu.event - name of the event that triggered the script
# menu.input - input value, only available in input script context
# List of actions for menu element:
# menu.back(force, update) - will execute menu back command, optional boolean parameters <force> and <update>.
# When <force> is set True then it will also stop editing. Default value is False
# When <update> is set False then parent container items are not updated. Default value is True
# menu.exit(force) - will execute menu exit command, optional boolean parameter <force> default value False
# When <force> is set True then it will also stop editing. Default value is False
# Common parameters available for all menu config sections.
#[menu some_name]
#type:
# One of command, input, list, text:
# command - basic menu element with various script triggers
# input - same like 'command' but has value changing capabilities.
# Press will start/stop edit mode.
# list - it allows for menu items to be grouped together in a scrollable list.
# Add to the list by creating menu configurations
# using "some_list" as a prefix - for example: [menu some_list some_item_in_the_list]
# vsdlist - same as 'list' but will append files from virtual sdcard (will be removed in the future)
#name:
# Name of menu item - evaluated as a template.
#enable:
# Template that evaluates to True or False.
#index:
# Position where an item needs to be inserted in list
# By default the item is added at the end. This parameter is optional.
#[menu some_list]
#type: list
#name:
#enable:
#[menu some_list some_command]
#type: command
#name:
#enable:
#gcode:
# Script to run on button click or long click. Evaluated as a template.
#[menu some_list some_input]
#type: input
#name:
#enable:
#input:
# Initial value to use when editing - evaluated as a template.
# Result must be float.
#input_min:
# Minimum value of range - evaluated as a template.
# Default -99999.
#input_max:
# Maximum value of range - evaluated as a template.
# Default 99999.
#input_step:
# Editing step - Must be a positive integer or float value.
# It has internal fast rate step. When (input_max - input_min) / input_step > 100
# then fast rate step is 10 * input_step else fast rate step is same input_step
#realtime:
# This attribute accepts static boolean value.
# When enabled then gcode script is run after each value change.
# The default is False. This parameter is optional.
#gcode:
# Script to run on button click, long click or value change. Evaluated as a template.
# The button click will trigger the edit mode start or end.

84
config/example-polar.cfg Normal file
View File

@@ -0,0 +1,84 @@
# This file serves as documentation for config parameters of "polar"
# style printers. One may copy and edit this file to configure a new
# polar printer.
# POLAR KINEMATICS ARE A WORK IN PROGRESS. Moves around the 0,0
# position are known to not work properly.
# Only parameters unique to polar printers are described here - see
# the "example.cfg" file for description of common config parameters.
# The stepper_bed section is used to describe the stepper controlling
# the bed.
[stepper_bed]
step_pin: ar54
dir_pin: ar55
enable_pin: !ar38
step_distance: 0.001963495
# On a polar printer the step_distance is the amount each step pulse
# moves the bed in radians (for example, a 1.8 degree stepper with
# 16 micro-steps would be 2 * pi * (1.8 / 360) / 16 == 0.001963495).
# This parameter must be provided.
# The stepper_arm section is used to describe the stepper controlling
# the carriage on the arm.
[stepper_arm]
step_pin: ar60
dir_pin: ar61
enable_pin: !ar56
step_distance: .01
endstop_pin: ^ar14
position_endstop: 300
position_max: 300
homing_speed: 50
# The stepper_z section is used to describe the stepper controlling
# the Z axis.
[stepper_z]
step_pin: ar46
dir_pin: ar48
enable_pin: !ar62
step_distance: .0025
endstop_pin: ^ar18
position_endstop: 0.5
position_max: 200
[extruder]
step_pin: ar26
dir_pin: ar28
enable_pin: !ar24
step_distance: .0022
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: ar10
sensor_type: ATC Semitec 104GT-2
sensor_pin: analog13
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: ar8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog14
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: ar9
[mcu]
serial: /dev/ttyACM0
pin_map: arduino
[printer]
kinematics: polar
# This option must be "polar" for polar printers.
max_velocity: 300
max_accel: 3000
max_z_velocity: 25
max_z_accel: 30

View File

@@ -0,0 +1,130 @@
# This file serves as documentation for config parameters of rotary
# delta style printers. One may copy and edit this file to configure a
# new delta printer. Only parameters unique to delta printers are
# described here - see the "example.cfg" file for description of
# common config parameters.
# ROTARY DELTA KINEMATICS ARE A WORK IN PROGRESS. Homing moves may
# timeout and some boundary checks are not implemented.
# The stepper_a section describes the stepper controlling the rear
# right arm (at 30 degrees). This section also controls the homing
# parameters (homing_speed, homing_retract_dist) for all arms.
[stepper_a]
step_pin: ar54
dir_pin: ar55
enable_pin: !ar38
step_distance: 0.001963495
# On a rotary delta printer the step_distance is the amount each
# step pulse moves the upper arm in radians (for example, a directly
# connected 1.8 degree stepper with 16 micro-steps would be 2 * pi *
# (1.8 / 360) / 16 == 0.001963495). This parameter must be provided.
endstop_pin: ^ar2
homing_speed: 50
position_endstop: 252
# Distance (in mm) between the nozzle and the bed when the nozzle is
# in the center of the build area and the endstop triggers. This
# parameter must be provided for stepper_a; for stepper_b and
# stepper_c this parameter defaults to the value specified for
# stepper_a.
upper_arm_length: 170.000
# Length (in mm) of the arm connecting the "shoulder joint" to the
# "elbow joint". This parameter must be provided for stepper_a; for
# stepper_b and stepper_c this parameter defaults to the value
# specified for stepper_a.
lower_arm_length: 320.000
# Length (in mm) of the arm connecting the "elbow joint" to the
# "effector joint". This parameter must be provided for stepper_a;
# for stepper_b and stepper_c this parameter defaults to the value
# specified for stepper_a.
#angle:
# This option specifies the angle (in degrees) that the arm is at.
# The default is 30 for stepper_a, 150 for stepper_b, and 270 for
# stepper_c.
# The stepper_b section describes the stepper controlling the rear
# left arm (at 150 degrees).
[stepper_b]
step_pin: ar60
dir_pin: ar61
enable_pin: !ar56
step_distance: 0.001963495
endstop_pin: ^ar15
# The stepper_c section describes the stepper controlling the front
# arm (at 270 degrees).
[stepper_c]
step_pin: ar46
dir_pin: ar48
enable_pin: !ar62
step_distance: 0.001963495
endstop_pin: ^ar19
[extruder]
step_pin: ar26
dir_pin: ar28
enable_pin: !ar24
step_distance: .0022
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: ar10
sensor_type: ATC Semitec 104GT-2
sensor_pin: analog13
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: ar8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog14
control: watermark
min_temp: 0
max_temp: 130
# Print cooling fan (omit section if fan not present).
#[fan]
#pin: ar9
[mcu]
serial: /dev/ttyACM0
pin_map: arduino
[printer]
kinematics: rotary_delta
# This option must be "rotary_delta" for rotary delta printers.
max_velocity: 300
# Maximum velocity (in mm/s) of the toolhead relative to the
# print. This parameter must be specified.
max_accel: 3000
# Maximum acceleration (in mm/s^2) of the toolhead relative to the
# print. This parameter must be specified.
max_z_velocity: 50
# For delta printers this limits the maximum velocity (in mm/s) of
# moves with z axis movement. This setting can be used to reduce the
# maximum speed of up/down moves (which require a higher step rate
# than other moves on a delta printer). The default is to use
# max_velocity for max_z_velocity.
#minimum_z_position: 0
# The minimum Z position that the user may command the head to move
# to. The default is 0.
shoulder_radius: 33.900
# Radius (in mm) of the horizontal circle formed by the three
# shoulder joints, minus the radius of the circle formed by the
# effector joints. This parameter may also be calculated as:
# shoulder_radius = (delta_f - delta_e) / sqrt(12)
# This parameter must be provided.
shoulder_height: 412.900
# Distance (in mm) of the shoulder joints from the bed, minus the
# effector toolhead height. This parameter must be provided.
# The delta_calibrate section enables a DELTA_CALIBRATE extended
# g-code command that can calibrate the shoulder endstop positions.
[delta_calibrate]
radius: 50
#speed: 50
#horizontal_move_z: 5
# See example-delta.cfg for a description of these parameters.

96
config/example-winch.cfg Normal file
View File

@@ -0,0 +1,96 @@
# This file serves as documentation for config parameters of cable
# winch style printers. One may copy and edit this file to configure a
# new cable winch printer.
# CABLE WINCH SUPPORT IS EXPERIMENTAL - PROCEED WITH CAUTION!
# Homing is not implemented on cable winch kinematics. In order to
# home the printer, manually send movement commands until the toolhead
# is at 0,0,0 and then issue a G28 command.
# Only parameters unique to cable winch printers are described here -
# see the "example.cfg" file for description of common config
# parameters.
# The stepper_a section describes the stepper connected to the first
# cable winch. A minimum of 3 and a maximum of 26 cable winches may be
# defined (stepper_a to stepper_z) though it is common to define 4.
[stepper_a]
step_pin: ar54
dir_pin: ar55
enable_pin: !ar38
step_distance: .01
# The step_distance is the nominal distance (in mm) the toolhead
# moves towards the cable winch on each step pulse. This parameter
# must be provided.
anchor_x: 0
anchor_y: -2000
anchor_z: -100
# The x, y, and z position of the cable winch in cartesian space.
# These parameters must be provided.
[stepper_b]
step_pin: ar60
dir_pin: ar61
enable_pin: !ar56
step_distance: .01
anchor_x: 2000
anchor_y: 1000
anchor_z: -100
[stepper_c]
step_pin: ar46
dir_pin: ar48
enable_pin: !ar62
step_distance: .01
anchor_x: -2000
anchor_y: 1000
anchor_z: -100
[stepper_d]
step_pin: ar36
dir_pin: ar34
enable_pin: !ar30
step_distance: .01
anchor_x: 0
anchor_y: 0
anchor_z: 3000
[extruder]
step_pin: ar26
dir_pin: ar28
enable_pin: !ar24
step_distance: .0022
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: ar10
sensor_type: ATC Semitec 104GT-2
sensor_pin: analog13
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: ar8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog14
control: watermark
min_temp: 0
max_temp: 130
# Print cooling fan (omit section if fan not present).
#[fan]
#pin: ar9
[mcu]
serial: /dev/ttyACM0
pin_map: arduino
[printer]
kinematics: winch
# This option must be "winch" for cable winch printers.
max_velocity: 300
max_accel: 3000

341
config/example.cfg Normal file
View File

@@ -0,0 +1,341 @@
# This file serves as documentation for config parameters. One may
# copy and edit this file to configure a new cartesian style
# printer. For delta style printers, see the "example-delta.cfg"
# file. For corexy/h-bot style printers, see the "example-corexy.cfg"
# file. Only common config sections are described here - see the
# "example-extras.cfg" file for configuring less common devices.
# DO NOT COPY THIS FILE WITHOUT CAREFULLY READING AND UPDATING IT
# FIRST. Incorrectly configured parameters may cause damage.
# A note on pin names: pins may be configured with a hardware name
# (such as "PA4") or with an Arduino alias name (such as "ar29" or
# "analog3"). In order to use Arduino names, the pin_map variable in
# the mcu section must be present and have a value of "arduino". Pin
# names may be preceded by an '!' to indicate that a reverse polarity
# should be used (eg, trigger on low instead of high). Input pins may
# be preceded by a '^' to indicate that a hardware pull-up resistor
# should be enabled for the pin. If the micro-controller supports
# pull-down resistors then an input pin may alternatively be preceded
# by a '~'.
# The stepper_x section is used to describe the stepper controlling
# the X axis in a cartesian robot.
[stepper_x]
step_pin: ar54
# Step GPIO pin (triggered high). This parameter must be provided.
dir_pin: ar55
# Direction GPIO pin (high indicates positive direction). This
# parameter must be provided.
enable_pin: !ar38
# Enable pin (default is enable high; use ! to indicate enable
# low). If this parameter is not provided then the stepper motor
# driver must always be enabled.
step_distance: .0225
# Distance in mm that each step causes the axis to travel. This
# parameter must be provided.
endstop_pin: ^ar3
# Endstop switch detection pin. This parameter must be provided for
# the X, Y, and Z steppers on cartesian style printers.
#position_min: 0
# Minimum valid distance (in mm) the user may command the stepper to
# move to. The default is 0mm.
position_endstop: 0
# Location of the endstop (in mm). This parameter must be provided
# for the X, Y, and Z steppers on cartesian style printers.
position_max: 200
# Maximum valid distance (in mm) the user may command the stepper to
# move to. This parameter must be provided for the X, Y, and Z
# steppers on cartesian style printers.
#homing_speed: 5.0
# Maximum velocity (in mm/s) of the stepper when homing. The default
# is 5mm/s.
#homing_retract_dist: 5.0
# Distance to backoff (in mm) before homing a second time during
# homing. Set this to zero to disable the second home. The default
# is 5mm.
#homing_retract_speed:
# Speed to use on the retract move after homing in case this should
# be different from the homing speed, which is the default for this
# parameter
#second_homing_speed:
# Velocity (in mm/s) of the stepper when performing the second home.
# The default is homing_speed/2.
#homing_positive_dir:
# If true, homing will cause the stepper to move in a positive
# direction (away from zero); if false, home towards zero. It is
# better to use the default than to specify this parameter. The
# default is true if position_endstop is near position_max and false
# if near position_min.
# The stepper_y section is used to describe the stepper controlling
# the Y axis in a cartesian robot. It has the same settings as the
# stepper_x section.
[stepper_y]
step_pin: ar60
dir_pin: !ar61
enable_pin: !ar56
step_distance: .0225
endstop_pin: ^ar14
position_endstop: 0
position_max: 200
# The stepper_z section is used to describe the stepper controlling
# the Z axis in a cartesian robot. It has the same settings as the
# stepper_x section.
[stepper_z]
step_pin: ar46
dir_pin: ar48
enable_pin: !ar62
step_distance: .005
endstop_pin: ^ar18
position_endstop: 0.5
position_max: 200
# The extruder section is used to describe both the stepper
# controlling the printer extruder and the heater parameters for the
# nozzle. The stepper configuration has the same settings as the
# stepper_x section.
[extruder]
step_pin: ar26
dir_pin: ar28
enable_pin: !ar24
step_distance: .004242
nozzle_diameter: 0.500
# Diameter of the nozzle orifice (in mm). This parameter must be
# provided.
filament_diameter: 3.500
# The nominal diameter of the raw filament (in mm) as it enters the
# extruder. This parameter must be provided.
#max_extrude_cross_section:
# Maximum area (in mm^2) of an extrusion cross section (eg,
# extrusion width multiplied by layer height). This setting prevents
# excessive amounts of extrusion during relatively small XY moves.
# If a move requests an extrusion rate that would exceed this value
# it will cause an error to be returned. The default is: 4.0 *
# nozzle_diameter^2
#instantaneous_corner_velocity: 1.000
# The maximum instantaneous velocity change (in mm/s) of the
# extruder during the junction of two moves. The default is 1mm/s.
#max_extrude_only_distance: 50.0
# Maximum length (in mm of raw filament) that a retraction or
# extrude-only move may have. If a retraction or extrude-only move
# requests a distance greater than this value it will cause an error
# to be returned. The default is 50mm.
#max_extrude_only_velocity:
#max_extrude_only_accel:
# Maximum velocity (in mm/s) and acceleration (in mm/s^2) of the
# extruder motor for retractions and extrude-only moves. These
# settings do not have any impact on normal printing moves. If not
# specified then they are calculated to match the limit an XY
# printing move with a cross section of 4.0*nozzle_diameter^2 would
# have.
#pressure_advance: 0.0
# The amount of raw filament to push into the extruder during
# extruder acceleration. An equal amount of filament is retracted
# during deceleration. It is measured in millimeters per
# millimeter/second. The default is 0, which disables pressure
# advance.
#pressure_advance_smooth_time: 0.040
# A time range (in seconds) to use when calculating the average
# extruder velocity for pressure advance. A larger value results in
# smoother extruder movements. This parameter may not exceed 200ms.
# This setting only applies if pressure_advance is non-zero. The
# default is 0.040 (40 milliseconds).
#
# The remaining variables describe the extruder heater.
heater_pin: ar10
# PWM output pin controlling the heater. This parameter must be
# provided.
#max_power: 1.0
# The maximum power (expressed as a value from 0.0 to 1.0) that the
# heater_pin may be set to. The value 1.0 allows the pin to be set
# fully enabled for extended periods, while a value of 0.5 would
# allow the pin to be enabled for no more than half the time. This
# setting may be used to limit the total power output (over extended
# periods) to the heater. The default is 1.0.
sensor_type: EPCOS 100K B57560G104F
# Type of sensor - common thermistors are "EPCOS 100K B57560G104F",
# "ATC Semitec 104GT-2", "NTC 100K beta 3950", "Honeywell 100K
# 135-104LAG-J01", "NTC 100K MGB18-104F39050L32",
# "SliceEngineering 450", and "TDK NTCG104LH104JT1". See the
# example-extras.cfg file for other sensors. This parameter must be
# provided.
sensor_pin: analog13
# Analog input pin connected to the sensor. This parameter must be
# provided.
#pullup_resistor: 4700
# The resistance (in ohms) of the pullup attached to the thermistor.
# This parameter is only valid when the sensor is a thermistor. The
# default is 4700 ohms.
#inline_resistor: 0
# The resistance (in ohms) of an extra (not heat varying) resistor
# that is placed inline with the thermistor. It is rare to set this.
# This parameter is only valid when the sensor is a thermistor. The
# default is 0 ohms.
#smooth_time: 2.0
# A time value (in seconds) over which temperature measurements will
# be smoothed to reduce the impact of measurement noise. The default
# is 2 seconds.
control: pid
# Control algorithm (either pid or watermark). This parameter must
# be provided.
pid_Kp: 22.2
# Kp is the "proportional" constant for the pid. This parameter must
# be provided for PID heaters.
pid_Ki: 1.08
# Ki is the "integral" constant for the pid. This parameter must be
# provided for PID heaters.
pid_Kd: 114
# Kd is the "derivative" constant for the pid. This parameter must
# be provided for PID heaters.
#pid_integral_max:
# The maximum "windup" the integral term may accumulate. The default
# is to use the same value as max_power.
#max_delta: 2.0
# On 'watermark' controlled heaters this is the number of degrees in
# Celsius above the target temperature before disabling the heater
# as well as the number of degrees below the target before
# re-enabling the heater. The default is 2 degrees Celsius.
#pwm_cycle_time: 0.100
# Time in seconds for each software PWM cycle of the heater. It is
# not recommended to set this unless there is an electrical
# requirement to switch the heater faster than 10 times a second.
# The default is 0.100 seconds.
#min_extrude_temp: 170
# The minimum temperature (in Celsius) at which extruder move
# commands may be issued. The default is 170 Celsius.
min_temp: 0
max_temp: 210
# The maximum range of valid temperatures (in Celsius) that the
# heater must remain within. This controls a safety feature
# implemented in the micro-controller code - should the measured
# temperature ever fall outside this range then the micro-controller
# will go into a shutdown state. This check can help detect some
# heater and sensor hardware failures. Set this range just wide
# enough so that reasonable temperatures do not result in an
# error. These parameters must be provided.
# The heater_bed section describes a heated bed (if present - omit
# section if not present). It uses the same heater settings described
# in the extruder section.
[heater_bed]
heater_pin: ar8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog14
control: watermark
min_temp: 0
max_temp: 110
# Print cooling fan (omit section if fan not present).
[fan]
pin: ar9
# PWM output pin controlling the fan. This parameter must be
# provided.
#max_power: 1.0
# The maximum power (expressed as a value from 0.0 to 1.0) that the
# pin may be set to. The value 1.0 allows the pin to be set fully
# enabled for extended periods, while a value of 0.5 would allow the
# pin to be enabled for no more than half the time. This setting may
# be used to limit the total power output (over extended periods) to
# the fan. If this value is less than 1.0 then fan speed requests
# will be scaled between zero and max_power (for example, if
# max_power is .9 and a fan speed of 80% is requested then the fan
# power will be set to 72%). The default is 1.0.
#shutdown_speed: 0
# The desired fan speed (expressed as a value from 0.0 to 1.0) if
# the micro-controller software enters an error state. The default
# is 0.
#cycle_time: 0.010
# The amount of time (in seconds) for each PWM power cycle to the
# fan. It is recommended this be 10 milliseconds or greater when
# using software based PWM. The default is 0.010 seconds.
#hardware_pwm: False
# Enable this to use hardware PWM instead of software PWM. Most fans
# do not work well with hardware PWM, so it is not recommended to
# enable this unless there is an electrical requirement to switch at
# very high speeds. When using hardware PWM the actual cycle time is
# constrained by the implementation and may be significantly
# different than the requested cycle_time. The default is False.
#kick_start_time: 0.100
# Time (in seconds) to run the fan at full speed when either first
# enabling or increasing it by more than 50% (helps get the fan
# spinning). The default is 0.100 seconds.
#off_below: 0.0
# The minimum input speed which will power the fan (expressed as a
# value from 0.0 to 1.0). When a speed lower than off_below is
# requested the fan will instead be turned off. This setting may be
# used to prevent fan stalls and to ensure kick starts are
# effective. The default is 0.0.
#
# This setting should be recalibrated whenever max_power is adjusted.
# To calibrate this setting, start with off_below set to 0.0 and the
# fan spinning. Gradually lower the fan speed to determine the lowest
# input speed which reliably drives the fan without stalls. Set
# off_below to the duty cycle corresponding to this value (for
# example, 12% -> 0.12) or slightly higher.
# Micro-controller information.
[mcu]
serial: /dev/ttyACM0
# The serial port to connect to the MCU. If unsure (or if it
# changes) see the "Where's my serial port?" section of the FAQ. The
# default is /dev/ttyS0
#baud: 250000
# The baud rate to use. The default is 250000.
pin_map: arduino
# This option may be used to enable Arduino pin name aliases. The
# default is to not enable the aliases.
#restart_method:
# This controls the mechanism the host will use to reset the
# micro-controller. The choices are 'arduino', 'cheetah', 'rpi_usb',
# and 'command'. The 'arduino' method (toggle DTR) is common on
# Arduino boards and clones. The 'cheetah' method is a special
# method needed for some Fysetc Cheetah boards. The 'rpi_usb' method
# is useful on Raspberry Pi boards with micro-controllers powered
# over USB - it briefly disables power to all USB ports to
# accomplish a micro-controller reset. The 'command' method involves
# sending a Klipper command to the micro-controller so that it can
# reset itself. The default is 'arduino' if the micro-controller
# communicates over a serial port, 'command' otherwise.
# The printer section controls high level printer settings.
[printer]
kinematics: cartesian
# This option must be "cartesian" for cartesian printers.
max_velocity: 500
# Maximum velocity (in mm/s) of the toolhead (relative to the
# print). This parameter must be specified.
max_accel: 3000
# Maximum acceleration (in mm/s^2) of the toolhead (relative to the
# print). This parameter must be specified.
#max_accel_to_decel:
# A pseudo acceleration (in mm/s^2) controlling how fast the
# toolhead may go from acceleration to deceleration. It is used to
# reduce the top speed of short zig-zag moves (and thus reduce
# printer vibration from these moves). The default is half of
# max_accel.
max_z_velocity: 25
# For cartesian printers this sets the maximum velocity (in mm/s) of
# movement along the z axis. This setting can be used to restrict
# the maximum speed of the z stepper motor on cartesian printers.
# The default is to use max_velocity for max_z_velocity.
max_z_accel: 30
# For cartesian printers this sets the maximum acceleration (in
# mm/s^2) of movement along the z axis. It limits the acceleration
# of the z stepper motor on cartesian printers. The default is to
# use max_accel for max_z_accel.
#square_corner_velocity: 5.0
# The maximum velocity (in mm/s) that the toolhead may travel a 90
# degree corner at. A non-zero value can reduce changes in extruder
# flow rates by enabling instantaneous velocity changes of the
# toolhead during cornering. This value configures the internal
# centripetal velocity cornering algorithm; corners with angles
# larger than 90 degrees will have a higher cornering velocity while
# corners with angles less than 90 degrees will have a lower
# cornering velocity. If this is set to zero then the toolhead will
# decelerate to zero at each corner. The default is 5mm/s.
# Looking for more options? Check the example-extras.cfg file.

160
config/generic-archim2.cfg Normal file
View File

@@ -0,0 +1,160 @@
# This file contains common pin mappings for Ultimachine Archim2
# boards. To use this config, the firmware should be compiled for the
# SAM3x8e.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PC6
dir_pin: PC5
enable_pin: !PC9
step_distance: .0125
endstop_pin: ^PD4
position_endstop: 0
position_max: 200
homing_speed: 50
[tmc2130 stepper_x]
cs_pin: PC7
microsteps: 16
run_current: .5
sense_resistor: 0.120
diag1_pin: !PA4
spi_software_sclk_pin: PD2
spi_software_mosi_pin: PD3
spi_software_miso_pin: PD1
[stepper_y]
step_pin: PC12
dir_pin: PC11
enable_pin: !PC14
step_distance: .0125
endstop_pin: ^PD6
position_endstop: 0
position_max: 400
homing_speed: 50
[tmc2130 stepper_y]
cs_pin: PC13
microsteps: 16
run_current: .5
sense_resistor: 0.120
diag1_pin: !PC15
spi_software_sclk_pin: PD2
spi_software_mosi_pin: PD3
spi_software_miso_pin: PD1
[stepper_z]
step_pin: PC17
dir_pin: PC16
enable_pin: !PC19
step_distance: .0125
endstop_pin: ^PA7
position_endstop: 0
position_max: 400
homing_speed: 50
[tmc2130 stepper_z]
cs_pin: PC18
microsteps: 16
run_current: .5
sense_resistor: 0.120
diag1_pin: PC4
spi_software_sclk_pin: PD2
spi_software_mosi_pin: PD3
spi_software_miso_pin: PD1
[extruder]
step_pin: PB10
dir_pin: PC10
enable_pin: !PB22
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC24
sensor_type: ATC Semitec 104GT-2
sensor_pin: PB19
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[tmc2130 extruder]
cs_pin: PC20
microsteps: 16
run_current: .5
sense_resistor: 0.120
diag1_pin: !PB23
spi_software_sclk_pin: PD2
spi_software_mosi_pin: PD3
spi_software_miso_pin: PD1
#[extruder1]
#step_pin: PB26
#dir_pin: PB24
#enable_pin: !PA11
#step_distance: .002
#nozzle_diameter: 0.400
#filament_diameter: 1.750
#heater_pin: PC23
#sensor_type: ATC Semitec 104GT-2
#sensor_pin: PB18
#control: pid
#pid_Kp: 22.2
#pid_Ki: 1.08
#pid_Kd: 114
#min_temp: 0
#max_temp: 250
#[tmc2130 extruder1]
#cs_pin: PA10
#microsteps: 16
#run_current: .5
#sense_resistor: 0.120
#diag1_pin: PD0
#spi_software_sclk_pin: PD2
#spi_software_mosi_pin: PD3
#spi_software_miso_pin: PD1
[heater_bed]
heater_pin: PC21
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PB20
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: PC26
[heater_fan nozzle_cooling_fan]
pin: PC25
[mcu]
serial: /dev/serial/by-id/usb-Klipper_sam3x8e_nnn
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
########################################
# EXP1 / EXP2 (display) pins
########################################
[board_pins]
aliases:
# EXP1 header
EXP1_1=PA14, EXP1_3=PA15, EXP1_5=PA0, EXP1_7=PA1, EXP1_9=<GND>,
EXP1_2=PA13, EXP1_4=PA12, EXP1_6=PA16, EXP1_8=PC2, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PA25, EXP2_3=PB27, EXP2_5=PA3, EXP2_7=PB25, EXP2_9=<GND>,
EXP2_2=PA27, EXP2_4=PA29, EXP2_6=PA26, EXP2_8=<RST>, EXP2_10=<3.3V>
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "spi0"
# See the sample-lcd.cfg file for definitions of common LCD displays.

View File

@@ -0,0 +1,90 @@
# This file contains common pin mappings for the Azteeg X5 Mini v3. To use
# this config, the firmware should be compiled for the LPC1769.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: P2.1
dir_pin: P0.11
enable_pin: !P0.10
step_distance: .0125
endstop_pin: ^P1.24
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: P2.2
dir_pin: P0.20
enable_pin: !P0.19
step_distance: .0125
endstop_pin: ^P1.26
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: P2.3
dir_pin: P0.22
enable_pin: !P0.21
step_distance: .0125
endstop_pin: ^P1.28
position_endstop: 0
position_max: 200
homing_speed: 50
[extruder]
step_pin: P2.0
dir_pin: P0.5
enable_pin: !P0.4
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: P2.5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: P0.24
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: P2.7
sensor_type: EPCOS 100K B57560G104F
sensor_pin: P0.23
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: P0.26
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[mcp4451 stepper_digipot1]
i2c_address: 44
# Scale the config so that wiper values can be specified in amps.
scale: 2
# wiper 0 is X (aka alpha), 1 is Y, 2 is Z, 3 is E0
wiper_0: 1.0
wiper_1: 1.0
wiper_2: 1.0
wiper_3: 1.0
# Mini Viki2 LCD - this board does not work with Reprap LCDs
#[display]
#lcd_type: uc1701
#cs_pin: P0.16
#a0_pin: P2.6
#encoder_pins: ^!P3.25, ^P3.26
#click_pin: ^!P2.11

View File

@@ -0,0 +1,331 @@
# This file contains common pin mappings for the BigTreeTech GTR.
# To use this config, the firmware should be compiled for the
# STM32F407 with a "32KiB bootloader".
# The "make flash" command does not work on the GTR. Instead,
# after running "make", copy the generated "klipper/out/klipper.bin" file to a
# file named "firmware.bin" on an SD card and then restart the GTR
# with that SD card.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PC15
dir_pin: PF0
enable_pin: !PF1
step_distance: .0125
endstop_pin: ^!PF2
position_endstop: 0
position_max: 220
homing_speed: 50
[stepper_y]
step_pin: PE3
dir_pin: PE2
enable_pin: !PE4
step_distance: .0125
endstop_pin: ^!PC13
position_endstop: 0
position_max: 250
homing_speed: 50
[stepper_z]
step_pin: PB8
dir_pin: PB7
enable_pin: !PB9
step_distance: .0025
endstop_pin: ^PE0
position_endstop: 0
position_max: 200
homing_speed: 12
second_homing_speed: 1
[extruder]
step_pin: PG12
dir_pin: PG11
enable_pin: !PG13
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PB1 # Heat0
sensor_pin: PC1 # T0 Header
sensor_type: EPCOS 100K B57560G104F
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 290
#[extruder1]
#step_pin: PD6
#dir_pin: PD5
#enable_pin: !PD7
#heater_pin: PA1 # Heat1
#sensor_pin: PC2 # T1
#...
#[extruder2]
#step_pin: PD1
#dir_pin: PD0
#enable_pin: !PD2
#heater_pin: PB0 # Heat2
#sensor_pin: PC3 # T2
#...
[heater_bed]
heater_pin: PA2
sensor_pin: PC0 # BED
sensor_type: ATC Semitec 104GT-2
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: PE5 # FAN0
[heater_fan fan1]
pin: PE6 # FAN1
#[heater_fan fan2]
#pin: PC8 # FAN2
[mcu]
baud: 250000
restart_method: command
serial: dev/serial0
# setup for PA9, PA10 USART1_tx / rx directly connected to the RPI GPIO TX / RX pins
# These are the pins the GTR uses for its built in RPI 40 pin connector
# only connect GND, TX, RX - supply 5v power to the RPI separately
# do not cross over TX/RX - it is done internally on the GTR PCB.
# Use "sudo raspi-config" to disable the serial terminal - but enable the serial port.
# When running "make menuconfig" you must un-select the USB Serial check box
[printer]
kinematics: cartesian
max_velocity: 500
max_accel: 3000
max_z_velocity: 12
max_z_accel: 5
########################################
# TMC2208 configuration
########################################
#[tmc2208 stepper_x]
#uart_pin: PC14
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2208 stepper_y]
#uart_pin: PE1
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2208 stepper_z]
#uart_pin: PB5
#microsteps: 16
#run_current: 0.650
#hold_current: 0.450
#stealthchop_threshold: 30
#[tmc2208 extruder]
#uart_pin: PG10
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#[tmc2208 extruder1]
#uart_pin: PD4
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#[tmc2208 extruder2]
#uart_pin: PC12
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
########################################
# TMC2130 configuration
########################################
#[tmc2130 stepper_x]
#cs_pin: PC14
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 0
#spi_software_mosi_pin: PG15
#spi_software_miso_pin: PB6
#spi_software_sclk_pin: PB3
#[tmc2130 stepper_y]
#cs_pin: PE1
#microsteps: 16
#sense_resistor: 0.075
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 0
#spi_software_mosi_pin: PG15
#spi_software_miso_pin: PB6
#spi_software_sclk_pin: PB3
#[tmc2130 stepper_z]
#cs_pin: PB5
#microsteps: 16
#sense_resistor: 0.075
#run_current: 0.650
#hold_current: 0.450
#stealthchop_threshold: 0
#spi_software_mosi_pin: PG15
#spi_software_miso_pin: PB6
#spi_software_sclk_pin: PB3
#[tmc2130 extruder]
#cs_pin: PG10
#microsteps: 16
#sense_resistor: 0.075
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 0
#spi_software_mosi_pin: PG15
#spi_software_miso_pin: PB6
#spi_software_sclk_pin: PB3
#[tmc2130 extruder1]
#cs_pin: PD4
#microsteps: 16
#sense_resistor: 0.075
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 0
#spi_software_mosi_pin: PG15
#spi_software_miso_pin: PB6
#spi_software_sclk_pin: PB3
#[tmc2130 extruder2]
#cs_pin: PC12
#microsteps: 16
#sense_resistor: 0.075
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 0
#spi_software_mosi_pin: PG15
#spi_software_miso_pin: PB6
#spi_software_sclk_pin: PB3
########################################
# TMC5160 configuration
########################################
#[tmc5160 stepper_x]
#cs_pin: PC14
#microsteps: 16
#sense_resistor: 0.075
#interpolate: True
#run_current: 1
#hold_current: 1
#stealthchop_threshold: 0
#spi_software_mosi_pin: PG15
#spi_software_miso_pin: PB6
#spi_software_sclk_pin: PB3
#[tmc5160 stepper_y]
#cs_pin: PE1
#microsteps: 16
#sense_resistor: 0.075
#interpolate: True
#run_current: 1
#hold_current: 1
#stealthchop_threshold: 0
#spi_software_mosi_pin: PG15
#spi_software_miso_pin: PB6
#spi_software_sclk_pin: PB3
#[tmc5160 stepper_z]
#cs_pin: PB5
#microsteps: 16
#sense_resistor: 0.075
#interpolate: True
#run_current: 0.4
#hold_current: 0.4
#stealthchop_threshold: 0
#spi_software_mosi_pin: PG15
#spi_software_miso_pin: PB6
#spi_software_sclk_pin: PB3
#[tmc5160 extruder]
#cs_pin: PG10
#microsteps: 16
#sense_resistor: 0.075
#interpolate: True
#run_current: 0.5
#hold_current: 0.5
#stealthchop_threshold: 0
#spi_software_mosi_pin: PG15
#spi_software_miso_pin: PB6
#spi_software_sclk_pin: PB3
#[tmc5160 extruder1]
#cs_pin: PD4
#microsteps: 16
#sense_resistor: 0.075
#interpolate: True
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 0
#spi_software_mosi_pin: PG15
#spi_software_miso_pin: PB6
#spi_software_sclk_pin: PB3
#[tmc5160 extruder2]
#cs_pin: PC12
#microsteps: 16
#sense_resistor: 0.075
#interpolate: True
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 0
#spi_software_mosi_pin: PG15
#spi_software_miso_pin: PB6
#spi_software_sclk_pin: PB3
########################################
# EXP1 / EXP2 (display) pins
########################################
# display section not tested - pinout should be correct but my LCD did not work yet
[board_pins]
aliases:
# EXP1 header
EXP1_1=PC11, EXP1_3=PC10, EXP1_5=PG8, EXP1_7=PG6, EXP1_9=<GND>,
EXP1_2=PA15, EXP1_4=PA8, EXP1_6=PG7, EXP1_8=PG5, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PB14, EXP2_3=PD10, EXP2_5=PH10, EXP2_7=PB10, EXP2_9=<GND>,
EXP2_2=PB13, EXP2_4=PB12, EXP2_6=PB15, EXP2_8=<RST>, EXP2_10=<NC>
# not sure on this: Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "spi2"
# See the sample-lcd.cfg file for definitions of common LCD displays.
#[display]
#lcd_type: st7920
#cs_pin: EXP1_4
#sclk_pin: EXP1_5
#sid_pin: EXP1_3
#encoder_pins: ^EXP2_5, ^EXP2_3
#click_pin: ^!EXP1_2
#kill_pin: ^!EXP2_8
#[output_pin beeper]
#pin: EXP1_1

View File

@@ -0,0 +1,168 @@
# This file contains common pin mappings for the BIGTREETECH SKR E3
# DIP. To use this config, the firmware should be compiled for the
# STM32F103 with a "28KiB bootloader". Also, select "Enable extra
# low-level configuration options" and configure "GPIO pins to set at
# micro-controller startup" to "!PC13".
# The "make flash" command does not work on the SKR E3 DIP. Instead,
# after running "make", copy the generated "out/klipper.bin" file to a
# file named "firmware.bin" on an SD card and then restart the SKR E3
# DIP with that SD card.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PC6
dir_pin: !PB15
enable_pin: !PC7
step_distance: .0125
endstop_pin: ^PC1
position_endstop: 0
position_max: 235
homing_speed: 50
[stepper_y]
step_pin: PB13
dir_pin: !PB12
enable_pin: !PB14
step_distance: .0125
endstop_pin: ^PC0
position_endstop: 0
position_max: 235
homing_speed: 50
[stepper_z]
step_pin: PB10
dir_pin: PB2
enable_pin: !PB11
step_distance: .0025
endstop_pin: ^PC15
position_endstop: 0.0
position_max: 250
[extruder]
step_pin: PB0
dir_pin: !PC5
enable_pin: !PB1
step_distance: 0.010526
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA0
control: pid
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PC9
sensor_type: ATC Semitec 104GT-2
sensor_pin: PC3
control: pid
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130
[fan]
pin: PA8
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[static_digital_output usb_pullup_enable]
pins: !PC13
########################################
# TMC2208 configuration
########################################
#[tmc2208 stepper_x]
#uart_pin: PC10
#microsteps: 16
#run_current: 0.580
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2208 stepper_y]
#uart_pin: PC11
#microsteps: 16
#run_current: 0.580
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2208 stepper_z]
#uart_pin: PC12
#microsteps: 16
#run_current: 0.580
#hold_current: 0.500
#stealthchop_threshold: 30
#[tmc2208 extruder]
#uart_pin: PD2
#microsteps: 16
#run_current: 0.650
#hold_current: 0.500
#stealthchop_threshold: 5
########################################
# TMC2130 configuration
########################################
#[tmc2130 stepper_x]
#cs_pin: PC10
#spi_bus: spi3
#microsteps: 16
#run_current: 0.580
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2130 stepper_y]
#cs_pin: PC11
#spi_bus: spi3
#microsteps: 16
#run_current: 0.580
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2130 stepper_z]
#cs_pin: PC12
#spi_bus: spi3
#microsteps: 16
#run_current: 0.580
#hold_current: 0.450
#stealthchop_threshold: 30
#[tmc2130 extruder]
#cs_pin: PD2
#spi_bus: spi3
#microsteps: 16
#run_current: 0.650
#hold_current: 0.500
#stealthchop_threshold: 5
########################################
# EXP1 (display) pins
########################################
[board_pins]
aliases:
# EXP1 header
EXP1_1=PA15, EXP1_3=PA9, EXP1_5=PA10, EXP1_7=PB8, EXP1_9=<GND>,
EXP1_2=PB6, EXP1_4=<RST>, EXP1_6=PB9, EXP1_8=PB7, EXP1_10=<5V>
# See the sample-lcd.cfg file for definitions of common LCD displays.

View File

@@ -0,0 +1,129 @@
# This file contains common pin mappings for the BIGTREETECH SKR mini
# E3. To use this config, the firmware should be compiled for the
# STM32F103 with a "28KiB bootloader". Also, select "Enable extra
# low-level configuration options" and configure "GPIO pins to set at
# micro-controller startup" to "!PC13".
# The "make flash" command does not work on the SKR mini E3. Instead,
# after running "make", copy the generated "out/klipper.bin" file to a
# file named "firmware.bin" on an SD card and then restart the SKR
# mini E3 with that SD card.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PB13
dir_pin: !PB12
enable_pin: !PB14
step_distance: .0125
endstop_pin: ^PC0
position_endstop: 0
position_max: 235
homing_speed: 50
[tmc2209 stepper_x]
uart_pin: PC11
tx_pin: PC10
uart_address: 0
microsteps: 16
run_current: 0.580
hold_current: 0.500
stealthchop_threshold: 250
[stepper_y]
step_pin: PB10
dir_pin: !PB2
enable_pin: !PB11
step_distance: .0125
endstop_pin: ^PC1
position_endstop: 0
position_max: 235
homing_speed: 50
[tmc2209 stepper_y]
uart_pin: PC11
tx_pin: PC10
uart_address: 2
microsteps: 16
run_current: 0.580
hold_current: 0.500
stealthchop_threshold: 250
[stepper_z]
step_pin: PB0
dir_pin: PC5
enable_pin: !PB1
step_distance: .0025
endstop_pin: ^PC2
position_endstop: 0.0
position_max: 250
[tmc2209 stepper_z]
uart_pin: PC11
tx_pin: PC10
uart_address: 1
microsteps: 16
run_current: 0.580
hold_current: 0.500
stealthchop_threshold: 5
[extruder]
step_pin: PB3
dir_pin: !PB4
enable_pin: !PD2
step_distance: 0.010526
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA0
control: pid
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 250
[tmc2209 extruder]
uart_pin: PC11
tx_pin: PC10
uart_address: 3
microsteps: 16
run_current: 0.650
hold_current: 0.500
stealthchop_threshold: 5
[heater_bed]
heater_pin: PC9
sensor_type: ATC Semitec 104GT-2
sensor_pin: PC3
control: pid
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130
[fan]
pin: PA8
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[static_digital_output usb_pullup_enable]
pins: !PC13
[board_pins]
aliases:
# EXP1 header
EXP1_1=PB5, EXP1_3=PA9, EXP1_5=PA10, EXP1_7=PB8, EXP1_9=<GND>,
EXP1_2=PB6, EXP1_4=<RST>, EXP1_6=PB9, EXP1_8=PB7, EXP1_10=<5V>
# See the sample-lcd.cfg file for definitions of common LCD displays.

View File

@@ -0,0 +1,121 @@
# This file contains common pin mappings for the BIGTREETECH SKR mini
# E3 v1.2. To use this config, the firmware should be compiled for the
# STM32F103 with a "28KiB bootloader". Also, select "Enable extra
# low-level configuration options" and configure "GPIO pins to set at
# micro-controller startup" to "!PC13".
# The "make flash" command does not work on the SKR mini E3. Instead,
# after running "make", copy the generated "out/klipper.bin" file to a
# file named "firmware.bin" on an SD card and then restart the SKR
# mini E3 with that SD card.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PB13
dir_pin: !PB12
enable_pin: !PB14
step_distance: .0125
endstop_pin: ^PC0
position_endstop: 0
position_max: 235
homing_speed: 50
[tmc2209 stepper_x]
uart_pin: PB15
microsteps: 16
run_current: 0.580
hold_current: 0.500
stealthchop_threshold: 250
[stepper_y]
step_pin: PB10
dir_pin: !PB2
enable_pin: !PB11
step_distance: .0125
endstop_pin: ^PC1
position_endstop: 0
position_max: 235
homing_speed: 50
[tmc2209 stepper_y]
uart_pin: PC6
microsteps: 16
run_current: 0.580
hold_current: 0.500
stealthchop_threshold: 250
[stepper_z]
step_pin: PB0
dir_pin: PC5
enable_pin: !PB1
step_distance: .0025
endstop_pin: ^PC2
position_endstop: 0.0
position_max: 250
[tmc2209 stepper_z]
uart_pin: PC10
microsteps: 16
run_current: 0.580
hold_current: 0.500
stealthchop_threshold: 5
[extruder]
step_pin: PB3
dir_pin: !PB4
enable_pin: !PD2
step_distance: 0.010526
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA0
control: pid
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 250
[tmc2209 extruder]
uart_pin: PC11
microsteps: 16
run_current: 0.650
hold_current: 0.500
stealthchop_threshold: 5
[heater_bed]
heater_pin: PC9
sensor_type: ATC Semitec 104GT-2
sensor_pin: PC3
control: pid
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130
[fan]
pin: PA8
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[static_digital_output usb_pullup_enable]
pins: !PC13
[board_pins]
aliases:
# EXP1 header
EXP1_1=PB5, EXP1_3=PA9, EXP1_5=PA10, EXP1_7=PB8, EXP1_9=<GND>,
EXP1_2=PB6, EXP1_4=<RST>, EXP1_6=PB9, EXP1_8=PB7, EXP1_10=<5V>
# See the sample-lcd.cfg file for definitions of common LCD displays.

View File

@@ -0,0 +1,132 @@
# This file contains common pin mappings for the BIGTREETECH SKR mini
# E3 v2.0. To use this config, the firmware should be compiled for the
# STM32F103 with a "28KiB bootloader". Also, select "Enable extra
# low-level configuration options" and configure "GPIO pins to set at
# micro-controller startup" to "!PA14".
# The "make flash" command does not work on the SKR mini E3. Instead,
# after running "make", copy the generated "out/klipper.bin" file to a
# file named "firmware.bin" on an SD card and then restart the SKR
# mini E3 with that SD card.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PB13
dir_pin: !PB12
enable_pin: !PB14
step_distance: .0125
endstop_pin: ^PC0
position_endstop: 0
position_max: 235
homing_speed: 50
[tmc2209 stepper_x]
uart_pin: PC11
tx_pin: PC10
uart_address: 0
microsteps: 16
run_current: 0.580
hold_current: 0.500
stealthchop_threshold: 250
[stepper_y]
step_pin: PB10
dir_pin: !PB2
enable_pin: !PB11
step_distance: .0125
endstop_pin: ^PC1
position_endstop: 0
position_max: 235
homing_speed: 50
[tmc2209 stepper_y]
uart_pin: PC11
tx_pin: PC10
uart_address: 2
microsteps: 16
run_current: 0.580
hold_current: 0.500
stealthchop_threshold: 250
[stepper_z]
step_pin: PB0
dir_pin: PC5
enable_pin: !PB1
step_distance: .0025
endstop_pin: ^PC2
position_endstop: 0.0
position_max: 250
[tmc2209 stepper_z]
uart_pin: PC11
tx_pin: PC10
uart_address: 1
microsteps: 16
run_current: 0.580
hold_current: 0.500
stealthchop_threshold: 5
[extruder]
step_pin: PB3
dir_pin: !PB4
enable_pin: !PD2
step_distance: 0.010526
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA0
control: pid
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 250
[tmc2209 extruder]
uart_pin: PC11
tx_pin: PC10
uart_address: 3
microsteps: 16
run_current: 0.650
hold_current: 0.500
stealthchop_threshold: 5
[heater_bed]
heater_pin: PC9
sensor_type: ATC Semitec 104GT-2
sensor_pin: PC3
control: pid
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130
[heater_fan nozzle_cooling_fan]
pin: PC7
[fan]
pin: PC6
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[static_digital_output usb_pullup_enable]
pins: !PA14
[board_pins]
aliases:
# EXP1 header
EXP1_1=PB5, EXP1_3=PA9, EXP1_5=PA10, EXP1_7=PB8, EXP1_9=<GND>,
EXP1_2=PA15, EXP1_4=<RST>, EXP1_6=PB9, EXP1_8=PB15, EXP1_10=<5V>
# See the sample-lcd.cfg file for definitions of common LCD displays.

View File

@@ -0,0 +1,88 @@
# This file contains common pin mappings for the BIGTREETECH SKR
# MINI. To use this config, the firmware should be compiled for the
# STM32F103 with a "28KiB bootloader".
# The "make flash" command does not work on the SKR mini. Instead,
# after running "make", copy the generated "out/klipper.bin" file to a
# file named "firmware.bin" on an SD card and then restart the SKR
# mini with that SD card.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PC6
dir_pin: PC7
enable_pin: !PB15
step_distance: .0025
endstop_pin: PC2 # X+ is PA2
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: PB13
dir_pin: PB14
enable_pin: !PB12
step_distance: .0025
endstop_pin: PC1 # Y+ is PA1
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: PB10
dir_pin: PB11
enable_pin: !PB2
step_distance: .0125
endstop_pin: PC0 # Z+ is PC3
position_endstop: 0.5
position_max: 200
[extruder]
step_pin: PC5
dir_pin: PB0
enable_pin: !PC4
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA0
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
#[heater_bed]
#heater_pin: PC9
#sensor_type: ATC Semitec 104GT-2
#sensor_pin: PB1
#control: watermark
#min_temp: 0
#max_temp: 130
[fan]
pin: PC8
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[board_pins]
aliases:
# EXP1 header
EXP1_1=PC10, EXP1_3=PB6, EXP1_5=PC13, EXP1_7=PC15, EXP1_9=<GND>,
EXP1_2=PC11, EXP1_4=PC12, EXP1_6=PB7, EXP1_8=PC14, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PB4, EXP2_3=PD2, EXP2_5=PB8, EXP2_7=PB9, EXP2_9=<GND>,
EXP2_2=PB3, EXP2_4=PA15, EXP2_6=PB5, EXP2_8=<RST>, EXP2_10=<NC>
# See the sample-lcd.cfg file for definitions of common LCD displays.

View File

@@ -0,0 +1,222 @@
# This file contains common pin mappings for the BigTreeTech SKR PRO.
# To use this config, the firmware should be compiled for the
# STM32F407 with a "32KiB bootloader".
# The "make flash" command does not work on the SKR PRO. Instead,
# after running "make", copy the generated "out/klipper.bin" file to a
# file named "firmware.bin" on an SD card and then restart the SKR PRO
# with that SD card.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PE9
dir_pin: PF1
enable_pin: !PF2
step_distance: .0025
endstop_pin: PB10
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: PE11
dir_pin: PE8
enable_pin: !PD7
step_distance: .0025
endstop_pin: PE12
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: PE13
dir_pin: PC2
enable_pin: !PC0
step_distance: .0125
endstop_pin: PG8
position_endstop: 0.5
position_max: 200
[extruder]
step_pin: PE14
dir_pin: PA0
enable_pin: !PC3
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PB1 # Heat0
sensor_pin: PF4 # T1 Header
sensor_type: EPCOS 100K B57560G104F
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
#[extruder1]
#step_pin: PD15
#dir_pin: PE7
#enable_pin: !PA3
#heater_pin: PD14 # Heat1
#sensor_pin: PF5 # T2
#...
#[extruder2]
#step_pin: PD13
#dir_pin: PG9
#enable_pin: !PF0
#heater_pin: PB0 # Heat2
#sensor_pin: PF6 # T3
#...
[heater_bed]
heater_pin: PD12
sensor_pin: PF3 # T0
sensor_type: ATC Semitec 104GT-2
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: PC8
[heater_fan fan1]
pin: PE5
#[heater_fan fan2]
#pin: PE6
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
########################################
# TMC2208 configuration
########################################
#[tmc2208 stepper_x]
#uart_pin: PC13
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2208 stepper_y]
#uart_pin: PE3
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2208 stepper_z]
#uart_pin: PE1
#microsteps: 16
#run_current: 0.650
#hold_current: 0.450
#stealthchop_threshold: 30
#[tmc2208 extruder]
#uart_pin: PD4
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#[tmc2208 extruder1]
#uart_pin: PD1
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#[tmc2208 extruder2]
#uart_pin: PD6
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
########################################
# TMC2130 configuration
########################################
#[tmc2130 stepper_x]
#cs_pin: PA15
#spi_bus: spi3a
##diag1_pin: PB10
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2130 stepper_y]
#cs_pin: PB8
#spi_bus: spi3a
##diag1_pin: PE12
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2130 stepper_z]
#cs_pin: PB9
#spi_bus: spi3a
##diag1_pin: PG8
#microsteps: 16
#run_current: 0.650
#hold_current: 0.450
#stealthchop_threshold: 30
#[tmc2130 extruder]
#cs_pin: PB3
#spi_bus: spi3a
##diag1_pin: PE15
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#[tmc2130 extruder1]
#cs_pin: PG15
#spi_bus: spi3a
##diag1_pin: PE10
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#[tmc2130 extruder2]
#cs_pin: PG12
#spi_bus: spi3a
##diag1_pin: PG5
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
########################################
# EXP1 / EXP2 (display) pins
########################################
[board_pins]
aliases:
# EXP1 header
EXP1_1=PG4, EXP1_3=PD11, EXP1_5=PG2, EXP1_7=PG6, EXP1_9=<GND>,
EXP1_2=PA8, EXP1_4=PD10, EXP1_6=PG3, EXP1_8=PG7, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PB14, EXP2_3=PG10, EXP2_5=PF11, EXP2_7=PF12, EXP2_9=<GND>,
EXP2_2=PB13, EXP2_4=PB12, EXP2_6=PB15, EXP2_8=<RST>, EXP2_10=PF13
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "spi2"
# See the sample-lcd.cfg file for definitions of common LCD displays.

View File

@@ -0,0 +1,91 @@
# This file contains common pin mappings for the BIGTREETECH SKR V1.1
# board. To use this config, the firmware should be compiled for the
# LPC1768.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: P0.4
dir_pin: !P0.5
enable_pin: !P4.28
step_distance: .0025
endstop_pin: P1.29
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: P2.1
dir_pin: P2.2
enable_pin: !P2.0
step_distance: .0025
endstop_pin: P1.27
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: P0.20
dir_pin: P0.21
enable_pin: !P0.19
step_distance: .0125
endstop_pin: !P1.25
position_endstop: 0.5
position_max: 200
#[stepper_z1]
#step_pin: P0.1
#dir_pin: P0.0
#enable_pin: !P0.10
#position_endstop: 0.5
#position_max: 200
[extruder]
step_pin: P0.11
dir_pin: P2.13
enable_pin: !P2.12
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: P2.7
sensor_type: EPCOS 100K B57560G104F
sensor_pin: P0.24
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: P2.5
sensor_type: ATC Semitec 104GT-2
sensor_pin: P0.23
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: P2.3
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[board_pins]
aliases:
# EXP1 header
EXP1_1=P1.30, EXP1_3=P0.18, EXP1_5=P0.15, EXP1_7=<NC>, EXP1_9=<GND>,
EXP1_2=P2.11, EXP1_4=P0.16, EXP1_6=<NC>, EXP1_8=<NC>, EXP1_10=<5V>,
# EXP2 header
EXP2_1=P0.17, EXP2_3=P3.26, EXP2_5=P3.25, EXP2_7=P1.31, EXP2_9=<GND>,
EXP2_2=P0.15, EXP2_4=P1.23, EXP2_6=P0.18, EXP2_8=<RST>, EXP2_10=<NC>
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "ssp0"
# See the sample-lcd.cfg file for definitions of common LCD displays.

View File

@@ -0,0 +1,205 @@
# This file contains common pin mappings for the BIGTREETECH SKR V1.3
# board. To use this config, the firmware should be compiled for the
# LPC1768.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: P2.2
dir_pin: !P2.6
enable_pin: !P2.1
step_distance: .0125
endstop_pin: P1.29 # P1.28 for X-max
position_endstop: 0
position_max: 320
homing_speed: 50
[stepper_y]
step_pin: P0.19
dir_pin: !P0.20
enable_pin: !P2.8
step_distance: .0125
endstop_pin: P1.27 # P1.26 for Y-max
position_endstop: 0
position_max: 300
homing_speed: 50
[stepper_z]
step_pin: P0.22
dir_pin: P2.11
enable_pin: !P0.21
step_distance: .0025
endstop_pin: P1.25 # P1.24 for Z-max
position_endstop: 0.5
position_max: 400
[extruder]
step_pin: P2.13
dir_pin: !P0.11
enable_pin: !P2.12
step_distance: .010526
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: P2.7
sensor_type: EPCOS 100K B57560G104F
sensor_pin: P0.24
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 260
#[extruder1]
#step_pin: P0.1
#dir_pin: P0.0
#enable_pin: !P0.10
#heater_pin: P2.4
#sensor_pin: P0.25
#...
[heater_bed]
heater_pin: P2.5
sensor_type: ATC Semitec 104GT-2
sensor_pin: P0.23
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: P2.3
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 200
max_accel: 2000
max_z_velocity: 25
max_z_accel: 100
########################################
# TMC2208 configuration
########################################
# For TMC2208 UART
# 1) Remove all of the jumpers below the stepper drivers
# 2) Place jumpers on the red pin headers labeled XUART (XUART, YUART etc.)
#[tmc2208 stepper_x]
#uart_pin: P1.17
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2208 stepper_y]
#uart_pin: P1.15
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2208 stepper_z]
#uart_pin: P1.10
#microsteps: 16
#run_current: 0.650
#hold_current: 0.450
#stealthchop_threshold: 30
#[tmc2208 extruder]
#uart_pin: P1.8
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#[tmc2208 extruder1]
#uart_pin: P1.1
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
########################################
# TMC2130 configuration
########################################
# For TMC SPI
# 1) Place jumpers on all the red pin headers under the stepper drivers
# 2) Remove jumpers from the red pin headers labeled XUART (XUART, YUART etc.)
#[tmc2130 stepper_x]
#cs_pin: P1.17
#spi_software_miso_pin: P0.5
#spi_software_mosi_pin: P4.28
#spi_software_sclk_pin: P0.4
##diag1_pin: P1.29
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2130 stepper_y]
#cs_pin: P1.15
#spi_software_miso_pin: P0.5
#spi_software_mosi_pin: P4.28
#spi_software_sclk_pin: P0.4
##diag1_pin: P1.27
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2130 stepper_z]
#cs_pin: P1.10
#spi_software_miso_pin: P0.5
#spi_software_mosi_pin: P4.28
#spi_software_sclk_pin: P0.4
##diag1_pin: P1.25
#microsteps: 16
#run_current: 0.650
#hold_current: 0.450
#stealthchop_threshold: 30
#[tmc2130 extruder]
#cs_pin: P1.8
#spi_software_miso_pin: P0.5
#spi_software_mosi_pin: P4.28
#spi_software_sclk_pin: P0.4
##diag1_pin: P1.28
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#[tmc2130 extruder1]
#cs_pin: P1.1
#spi_software_miso_pin: P0.5
#spi_software_mosi_pin: P4.28
#spi_software_sclk_pin: P0.4
##diag1_pin: P1.26
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
########################################
# EXP1 / EXP2 (display) pins
########################################
[board_pins]
aliases:
# EXP1 header
EXP1_1=P1.30, EXP1_3=P1.18, EXP1_5=P1.20, EXP1_7=P1.22, EXP1_9=<GND>,
EXP1_2=P0.28, EXP1_4=P1.19, EXP1_6=P1.21, EXP1_8=P1.23, EXP1_10=<5V>,
# EXP2 header
EXP2_1=P0.17, EXP2_3=P3.26, EXP2_5=P3.25, EXP2_7=P1.31, EXP2_9=<GND>,
EXP2_2=P0.15, EXP2_4=P0.16, EXP2_6=P0.18, EXP2_8=<RST>, EXP2_10=<NC>
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "ssp0"
# See the sample-lcd.cfg file for definitions of common LCD displays.

View File

@@ -0,0 +1,200 @@
# This file contains common pin mappings for the BIGTREETECH SKR V1.4
# board. To use this config, the firmware should be compiled for the
# LPC1768 or LPC1769(Turbo).
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: P2.2
dir_pin: P2.6
enable_pin: !P2.1
step_distance: .0125
endstop_pin: !P1.29
position_endstop: 0
position_max: 235
homing_speed: 50
[stepper_y]
step_pin: P0.19
dir_pin: P0.20
enable_pin: !P2.8
step_distance: .0125
endstop_pin: !P1.28
position_endstop: 0
position_max: 235
homing_speed: 50
[stepper_z]
step_pin: P0.22
dir_pin: !P2.11
enable_pin: !P0.21
step_distance: .0025
endstop_pin: !P1.27
position_endstop: 0.0
position_max: 300
[extruder]
step_pin: P2.13
dir_pin: !P0.11
enable_pin: !P2.12
step_distance: .010526
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: P2.7
sensor_type: EPCOS 100K B57560G104F
sensor_pin: P0.24
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 260
#[extruder1]
#step_pin: P1.15
#dir_pin: P1.14
#enable_pin: !P1.16
#heater_pin: P2.4
#sensor_pin: P0.23
#...
[heater_bed]
heater_pin: P2.5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: P0.25
control: pid
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130
[fan]
pin: P2.3
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 400
max_accel: 500
max_z_velocity: 10
max_z_accel: 100
########################################
# TMC2208 configuration
########################################
#[tmc2208 stepper_x]
#uart_pin: P1.10
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#
#[tmc2208 stepper_y]
#uart_pin: P1.9
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#
#[tmc2208 stepper_z]
#uart_pin: P1.8
#microsteps: 16
#run_current: 0.650
#hold_current: 0.450
#stealthchop_threshold: 30
#
#[tmc2208 extruder]
#uart_pin: P1.4
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#
#[tmc2208 extruder1]
#uart_pin: P1.1
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
########################################
# TMC2130 configuration
########################################
#[tmc2130 stepper_x]
#cs_pin: P1.10
#spi_software_miso_pin: P0.5
#spi_software_mosi_pin: P1.17
#spi_software_sclk_pin: P0.4
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#diag1_pin: P1.29
#[tmc2130 stepper_y]
#cs_pin: P1.9
#spi_software_miso_pin: P0.5
#spi_software_mosi_pin: P1.17
#spi_software_sclk_pin: P0.4
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#diag1_pin: P1.28
#[tmc2130 stepper_z]
#cs_pin: P1.8
#spi_software_miso_pin: P0.5
#spi_software_mosi_pin: P1.17
#spi_software_sclk_pin: P0.4
#microsteps: 16
#run_current: 0.650
#hold_current: 0.450
#stealthchop_threshold: 30
#diag1_pin: P1.27
#[tmc2130 extruder]
#cs_pin: P1.4
#spi_software_miso_pin: P0.5
#spi_software_mosi_pin: P1.17
#spi_software_sclk_pin: P0.4
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#diag1_pin: P1.26
#[tmc2130 extruder1]
#cs_pin: P1.1
#spi_software_miso_pin: P0.5
#spi_software_mosi_pin: P1.17
#spi_software_sclk_pin: P0.4
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#diag1_pin: P1.25
########################################
# EXP1 / EXP2 (display) pins
########################################
[board_pins]
aliases:
# EXP1 header
EXP1_1=P1.30, EXP1_3=P1.18, EXP1_5=P1.20, EXP1_7=P1.22, EXP1_9=<GND>,
EXP1_2=P0.28, EXP1_4=P1.19, EXP1_6=P1.21, EXP1_8=P1.23, EXP1_10=<5V>,
# EXP2 header
EXP2_1=P0.17, EXP2_3=P3.26, EXP2_5=P3.25, EXP2_7=P1.31, EXP2_9=<GND>,
EXP2_2=P0.15, EXP2_4=P0.16, EXP2_6=P0.18, EXP2_8=<RST>, EXP2_10=<NC>
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "ssp0"
# See the sample-lcd.cfg file for definitions of common LCD displays.

89
config/generic-cramps.cfg Normal file
View File

@@ -0,0 +1,89 @@
# This file contains an example configuration for a Beaglebone PRU
# micro-controller attached to a CRAMPS board.
# THIS FILE HAS NOT BEEN TESTED - PROCEED WITH CAUTION!
# NOTE: Klipper does not alter the input/output state of the
# Beaglebone pins and it does not control their pull-up resistors. In
# order to set the pin state one must use a "device tree overlay" or
# use the config-pin program.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: P8_13
dir_pin: P8_12
enable_pin: !P9_14
step_distance: .0125
endstop_pin: ^P8_8
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: P8_15
dir_pin: P8_14
enable_pin: !P9_14
step_distance: .0125
endstop_pin: ^P8_10
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: P8_19
dir_pin: P8_18
enable_pin: !P9_14
step_distance: .0025
endstop_pin: ^P9_13
position_endstop: 0
position_max: 200
[extruder]
step_pin: P9_16
dir_pin: P9_12
enable_pin: !P9_14
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: P9_15
sensor_type: EPCOS 100K B57560G104F
pullup_resistor: 2000
sensor_pin: host:analog5
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: P8_11
sensor_type: EPCOS 100K B57560G104F
pullup_resistor: 2000
sensor_pin: host:analog4
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: P9_41
[mcu]
serial: /dev/rpmsg_pru30
pin_map: beaglebone
[mcu host]
serial: /tmp/klipper_host_mcu
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[output_pin machine_enable]
pin: P9_23
value: 1
shutdown_value: 0

View File

@@ -0,0 +1,88 @@
# This file contains pin mappings for the Creality "v4.2.7" board. To
# use this config, during "make menuconfig" select the STM32F103 with
# a "28KiB bootloader" and with "Use USB for communication" disabled.
# If you prefer a direct serial connection, in "make menuconfig"
# select "Enable extra low-level configuration options" and select the
# USART3 serial port, which is broken out on the 10 pin IDC cable used
# for the LCD module as follows:
# 3: Tx, 4: Rx, 9: GND, 10: VCC
# Flash this firmware by copying "out/klipper.bin" to a SD card and
# turning on the printer with the card inserted. The firmware
# filename must end in ".bin" and must not match the last filename
# that was flashed.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PB9
dir_pin: PC2
enable_pin: !PC3
step_distance: .0125
endstop_pin: ^PA5
position_endstop: 0
position_max: 235
homing_speed: 50
[stepper_y]
step_pin: PB7
dir_pin: PB8
enable_pin: !PC3
step_distance: .0125
endstop_pin: ^PA6
position_endstop: 0
position_max: 235
homing_speed: 50
[stepper_z]
step_pin: PB5
dir_pin: !PB6
enable_pin: !PC3
step_distance: .0025
endstop_pin: ^PA7
position_endstop: 0.0
position_max: 250
[extruder]
max_extrude_only_distance: 100.0
step_pin: PB3
dir_pin: PB4
enable_pin: !PC3
step_distance: 0.010752
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
control: pid
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PA2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
control: pid
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130
[fan]
pin: PA0
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100

View File

@@ -0,0 +1,371 @@
# This file contains common pin mappings for Duet2 Eth/Wifi boards
# that have the Duex expansion board. To use this config, the firmware
# should be compiled for the SAM4E8E.
# See the example.cfg file for a description of available parameters.
## Drivers
# Here are the pins for the 10 stepper drivers supported by a Duet2 board
# | Drive | DIR pin | STEP pin | ENDSTOP pin | SPI EN pin |
# |-------|----------|-----------|--------------|-------------|
# | X | PD11 | PD6 | PC14 | PD14 |
# | Y | PD12 | PD7 | PA2 | PC9 |
# | Z | PD13 | PD8 | PD29 | PC10 |
# | E0 | PA1 | PD5 | PD10 | PC17 |
# | E1 | PD9 | PD4 | PC16 | PC25 |
# | E2 | PD28 | PD2 | PE0* | PD23 |
# | E3 | PD22 | PD1 | PE1* | PD24 |
# | E4 | PD16 | PD0 | PE2* | PD25 |
# | E5 | PD17 | PD3 | PE3* | PD26 |
# | E6 | PC0 | PD27 | PA17* | PB14 |
# Pins marked with asterisks (*) are only assigned to these functions
# if no duex is connected. If a duex is connected, these endstops are
# remapped to the SX1509 on the Duex (unfortunately they can't be used
# as endstops in klipper, however one may use them as digital outs or
# PWM outs). The SPI EN pins are required for the TMC2660 drivers (use
# the SPI EN pin as 'cs_pin' in the respective config block). The
# **enable pin for all steppers** is TMC_EN = !PC6.
#
## Fans
# | FAN | PIN |
# |------|-----------------------|
# | FAN0 | PC23 |
# | FAN1 | PC26 |
# | FAN2 | PA0 |
# | FAN3 | sx1509_duex:PIN_12* |
# | FAN4 | sx1509_duex:PIN_7* |
# | FAN5 | sx1509_duex:PIN_6* |
# | FAN6 | sx1509_duex:PIN_5* |
# | FAN7 | sx1509_duex:PIN_4* |
# | FAN8 | sx1509_duex:PIN_15* |
# Pins marked with (*) assume the following sx1509 config section:
#[sx1509 duex]
#i2c_address: 62
#
## Heaters and Thermistors
# | Extruder Drive | HEAT pin | TEMP pin |
# |----------------|-----------|-----------|
# | BED | PA19 | PC13 |
# | E0 | PA20 | PC15 |
# | E1 | PA16 | PC12 |
# | E2 | PC3 | PC29 |
# | E3 | PC5 | PC30 |
# | E4 | PC8 | PC31 |
# | E5 | PC11 | PC27 |
# | E6 | PA15 | PA18 |
#
## Misc pins
# | Name | Pin |
# |-------------|---------|
# | ZProbe_IN | PC1 |
# | PS_ON | PD15 |
# | LED_ONBOARD | PC2 |
# | SPI0_CS0 | PC24 |
# | SPI0_CS1 | PB2 |
# | SPI0_CS2 | PC18 |
# | SPI0_CS3 | PC19 |
# | SPI0_CS4 | PC20 |
# | SPI0_CS5 | PA24 |
# | SPI0_CS6 | PE1* |
# | SPI0_CS7 | PE2* |
# | SPI0_CS8 | PE3* |
# | SX1509_IRQ | PA17* |
# | SG_TST | PE0* |
# | ENC_SW | PA7 |
# | ENC_A | PA8 |
# | ENC_B | PC7 |
# | LCD_DB7 | PD18 |
# | LCD_DB6 | PD19 |
# | LCD_DB5 | PD20 |
# | LCD_DB4 | PD21 |
# | LCD_RS | PC28 |
# | LCD_E | PA25 |
# Pins marked with one asterisk (*) replace E2_STOP-E6_STOP if a duex is present
# For the remaining pins check the schematics provided here: https://github.com/T3P3/Duet
[stepper_x]
step_pin: PD6
dir_pin: PD11
enable_pin: !PC6
step_distance: .0125
endstop_pin: ^PC14
position_endstop: 0
position_max: 250
[tmc2660 stepper_x]
cs_pin: PD14 # X_SPI_EN Required for communication
spi_bus: usart1 # All TMC2660 drivers are connected to USART1
microsteps: 16
interpolate: True # 1/16 micro-steps interpolated to 1/256
run_current: 1.000
sense_resistor: 0.051
idle_current_percent: 20
[stepper_y]
step_pin: PD7
dir_pin: !PD12
enable_pin: !PC6
step_distance: .0125
endstop_pin: ^PA2
position_endstop: 0
position_max: 210
[tmc2660 stepper_y]
cs_pin: PC9
spi_bus: usart1
microsteps: 16
interpolate: True
run_current: 1.000
sense_resistor: 0.051
idle_current_percent: 20
[stepper_z]
step_pin: PD8
dir_pin: PD13
enable_pin: !PC6
step_distance: .0025
endstop_pin: ^PD29
position_endstop: 0.5
position_max: 200
[tmc2660 stepper_z]
cs_pin: PC10
spi_bus: usart1
microsteps: 16
interpolate: True
run_current: 1.000
sense_resistor: 0.051
#On drive E4
[stepper_z1]
step_pin: PD0
dir_pin: PD16
enable_pin: !PC6
step_distance: .0025
[tmc2660 stepper_z1]
cs_pin: PD25
spi_bus: usart1
microsteps: 16
interpolate: True
run_current: 1.000
sense_resistor: 0.051
#On drive E5
[stepper_z2]
step_pin: PD3
dir_pin: !PD17
enable_pin: !PC6
step_distance: .0025
[tmc2660 stepper_z2]
cs_pin: PD26
spi_bus: usart1
microsteps: 16
interpolate: True
run_current: 1.000
sense_resistor: 0.051
#On drive E6
[stepper_z3]
step_pin: PD27
dir_pin: !PC0
enable_pin: !PC6
step_distance: .0025
[tmc2660 stepper_z3]
cs_pin: PB14
spi_bus: usart1
microsteps: 16
interpolate: True
run_current: 1.000
sense_resistor: 0.051
#On drive E0
[extruder]
step_pin: PD5
dir_pin: PA1
enable_pin: !PC6
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: !PA20
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC15
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[tmc2660 extruder]
cs_pin: PC17
spi_bus: usart1
microsteps: 16
interpolate: True
run_current: 1.000
sense_resistor: 0.051
#On drive E1
[extruder1]
step_pin: PD4
dir_pin: PD9
enable_pin: !PC6
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: !PA16
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC12
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[tmc2660 extruder1]
cs_pin: PC25
spi_bus: usart1
microsteps: 16
interpolate: True
run_current: 1.000
sense_resistor: 0.051
# On drive E2
[extruder2]
step_pin: PD2
dir_pin: !PD28
enable_pin: !PC6
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: !PC3
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC29
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[tmc2660 extruder2]
cs_pin: PD23
spi_bus: usart1
microsteps: 16
interpolate: True
run_current: 1.000
sense_resistor: 0.051
# On drive E3
[extruder3]
step_pin: PD1
dir_pin: !PD22
enable_pin: !PC6
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: !PC5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC30
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[tmc2660 extruder3]
cs_pin: PD24
spi_bus: usart1
microsteps: 16
interpolate: True
run_current: 1.000
sense_resistor: 0.051
[heater_bed]
heater_pin: !PA19
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC13
control: watermark
min_temp: 0
max_temp: 130
# Fan0
[fan]
pin: PC23
# Fan1 controlled by extruder
[heater_fan nozzle_cooling_fan]
pin: PC26
heater: extruder
heater_temp: 45
fan_speed: 1.0
# Fan2, controlled by E5_TEMP
[temperature_fan chamber_fan]
pin: PA0
max_power: 1
shutdown_speed: 1
cycle_time: 0.01
min_temp: 40
max_temp: 120
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC27
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[sx1509 duex]
i2c_address: 62 # Address is fixed on duex boards
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[static_digital_output onboard_led]
pins: !PC2
[output_pin FAN3]
pin: sx1509_duex:PIN_12
pwm: True
hardware_pwm: True # Only hardware PWM fans are supported
[output_pin FAN4]
pin: sx1509_duex:PIN_7
pwm: True
hardware_pwm: True
[output_pin FAN5]
pin: sx1509_duex:PIN_6
pwm: True
hardware_pwm: True
[output_pin FAN6]
pin: sx1509_duex:PIN_5
pwm: True
hardware_pwm: True
[output_pin FAN7]
pin: sx1509_duex:PIN_4
pwm: True
hardware_pwm: True
[output_pin FAN8]
pin: sx1509_duex:PIN_15
pwm: True
hardware_pwm: True
[output_pin GPIO1] # General purpose pin broken out on the duex
pin: sx1509_duex:PIN_11
pwm: False
value: 1

View File

@@ -0,0 +1,161 @@
# This file contains common pin mappings for the Duet2 Maestro. To use
# this config, the firmware should be compiled for the sam4s8c.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PC20
dir_pin: PC18
enable_pin: !PA1
step_distance: .0125
endstop_pin: ^PA24
position_endstop: 0
position_max: 200
homing_speed: 50
[tmc2208 stepper_x]
uart_pin: PA9
tx_pin: PA10
select_pins: !PC14, !PC16, !PC17
sense_resistor: 0.075
microsteps: 16
run_current: 0.800
stealthchop_threshold: 250
[stepper_y]
step_pin: PC2
dir_pin: PA8
enable_pin: !PA1
step_distance: .0125
endstop_pin: ^PB6
position_endstop: 0
position_max: 200
homing_speed: 50
[tmc2208 stepper_y]
uart_pin: PA9
tx_pin: PA10
select_pins: PC14, !PC16, !PC17
sense_resistor: 0.075
microsteps: 16
run_current: 0.800
stealthchop_threshold: 250
[stepper_z]
step_pin: PC28
dir_pin: PB4
enable_pin: !PA1
step_distance: .0025
endstop_pin: ^PC10
position_endstop: 0.5
position_max: 200
[tmc2208 stepper_z]
uart_pin: PA9
tx_pin: PA10
select_pins: !PC14, PC16, !PC17
sense_resistor: 0.075
microsteps: 16
run_current: 0.800
stealthchop_threshold: 30
# Support analog sensor adjustments using VREF/VSSA pins
[adc_scaled vref_scaled]
vref_pin: PA17
vssa_pin: PA19
[extruder]
step_pin: PC4
dir_pin: PB7
enable_pin: !PA1
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: !PC1
sensor_type: EPCOS 100K B57560G104F
pullup_resistor: 2200
sensor_pin: vref_scaled:PB0
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[tmc2208 extruder]
uart_pin: PA9
tx_pin: PA10
select_pins: PC14, PC16, !PC17
sense_resistor: 0.075
microsteps: 16
run_current: 0.800
stealthchop_threshold: 5
#[extruder1]
#step_pin: PC5
#dir_pin: PC6
#enable_pin: !PA1
#heater_pin: !PA16
#sensor_pin: PC30
#pullup_resistor: 2200
#...
#[tmc2208 extruder1]
#select_pins: !PC14, !PC16, PC17
#sense_resistor: 0.075
#...
# External steppers
# e2: step_pin=PC31 dir_pin=PA18 enable_pin=PC27 select_pins=PC14,!PC16,PC17
# e3: step_pin=PC21 dir_pin=PC24 enable_pin=PC25 select_pins=!PC14,PC16,PC17
# e0_stop: endstop_pin=PA25
# e1_stop: endstop_pin=PC7
# c_temp: sensor_pin=PB1
[heater_bed]
heater_pin: !PC0
sensor_type: EPCOS 100K B57560G104F
pullup_resistor: 2200
sensor_pin: vref_scaled:PA20
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: PC23 # FAN0
#[heater_fan nozzle_cooling_fan]
#pin: PC22 # FAN1
#[heater_fan board_cooling_fan]
#pin: PC29 # FAN2
#[bltouch]
#sensor_pin: PC15 # Z_PROBE_IN
#control_pin: PC26 # Z_PROBE_MOD
#...
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[static_digital_output led]
pins: !PC26 # Z_PROBE_MOD / SERVO pin
# EXP1 / EXP2 (display) pins
[board_pins]
aliases:
# EXP1 header
EXP1_1=PA15, EXP1_3=PA6, EXP1_5=PA2, EXP1_7=<NC>, EXP1_9=<GND>,
EXP1_2=PA7, EXP1_4=PC9, EXP1_6=<NC>, EXP1_8=<NC>, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PA5, EXP2_3=PC3, EXP2_5=PB5, EXP2_7=<NC>, EXP2_9=<GND>,
EXP2_2=PA2, EXP2_4=PB13, EXP2_6=PA6, EXP2_8=<RST>, EXP2_10=<NC>
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "usart0"
# See the sample-lcd.cfg file for definitions of common LCD displays.

118
config/generic-duet2.cfg Normal file
View File

@@ -0,0 +1,118 @@
# This file contains common pin mappings for Duet2 Eth/Wifi boards. To
# use this config, the firmware should be compiled for the SAM4E8E.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PD6
dir_pin: PD11
enable_pin: !PC6
step_distance: .0125
endstop_pin: ^PC14
position_endstop: 0
position_max: 250
[tmc2660 stepper_x]
cs_pin: PD14
spi_bus: usart1
microsteps: 16
run_current: 1.000
sense_resistor: 0.051
[stepper_y]
step_pin: PD7
dir_pin: !PD12
enable_pin: !PC6
step_distance: .0125
endstop_pin: ^PA2
position_endstop: 0
position_max: 210
[tmc2660 stepper_y]
cs_pin: PC9
spi_bus: usart1
microsteps: 16
run_current: 1.000
sense_resistor: 0.051
[stepper_z]
step_pin: PD8
dir_pin: PD13
enable_pin: !PC6
step_distance: .0025
endstop_pin: ^PD29
#endstop_pin: PD10 # E0 endstop
#endstop_pin: PC16 # E1 endstop
position_endstop: 0.5
position_max: 200
[tmc2660 stepper_z]
cs_pin: PC10
spi_bus: usart1
microsteps: 16
run_current: 1.000
sense_resistor: 0.051
[extruder]
step_pin: PD5
dir_pin: PA1
enable_pin: !PC6
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: !PA20
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC15
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[tmc2660 extruder]
cs_pin: PC17
spi_bus: usart1
microsteps: 16
run_current: 1.000
sense_resistor: 0.051
#[extruder1]
#step_pin: PD4
#dir_pin: PD9
#enable_pin: !PC6
#heater_pin: !PA16
#sensor_pin: PC12
#...
#[tmc2660 extruder1]
#cs_pin: PC25
#spi_bus: usart1
#sense_resistor: 0.051
#...
[heater_bed]
heater_pin: !PA19
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC13
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: PC23 # FAN0
#[heater_fan nozzle_cooling_fan]
#pin: PC26 # FAN1
#[heater_fan board_cooling_fan]
#pin: PA0 # FAN2
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100

View File

@@ -0,0 +1,112 @@
# This file contains common pin mappings for Einsy Rambo boards. To use
# this config, the firmware should be compiled for the AVR atmega2560.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PC0
dir_pin: PL0
enable_pin: !PA7
step_distance: .005
endstop_pin: ^PB6
#endstop_pin: tmc2130_stepper_x:virtual_endstop
position_endstop: 0
position_max: 250
[tmc2130 stepper_x]
cs_pin: PG0
microsteps: 16
run_current: .5
sense_resistor: 0.220
diag1_pin: !PK2
[stepper_y]
step_pin: PC1
dir_pin: !PL1
enable_pin: !PA6
step_distance: .005
endstop_pin: ^PB5
#endstop_pin: tmc2130_stepper_y:virtual_endstop
position_endstop: 0
position_max: 210
[tmc2130 stepper_y]
cs_pin: PG2
microsteps: 16
run_current: .5
sense_resistor: 0.220
diag1_pin: !PK7
[stepper_z]
step_pin: PC2
dir_pin: PL2
enable_pin: !PA5
step_distance: .0025
endstop_pin: ^PB4
#endstop_pin: tmc2130_stepper_z:virtual_endstop
position_endstop: 0.5
position_max: 200
[tmc2130 stepper_z]
cs_pin: PK5
microsteps: 16
run_current: .5
sense_resistor: 0.220
diag1_pin: !PK6
[extruder]
step_pin: PC3
dir_pin: PL6
enable_pin: !PA4
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PE5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PF0
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[tmc2130 extruder]
cs_pin: PK4
microsteps: 16
run_current: .5
sense_resistor: 0.220
diag1_pin: !PK3
[heater_bed]
heater_pin: PG5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PF2
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: PH5
#[heater_fan nozzle_cooling_fan]
#pin: PH3
[temperature_sensor board_sensor]
sensor_pin: PF6
sensor_type: TDK NTCG104LH104JT1
min_temp: 0
max_temp: 50
[mcu]
serial: /dev/ttyACM0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[static_digital_output yellow_led]
pins: !PB7

295
config/generic-flyboard.cfg Normal file
View File

@@ -0,0 +1,295 @@
# This file contains common pin mappings for the 9 stepper motor
# "flymaker flyboard FLYF407ZG" board from creative3dprinter.com. To
# use this config, the firmware should be compiled for the STM32F407
# with a "32KiB bootloader".
# The "make flash" command does not work on the FLYBOARD. Instead,
# after running "make", copy the generated "out/klipper.bin" file to a
# file named "firmware.bin" on an SD card and then restart the FLYBOARD
# with that SD card.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PB9
dir_pin: PE0
enable_pin: !PE1
step_distance: .0025
endstop_pin: PC3
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: PB8
dir_pin: PG11
enable_pin: !PG12
step_distance: .0025
endstop_pin: PF2
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: PA8
dir_pin: PD6
enable_pin: !PD7
step_distance: .0125
endstop_pin: PF0
position_endstop: 0.5
position_max: 200
[extruder]
step_pin: PC7
dir_pin: PD3
enable_pin: !PD4
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PF7 # Heat0
sensor_pin: PA0 # T1 Header
sensor_type: EPCOS 100K B57560G104F
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 350
#[extruder1]
#step_pin: PC6
#dir_pin: PA15
#enable_pin: !PD0
#heater_pin: PF6 # Heat1
#sensor_pin: PC1 # T2
#...
#[extruder2]
#step_pin: PD15
#dir_pin: PG7
#enable_pin: !PG8
#heater_pin: PE6 # Heat2
#sensor_pin: PC0 # T3
#...
#[extruder3]
#step_pin: PD14
#dir_pin: PG4
#enable_pin: !PG5
#heater_pin: PE5 # Heat3
#sensor_pin: PF10 # T4
#...
#[extruder4]
#step_pin: PD13
#dir_pin: PD11
#enable_pin: !PG2
#heater_pin: PE4 # Heat4
#sensor_pin: PF5 # T5
#...
#[extruder4]
#step_pin: PD12
#dir_pin: PD8
#enable_pin: !PD9
#heater_pin: PE3 # Heat5
#sensor_pin: PF4 # T6
#...
[heater_bed]
heater_pin: PE2
sensor_pin: PF3 # T0
sensor_type: ATC Semitec 104GT-2
control: watermark
min_temp: 0
max_temp: 200
[fan]
pin: PF8
[heater_fan fan1]
pin: PF9
#[heater_fan fan2]
#pin: PA2
#[heater_fan fan3]
#pin: PA1
#[heater_fan fan4]
#pin: PE13
#[heater_fan fan5]
#pin: PB11
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: corexy
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
########################################
# TMC2208 configuration
########################################
#[tmc2208 stepper_x]
#uart_pin: PG13
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2208 stepper_y]
#uart_pin: PG10
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2208 stepper_z]
#uart_pin: PD5
#microsteps: 16
#run_current: 0.650
#hold_current: 0.450
#stealthchop_threshold: 30
#[tmc2208 extruder]
#uart_pin: PD1
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#[tmc2208 extruder1]
#uart_pin: PA14
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#[tmc2208 extruder2]
#uart_pin: PG6
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#[tmc2208 extruder3]
#uart_pin: PG3
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#[tmc2208 extruder4]
#uart_pin: PD10
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#[tmc2208 extruder5]
#uart_pin: PB12
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
########################################
# TMC2130 configuration
########################################
#[tmc2130 stepper_x]
#cs_pin: PG13
##diag1_pin: PC3
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2130 stepper_y]
#cs_pin: PG10
##diag1_pin: PF2
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2130 stepper_z]
#cs_pin: PBD5
##diag1_pin: PF0
#microsteps: 16
#run_current: 0.650
#hold_current: 0.450
#stealthchop_threshold: 30
#[tmc2130 extruder]
#cs_pin: PD1
##diag1_pin: PE15
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#[tmc2130 extruder1]
#cs_pin: PA14
##diag1_pin: PE10
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#[tmc2130 extruder2]
#cs_pin: PG6
##diag1_pin: PC15
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#[tmc2130 extruder3]
#cs_pin: PG3
##diag1_pin: PC15
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#[tmc2130 extruder4]
#cs_pin: PD10
##diag1_pin: PC15
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#[tmc2130 extruder5]
#cs_pin: PB12
##diag1_pin: PC15
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
########################################
# EXP1 / EXP2 (display) pins
########################################
[board_pins]
aliases:
# EXP1 header
EXP1_1=PB10, EXP1_3=PE14, EXP1_5=PE10, EXP1_7=PE8, EXP1_9=<GND>,
EXP1_2=PE15, EXP1_4=PE12, EXP1_6=PE9, EXP1_8=PE7, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PB14, EXP2_3=PC5, EXP2_5=PC4, EXP2_7=PB2, EXP2_9=<GND>,
EXP2_2=PB13, EXP2_4=PF11, EXP2_6=PB15, EXP2_8=<RST>, EXP2_10=<GND>
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "spi2"
# See the sample-lcd.cfg file for definitions of common LCD displays.

View File

@@ -0,0 +1,126 @@
# This file contains common pin mappings for the Fysetc Cheetah v1.1
# board. To use this config, the firmware should be compiled for the
# STM32F103 with "No bootloader" and with "Use USB for communication"
# disabled.
# The "make flash" command does not work on the Cheetah. Instead,
# after running "make", run the following command to flash the board:
# stm32flash -w out/klipper.bin -v -i rts,-dtr,dtr /dev/ttyUSB0
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PB8
dir_pin: !PB9
enable_pin: !PA8
step_distance: .0125
endstop_pin: ^PA1
position_endstop: 0
position_max: 200
homing_speed: 50
[tmc2209 stepper_x]
uart_pin: PA3
tx_pin: PA2
uart_address: 0
microsteps: 16
run_current: 0.800
hold_current: 0.500
stealthchop_threshold: 250
[stepper_y]
step_pin: PB2
dir_pin: !PB3
enable_pin: !PB1
step_distance: .0125
endstop_pin: ^PB4
position_endstop: 0
position_max: 200
homing_speed: 50
[tmc2209 stepper_y]
uart_pin: PA3
tx_pin: PA2
uart_address: 2
microsteps: 16
run_current: 0.800
hold_current: 0.500
stealthchop_threshold: 250
[stepper_z]
step_pin: PC0
dir_pin: PC1
enable_pin: !PC2
step_distance: .0025
endstop_pin: ^PA15
position_endstop: 0
position_max: 200
[tmc2209 stepper_z]
uart_pin: PA3
tx_pin: PA2
uart_address: 1
microsteps: 16
run_current: 0.800
hold_current: 0.500
stealthchop_threshold: 5
[extruder]
step_pin: PC15
dir_pin: !PC14
enable_pin: !PC13
step_distance: 0.010526
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC6
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
control: pid
pid_kp: 21.527
pid_ki: 1.063
pid_kd: 108.982
min_temp: 0
max_temp: 250
[tmc2209 extruder]
uart_pin: PA3
tx_pin: PA2
uart_address: 3
microsteps: 16
run_current: 1.0
hold_current: 0.500
stealthchop_threshold: 5
[heater_bed]
heater_pin: PC7
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
control: pid
pid_kp: 54.027
pid_ki: 0.770
pid_kd: 948.182
min_temp: 0
max_temp: 130
[fan]
pin: PC8
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
restart_method: cheetah
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[board_pins]
aliases:
# EXP1 header
EXP1_1=PC9, EXP1_3=PC11, EXP1_5=PC10, EXP1_7=PB12, EXP1_9=<GND>,
EXP1_2=PC12, EXP1_4=PB14, EXP1_6=PB13, EXP1_8=PB15, EXP1_10=<5V>
# Pins EXP1_4, EXP1_8, EXP1_6 are also MISO, MOSI, SCK of bus "spi2"
# See the sample-lcd.cfg file for definitions of common LCD displays.

View File

@@ -0,0 +1,122 @@
# This file contains common pin mappings for the Fysetc Cheetah v1.2b
# board. To use this config, the firmware should be compiled for the
# STM32F103 with "No bootloader" and with "Use USB for communication"
# disabled.
# The "make flash" command does not work on the Cheetah. Instead,
# after running "make", run the following command to flash the board:
# stm32flash -w out/klipper.bin -v -i rts,-dtr,dtr /dev/ttyUSB0
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PB8
dir_pin: !PB9
enable_pin: !PA8
step_distance: .0125
endstop_pin: ^PA1
position_endstop: 0
position_max: 200
homing_speed: 50
[tmc2208 stepper_x]
uart_pin: PA12
tx_pin: PA11
microsteps: 16
run_current: 0.800
hold_current: 0.500
stealthchop_threshold: 250
[stepper_y]
step_pin: PB2
dir_pin: !PB3
enable_pin: !PB1
step_distance: .0125
endstop_pin: ^PB4
position_endstop: 0
position_max: 200
homing_speed: 50
[tmc2208 stepper_y]
uart_pin: PB7
tx_pin: PB6
microsteps: 16
run_current: 0.800
hold_current: 0.500
stealthchop_threshold: 250
[stepper_z]
step_pin: PC0
dir_pin: PC1
enable_pin: !PC2
step_distance: .0025
endstop_pin: ^PA15
position_endstop: 0
position_max: 200
[tmc2208 stepper_z]
uart_pin: PB11
tx_pin: PB10
microsteps: 16
run_current: 0.800
hold_current: 0.500
stealthchop_threshold: 5
[extruder]
step_pin: PC15
dir_pin: !PC14
enable_pin: !PC13
step_distance: 0.010526
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC6
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
control: pid
pid_kp: 21.527
pid_ki: 1.063
pid_kd: 108.982
min_temp: 0
max_temp: 250
[tmc2208 extruder]
uart_pin: PA3
tx_pin: PA2
microsteps: 16
run_current: 1.0
hold_current: 0.500
stealthchop_threshold: 5
[heater_bed]
heater_pin: PC7
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
control: pid
pid_kp: 54.027
pid_ki: 0.770
pid_kd: 948.182
min_temp: 0
max_temp: 130
[fan]
pin: PC8
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
restart_method: cheetah
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[board_pins]
aliases:
# EXP1 header
EXP1_1=PC9, EXP1_3=PC11, EXP1_5=PC10, EXP1_7=PB12, EXP1_9=<GND>,
EXP1_2=PC12, EXP1_4=PB14, EXP1_6=PB13, EXP1_8=PB15, EXP1_10=<5V>
# Pins EXP1_4, EXP1_8, EXP1_6 are also MISO, MOSI, SCK of bus "spi2"
# See the sample-lcd.cfg file for definitions of common LCD displays.

View File

@@ -0,0 +1,306 @@
# This file contains common pin mappings for a Fysetc F6 board.
# To use this config, the firmware should be compiled for the AVR atmega2560.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PF0
dir_pin: PF1
enable_pin: !PD7
step_distance: .0125
endstop_pin: PK1 # PK2 for X-max
position_endstop: 0
position_max: 200
[stepper_y]
step_pin: PF6
dir_pin: PF7
enable_pin: !PF2
step_distance: .0125
endstop_pin: PJ1 # PJ0 for Y-max
position_endstop: 0
position_max: 200
[stepper_z]
step_pin: PL6
dir_pin: PL1
enable_pin: !PF4
step_distance: .0025
endstop_pin: PB6 # PE4 for Z-max
position_endstop: 0
position_max: 400
[extruder]
step_pin: PA4
dir_pin: !PA6
enable_pin: !PA2
step_distance: .01
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PE3
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PK4
control: pid
pid_Kp: 22
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 260
#[extruder1]
#step_pin: PC1
#dir_pin: !PC3
#enable_pin: !PC7
#heater_pin: PH3
#sensor_pin: PK5
#[extruder2]
#step_pin: PF5
#dir_pin: !PF3
#enable_pin: !PG1
#heater_pin: PH4
#sensor_pin: PK6
[heater_bed]
heater_pin: PH5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PK7
control: watermark
min_temp: 0
max_temp: 130
#fan for printed model FAN0
[fan]
pin: PL5
#fan for hotend FAN1
#[heater_fan my_nozzle_fan]
#pin: PL4
#shutdown_speed: 1
#fan for control board FAN2
#[heater_fan my_control_fan]
#pin: PL3
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
#Prevents communication issues with SPI drivers
[static_digital_output disable_sdcard]
pins: PB0
########################################
# TMC UART configuration
########################################
# For TMC UART
# 1) Remove all jumpers below the stepper drivers.
# 2) Place jumper on the left and middle pin of the three pin header.
#[tmc2208 stepper_x]
#uart_pin: PG3
#tx_pin: PJ2
#microsteps: 16
#run_current: 0.8
#hold_current: 0.5
#stealthchop_threshold: 250
#[tmc2208 stepper_y]
#uart_pin: PJ3
#tx_pin: PJ4
#microsteps: 16
#run_current: 0.8
#hold_current: 0.5
#stealthchop_threshold: 250
#[tmc2208 stepper_z]
#uart_pin: PE2
#tx_pin: PE6
#microsteps: 16
#run_current: 0.8
#hold_current: 0.5
#stealthchop_threshold: 100
#[tmc2208 extruder]
#uart_pin: PJ5
#tx_pin: PJ6
#microsteps: 16
#run_current: 0.8
#hold_current: 0.5
#stealthchop_threshold: 250
#[tmc2208 extruder1]
#uart_pin: PE7
#tx_pin: PD4
#microsteps: 16
#run_current: 0.8
#hold_current: 0.5
#stealthchop_threshold: 250
#[tmc2208 extruder2]
#uart_pin: PA1
#tx_pin: PD5
#microsteps: 16
#run_current: 0.8
#hold_current: 0.5
#stealthchop_threshold: 250
########################################
# TMC SPI configuration
########################################
# For TMC SPI
# 1) Remove all jumpers below the stepper drivers.
# 2) Place jumper on the middle and right pin of the small three pin header.
# 3) Place jumpers on the four small two pin headers.
# For TMC Sensorless homing / DIAG1
# 1) Place jumper on the small two pin header near the endstop.
#[tmc2130 stepper_x]
#cs_pin: PG4
#diag1_pin: PK1
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2130 stepper_y]
#cs_pin: PG2
#diag1_pin: PJ1
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2130 stepper_z]
#cs_pin: PJ7
#diag1_pin: PB6
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2130 extruder]
#cs_pin: PL2
#diag1_pin: PE4
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2130 extruder1]
#cs_pin: PC5
#diag1_pin: PJ0
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2130 extruder2]
#cs_pin: PL7
#diag1_pin: PK2
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
########################################
# EXP1 / EXP2 (display) pins
########################################
# These must be turned 180° when compared to the default RAMPS layout.
# The aliases below are 180° turned from what Fysetc considers pin 1,
# but visually correspond to the plugs on the board.
[board_pins]
aliases:
# EXP1 header
EXP1_1=PC0, EXP1_2=PC2,
EXP1_3=PH0, EXP1_4=PH1,
EXP1_5=PA1, EXP1_6=PA3, # Slot in the socket on this side
EXP1_7=PA5, EXP1_8=PA7,
EXP1_9=<GND>, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PB3, EXP2_2=PB1,
EXP2_3=PC6, EXP2_4=PB0,
EXP2_5=PC4, EXP2_6=PB2, # Slot in the socket on this side
EXP2_7=PL0, EXP2_8=<RST>,
EXP2_9=<GND>, EXP2_10=<5V> # or PG0 via jumper
# See the sample-lcd.cfg file for definitions of common LCD displays.
########################################
# Servos
########################################
# See the example-extras.cfg file for more information.
# All Servo pins support hardware PWM.
#[servo my_servo1]
#pin: PB7
#[servo my_servo2]
#pin: PB5
#[servo my_servo3]
#pin: PB4
#[servo my_servo4]
#pin: PG5
########################################
# RGB header
########################################
# See the example-extras.cfg file for more information.
# All RGB pins support hardware PWM.
#[output_pin blue]
#pin: PH6
#[output_pin red]
#pin: PE5
#[output_pin green]
#pin: PG5
########################################
# AUX-1 header
########################################
# Various analog and digital pins
# PK0 (analog), PK3 (analog), <GND>, <5V>
# PE0 (RXD0) , PE1 (TXD0) , <GND>, <5V>
########################################
# SD header
########################################
# Various digital / SPI pins
# PL0 , PB2, PB0, RST
# <5V>, PB3, PB1, <GND>
########################################
# UART header
########################################
# Various digital / UART pins
# <5V>
# <GND>
# PD2
# PD3
########################################
# I2C header
########################################
# SCL, SDA, <5V>, <GND>

View File

@@ -0,0 +1,281 @@
# This file contains common pin mappings for the Fysetc S6 board.
# To use this config, the firmware should be compiled for the STM32F446.
# When calling "menuconfig", enable "extra low-level configuration setup"
# and select the "12MHz crystal" as clock reference
# For flashing, write the compiled klipper.bin to memory location 0x08000000
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PE11
dir_pin: PE10
enable_pin: !PE12
step_distance: .0125
endstop_pin: PB14 # PA1 for X-max
position_endstop: 0
position_max: 200
[stepper_y]
step_pin: PD8
dir_pin: PB12
enable_pin: !PD9
step_distance: .0125
endstop_pin: PB13 # PA2 for Y-max
position_endstop: 0
position_max: 200
[stepper_z]
step_pin: PD14
dir_pin: PD13
enable_pin: !PD15
step_distance: .0025
endstop_pin: PA0 # PA3 for Z-max (and servo)
position_endstop: 0
position_max: 400
[extruder]
step_pin: PD5
dir_pin: !PD6
enable_pin: !PD4
step_distance: .01
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PB3
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC0
control: pid
pid_Kp: 22
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 260
#[extruder1]
#step_pin: PE6
#dir_pin: !PC13
#enable_pin: !PE5
#heater_pin: PB4
#sensor_pin: PC1
#[extruder2]
#step_pin: PE2
#dir_pin: !PE4
#enable_pin: !PE3
#heater_pin: PB15
#sensor_pin: PC2
[heater_bed]
heater_pin: PC8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC3
control: watermark
min_temp: 0
max_temp: 130
#fan for printed model FAN0
[fan]
pin: PB0
#fan for hotend FAN1
#[heater_fan my_nozzle_fan]
#pin: PB1
#shutdown_speed: 1
#fan for control board FAN2
#[heater_fan my_control_fan]
#pin: PB2
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
########################################
# TMC UART configuration
########################################
# For TMC UART
# 1) Remove all jumpers below the stepper drivers.
# 2) Place a jumper on the "PDN-EN" two-pin header.
# For TMC Sensorless homing / DIAG1
# 1) Place a jumper on the two pin header near the endstop.
#[tmc2208 stepper_x]
#uart_pin: PE8
#tx_pin: PE9
#microsteps: 16
#run_current: 0.8
#hold_current: 0.5
#stealthchop_threshold: 250
#[tmc2208 stepper_y]
#uart_pin: PE13
#tx_pin: PE14
#microsteps: 16
#run_current: 0.8
#hold_current: 0.5
#stealthchop_threshold: 250
#[tmc2208 stepper_z]
#uart_pin: PD12
#tx_pin: PD11
#microsteps: 16
#run_current: 0.8
#hold_current: 0.5
#stealthchop_threshold: 100
#[tmc2208 extruder]
#uart_pin: PA15
#tx_pin: PD3
#microsteps: 16
#run_current: 0.8
#hold_current: 0.5
#stealthchop_threshold: 250
#[tmc2208 extruder1]
#uart_pin: PC5
#tx_pin: PC4
#microsteps: 16
#run_current: 0.8
#hold_current: 0.5
#stealthchop_threshold: 250
#[tmc2208 extruder2]
#uart_pin: PE0
#tx_pin: PE1
#microsteps: 16
#run_current: 0.8
#hold_current: 0.5
#stealthchop_threshold: 250
########################################
# TMC SPI configuration
########################################
# For TMC SPI
# 1) Remove four jumpers below the stepper drivers, connecting the outermost and middle pins of each row.
# For TMC Sensorless homing / DIAG1
# 1) Place a jumper on the two pin header near the endstop.
# SPI pins:
# SCK PA5
# MISO PA6
# MOSI PA7
#[tmc2130 stepper_x]
#spi_bus: spi1
#cs_pin: PE7
#diag1_pin: PB14
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2130 stepper_y]
#spi_bus: spi1
#cs_pin: PE15
#diag1_pin: PB13
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2130 stepper_z]
#spi_bus: spi1
#cs_pin: PD10
#diag1_pin: PA0
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2130 extruder]
#spi_bus: spi1
#cs_pin: PD7
#diag1_pin: PA3
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2130 extruder1]
#spi_bus: spi1
#cs_pin: PC14
#diag1_pin: PA2
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2130 extruder2]
#spi_bus: spi1
#cs_pin: PC15
#diag1_pin: PA1
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
########################################
# EXP1 / EXP2 (display) pins
########################################
# These must be turned 180° when compared to the default RAMPS layout.
# The aliases below are 180° turned from what Fysetc considers pin 1,
# but visually correspond to the plugs on the board.
[board_pins]
aliases:
# EXP1 header
EXP1_1=PC9, EXP1_2=PA8,
EXP1_3=PC11, EXP1_4=PD2,
EXP1_5=PC10, EXP1_6=PC12, # Slot in the socket on this side
EXP1_7=PD0, EXP1_8=PD1,
EXP1_9=<GND>, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PA6, EXP2_2=PA5,
EXP2_3=PC6, EXP2_4=PA4,
EXP2_5=PC7, EXP2_6=PA7, # Slot in the socket on this side
EXP2_7=PB10, EXP2_8=<RST>,
EXP2_9=<GND>, EXP2_10=<5V>
# See the sample-lcd.cfg file for definitions of common LCD displays.
########################################
# RGB header
########################################
# See the example-extras.cfg file for more information.
#[output_pin blue]
#pin: PB7
#[output_pin red]
#pin: PB6
#[output_pin green]
#pin: PB5
########################################
# Servo
########################################
# See the example-extras.cfg file for more information.
#[servo my_servo1]
#pin: PA3 # shared with ZMAX
########################################
# AUX-3 / SPI header
########################################
# <CD>, <MOSI>, SS, <RESET>
# <5V> , MISO , SCK, <GND>

88
config/generic-gt2560.cfg Normal file
View File

@@ -0,0 +1,88 @@
# This file contains common pin mappings for the Geeetech GT2560
# board. GT2560 board uses a firmware compiled for the AVR
# atmega2560.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: ar25
dir_pin: ar23
enable_pin: !ar27
step_distance: .0125
endstop_pin: ^ar22
position_endstop: 0
position_max: 200
homing_speed: 30
[stepper_y]
step_pin: ar31
dir_pin: ar33
enable_pin: !ar29
step_distance: .0125
endstop_pin: ^ar26
position_endstop: 0
position_max: 200
homing_speed: 30
[stepper_z]
step_pin: ar37
dir_pin: !ar39
enable_pin: !ar35
step_distance: .0025
endstop_pin: ^ar30
position_endstop: 0
position_max: 200
position_min: 0.0
[extruder]
step_pin: ar43
dir_pin: ar45
enable_pin: !ar41
step_distance: .0104789
nozzle_diameter: 0.4
filament_diameter: 1.750
heater_pin: ar2
sensor_type: ATC Semitec 104GT-2
sensor_pin: analog8
min_temp: 0
max_temp: 250
control: pid
pid_kp: 29.800
pid_ki: 1.774
pid_kd: 125.159
[heater_bed]
heater_pin: ar4
sensor_type: ATC Semitec 104GT-2
sensor_pin: analog10
min_temp: 0
max_temp: 120
control: pid
pid_kp: 63.041
pid_ki: 2.898
pid_kd: 342.787
[fan]
pin: ar7
[mcu]
serial: /dev/ttyUSB0
pin_map: arduino
[printer]
kinematics: cartesian
max_velocity: 200
max_accel: 1500
max_z_velocity: 20
max_z_accel: 500
[display]
lcd_type: hd44780
rs_pin: ar20
e_pin: ar17
d4_pin: ar16
d5_pin: ar21
d6_pin: ar5
d7_pin: ar6
encoder_pins: ^ar42, ^ar40
click_pin: ^!ar19

79
config/generic-melzi.cfg Normal file
View File

@@ -0,0 +1,79 @@
# This file contains common pin mappings for Melzi v2.0 boards. To use
# this config, the firmware should be compiled for the AVR
# atmega1284p.
# Note, a number of Melzi boards are shipped with a bootloader that
# requires the following command to flash the board:
# avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex
# If the above command does not work and "make flash" does not work
# then one may need to flash a bootloader to the board - see the
# Klipper docs/Bootloaders.md file for more information.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PD7
dir_pin: PC5
enable_pin: !PD6
step_distance: .0125
endstop_pin: ^!PC2
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: PC6
dir_pin: PC7
enable_pin: !PD6
step_distance: .0125
endstop_pin: ^!PC3
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: PB3
dir_pin: !PB2
enable_pin: !PA5
step_distance: .0025
endstop_pin: ^!PC4
position_endstop: 0.5
position_max: 200
[extruder]
step_pin: PB1
dir_pin: PB0
enable_pin: !PD6
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PD5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA7
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PD2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA6
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: PB4
[mcu]
serial: /dev/ttyUSB0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100

View File

@@ -0,0 +1,115 @@
# This file contains common pin mappings for the Makerbot
# Mightyboard. To use this config, the firmware should be compiled for
# the Atmel atmega1280.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PF1
dir_pin: !PF0
enable_pin: !PF2
step_distance: .010387
endstop_pin: ^!PL1
position_endstop: 152
position_max: 153
position_min: -120
homing_speed: 50
[stepper_y]
step_pin: PF5
dir_pin: !PF4
enable_pin: !PF6
step_distance: .010387
endstop_pin: ^!PL3
position_endstop: 77
position_max: 78
position_min: -84
homing_speed: 50
[stepper_z]
step_pin: PK1
dir_pin: !PK0
enable_pin: !PK2
step_distance: .0025
endstop_pin: !PL6
position_endstop: 0
position_max: 230
position_min: 0
[extruder]
step_pin: PA3
dir_pin: !PA2
enable_pin: !PA4
step_distance: .010387
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PH3
sensor_type: MAX6675
sensor_pin: PE3
spi_software_miso_pin: PE5
spi_software_sclk_pin: PE2
spi_software_mosi_pin: PA1 #dummy mosi pin
control: pid
pid_Kp: 26.414
pid_Ki: 1.115
pid_Kd: 156.5054
min_temp: 0
max_temp: 260
[heater_fan extruder_fan]
pin: PH4
[fan]
pin: PL5
[heater_bed]
heater_pin: PL4
sensor_type: ATC Semitec 104GT-2
sensor_pin: PK7
control: pid
pid_Kp: 70.037
pid_Ki: 1.710
pid_Kd: 717.000
min_temp: 0
max_temp: 130
[mcu]
serial: /dev/ttyAMA0
restart_method: command
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[mcp4018 x_axis_pot]
scl_pin: PJ5
sda_pin: PF3
wiper: 0.50
scale: 0.773
[mcp4018 y_axis_pot]
scl_pin: PJ5
sda_pin: PF7
wiper: 0.50
scale: 0.773
[mcp4018 z_axis_pot]
scl_pin: PJ5
sda_pin: PK3
wiper: 0.50
scale: 0.773
[mcp4018 a_axis_pot]
scl_pin: PJ5
sda_pin: PA5
wiper: 0.50
scale: 0.773
[mcp4018 b_axis_pot]
scl_pin: PJ5
sda_pin: PJ6
wiper: 0.50
scale: 0.773

View File

@@ -0,0 +1,109 @@
# This file contains common pin mappings for Mini-RAMBo boards. To use
# this config, the firmware should be compiled for the AVR atmega2560.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PC0
dir_pin: PL1
enable_pin: !PA7
step_distance: .005
endstop_pin: ^PB6
#endstop_pin: ^PC7
position_endstop: 0
position_max: 250
[stepper_y]
step_pin: PC1
dir_pin: !PL0
enable_pin: !PA6
step_distance: .005
endstop_pin: ^PB5
#endstop_pin: ^PA2
position_endstop: 0
position_max: 210
[stepper_z]
step_pin: PC2
dir_pin: PL2
enable_pin: !PA5
step_distance: .0025
endstop_pin: ^PB4
#endstop_pin: ^PA1
position_endstop: 0.5
position_max: 200
[extruder]
step_pin: PC3
dir_pin: PL6
enable_pin: !PA4
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PE5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PF0
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PG5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PF2
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: PH5
#[heater_fan nozzle_cooling_fan]
#pin: PH3
[mcu]
serial: /dev/ttyACM0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[output_pin stepper_xy_current]
pin: PL3
pwm: True
scale: 2.0
cycle_time: .000030
hardware_pwm: True
static_value: 1.3
[output_pin stepper_z_current]
pin: PL4
pwm: True
scale: 2.0
cycle_time: .000030
hardware_pwm: True
static_value: 1.3
[output_pin stepper_e_current]
pin: PL5
pwm: True
scale: 2.0
cycle_time: .000030
hardware_pwm: True
static_value: 1.25
[static_digital_output stepper_config]
pins:
PG1, PG0,
PK7, PG2,
PK6, PK5,
PK3, PK4
[static_digital_output yellow_led]
pins: !PB7

View File

@@ -0,0 +1,80 @@
# This file contains common pin mappings for Minitronics v1.0
# boards. To use this config, the firmware should be compiled for the
# AVR atmega1280.
# The "make flash" command does not work on the Minitronics v1.0
# because the board actually has an atmega1281 chip. Use the following
# command to flash the board:
# avrdude -carduino -patmega1281 -P/dev/ttyUSB0 -b57600 -D -Uout/klipper.elf.hex
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PF2
dir_pin: PF1
enable_pin: !PF3
step_distance: .0125
endstop_pin: ^!PE3
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: PA1
dir_pin: PA2
enable_pin: !PA0
step_distance: .0125
endstop_pin: ^!PE4
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: PA4
dir_pin: !PA5
enable_pin: !PA3
step_distance: .0025
endstop_pin: ^!PB4
position_endstop: 0.5
position_max: 200
[extruder]
step_pin: PA7
dir_pin: PA6
enable_pin: !PG2
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PB5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PF7
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PE5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PF6
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: PB7
[mcu]
serial: /dev/ttyUSB0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[static_digital_output yellow_led]
pins: PF0

View File

@@ -0,0 +1,126 @@
# This file contains common pin mappings for MKS Robin E3 boards. To
# use this config, the firmware should be compiled for the STM32F103.
# When running "make menuconfig", enable "extra low-level
# configuration setup", select the 20KiB bootloader, disable "USB for
# communication", and select USART1 for the "Serial Port".
# Note that the "make flash" command does not work with MKS Robin
# boards. After running "make", run the following command:
# ./scripts/update_mks_robin.py out/klipper.bin out/Robin_e3.bin
# Copy the file out/Robin_e3.bin to an SD card and then restart the
# printer with that SD card.
# MKS Robin E3 has onboard TMC2209. This config can also be used for
# MKS Robin E3D if equipped with TMC2209 stepper drivers.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PC0
dir_pin: PB2
enable_pin: !PC13
step_distance: .0125
endstop_pin: ^PA12
position_endstop: 0
position_max: 165
homing_speed: 50
[stepper_y]
step_pin: PC2
dir_pin: PB9
enable_pin: !PB12
step_distance: .0125
endstop_pin: ^PA11
position_endstop: 0
position_max: 165
homing_speed: 50
[stepper_z]
step_pin: PB7
dir_pin: !PB6
enable_pin: !PB8
step_distance: .0025
endstop_pin: ^PC6
position_endstop: 0
position_max: 200
[extruder]
step_pin: PB4
dir_pin: PB3
enable_pin: !PB5
step_distance: 0.010753
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC9
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA0
control: pid
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 250
[tmc2209 stepper_x]
uart_pin: PC7
microsteps: 16
run_current: 0.800
hold_current: 0.500
stealthchop_threshold: 250
[tmc2209 stepper_y]
uart_pin: PD2
microsteps: 16
run_current: 0.800
hold_current: 0.500
stealthchop_threshold: 250
[tmc2209 stepper_z]
uart_pin: PC12
microsteps: 16
run_current: 0.650
hold_current: 0.450
stealthchop_threshold: 30
[tmc2209 extruder]
uart_pin: PC11
microsteps: 16
run_current: 0.800
hold_current: 0.500
stealthchop_threshold: 5
[fan]
pin: PA8
#[heater_bed]
#heater_pin: PC8
#sensor_pin: PA1
#...
#[bltouch]
#sensor_pin: ^PC6
#control_pin: PA3
#...
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
restart_method: command
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 1500
max_z_velocity: 5
max_z_accel: 100
# EXP1 / EXP2 (display) pins
[board_pins]
aliases:
# EXP1 header
EXP1_1=PC3, EXP1_3=PA4, EXP1_5=PA6, EXP1_7=PC4, EXP1_9=<GND>,
EXP1_2=PC1, EXP1_4=PA5, EXP1_6=PA7, EXP1_8=PC5, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PB14, EXP2_3=PB11, EXP2_5=PB0, EXP2_7=PC10, EXP2_9=<GND>,
EXP2_2=PB13, EXP2_4=PA15, EXP2_6=PB15, EXP2_8=<RST>, EXP2_10=<NC>
# See the sample-lcd.cfg file for definitions of common LCD displays.

View File

@@ -0,0 +1,92 @@
# This file contains common pin mappings for MKS Robin Nano (v1.2.004)
# boards. To use this config, the firmware should be compiled for the
# STM32F103. When running "make menuconfig", enable "extra low-level
# configuration setup", select the 28KiB bootloader, disable "USB for
# communication", and select USART3 for the "Serial Port".
# Note that the "make flash" command does not work with MKS Robin
# boards. After running "make", run the following command:
# ./scripts/update_mks_robin.py out/klipper.bin out/Robin_nano.bin
# Copy the file out/Robin_nano.bin to an SD card and then restart the
# printer with that SD card.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PE3
dir_pin: !PE2
enable_pin: !PE4
step_distance: .01
endstop_pin: !PA15
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: PE0
dir_pin: !PB9
enable_pin: !PE1
step_distance: .01
endstop_pin: !PA12
position_endstop: 230
position_max: 230
homing_speed: 50
[stepper_z]
step_pin: PB5
dir_pin: PB4
enable_pin: !PB8
step_distance: .0025
endstop_pin: !PA11
position_endstop: 0.5
position_max: 200
[extruder]
step_pin: PD6
dir_pin: !PD3
enable_pin: !PB3
step_distance: .0021
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC3
sensor_type: ATC Semitec 104GT-2
sensor_pin: PC1
control: pid
pid_Kp: 14.669
pid_Ki: 0.572
pid_Kd: 94.068
min_temp: 0
max_temp: 250
#[extruder1]
#step_pin: PA6
#dir_pin: !PA1
#enable_pin: !PA3
#heater_pin: PB0
#sensor_pin: PC2
#...
[heater_bed]
heater_pin: PA0
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC0
control: pid
pid_Kp: 325.10
pid_Ki: 63.35
pid_Kd: 417.10
min_temp: 0
max_temp: 130
[fan]
pin: PB1
[mcu]
serial: /dev/ttyUSB0
restart_method: command
[printer]
kinematics: corexy
max_velocity: 250
max_accel: 4500
max_z_velocity: 25
max_z_accel: 100

View File

@@ -0,0 +1,196 @@
# This file contains common pin mappings for the MKS SGEN_L board. To
# use this config, the firmware should be compiled for the LPC1768.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: P2.2
dir_pin: !P2.3
enable_pin: !P2.1
step_distance: .0125
endstop_pin: ^P1.29 # ^P1.28 for X-max
position_endstop: 0
position_max: 320
homing_speed: 50
[stepper_y]
step_pin: P0.19
dir_pin: !P0.20
enable_pin: !P2.8
step_distance: .0125
endstop_pin: ^P1.27 # ^P1.26 for Y-max
position_endstop: 0
position_max: 300
homing_speed: 50
[stepper_z]
step_pin: P0.22
dir_pin: P2.11
enable_pin: !P0.21
step_distance: .0025
endstop_pin: ^P1.25 # ^P1.24 for Z-max
position_endstop: 0.5
position_max: 400
[extruder]
step_pin: P2.13
dir_pin: !P0.11
enable_pin: !P2.12
step_distance: .010526
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: P2.7
sensor_type: EPCOS 100K B57560G104F
sensor_pin: P0.23
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 260
#[extruder1]
#step_pin: P0.1
#dir_pin: P0.0
#enable_pin: !P0.10
#heater_pin: P2.6
#sensor_pin: P0.25
#...
[heater_bed]
heater_pin: P2.5
sensor_type: ATC Semitec 104GT-2
sensor_pin: P0.24
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: P2.4
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 200
max_accel: 2000
max_z_velocity: 25
max_z_accel: 100
########################################
# TMC2208 configuration
########################################
#[tmc2208 stepper_x]
#uart_pin: P1.1
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2208 stepper_y]
#uart_pin: P1.8
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2208 stepper_z]
#uart_pin: P1.10
#microsteps: 16
#run_current: 0.650
#hold_current: 0.450
#stealthchop_threshold: 30
#[tmc2208 extruder]
#uart_pin: P1.15
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#[tmc2208 extruder1]
#uart_pin: P1.17
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
########################################
# TMC2130 configuration
########################################
#[tmc2130 stepper_x]
#cs_pin: P1.1
#spi_software_miso_pin: P0.5
#spi_software_mosi_pin: P4.28
#spi_software_sclk_pin: P0.4
##diag1_pin: ^!P1.29
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2130 stepper_y]
#cs_pin: P1.8
#spi_software_miso_pin: P0.5
#spi_software_mosi_pin: P4.28
#spi_software_sclk_pin: P0.4
##diag1_pin: ^!P1.27
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 250
#[tmc2130 stepper_z]
#cs_pin: P1.10
#spi_software_miso_pin: P0.5
#spi_software_mosi_pin: P4.28
#spi_software_sclk_pin: P0.4
##diag1_pin: ^!P1.25
#microsteps: 16
#run_current: 0.650
#hold_current: 0.450
#stealthchop_threshold: 30
#[tmc2130 extruder]
#cs_pin: P1.15
#spi_software_miso_pin: P0.5
#spi_software_mosi_pin: P4.28
#spi_software_sclk_pin: P0.4
##diag1_pin: ^!P1.28
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
#[tmc2130 extruder1]
#cs_pin: P1.17
#spi_software_miso_pin: P0.5
#spi_software_mosi_pin: P4.28
#spi_software_sclk_pin: P0.4
##diag1_pin: ^!P1.26
#microsteps: 16
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 5
########################################
# EXP1 / EXP2 (display) pins
########################################
[board_pins]
aliases:
# EXP1 header
EXP1_1=P1.31, EXP1_3=P0.18, EXP1_5=P0.15, EXP1_7=P1.0, EXP1_9=<GND>,
EXP1_2=P1.30, EXP1_4=P0.16, EXP1_6=P0.17, EXP1_8=P1.22, EXP1_10=<5V>,
# EXP2 header
EXP2_1=P0.8, EXP2_3=P3.25, EXP2_5=P3.26, EXP2_7=P0.27, EXP2_9=<GND>,
EXP2_2=P0.7, EXP2_4=P0.28, EXP2_6=P0.9, EXP2_8=<RST>, EXP2_10=<NC>
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "ssp1"
# See the sample-lcd.cfg file for definitions of common LCD displays.

View File

@@ -0,0 +1,117 @@
# This file contains common pin mappings for Printrboard G2 boards.
# To use this config, the firmware should be compiled for the SAM3x8c.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PB15
dir_pin: !PA16
enable_pin: !PB16
step_distance: .0125
endstop_pin: ^PA11
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: PA29
dir_pin: !PB1
enable_pin: !PB0
step_distance: .0125
endstop_pin: ^PB26
position_endstop: 150
position_max: 150
homing_speed: 50
[stepper_z]
step_pin: PA21
dir_pin: PA26
enable_pin: !PA25
step_distance: .0025
endstop_pin: ^!PA10
position_endstop: 0
position_min: -2
position_max: 200
[output_pin motor_x_pwm]
pin: PB17
pwm: True
hardware_pwm: True
scale: 2.25
cycle_time: .000004
value: 0.8
[output_pin motor_y_pwm]
pin: PB19
pwm: True
hardware_pwm: True
scale: 2.25
cycle_time: .000004
value: 0.8
[output_pin motor_z_pwm]
pin: PB18
pwm: True
hardware_pwm: True
scale: 2.25
cycle_time: .000004
value: 0.8
[output_pin motor_e_pwm]
pin: PA2
pwm: True
hardware_pwm: True
scale: 2.25
cycle_time: .000004
value: 0.5
[output_pin heater_enable]
pin: PA7
pwm: True
cycle_time: 0.050
value: 0.1
[thermistor G2]
temperature1: 20
resistance1: 140000
temperature2: 195
resistance2: 593
temperature3: 255
resistance3: 189
[extruder]
step_pin: PB14
dir_pin: PB23
enable_pin: !PB22
step_distance: .008
nozzle_diameter: 0.300
filament_diameter: 1.750
heater_pin: PA5
sensor_pin: PA23
sensor_type: G2
inline_resistor: 4700
control: pid
pid_kp: 29.852
pid_ki: 2.843
pid_kd: 78
min_temp: 0
max_temp: 290
[fan]
pin: PB27
[heater_fan nozzle_cooling_fan]
pin: PA6
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 400
max_accel: 2500
max_z_velocity: 15
max_z_accel: 300
[static_digital_output step_config]
pins: PA19, PB20, PA27, PB10

View File

@@ -0,0 +1,87 @@
# This file contains common pin mappings for Printrboard boards (rev B
# through D). To use this config the firmware should be compiled for
# the AVR at90usb1286.
# Note that the "make flash" command will not work for Printrboard!
# To flash:
# - Connect the "BOOT" jumper.
# - Press the reset button (on board) to enter into DFU mode.
# - Connect via USB and run:
# avrdude -c flip1 -p usb1286 -U flash:w:out/klipper.elf.hex
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PA0
dir_pin: !PA1
enable_pin: !PE7
step_distance: .0125
endstop_pin: ^PE3
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: PA2
dir_pin: PA3
enable_pin: !PE6
step_distance: .0125
endstop_pin: ^PB0
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: PA4
dir_pin: !PA5
enable_pin: !PC7
step_distance: .0025
endstop_pin: ^PE4
position_endstop: 0.5
position_max: 200
[extruder]
step_pin: PA6
dir_pin: PA7
enable_pin: !PC3
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PF1
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PC4
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PF0
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: PC6
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
# Use the following on a Printrboard RevF to control stepper current.
#[mcp4728 stepper_current_dac]
#scale: 2.327
#channel_a: 1.2 # Extruder
#channel_b: 1.2 # stepper_z
#channel_c: 1.0 # stepper_y
#channel_d: 1.0 # stepper_x

111
config/generic-radds.cfg Normal file
View File

@@ -0,0 +1,111 @@
# This file contains common pin mappings for RADDS (v1.5) boards. To
# use this config, the firmware should be compiled for the Arduino
# Due.
# See the example.cfg file for a description of available parameters.
# Temp sensor pins: analog0..analog4
# Mosfet Pins: ar7 (Heatbed), ar8, ar9, ar11, ar12, ar13
[stepper_x]
step_pin: ar24
dir_pin: ar23
enable_pin: ar26
step_distance: .0125
endstop_pin: ^ar28
#endstop_pin: ^ar34
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: ar17
dir_pin: !ar16
enable_pin: ar22
step_distance: .0125
endstop_pin: ^ar30
#endstop_pin: ^ar36
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: ar2
dir_pin: ar3
enable_pin: ar15
step_distance: .0025
endstop_pin: ^ar32
#endstop_pin: ^ar38
position_endstop: 0.5
position_max: 200
[extruder]
step_pin: analog7
dir_pin: analog6
enable_pin: analog8
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: ar13
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog0
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
#[extruder1]
#step_pin: analog10
#dir_pin: analog9
#enable_pin: analog11
#[extruder2]
#step_pin: ar51
#dir_pin: ar53
#enable_pin: ar49
[heater_bed]
heater_pin: ar7
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog1
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: ar9
#[heater_fan nozzle_cooling_fan]
#pin: ar8
[mcu]
serial: /dev/ttyACM0
pin_map: arduino
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
# "RepRapDiscount 2004 Smart Controller" type displays
#[display]
#lcd_type: hd44780
#rs_pin: ar42
#e_pin: ar43
#d4_pin: ar44
#d5_pin: ar45
#d6_pin: ar46
#d7_pin: ar47
#encoder_pins: ^ar52, ^ar50
#click_pin: ^!ar48
# "RepRapDiscount 128x64 Full Graphic Smart Controller" type displays
#[display]
#lcd_type: st7920
#cs_pin: ar42
#sclk_pin: ar44
#sid_pin: ar43

122
config/generic-rambo.cfg Normal file
View File

@@ -0,0 +1,122 @@
# This file contains common pin mappings for RAMBo boards. To use this
# config, the firmware should be compiled for the AVR atmega2560.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PC0
dir_pin: PL1
enable_pin: !PA7
step_distance: .0125
endstop_pin: ^PB6
#endstop_pin: ^PA2
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: PC1
dir_pin: !PL0
enable_pin: !PA6
step_distance: .0125
endstop_pin: ^PB5
#endstop_pin: ^PA1
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: PC2
dir_pin: PL2
enable_pin: !PA5
step_distance: .0025
endstop_pin: ^PB4
#endstop_pin: ^PC7
position_endstop: 0.5
position_max: 200
[extruder]
step_pin: PC3
dir_pin: PL6
enable_pin: !PA4
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PH6
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PF0
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
#[extruder1]
#step_pin: PC4
#dir_pin: PL7
#enable_pin: !PA3
#heater_pin: PH4
#sensor_pin: PF1
#...
[heater_bed]
heater_pin: PE5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PF2
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: PH5
#[heater_fan nozzle_cooling_fan]
#pin: PH3
[mcu]
serial: /dev/ttyACM0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[ad5206 stepper_digipot]
enable_pin: PD7
# Scale the config so that the channel value can be specified in amps.
# (For Rambo v1.0d boards, use 1.56 instead.)
scale: 2.08
# Channel 1 is E0, 2 is E1, 3 is unused, 4 is Z, 5 is X, 6 is Y
channel_1: 1.34
channel_2: 1.0
channel_4: 1.1
channel_5: 1.1
channel_6: 1.1
# Enable 16 micro-steps on steppers X, Y, Z, E0, E1
[static_digital_output stepper_config]
pins:
PG1, PG0,
PK7, PG2,
PK6, PK5,
PK3, PK4,
PK1, PK2
[static_digital_output yellow_led]
pins: !PB7
# Common EXP1 / EXP2 (display) pins
[board_pins]
aliases:
# Common EXP1/EXP2 headers found on RAMBo v1.4
EXP1_1=PE6, EXP1_3=PG3, EXP1_5=PJ2, EXP1_7=PJ7, EXP1_9=<GND>,
EXP1_2=PE2, EXP1_4=PG4, EXP1_6=PJ3, EXP1_8=PJ4, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PB3, EXP2_3=PJ5, EXP2_5=PJ6, EXP2_7=PD4, EXP2_9=<GND>,
EXP2_2=PB1, EXP2_4=PB0, EXP2_6=PB2, EXP2_8=PE7, EXP2_10=PH2
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "spi"
# See the sample-lcd.cfg file for definitions of common LCD displays.

98
config/generic-ramps.cfg Normal file
View File

@@ -0,0 +1,98 @@
# This file contains common pin mappings for RAMPS (v1.3 and later)
# boards. RAMPS boards typically use a firmware compiled for the AVR
# atmega2560 (though other AVR chips are also possible).
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: ar54
dir_pin: ar55
enable_pin: !ar38
step_distance: .0125
endstop_pin: ^ar3
#endstop_pin: ^ar2
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: ar60
dir_pin: !ar61
enable_pin: !ar56
step_distance: .0125
endstop_pin: ^ar14
#endstop_pin: ^ar15
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: ar46
dir_pin: ar48
enable_pin: !ar62
step_distance: .0025
endstop_pin: ^ar18
#endstop_pin: ^ar19
position_endstop: 0.5
position_max: 200
[extruder]
step_pin: ar26
dir_pin: ar28
enable_pin: !ar24
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: ar10
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog13
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
#[extruder1]
#step_pin: ar36
#dir_pin: ar34
#enable_pin: !ar30
#heater_pin: ar9
#sensor_pin: analog15
#...
[heater_bed]
heater_pin: ar8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog14
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: ar9
[mcu]
serial: /dev/ttyACM0
pin_map: arduino
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
# Common EXP1 / EXP2 (display) pins
[board_pins]
aliases:
# Common EXP1 header found on many "all-in-one" ramps clones
EXP1_1=ar37, EXP1_3=ar17, EXP1_5=ar23, EXP1_7=ar27, EXP1_9=<GND>,
EXP1_2=ar35, EXP1_4=ar16, EXP1_6=ar25, EXP1_8=ar29, EXP1_10=<5V>,
# EXP2 header
EXP2_1=ar50, EXP2_3=ar31, EXP2_5=ar33, EXP2_7=ar49, EXP2_9=<GND>,
EXP2_2=ar52, EXP2_4=ar53, EXP2_6=ar51, EXP2_8=ar41, EXP2_10=<RST>
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "spi"
# Note, some boards wire: EXP2_8=<RST>, EXP2_10=ar41
# See the sample-lcd.cfg file for definitions of common LCD displays.

101
config/generic-re-arm.cfg Normal file
View File

@@ -0,0 +1,101 @@
# This file contains common pin mappings for Re-Arm. To use this
# config, the firmware should be compiled for the LPC1768.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: P2.1
dir_pin: P0.11
enable_pin: !P0.10
step_distance: .0125
endstop_pin: ^P1.24
#endstop_pin: ^P1.25
position_endstop: 0.5
position_min: 0
position_max: 200
homing_speed: 50
# The stepper_y section is used to describe the Y axis as well as the
# stepper controlling the X-Y movement.
[stepper_y]
step_pin: P2.2
dir_pin: P0.20
enable_pin: !P0.19
step_distance: .0125
endstop_pin: ^P1.26
#endstop_pin: ^P1.27
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: P2.3
dir_pin: P0.22
enable_pin: !P0.21
step_distance: .0025
endstop_pin: ^P1.29
#endstop_pin: ^P1.28
position_endstop: 0.5
position_min: 0
position_max: 200
[extruder]
step_pin: P2.0
dir_pin: P0.5
enable_pin: !P0.4
step_distance: .0011365
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: P2.5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: P0.23
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
#[extruder1]
#step_pin: P2.8
#dir_pin: P2.13
#enable_pin: !P4.29
#heater_pin: P2.4
#sensor_pin: P0.25
#...
[heater_bed]
heater_pin: P2.7
sensor_type: EPCOS 100K B57560G104F
sensor_pin: P0.24
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: P2.4
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
# "RepRapDiscount 128x64 Full Graphic Smart Controller" type displays
# Re-Arm will only work with this type of display
#[display]
#lcd_type: st7920
#cs_pin: P0.16
#sclk_pin: P0.15
#sid_pin: P0.18
#encoder_pins: ^P3.25, ^P3.26
#click_pin: ^!P2.11
#kill_pin: ^!P1.22
# Ground the buzzer pin to prevent stray voltages causing an audible "whine"
#[static_digital_output buzzer]
#pins: !P1.30

View File

@@ -0,0 +1,164 @@
# This file contains an example configuration for the Replicape rev B3
# board. To use this config, one must compile and install the
# micro-controller code for the "Beaglebone PRU", and then compile and
# install the micro-controller code a second time for a "Linux
# process".
# NOTE: Klipper does not alter the input/output state of the
# Beaglebone pins and it does not control their pull-up resistors.
# Typically the correct settings are automatically applied when the
# Beaglebone detects the Replicape board, but if changes are needed
# they must be specified in a "device tree overlay" or via the
# config-pin program.
# See the example.cfg file for a description of available parameters.
[mcu]
serial: /dev/rpmsg_pru30
pin_map: beaglebone
[mcu host]
serial: /tmp/klipper_host_mcu
# The "replicape" config section adds "replicape:stepper_x_enable"
# virtual stepper enable pins (for steppers x, y, z, e, and h) and
# "replicape:power_x" PWM output pins (for hotbed, e, h, fan0, fan1,
# fan2, and fan3) that may then be used elsewhere in the config file.
[replicape]
revision: B3
# The replicape hardware revision. Currently only revision "B3" is
# supported. This parameter must be provided.
#enable_pin: !P9_41
# The replicape global enable pin. The default is !P9_41.
host_mcu: host
# The name of the mcu config section that communicates with the
# Klipper "linux process" mcu instance. This parameter must be
# provided.
#standstill_power_down: False
# This parameter controls the CFG6_ENN line on all stepper
# motors. True sets the enable lines to "open". The default is
# False.
stepper_x_microstep_mode: spread16
# This parameter controls the CFG1 and CFG2 pins of the given
# stepper motor driver. Available options are: disable, 1, 2,
# spread2, 4, 16, spread4, spread16, stealth4, and stealth16. The
# default is disable.
stepper_x_current: 0.5
# The configured maximum current (in Amps) of the stepper motor
# driver. This parameter must be provided if the stepper is not in a
# disable mode.
#stepper_x_chopper_off_time_high: False
# This parameter controls the CFG0 pin of the stepper motor driver
# (True sets CFG0 high, False sets it low). The default is False.
#stepper_x_chopper_hysteresis_high: False
# This parameter controls the CFG4 pin of the stepper motor driver
# (True sets CFG4 high, False sets it low). The default is False.
#stepper_x_chopper_blank_time_high: True
# This parameter controls the CFG5 pin of the stepper motor driver
# (True sets CFG5 high, False sets it low). The default is True.
stepper_y_microstep_mode: spread16
stepper_y_current: 0.5
stepper_z_microstep_mode: spread16
stepper_z_current: 0.5
stepper_e_microstep_mode: 16
stepper_e_current: 0.5
[stepper_x]
step_pin: P8_17
dir_pin: P8_26
enable_pin: replicape:stepper_x_enable
step_distance: .0125
endstop_pin: ^P9_25
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: P8_12
dir_pin: P8_19
enable_pin: replicape:stepper_y_enable
step_distance: .0125
endstop_pin: ^P9_23
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: P8_13
dir_pin: P8_14
enable_pin: replicape:stepper_z_enable
step_distance: .0025
endstop_pin: ^P9_13
position_endstop: 0
position_max: 200
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 25
max_z_accel: 30
[extruder]
step_pin: P9_12
dir_pin: P8_15
enable_pin: replicape:stepper_e_enable
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: replicape:power_e
sensor_type: EPCOS 100K B57560G104F
sensor_pin: host:analog4
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: replicape:power_hotbed
sensor_type: EPCOS 100K B57560G104F
sensor_pin: host:analog6
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: replicape:power_fan0
# The alternative servo pins channels on the endstops x2 and y2 can be used
# via the special relicape pins servo0 (P9_14) and servo1 (P9_16).
#[servo servo_x2]
#pin: replicape:servo0
# PWM output pin controlling the servo. This parameter must be
# provided.
#...
# Providing an example of a switch filament sensor using the Linux MCU for replicape, instead of the PRU which does not have enough memory:
#[filament_switch_sensor switch_sensor]
#switch_pin: HOST_X2_STOP
# providing board pin aliases for PRU firmware
[board_pins]
aliases:
# step/dir pins
X_DIR=P8_26, X_STEP=P8_17, Y_DIR=P8_19, Y_STEP=P8_12, Z_DIR=P8_14, Z_STEP=P8_13,
E_DIR=P8_15, E_STEP=P9_12, H_DIR=P8_16, H_STEP=P8_11,
# stepper fault pins
FAULT_X=P8_10, FAULT_Y=P8_9, FAULT_Z=P9_24, FAULT_E=P8_18, FAULT_H=P8_8,
# endstops
STOP_X1=P9_25, STOP_X2=P9_11, STOP_Y1=P9_23, STOP_Y2=P9_28, STOP_Z1=P9_13, STOP_Z2=P9_18,
# enable steppers (all on one pin)
STEPPER_ENABLE=P9_41,
# servos
SERVO_0=P9_14, SERVO_1=P9_16,
[board_pins host]
aliases:
# Host aliases for Linux MCU
HOST_X2_STOP=gpio30, HOST_Y2_STOP=gpio113, HOST_Z2_STOP=gpio4
# Thermistors
THERM_E=analog4, THERM_H=analog5, THERM_BED=analog6
# D1W pin
DALLAS=gpio2

115
config/generic-rumba.cfg Normal file
View File

@@ -0,0 +1,115 @@
# This file contains common pin mappings for RUMBA boards. To use
# this config, the firmware should be compiled for the AVR atmega2560.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: ar17
dir_pin: ar16
enable_pin: !ar48
step_distance: .0125
endstop_pin: ^ar37
#endstop_pin: ^ar36
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: ar54
dir_pin: !ar47
enable_pin: !ar55
step_distance: .0125
endstop_pin: ^ar35
#endstop_pin: ^ar34
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: ar57
dir_pin: ar56
enable_pin: !ar62
step_distance: .0125
endstop_pin: ^ar33
#endstop_pin: ^ar32
position_endstop: 0.5
position_max: 200
[extruder]
step_pin: ar23
dir_pin: ar22
enable_pin: !ar24
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: ar2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog15
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
#[extruder1]
#step_pin: ar26
#dir_pin: ar25
#enable_pin: !ar27
#heater_pin: ar3
#sensor_pin: analog14
#...
#[extruder2]
#step_pin: ar29
#dir_pin: ar28
#enable_pin: !ar39
#heater_pin: ar6
#sensor_pin: analog13
#...
[heater_bed]
heater_pin: ar9
sensor_type: NTC 100K beta 3950
sensor_pin: analog11
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: ar7
#[heater_fan fan1]
#pin: ar8
[mcu]
serial: /dev/ttyACM0
pin_map: arduino
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
# "RepRapDiscount 2004 Smart Controller" type displays
#[display]
#lcd_type: hd44780
#rs_pin: ar19
#e_pin: ar42
#d4_pin: ar18
#d5_pin: ar38
#d6_pin: ar41
#d7_pin: ar40
#encoder_pins: ^ar11, ^ar12
#click_pin: ^!ar43
# "RepRapDiscount 128x64 Full Graphic Smart Controller" type displays
#[display]
#lcd_type: st7920
#cs_pin: ar19
#sclk_pin: ar18
#sid_pin: ar42
#encoder_pins: ^ar11, ^ar12
#click_pin: ^!ar43

View File

@@ -0,0 +1,81 @@
# This file contains example pin mappings for testing with the
# "simulavr" program. To use this config, compile the firmware for an
# AVR atmega644p, enable "low-level configuration options", and enable
# "simulavr software emulation". Further details are in
# docs/Debugging.md.
# See the example.cfg file for a description of available parameters.
[stepper_x]
# Pins: PA5, PA4, PA1
step_pin: ar29
dir_pin: ar28
enable_pin: ar25
step_distance: .0225
endstop_pin: ^ar0
position_min: -0.25
position_endstop: 0
position_max: 200
[stepper_y]
# Pins: PA3, PA2
step_pin: ar27
dir_pin: ar26
enable_pin: ar25
step_distance: .0225
endstop_pin: ^ar1
position_min: -0.25
position_endstop: 0
position_max: 200
[stepper_z]
# Pins: PC7, PC6
step_pin: ar23
dir_pin: ar22
enable_pin: ar25
step_distance: .005
endstop_pin: ^ar2
position_min: 0.1
position_endstop: 0.5
position_max: 200
[extruder]
# Pins: PC3, PC2
step_pin: ar19
dir_pin: ar18
enable_pin: ar25
step_distance: .004242
nozzle_diameter: 0.500
filament_diameter: 3.500
heater_pin: ar4
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog7
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
min_extrude_temp: 0
max_temp: 210
[heater_bed]
heater_pin: ar3
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog0
control: watermark
min_temp: 0
max_temp: 110
[fan]
pin: ar14
[mcu]
serial: /tmp/pseudoserial
pin_map: arduino
[printer]
kinematics: cartesian
max_velocity: 500
max_accel: 3000
max_z_velocity: 250
max_z_accel: 30

View File

@@ -0,0 +1,110 @@
# This file contains common pin mappings for Smoothieboard. To use
# this config, the firmware should be compiled for the LPC176x.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: P2.0
dir_pin: P0.5
enable_pin: !P0.4
step_distance: .0125
endstop_pin: ^P1.24
#endstop_pin: ^P1.25
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: P2.1
dir_pin: !P0.11
enable_pin: !P0.10
step_distance: .0125
endstop_pin: ^P1.26
#endstop_pin: ^P1.27
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: P2.2
dir_pin: P0.20
enable_pin: !P0.19
step_distance: .0025
endstop_pin: ^P1.28
#endstop_pin: ^P1.29
position_endstop: 0.5
position_max: 200
[extruder]
step_pin: P2.3
dir_pin: P0.22
enable_pin: !P0.21
step_distance: .002
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: P2.7
sensor_type: EPCOS 100K B57560G104F
sensor_pin: P0.24
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
#[extruder1]
#step_pin: P2.8
#dir_pin: P2.13
#enable_pin: !P4.29
#heater_pin: P2.6
#sensor_pin: P0.25
#...
[heater_bed]
heater_pin: P2.5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: P0.23
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: P2.4
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[static_digital_output leds]
pins: P1.18, P1.19, P1.20, P1.21, P4.28
[mcp4451 stepper_digipot1]
i2c_address: 44
# Scale the config so that wiper values can be specified in amps.
scale: 2.25
# wiper 0 is X (aka alpha), 1 is Y, 2 is Z, 3 is E0
wiper_0: 1.0
wiper_1: 1.0
wiper_2: 1.0
wiper_3: 1.0
[mcp4451 stepper_digipot2]
i2c_address: 45
scale: 2.25
# wiper 0 is E1
wiper_0: 1.0
# "RepRapDiscount 128x64 Full Graphic Smart Controller" type displays
#[display]
#lcd_type: st7920
#cs_pin: P0.16
#sclk_pin: P0.15
#sid_pin: P0.18
#encoder_pins: ^P3.25, ^P3.26
#click_pin: ^!P1.30

View File

@@ -0,0 +1,123 @@
# This file contains common pin mappings for Ultimaker UltiMainboard v2
# boards. To use this config, the firmware should be compiled for the
# AVR atmega2560.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: ar25
dir_pin: !ar23
enable_pin: !ar27
step_distance: .0125
endstop_pin: ^!ar22
position_endstop: 0
position_max: 230
homing_speed: 50.0
[stepper_y]
step_pin: ar32
dir_pin: ar33
enable_pin: !ar31
step_distance: .0125
endstop_pin: ^!ar26
position_endstop: 225
position_max: 225
homing_speed: 50.0
[stepper_z]
step_pin: ar35
dir_pin: !ar36
enable_pin: !ar34
step_distance: .005
endstop_pin: ^!ar29
position_endstop: 215
position_max: 215
homing_speed: 20.0
[extruder]
step_pin: ar42
dir_pin: ar43
enable_pin: !ar37
step_distance: .003546
nozzle_diameter: 0.400
filament_diameter: 2.850
heater_pin: ar2
sensor_type: PT100 INA826
sensor_pin: analog8
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 275
# Dual extruder support.
#[extruder1]
#step_pin: ar49
#dir_pin: ar47
#enable_pin: !ar48
#step_distance: .003546
#nozzle_diameter: 0.400
#filament_diameter: 2.850
#heater_pin: ar3
#sensor_type: PT100 INA826
#sensor_pin: analog9
#control: pid
#pid_Kp: 22.2
#pid_Ki: 1.08
#pid_Kd: 114
#min_temp: 0
#max_temp: 275
[heater_bed]
heater_pin: ar4
sensor_type: PT100 INA826
sensor_pin: analog10
control: watermark
min_temp: 0
max_temp: 100
[fan]
pin: ar7
[mcu]
serial: /dev/ttyACM0
pin_map: arduino
[printer]
kinematics: cartesian
max_velocity: 500
max_accel: 3000
max_z_velocity: 25
max_z_accel: 30
[output_pin case_light]
pin: ar8
static_value: 1.0
# Motor current settings.
[output_pin stepper_xy_current]
pin: ar44
pwm: True
scale: 1.5
# Max power setting.
cycle_time: .000030
hardware_pwm: True
static_value: 1.200
# Power adjustment setting.
[output_pin stepper_z_current]
pin: ar45
pwm: True
scale: 1.5
cycle_time: .000030
hardware_pwm: True
static_value: 1.200
[output_pin stepper_e_current]
pin: ar46
pwm: True
scale: 1.5
cycle_time: .000030
hardware_pwm: True
static_value: 1.250

299
config/kit-voron2-250mm.cfg Normal file
View File

@@ -0,0 +1,299 @@
# VORON2 250mm config
# This is a base printer.cfg file for the VORON2 printer and matches the manual/build guide exactly
# for controllers used (dual RAMPS) and pin layout for all connected components.
# Created by "Boff" with help from the VORON community.
# For other build sizes, controllers, or non-standard pin connections, please see
# https://github.com/mzbotreprap/VORON/tree/master/Firmware/Klipper/Voron_2.1/Klipper/Configurations
# for other example Klipper configs created by the VORON community.
# This file is only an example - be sure to review and update it
# according to the specifics of your printer. See the example.cfg and
# example-extras.cfg files for a description of available Klipper parameters.
# AND PLEASE READ THROUGH THE KLIPPER DOCUMENTATION FIRST!
# https://github.com/KevinOConnor/klipper/tree/master/docs
# *** THINGS TO CHANGE/CHECK: ***
# Arduino paths [mcu] section
# Thermistor types [extruder] and [heater_bed] sections - See 'sensor types' list at end of file
# FSR switch (z endstop) location [homing_override] section
# FSR switch (z endstop) offset for Z0 [stepper_z] section
# Probe points [quad_gantry_level] section
# Min & Max gantry corner postions [quad_gantry_level] section
# PID tune [extruder] and [heater_bed] sections
# Fine tune E steps [extruder] section
[mcu]
# Mcu for X/Y/E steppers
serial: /dev/serial/by-id/**INSERT_YOUR_ARDUINO_DEFINITION_HERE**
# Obtain definition by "ls -l /dev/serial/by-id/"
pin_map: arduino
restart_method: arduino
[mcu z]
# Mcu for Z steppers
serial: /dev/serial/by-id/**INSERT_YOUR_ARDUINO_DEFINITION_HERE**
# Obtain definition by "ls -l /dev/serial/by-id/"
pin_map: arduino
restart_method: arduino
[printer]
kinematics: corexy
max_velocity: 350
max_accel: 3000
max_z_velocity: 50
max_z_accel: 350
[stepper_x]
# B Stepper
step_pin: ar54
dir_pin: !ar55
enable_pin: !ar38
# X on mcu_xye
step_distance: 0.0125
# 80 steps per mm - 1.8 deg - 1/16 microstepping
endstop_pin: ^ar2
# X_MAX on mcu_xye
position_min: 0
position_endstop: 250
position_max: 250
homing_speed: 100
homing_retract_dist: 5
[stepper_y]
# A Stepper
step_pin: ar60
dir_pin: !ar61
enable_pin: !ar56
# Y on mcu_xye
step_distance: 0.0125
# 80 steps per mm - 1.8 deg - 1/16 microstepping
endstop_pin: ^ar15
# Y_MAX on mcu_xye
position_min: 0
position_endstop: 250
position_max: 250
homing_speed: 100
homing_retract_dist: 5
[stepper_z]
# Z0 Stepper - Front Left
step_pin: z:ar54
dir_pin: !z:ar55
enable_pin: !z:ar38
# X on mcu_z
step_distance: 0.00250
# 400 steps per mm - 1.8 deg - 1/16 microstepping
endstop_pin: ^!z:ar18
# Z_MIN on mcu_z
position_endstop: -0.2
# Offset (in mm) for nozzle to bed off z switch
position_max: 250
position_min: -2
# Set to -2 to allow room for squaring gantry with quad_gantry_level
homing_speed: 15.0
second_homing_speed: 3.0
homing_retract_dist: 3.0
[stepper_z1]
# Z1 Stepper - Rear Left
step_pin: z:ar60
dir_pin: z:ar61
enable_pin: !z:ar56
# Y on mcu_z
step_distance: 0.00250
# 400 steps per mm - 1.8 deg - 1/16 microstepping
[stepper_z2]
# Z2 Stepper - Rear Right
step_pin: z:ar46
dir_pin: !z:ar48
enable_pin: !z:ar62
# Z on mcu_z
step_distance: 0.00250
# 400 steps per mm - 1.8 deg - 1/16 microstepping
[stepper_z3]
# Z3 Stepper - Front Right
step_pin: z:ar26
dir_pin: z:ar28
enable_pin: !z:ar24
# E0 on mcu_z
step_distance: 0.00250
# 400 steps per mm - 1.8 deg - 1/16 microstepping
[extruder]
step_pin: ar26
dir_pin: ar28
enable_pin: !ar24
# E0 on mcu_xye
step_distance: 0.00180180
# 555 steps per mm - 1.8 deg - 1/16 microstepping (Mobius2)
nozzle_diameter: 0.400
filament_diameter: 1.750
max_extrude_only_distance: 780.0
# This is set high to allow the load/unload filament macros to run
heater_pin: ar10
# D10 on mcu_xye
max_power: 1.0
sensor_type: NTC 100K beta 3950
sensor_pin: analog13
# T0 on mcu_xye
smooth_time: 3.0
control: pid
pid_Kp: 16.430
pid_Ki: 0.755
pid_Kd: 89.337
min_extrude_temp: 170
min_temp: 0
max_temp: 270
[probe]
# Inductive Probe
pin: ^z:ar19
# Z_MAX on mcu_z
x_offset: 0.0
y_offset: 25.0
z_offset: 0.00
speed: 2.0
samples: 4
# Number of times to probe a point
sample_retract_dist: 6.0
# How far to retract (in mm) from the probe point for multi-probe samples
[fan]
# Print cooling fan
pin: ar9
# D9 on mcu_xye
kick_start_time: 0.500
[heater_fan hotend_fan]
# Hotend fan
pin: z:ar9
# D9 on mcu_z
kick_start_time: 0.500
heater: extruder
heater_temp: 50.0
[heater_fan controller_fan]
# Controller fan
pin: z:ar10
# D10 on mcu_z
kick_start_time: 0.500
heater: heater_bed
heater_temp: 45.0
[heater_fan exhaust_fan]
# Exhaust fan
pin: z:ar8
# D8 on mcu_z
kick_start_time: 0.500
heater: heater_bed
heater_temp: 60.0
[heater_bed]
heater_pin: z:ar11
# D11 (servo) on mcu_z
sensor_type: NTC 100K MGB18-104F39050L32
sensor_pin: z:analog15
# T2 on mcu_z
smooth_time: 3.0
max_power: 0.75
control: pid
pid_Kp: 47.690
pid_Ki: 1.556
pid_Kd: 365.338
min_temp: 0
max_temp: 110
[homing_override]
axes: z
set_position_z: 0
gcode:
G90
G0 Z5 F600
G28 X Y
G0 X179 Y249.5 F3600
# XY Location of the FSR Switch
G28 Z
G0 Z10 F1800
G0 X125 Y125 Z20 F3600
[quad_gantry_level]
# Use QUAD_GANTRY_LEVEL to level a gantry.
gantry_corners:
-55,-7
305, 320
# Min & Max gantry corners - measure from nozzle at MIN (0,0) and MAX (250,250) to respective belt positions
points:
25,0
25,200
225,200
225,0
# Probe points
speed: 200
horizontal_move_z: 6
[display]
# RepRapDiscount 128x64 Full Graphic Smart Controller
lcd_type: st7920
cs_pin: z:ar16
sclk_pin: z:ar23
sid_pin: z:ar17
# LCD connector on mcu_z
menu_timeout: 40
encoder_pins: ^z:ar33, ^z:ar31
click_pin: ^!z:ar35
kill_pin: ^!z:ar41
### Macros ###
[gcode_macro G32]
gcode:
G28
QUAD_GANTRY_LEVEL
QUAD_GANTRY_LEVEL
G0 X125 Y125 Z20 F6000
[gcode_macro PRINT_START]
# Use PRINT_START for the slicer starting script - PLEASE CUSTOMISE THE SCRIPT FOR YOUR SLICER OF CHOICE
gcode:
M117 Homing... ; display message
G28 ; home all axes
G1 Z20 F3000 ; move nozzle away from bed
M117 Preheat (Print) ; display message
M104 S0 ; turn off hotend while waiting for bed to get to temp
[gcode_macro PRINT_END]
# Use PRINT_END for the slicer ending script - PLEASE CUSTOMISE THE SCRIPT FOR YOUR SLICER OF CHOICE
gcode:
M400 ; wait for buffer to clear
G92 E0 ; zero the extruder
G1 E-4.0 F3600 ; retract
G91 ; relative positioning
G0 Z1.00 X20.0 Y20.0 F20000 ; move nozzle to remove stringing
M104 S0 ; turn off hotend
M140 S0 ; turn off bed
M106 S0 ; turn off fan
G1 Z20 F3000 ; move nozzle up 20mm
G90 ; absolute positioning
G0 X125 Y245 F3600 ; park nozzle at rear
M117 Finished! ; display message
[gcode_macro UNLOAD_FILAMENT]
gcode:
M83
G1 E10 F300
G1 E-780 F1800
M82
[gcode_macro LOAD_FILAMENT]
gcode:
M83
G1 E750 F1800
G1 E30 F300
G1 E15 F150
M82

151
config/kit-zav3d-2019.cfg Normal file
View File

@@ -0,0 +1,151 @@
# ZAV3D MAX config. To use this config, the firmware should be
# compiled for the AVR atmega2560.
# This is a base printer.cfg file for the ZAV3D Max printer and
# matches the manual/build guide exactly for controllers used (MKS
# MINI-B V1.0) and pin layout for all connected components.
# Created by "Nurmukhamed Artykaly"
# This file is only an example - be sure to review and update it
# according to the specifics of your printer. See the example.cfg and
# example-extras.cfg files for a description of available Klipper parameters.
# AND PLEASE READ THROUGH THE KLIPPER DOCUMENTATION FIRST!
# https://www.klipper3d.org/Overview.html
# *** THINGS TO CHANGE/CHECK: ***
# Arduino paths [mcu] section
# Thermistor types [extruder] and [heater_bed] sections - See 'sensor types' list at end of file
# FSR switch (z endstop) location [homing_override] section
# FSR switch (z endstop) offset for Z0 [stepper_z] section
# Probe points [quad_gantry_level] section
# Min & Max gantry corner postions [quad_gantry_level] section
# PID tune [extruder] and [heater_bed] sections
# Fine tune E steps [extruder] section
[stepper_x]
step_pin: ar54
dir_pin: ar55
enable_pin: !ar38
step_distance: .01
endstop_pin: ^ar3
position_endstop: 0
position_max: 200
homing_speed: 50
# The stepper_y section is used to describe the Y axis as well as the
# stepper controlling the X-Y movement.
[stepper_y]
step_pin: ar60
dir_pin: ar61
enable_pin: !ar56
step_distance: .01
endstop_pin: ^ar14
position_endstop: 0
position_max: 200
homing_speed: 50
## Configuration with Z Endstop, without Probe tool like BLTOUCH or others.
#[stepper_z]
#step_pin: ar46
#dir_pin: ar48
#enable_pin: !ar62
#step_distance: .0025
## I used Z_MAX_ENDSTOP
#endstop_pin: ^ar19
## More about z-calibration is here https://vk.com/topic-107680682_34101598
#position_endstop: 235
#position_max: 235
#homing_positive_dir: true
## Configuration for Bltouch probe tool.
## Read more about BLTOUCH here https://www.klipper3d.org/BLTouch.html
[stepper_z]
step_pin: ar46
dir_pin: ar48
enable_pin: !ar62
step_distance: .0025
position_min: -3
position_max: 230
endstop_pin: probe:z_virtual_endstop
## Configuration with PID Calibration.
## Read more here https://www.klipper3d.org/Config_checks.html
[extruder]
step_pin: ar26
dir_pin: !ar28
enable_pin: !ar24
step_distance: .004242
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: ar10
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog13
min_temp: 0
max_temp: 250
control: pid
pid_kp: 26.596
pid_ki: 1.166
pid_kd: 151.598
## Configuration with PID Calibration.
## Read more here https://www.klipper3d.org/Config_checks.html
[heater_bed]
heater_pin: ar8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog14
min_temp: 0
max_temp: 130
control: pid
pid_kp: 73.517
pid_ki: 1.822
pid_kd: 741.600
[fan]
pin: ar9
[mcu]
serial: /dev/ttyACM0
pin_map: arduino
[printer]
kinematics: corexy
max_velocity: 300
max_accel: 3000
max_z_velocity: 25
max_z_accel: 30
[bltouch]
sensor_pin: ^ar18
control_pin: ar7
x_offset: 39
y_offset: 11
z_offset: 0.9
pin_up_touch_mode_reports_triggered: false
samples: 2
sample_retract_dist: 3.0
[bed_mesh]
speed: 100
horizontal_move_z: 5
mesh_min: 69,41
mesh_max: 189,161
probe_count: 3,3
[homing_override]
set_position_z: 6
axes: z
gcode:
G90
G1 Z10 F6000
G28 X Y
G1 X100 Y100 F6000
G28 Z0
G1 X100 Y100 Z10a
[gcode_macro G29]
gcode:
G28
G1 Z10 F600
BED_MESH_CALIBRATE

View File

@@ -0,0 +1,120 @@
# This file contains pin mappings for the ADIMLab 3d printer 2018.
# To use this config, the firmware should be compiled for the AVR atmega2560.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: ar25
dir_pin: !ar23
enable_pin: !ar27
step_distance: .0125
endstop_pin: ^!ar22
position_min: -5
position_endstop: -5
position_max: 310
homing_speed: 30.0
[stepper_y]
step_pin: ar32
dir_pin: !ar33
enable_pin: !ar31
step_distance: .0125
endstop_pin: ^!ar26
position_endstop: 0
position_max: 310
homing_speed: 30.0
[stepper_z]
step_pin: ar35
dir_pin: ar36
enable_pin: !ar34
step_distance: .0025
endstop_pin: ^!ar29
position_endstop: 0.0
position_max: 400
homing_speed: 5.0
[extruder]
step_pin: ar42
dir_pin: ar43
enable_pin: !ar37
step_distance: .010799
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: ar2
sensor_type: ATC Semitec 104GT-2
sensor_pin: analog8
control: pid
pid_Kp: 15.717
pid_Ki: 0.569
pid_Kd: 108.451
min_temp: 0
max_temp: 245
[heater_bed]
heater_pin: ar4
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog10
control: pid
pid_Kp: 74.883
pid_Ki: 1.809
pid_Kd: 775.038
min_temp: 0
max_temp: 110
[verify_heater heater_bed]
# adjust for personal bed setup, this prevents stock heated bed from issuing
# false positive heating errors due to slow temperature increase
# 1 deg per 2 minutes.
heating_gain: 1
check_gain_time: 120
[mcu]
serial: /dev/ttyUSB0
pin_map: arduino
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 10
max_z_accel: 60
[output_pin stepper_xy_current]
pin: ar44
pwm: True
scale: 2.0
cycle_time: .000030
hardware_pwm: True
static_value: 1.3
[output_pin stepper_z_current]
pin: ar45
pwm: True
scale: 2.0
cycle_time: .000030
hardware_pwm: True
static_value: 1.3
[output_pin stepper_e_current]
pin: ar46
pwm: True
scale: 2.0
cycle_time: .000030
hardware_pwm: True
static_value: 1.25
[display]
lcd_type: st7920
cs_pin: ar20
sclk_pin: ar14
sid_pin: ar15
encoder_pins: ^ar41, ^ar40
click_pin: ^!ar19
# The filament runout sensor (on pin ar24) is not currently supported
# in Klipper.
[output_pin case_light]
pin: ar7
value: 1

View File

@@ -0,0 +1,87 @@
# This file contains common pin mappings for the Alfawise U30 printer.
# To use this config, the firmware should be compiled for the
# STM32F103. When running "make menuconfig", enable "extra low-level
# configuration setup", select the 64KiB bootloader, disable "USB for
# communication", and set "GPIO pins to set at micro-controller
# startup" to "!PC4,!PD12".
# The "make flash" command does not work on the Alfawise U30. Instead,
# after running "make", copy the generated "out/klipper.bin" file to a
# file named "project.bin" on an SD card and then restart the Alfawise
# with that SD card.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PB4
dir_pin: !PB3
enable_pin: !PB5
step_distance: .0125
endstop_pin: !PC1
position_endstop: 0
position_max: 230
homing_speed: 50
[stepper_y]
step_pin: PB7
dir_pin: PB6
enable_pin: !PB8
step_distance: .0125
endstop_pin: !PC15
position_endstop: 0
position_max: 222
homing_speed: 50
[stepper_z]
step_pin: PE0
dir_pin: !PB9
enable_pin: !PE1
step_distance: .0025
endstop_pin: !PE6
position_endstop: 0.0
position_max: 250
[extruder]
step_pin: PE3
dir_pin: PE2
enable_pin: !PE4
step_distance: 0.010526
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PD3
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA0
control: pid
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PA8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA1
control: pid
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130
[fan]
pin: PA15
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
restart_method: command
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[static_digital_output reset_display]
pins: !PC4, !PD12

View File

@@ -0,0 +1,94 @@
# This file contains common pin mappings for Anet A4 printer from
# 2018. To use this config, the firmware should be compiled for the
# AVR atmega1284p.
# Note that the "make flash" command does not work with Anet boards -
# the boards are typically flashed with this command:
# avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex
# See the example.cfg file for a description of available parameters.
[stepper_a]
step_pin: PD7
dir_pin: !PC5
enable_pin: !PD6
step_distance: .01
endstop_pin: ^!PC2
position_endstop: 215
arm_length: 215
homing_speed: 50
[stepper_b]
step_pin: PC6
dir_pin: !PC7
enable_pin: !PD6
step_distance: .01
endstop_pin: ^!PC3
[stepper_c]
step_pin: PB3
dir_pin: !PB2
enable_pin: !PA5
step_distance: .01
endstop_pin: ^!PC4
homing_speed: 20
[extruder]
step_pin: PB1
dir_pin: PB0
enable_pin: !PD6
step_distance: .01045
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PD5
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA7
control: pid
pid_Kp: 30.48
pid_Ki: 2.71
pid_Kd: 85.52
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PD4
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA6
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: PB4
[mcu]
serial: /dev/ttyUSB0
[printer]
kinematics: delta
max_velocity: 300
max_accel: 1000
max_z_velocity: 20
delta_radius: 113
[delta_calibrate]
radius: 70
[display]
lcd_type: hd44780
rs_pin: PA3
e_pin: PA2
d4_pin: PD2
d5_pin: PD3
d6_pin: PC0
d7_pin: PC1
up_pin: PA1
analog_range_up_pin: 9000, 13000
down_pin: PA1
analog_range_down_pin: 800, 1300
click_pin: PA1
analog_range_click_pin: 2000, 2500
back_pin: PA1
analog_range_back_pin: 4500, 5000
#kill_pin: PA1
#analog_range_kill_pin: 400, 600

View File

@@ -0,0 +1,98 @@
# This file contains common pin mappings for Anet A8 printer from 2016
# and 2017. To use this config, the firmware should be compiled for
# the AVR atmega1284p.
# Note that the "make flash" command does not work with Anet boards -
# the boards are typically flashed with this command:
# avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PD7
dir_pin: PC5
enable_pin: !PD6
step_distance: .01
endstop_pin: ^!PC2
position_endstop: -30
position_max: 220
position_min: -30
homing_speed: 50
[stepper_y]
step_pin: PC6
dir_pin: PC7
enable_pin: !PD6
step_distance: .01
endstop_pin: ^!PC3
position_endstop: -8
position_min: -8
position_max: 220
homing_speed: 50
[stepper_z]
step_pin: PB3
dir_pin: !PB2
enable_pin: !PA5
step_distance: .0025
endstop_pin: ^!PC4
position_endstop: 0.5
position_max: 240
homing_speed: 20
[extruder]
step_pin: PB1
dir_pin: PB0
enable_pin: !PD6
step_distance: .0105
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PD5
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA7
control: pid
pid_Kp: 2.151492
pid_Ki: 0.633897
pid_Kd: 230.042965
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PD4
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA6
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: PB4
[mcu]
serial: /dev/ttyUSB0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 1000
max_z_velocity: 20
max_z_accel: 100
[display]
lcd_type: hd44780
rs_pin: PA3
e_pin: PA2
d4_pin: PD2
d5_pin: PD3
d6_pin: PC0
d7_pin: PC1
up_pin: PA1
analog_range_up_pin: 9000, 13000
down_pin: PA1
analog_range_down_pin: 800, 1300
click_pin: PA1
analog_range_click_pin: 2000, 2500
back_pin: PA1
analog_range_back_pin: 4500, 5000
#kill_pin: PA1
#analog_range_kill_pin: 400, 600

View File

@@ -0,0 +1,88 @@
# This file contains common pin mappings for Anet E10 printer from
# 2018. To use this config, the firmware should be compiled for the
# AVR atmega1284p.
# Note that the "make flash" command does not work with Anet boards -
# the boards are typically flashed with this command:
# avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PD7
dir_pin: PC5
enable_pin: !PD6
step_distance: .0125
endstop_pin: ^!PC2
position_endstop: -3
position_max: 220
position_min: -3
homing_speed: 50
[stepper_y]
step_pin: PC6
dir_pin: !PC7
enable_pin: !PD6
step_distance: .0125
endstop_pin: ^!PC3
position_endstop: -22
position_min: -22
position_max: 270
homing_speed: 50
[stepper_z]
step_pin: PB3
dir_pin: !PB2
enable_pin: !PA5
step_distance: .0025
endstop_pin: ^!PC4
position_endstop: 0.5
position_max: 300
homing_speed: 20
[extruder]
step_pin: PB1
dir_pin: !PB0
enable_pin: !PD6
step_distance: 0.01
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PD5
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA7
control: pid
pid_Kp: 27.0
pid_Ki: 1.3
pid_Kd: 136.09
min_temp: 10
max_temp: 250
[heater_bed]
heater_pin: PD4
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA6
control: pid
pid_Kp: 72.8
pid_Ki: 1.2
pid_Kd: 1100
min_temp: 10
max_temp: 130
[fan]
pin: PB4
[mcu]
serial: /dev/ttyUSB0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 1000
max_z_velocity: 20
max_z_accel: 1000
[display]
lcd_type: st7920
cs_pin: PA4
sclk_pin: PA1
sid_pin:PA3

View File

@@ -0,0 +1,90 @@
# This file contains common pin mappings for Anet E16 printer from
# 2019. To use this config, the firmware should be compiled for the
# AVR atmega1284p.
# Note that the "make flash" command does not work with Anet boards -
# the boards are typically flashed with this command:
# avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PD7
dir_pin: PC5
enable_pin: !PD6
step_distance: .0125
endstop_pin: ^!PC2
position_endstop: -3
position_max: 300
position_min: -3
homing_speed: 50
[stepper_y]
step_pin: PC6
dir_pin: !PC7
enable_pin: !PD6
step_distance: .0125
endstop_pin: ^!PC3
position_endstop: -22
position_min: -22
position_max: 300
homing_speed: 50
[stepper_z]
step_pin: PB3
dir_pin: !PB2
enable_pin: !PA5
step_distance: .0025
endstop_pin: ^!PC4
position_endstop: 0.5
position_max: 400
homing_speed: 20
[extruder]
step_pin: PB1
dir_pin: !PB0
enable_pin: !PD6
step_distance: 0.01
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PD5
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA7
control: pid
pid_Kp: 27.0
pid_Ki: 1.3
pid_Kd: 136.09
min_temp: 10
max_temp: 250
[heater_bed]
heater_pin: PD4
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA6
control: pid
pid_Kp: 72.8
pid_Ki: 1.2
pid_Kd: 1100
min_temp: 10
max_temp: 130
[fan]
pin: PB4
[mcu]
serial: /dev/ttyUSB0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 1000
max_z_velocity: 20
max_z_accel: 1000
[display]
lcd_type: st7920
cs_pin: PA4
sclk_pin: PA1
sid_pin:PA3
encoder_pins: ^PD2, ^PD3
click_pin: ^!PC0

View File

@@ -0,0 +1,127 @@
# Klipper firmware config file for Anycubic 4Max. To use this config,
# the firmware should be compiled for the AVR atmega2560.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: ar54
dir_pin: ar55
enable_pin: !ar38
step_distance: .0125
endstop_pin: ^!ar3
position_min: -2
position_endstop: -2
position_max: 205
homing_speed: 60.0
[stepper_y]
step_pin: ar60
dir_pin: ar61
enable_pin: !ar56
step_distance: .0125
endstop_pin: ^!ar14
position_endstop: 0
position_max: 215
homing_speed: 60.0
[stepper_z]
step_pin: ar46
dir_pin: ar48
enable_pin: !ar62
step_distance: .0025
endstop_pin: ^!ar18
position_endstop: 0.5
position_max: 305
homing_speed: 8.0
[extruder]
step_pin: ar26
dir_pin: ar28
enable_pin: !ar24
step_distance: 0.010354
nozzle_diameter: 0.400
filament_diameter: 1.750
max_extrude_only_distance: 2000
heater_pin: ar10
sensor_type: ATC Semitec 104GT-2
sensor_pin: analog13
control: pid
pid_kp: 27.725
pid_ki: 1.224
pid_kd: 156.991
min_temp: 0
max_temp: 300
[heater_bed]
heater_pin: ar8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog14
control: pid
pid_kp: 73.735
pid_ki: 1.437
pid_kd: 945.653
min_temp: 0
max_temp: 110
[fan]
pin: ar9
kick_start_time: 1.0
[mcu]
serial: /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0
pin_map: arduino
[printer]
kinematics: cartesian
max_velocity: 1200
max_accel: 1500
max_z_velocity: 40
max_z_accel: 60
[heater_fan extruder_fan]
pin: ar44
[heater_fan stepstick_fan]
pin: ar7
kick_start_time: 1.0
[display]
lcd_type: st7920
cs_pin: ar16
sclk_pin: ar23
sid_pin: ar17
encoder_pins: ^ar31, ^ar33
click_pin: ^!ar35
kill_pin: ^!ar41
[filament_switch_sensor e0_sensor]
switch_pin: ar19
[gcode_macro START_PRINT]
gcode:
M117 Starting...
G90 ; absolute positioning
M107 ; start with the fan off
G28 ; Home
G0 X5 Y5 F4500 ; Go to front
G0 Z0.3 ; Drop to bed
G92 E0 ; zero the extruded length
G1 Y40 E15 F500 ; Extrude 15mm of filament in a 4cm line
G92 E0 ; zero the extruded length
G1 Y80 F4000 ; Quickly wipe away from the filament line
G1 Z1 ; Raise and begin printing.
M117 Printing...
[gcode_macro END_PRINT]
gcode:
M117 End printing.
G91 ; relative positioning
G1 E-1 F300 ;retract the filament a bit before lifting the nozzle to release some of the pressure
G1 Z+5 E-2 F1000 ;move Z up a bit and extract a bit more
G90 ; absolute positioning
G1 X0 F2000 ; move X to min endstops so the head is out of the way
G1 Y200 F2000 ; Move Y to the back
m104 S0 ; turn hotend heating off
M140 S0 ; turn bed heating off
M107 ; turn fan off
M84 ; steppers off

View File

@@ -0,0 +1,93 @@
# This file contains pin mappings for the Anycubic i3 Mega with
# Ultrabase from 2017. (This config may work on an Anycubic i3 Mega v1
# prior to the Ultrabase if you comment out the definition of the
# endstop_pin in the stepper_z1 section.) To use this config, the
# firmware should be compiled for the AVR atmega2560.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: ar54
dir_pin: !ar55
enable_pin: !ar38
step_distance: .0125
endstop_pin: ^!ar3
position_min: -5
position_endstop: -5
position_max: 210
homing_speed: 30.0
[stepper_y]
step_pin: ar60
dir_pin: ar61
enable_pin: !ar56
step_distance: .0125
endstop_pin: ^!ar42
position_endstop: 0
position_max: 210
homing_speed: 30.0
[stepper_z]
step_pin: ar46
dir_pin: ar48
enable_pin: !ar62
step_distance: .0025
endstop_pin: ^!ar18
position_endstop: 0.0
position_max: 205
homing_speed: 5.0
[stepper_z1]
step_pin: ar36
dir_pin: ar34
enable_pin: !ar30
step_distance: .0025
endstop_pin: ^!ar43
[extruder]
step_pin: ar26
dir_pin: ar28
enable_pin: !ar24
step_distance: .010799
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: ar10
sensor_type: ATC Semitec 104GT-2
sensor_pin: analog13
control: pid
pid_Kp: 15.717
pid_Ki: 0.569
pid_Kd: 108.451
min_temp: 0
max_temp: 245
[heater_fan extruder_fan]
pin: ar44
[heater_bed]
heater_pin: ar8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog14
control: pid
pid_Kp: 74.883
pid_Ki: 1.809
pid_Kd: 775.038
min_temp: 0
max_temp: 110
[fan]
pin: ar9
[mcu]
serial: /dev/ttyUSB0
pin_map: arduino
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 10
max_z_accel: 60
[heater_fan stepstick_fan]
pin: ar7

View File

@@ -0,0 +1,109 @@
# This file contains a configuration for the Anycubic Kossel delta
# printer from 2016.
# The Anycubic delta printers use the TriGorilla board which is an
# AVR ATmega2560 Arduino + RAMPS compatible board.
# To use this config, the firmware should be compiled for the AVR atmega2560.
# See the example.cfg file for a description of available parameters.
[stepper_a]
step_pin: ar54
dir_pin: !ar55
enable_pin: !ar38
step_distance: .0125
endstop_pin: ^ar2
homing_speed: 60
# The next parameter needs to be adjusted for
# your printer. You may want to start with 280
# and meassure the distance from nozzle to bed.
# This value then needs to be added.
position_endstop: 273.0
arm_length: 229.4
[stepper_b]
step_pin: ar60
dir_pin: !ar61
enable_pin: !ar56
step_distance: .0125
endstop_pin: ^ar15
[stepper_c]
step_pin: ar46
dir_pin: !ar48
enable_pin: !ar62
step_distance: .0125
endstop_pin: ^ar19
[extruder]
step_pin: ar26
dir_pin: !ar28
enable_pin: !ar24
step_distance: 0.010989
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: ar10
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog13
control: pid
pid_Kp: 25.349
pid_Ki: 1.216
pid_Kd: 132.130
min_extrude_temp: 150
min_temp: 0
max_temp: 275
#[heater_bed]
#heater_pin: ar8
#sensor_type: EPCOS 100K B57560G104F
#sensor_pin: analog14
#control: watermark
#min_temp: 0
#max_temp: 130
[fan]
pin: ar9
kick_start_time: 0.200
[heater_fan extruder_cooler_fan]
pin: ar44
[mcu]
serial: /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0
pin_map: arduino
[printer]
kinematics: delta
max_velocity: 500
max_accel: 3000
max_z_velocity: 200
delta_radius: 99.8
# if you want to DELTA_CALIBRATE you may need that
#minimum_z_position: -5
[idle_timeout]
timeout: 360
#[delta_calibrate]
#radius: 80
#manual_probe:
# If true, then DELTA_CALIBRATE will perform manual probing. If
# false, then a PROBE command will be run at each probe
# point. Manual probing is accomplished by manually jogging the Z
# position of the print head at each probe point and then issuing a
# NEXT extended g-code command to record the position at that
# point. The default is false if a [probe] config section is present
# and true otherwise.
# "RepRapDiscount 2004 Smart Controller" type displays
[display]
lcd_type: hd44780
rs_pin: ar16
e_pin: ar17
d4_pin: ar23
d5_pin: ar25
d6_pin: ar27
d7_pin: ar29
encoder_pins: ^ar31, ^ar33
click_pin: ^!ar35
kill_pin: ^!ar41

View File

@@ -0,0 +1,112 @@
# This file contains a configuration for the "Anycubic Kossel Linear
# Plus Large Printing Size", "Anycubic Kossel Pulley Plus Large
# Printing Size" and similar delta printer from 2017.
# The Anycubic delta printers use the TriGorilla board which is an
# AVR ATmega2560 Arduino + RAMPS compatible board.
# To use this config, the firmware should be compiled for the AVR atmega2560.
# See the example.cfg, example-delta.cfg and example-extras.cfg files
# for a description of available parameters.
[stepper_a]
step_pin: ar54
dir_pin: !ar55
enable_pin: !ar38
step_distance: .0125
endstop_pin: ^ar2
homing_speed: 60
# The next parameter needs to be adjusted for
# your printer. You may want to start with 280
# and meassure the distance from nozzle to bed.
# This value then needs to be added.
position_endstop: 295.6
arm_length: 269.0
[stepper_b]
step_pin: ar60
dir_pin: !ar61
enable_pin: !ar56
step_distance: .0125
endstop_pin: ^ar15
[stepper_c]
step_pin: ar46
dir_pin: !ar48
enable_pin: !ar62
step_distance: .0125
endstop_pin: ^ar19
[extruder]
step_pin: ar26
dir_pin: !ar28
enable_pin: !ar24
step_distance: 0.0104166
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: ar10
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog13
control: pid
pid_Kp: 25.349
pid_Ki: 1.216
pid_Kd: 132.130
min_extrude_temp: 150
min_temp: 0
max_temp: 275
[heater_bed]
heater_pin: ar8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog14
control: pid
pid_kp: 73.517
pid_ki: 1.132
pid_kd: 1193.728
min_temp: 0
max_temp: 130
[fan]
pin: ar9
kick_start_time: 0.200
[heater_fan extruder_cooler_fan]
pin: ar44
# if you want to use your probe for DELTA_CALIBRATE you will need that
#[probe]
#pin: ^ar18
#z_offset: 15.9
#samples: 3
[mcu]
serial: /dev/ttyUSB0
pin_map: arduino
[printer]
kinematics: delta
max_velocity: 500
max_accel: 3000
max_z_velocity: 200
delta_radius: 134.4
# if you want to DELTA_CALIBRATE you may need that
#minimum_z_position: -5
[idle_timeout]
timeout: 360
[delta_calibrate]
radius: 115
# If the original probe is used
#horizontal_move_z: 20
# "RepRapDiscount 2004 Smart Controller" type displays
[display]
lcd_type: hd44780
rs_pin: ar16
e_pin: ar17
d4_pin: ar23
d5_pin: ar25
d6_pin: ar27
d7_pin: ar29
encoder_pins: ^ar31, ^ar33
click_pin: ^!ar35
kill_pin: ^!ar41

View File

@@ -0,0 +1,90 @@
# This file contains common pin mappings for the 2017 Creality
# CR-10. To use this config, the firmware should be compiled for the
# AVR atmega1284p.
# Note, a number of Melzi boards are shipped with a bootloader that
# requires the following command to flash the board:
# avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex
# If the above command does not work and "make flash" does not work
# then one may need to flash a bootloader to the board - see the
# Klipper docs/Bootloaders.md file for more information.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PD7
dir_pin: !PC5
enable_pin: !PD6
step_distance: .0125
endstop_pin: ^PC2
position_endstop: 0
position_max: 300
homing_speed: 50
[stepper_y]
step_pin: PC6
dir_pin: !PC7
enable_pin: !PD6
step_distance: .0125
endstop_pin: ^PC3
position_endstop: 0
position_max: 300
homing_speed: 50
[stepper_z]
step_pin: PB3
dir_pin: PB2
enable_pin: !PA5
step_distance: .0025
endstop_pin: ^PC4
position_endstop: 0.0
position_max: 400
[extruder]
step_pin: PB1
dir_pin: !PB0
enable_pin: !PD6
step_distance: 0.010526
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PD5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA7
control: pid
pid_Kp: 22.57
pid_Ki: 1.72
pid_Kd: 73.96
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PD4
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA6
control: pid
pid_Kp: 426.68
pid_Ki: 78.92
pid_Kd: 576.71
min_temp: 0
max_temp: 130
[fan]
pin: PB4
[mcu]
serial: /dev/ttyUSB0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[display]
lcd_type: st7920
cs_pin: PA3
sclk_pin: PA1
sid_pin: PC1
encoder_pins: ^PD2, ^PD3
click_pin: ^!PC0

View File

@@ -0,0 +1,90 @@
# This file contains common pin mappings for the 2017 Creality CR-10
# mini. To use this config, the firmware should be compiled for the
# AVR atmega1284p.
# Note, a number of Melzi boards are shipped with a bootloader that
# requires the following command to flash the board:
# avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex
# If the above command does not work and "make flash" does not work
# then one may need to flash a bootloader to the board - see the
# Klipper docs/Bootloaders.md file for more information.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PD7
dir_pin: !PC5
enable_pin: !PD6
step_distance: .0125
endstop_pin: ^PC2
position_endstop: 0
position_max: 300
homing_speed: 50
[stepper_y]
step_pin: PC6
dir_pin: !PC7
enable_pin: !PD6
step_distance: .0125
endstop_pin: ^PC3
position_endstop: 0
position_max: 220
homing_speed: 50
[stepper_z]
step_pin: PB3
dir_pin: PB2
enable_pin: !PA5
step_distance: .0025
endstop_pin: ^PC4
position_endstop: 0.0
position_max: 300
[extruder]
step_pin: PB1
dir_pin: !PB0
enable_pin: !PD6
step_distance: 0.010526
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PD5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA7
control: pid
pid_Kp: 22.57
pid_Ki: 1.72
pid_Kd: 73.96
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PD4
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA6
control: pid
pid_Kp: 426.68
pid_Ki: 78.92
pid_Kd: 576.71
min_temp: 0
max_temp: 130
[fan]
pin: PB4
[mcu]
serial: /dev/ttyUSB0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[display]
lcd_type: st7920
cs_pin: PA3
sclk_pin: PA1
sid_pin: PC1
encoder_pins: ^PD2, ^PD3
click_pin: ^!PC0

View File

@@ -0,0 +1,83 @@
# This file contains pin mappings for the 2017 Creality CR-10S. To use
# this config, the firmware should be compiled for the AVR atmega2560.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: ar54
dir_pin: ar55
enable_pin: !ar38
step_distance: .0125
endstop_pin: ^ar3
position_endstop: 0
position_max: 300
homing_speed: 50
[stepper_y]
step_pin: ar60
dir_pin: ar61
enable_pin: !ar56
step_distance: .0125
endstop_pin: ^ar14
position_endstop: 0
position_max: 300
homing_speed: 50
[stepper_z]
step_pin: ar46
dir_pin: !ar48
enable_pin: !ar62
step_distance: .0025
endstop_pin: ^ar18
position_endstop: 0
position_max: 400
[extruder]
step_pin: ar26
dir_pin: ar28
enable_pin: !ar24
step_distance: .010526
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: ar10
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog13
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: ar8
sensor_type: ATC Semitec 104GT-2
sensor_pin: analog14
control: pid
pid_Kp: 690.34
pid_Ki: 111.47
pid_Kd: 1068.83
min_temp: 0
max_temp: 130
[fan]
pin: ar9
[mcu]
serial: /dev/ttyUSB0
pin_map: arduino
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[display]
lcd_type: st7920
cs_pin: ar16
sclk_pin: ar23
sid_pin: ar17
encoder_pins: ^ar33, ^ar31
click_pin: ^!ar35

View File

@@ -0,0 +1,81 @@
# This file contains pin mappings for the Creality CR-20. To use
# this config, the firmware should be compiled for the AVR atmega2560.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PF0
dir_pin: PF1
enable_pin: !PD7
step_distance: .0125
endstop_pin: ^PE5
position_endstop: 0
position_max: 235
homing_speed: 50
[stepper_y]
step_pin: PF6
dir_pin: PF7
enable_pin: !PF2
step_distance: .0125
endstop_pin: ^PJ1
position_endstop: 0
position_max: 235
homing_speed: 50
[stepper_z]
step_pin: PL3
dir_pin: !PL1
enable_pin: !PK0
step_distance: .0025
endstop_pin: ^PD3
position_endstop: 0
position_max: 250
[extruder]
step_pin: PA4
dir_pin: PA6
enable_pin: !PA2
step_distance: .010526
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PB4
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PK5
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PH5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PK6
control: pid
pid_Kp: 690.34
pid_Ki: 111.47
pid_Kd: 1068.83
min_temp: 0
max_temp: 130
[fan]
pin: PH6
[mcu]
serial: /dev/ttyUSB0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[display]
lcd_type: uc1701
cs_pin: PA3
a0_pin: PA5
encoder_pins: ^PC4, ^PC6
click_pin: ^!PC2

View File

@@ -0,0 +1,105 @@
# This file contains pin mappings for the Creality CR-20 Pro. To use
# this config, the firmware should be compiled for the AVR atmega2560.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PF0
dir_pin: PF1
enable_pin: !PD7
step_distance: .0125
endstop_pin: ^PE5
position_endstop: 0
position_max: 235
homing_speed: 100
[stepper_y]
step_pin: PF6
dir_pin: PF7
enable_pin: !PF2
step_distance: .0125
endstop_pin: ^PJ1
position_endstop: 0
position_max: 235
homing_speed: 100
[stepper_z]
step_pin: PL3
dir_pin: !PL1
enable_pin: !PK0
step_distance: .0025
endstop_pin: probe:z_virtual_endstop
position_endstop: 0
position_max: 250
homing_speed: 10.0
position_min: -1.0
[extruder]
step_pin: PA4
dir_pin: PA6
enable_pin: !PA2
step_distance: .010526
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PB4
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PK5
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[bltouch]
sensor_pin: ^PD3
control_pin: PB5
z_offset: 3.60
x_offset: 46
y_offset: 9
speed: 3.0
samples: 1
[safe_z_home]
home_xy_position: 117,117
speed: 50.0
z_hop: 10.0
z_hop_speed: 100
[bed_mesh]
speed: 100
horizontal_move_z: 8
mesh_min: 106,39
mesh_max: 281,229
probe_count: 3,3
[heater_bed]
heater_pin: PH5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PK6
control: pid
pid_Kp: 690.34
pid_Ki: 111.47
pid_Kd: 1068.83
min_temp: 0
max_temp: 130
[fan]
pin: PH6
[mcu]
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AK06SLT2-if00-port0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[display]
lcd_type: uc1701
cs_pin: PA3
a0_pin: PA5
encoder_pins: ^PC4, ^PC6
click_pin: ^!PC2

View File

@@ -0,0 +1,93 @@
# This file contains common pin mappings for the 2017 Creality
# Ender 2. To use this config, the firmware should be compiled for the
# AVR atmega1284p.
# Note, a number of Melzi boards are shipped with a bootloader that
# requires the following command to flash the board:
# avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex
# If the above command does not work and "make flash" does not work
# then one may need to flash a bootloader to the board - see the
# Klipper docs/Bootloaders.md file for more information.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PD7
dir_pin: !PC5
enable_pin: !PD6
step_distance: .0125
endstop_pin: ^PC2
position_endstop: 0
position_max: 165
homing_speed: 50
[stepper_y]
step_pin: PC6
dir_pin: !PC7
enable_pin: !PD6
step_distance: .0125
endstop_pin: ^PC3
position_endstop: 0
position_max: 165
homing_speed: 50
[stepper_z]
step_pin: PB3
dir_pin: PB2
enable_pin: !PA5
step_distance: .0025
endstop_pin: ^PC4
position_endstop: 0.0
position_max: 205
[extruder]
step_pin: PB1
dir_pin: !PB0
enable_pin: !PD6
step_distance: 0.010753
nozzle_diameter: 0.400
filament_diameter: 1.750
max_extrude_only_distance: 500.0
max_extrude_only_velocity: 200.0
max_extrude_only_accel: 500.0
heater_pin: PD5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA7
control: pid
pid_Kp: 21.73
pid_Ki: 1.54
pid_Kd: 76.55
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PD4
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA6
control: pid
# PID Tuned for 60C
pid_Kp: 72.487
pid_Ki: 2.279
pid_Kd: 576.275
min_temp: 0
max_temp: 100
[fan]
pin: PB4
[mcu]
serial: /dev/ttyUSB0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 1500
max_z_velocity: 5
max_z_accel: 100
[display]
lcd_type: uc1701
cs_pin: PA3
a0_pin: PA1
encoder_pins: ^PD2, ^PD3
click_pin: ^!PC0

View File

@@ -0,0 +1,105 @@
# This file contains common pin mappings for the 2018 Creality
# Ender 3. To use this config, the firmware should be compiled for the
# AVR atmega1284p.
# Note, a number of Melzi boards are shipped with a bootloader that
# requires the following command to flash the board:
# avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex
# If the above command does not work and "make flash" does not work
# then one may need to flash a bootloader to the board - see the
# Klipper docs/Bootloaders.md file for more information.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PD7
dir_pin: !PC5
enable_pin: !PD6
step_distance: .0125
endstop_pin: ^PC2
position_endstop: 0
position_max: 235
homing_speed: 50
[stepper_y]
step_pin: PC6
dir_pin: !PC7
enable_pin: !PD6
step_distance: .0125
endstop_pin: ^PC3
position_endstop: 0
position_max: 235
homing_speed: 50
[stepper_z]
step_pin: PB3
dir_pin: PB2
enable_pin: !PA5
step_distance: .0025
endstop_pin: ^PC4
position_endstop: 0.0
position_max: 250
[extruder]
max_extrude_only_distance: 100.0
step_pin: PB1
dir_pin: !PB0
enable_pin: !PD6
step_distance: 0.010526
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PD5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA7
control: pid
# tuned for stock hardware with 200 degree Celsius target
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PD4
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA6
control: pid
# tuned for stock hardware with 50 degree Celsius target
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130
[fan]
pin: PB4
[mcu]
serial: /dev/ttyUSB0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[display]
lcd_type: st7920
cs_pin: PA3
sclk_pin: PA1
sid_pin: PC1
encoder_pins: ^PD2, ^PD3
click_pin: ^!PC0
# The print bed can move so far to the front, that the nozzle can reach the
# plastic cover of the print bed heater cable (only when the bed is moved by
# hand). By homing the Y axis before the X axis, it is ensured the nozzle will
# not melt through the plastic part.
# BEWARE: You will lose the ability to home axes individually. The printer will
# always home all axes for every G28 command.
#[homing_override]
#gcode:
# G28 Y0
# G28 X0
# G28 Z0

View File

@@ -0,0 +1,91 @@
# This file contains pin mappings for the stock 2020 Creality Ender 3
# V2. To use this config, during "make menuconfig" select the
# STM32F103 with a "28KiB bootloader" and with "Use USB for
# communication" disabled.
# If you prefer a direct serial connection, in "make menuconfig"
# select "Enable extra low-level configuration options" and select the
# USART3 serial port, which is broken out on the 10 pin IDC cable used
# for the LCD module as follows:
# 3: Tx, 4: Rx, 9: GND, 10: VCC
# Flash this firmware by copying "out/klipper.bin" to a SD card and
# turning on the printer with the card inserted. The firmware
# filename must end in ".bin" and must not match the last filename
# that was flashed.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PC2
dir_pin: PB9
enable_pin: !PC3
step_distance: .0125
endstop_pin: ^PA5
position_endstop: 0
position_max: 235
homing_speed: 50
[stepper_y]
step_pin: PB8
dir_pin: PB7
enable_pin: !PC3
step_distance: .0125
endstop_pin: ^PA6
position_endstop: 0
position_max: 235
homing_speed: 50
[stepper_z]
step_pin: PB6
dir_pin: !PB5
enable_pin: !PC3
step_distance: .0025
endstop_pin: ^PA7
position_endstop: 0.0
position_max: 250
[extruder]
max_extrude_only_distance: 100.0
step_pin: PB4
dir_pin: PB3
enable_pin: !PC3
step_distance: 0.010752
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
control: pid
# tuned for stock hardware with 200 degree Celsius target
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PA2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
control: pid
# tuned for stock hardware with 50 degree Celsius target
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130
[fan]
pin: PA0
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100

View File

@@ -0,0 +1,104 @@
# This file contains pin mappings for the stock 2020 Creality Ender 3
# Pro with the 32-bit Creality 4.2.2 board. To use this config, during
# "make menuconfig" select the STM32F103 with a "28KiB bootloader" and
# with "Use USB for communication" disabled.
# If you prefer a direct serial connection, in "make menuconfig"
# select "Enable extra low-level configuration options" and select the
# USART3 serial port, which is broken out on the 10 pin IDC cable used
# for the LCD module as follows:
# 3: Tx, 4: Rx, 9: GND, 10: VCC
# Flash this firmware by copying "out/klipper.bin" to a SD card and
# turning on the printer with the card inserted. The firmware
# filename must end in ".bin" and must not match the last filename
# that was flashed.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PC2
dir_pin: PB9
enable_pin: !PC3
step_distance: .0125
endstop_pin: ^PA5
position_endstop: 0
position_max: 235
homing_speed: 50
[stepper_y]
step_pin: PB8
dir_pin: PB7
enable_pin: !PC3
step_distance: .0125
endstop_pin: ^PA6
position_endstop: 0
position_max: 235
homing_speed: 50
[stepper_z]
step_pin: PB6
dir_pin: !PB5
enable_pin: !PC3
step_distance: .0025
endstop_pin: ^PA7
position_endstop: 0.0
position_max: 250
[extruder]
max_extrude_only_distance: 100.0
step_pin: PB4
dir_pin: PB3
enable_pin: !PC3
step_distance: 0.010752
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
control: pid
# tuned for stock hardware with 200 degree Celsius target
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PA2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
control: pid
# tuned for stock hardware with 50 degree Celsius target
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130
[fan]
pin: PA0
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
# Pin mappings for BL_T port
#[bltouch]
#sensor_pin: ^PB1
#control_pin: PB0
[display]
lcd_type: st7920
cs_pin: PB12
sclk_pin: PB13
sid_pin: PB15
encoder_pins: ^PB14, ^PB10
click_pin: ^!PB2

View File

@@ -0,0 +1,93 @@
# This file contains common pin mappings for the 2019 Creality
# Ender 5. To use this config, the firmware should be compiled for the
# AVR atmega1284p.
# Note, a number of Melzi boards are shipped with a bootloader that
# requires the following command to flash the board:
# avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex
# If the above command does not work and "make flash" does not work
# then one may need to flash a bootloader to the board - see the
# Klipper docs/Bootloaders.md file for more information.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PD7
dir_pin: !PC5
enable_pin: !PD6
step_distance: .012500
endstop_pin: ^PC2
position_endstop: 235
position_max: 235
homing_speed: 30
[stepper_y]
step_pin: PC6
dir_pin: !PC7
enable_pin: !PD6
step_distance: .012500
endstop_pin: ^PC3
position_endstop: 235
position_max: 235
homing_speed: 30
[stepper_z]
step_pin: PB3
dir_pin: !PB2
enable_pin: !PA5
step_distance: .002500 # Use .001250 for Ender5 versions after late 2019
endstop_pin: ^PC4
position_endstop: 0.0
position_max: 300
[extruder]
max_extrude_only_distance: 100.0
step_pin: PB1
dir_pin: !PB0
enable_pin: !PD6
step_distance: 0.010526
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PD5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA7
control: pid
# tuned for stock hardware with 200 degree Celsius target
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PD4
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA6
control: pid
# tuned for stock hardware with 50 degree Celsius target
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130
[fan]
pin: PB4
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[display]
lcd_type: st7920
cs_pin: PA3
sclk_pin: PA1
sid_pin: PC1
encoder_pins: ^PD2, ^PD3
click_pin: ^!PC0

View File

@@ -0,0 +1,99 @@
# This file contains pin mappings for the Creality Ender 5 Plus.
# Ender 5 Plus stock uses a Creality v2.2 board, similar to CR-20 Pro.
# To use this config, the firmware should be compiled for the AVR
# atmega2560.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PF0
dir_pin: PF1
enable_pin: !PD7
step_distance: .0125
endstop_pin: ^PE5
position_endstop: 350
position_max: 350
homing_speed: 100
[stepper_y]
step_pin: PF6
dir_pin: PF7
enable_pin: !PF2
step_distance: .0125
endstop_pin: ^PJ1
position_endstop: 350
position_max: 350
homing_speed: 100
[stepper_z]
step_pin: PL3
dir_pin: PL1
enable_pin: !PK0
step_distance: .001266
endstop_pin: probe:z_virtual_endstop
position_max: 400
position_min: 0
homing_speed: 10.0
[extruder]
step_pin: PA4
dir_pin: PA6
enable_pin: !PA2
step_distance: .010526
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PB4
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PK5
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 260
[safe_z_home]
home_xy_position: 180, 180
speed: 100
z_hop: 10
z_hop_speed: 5
[bltouch]
sensor_pin: ^PD3
control_pin: PB5
x_offset: -45
y_offset: 0
z_offset: 0
speed: 3.0
pin_up_touch_mode_reports_triggered: False
[bed_mesh]
speed: 100
horizontal_move_z: 8
mesh_min: 50, 50
mesh_max: 300,300
probe_count: 3,3
[heater_bed]
heater_pin: PH5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PK6
control: pid
pid_Kp: 690.34
pid_Ki: 111.47
pid_Kd: 1068.83
min_temp: 0
max_temp: 130
[fan]
pin: PH6
[mcu]
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AK06VNAB-if00-port0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 2500
max_z_velocity: 5
max_z_accel: 100

View File

@@ -0,0 +1,212 @@
#This file contains pin mappings for the Lulzbot Mini 1 using RAMBo Mini and SingleExtruder
#To use this config, the firmware should be compiled for the AVR atmega2560.
# See the example.cfg file for a description of available parameters.
#-------------------------------------------------------------------------------------------------
# LULZBOT Mini 1 SingleExtruder (RAMBoMini)
# defines are copied from Marlin pins_MINIRAMBO.h
# pin conversion was found in fastio_1280.h
#-------------------------------------------------------------------------------------------------
[stepper_x]
#define X_STEP_PIN 37
step_pin: PC0
#define X_DIR_PIN 48
dir_pin: PL1
#define X_ENABLE_PIN 29
enable_pin: !PA7
# 1/100
step_distance: .010000
#define X_MIN_PIN 12
endstop_pin: ^!PB6
position_endstop: -3
position_min: -3
position_max: 159
homing_speed: 50
homing_retract_dist: 2.0
second_homing_speed: 5
[stepper_y]
#define Y_STEP_PIN 36
step_pin: PC1
#define Y_DIR_PIN 49
dir_pin: !PL0
#define Y_ENABLE_PIN 28
enable_pin: !PA6
# 1/100
step_distance: .010000
#define Y_MIN_PIN 11
endstop_pin: ^!PB5
position_endstop: -7
position_min: -7
position_max: 173
homing_speed: 50
homing_retract_dist: 2.0
second_homing_speed: 5
[stepper_z]
#define Z_STEP_PIN 35
step_pin: PC2
#define Z_DIR_PIN 47
dir_pin: PL2
#define Z_ENABLE_PIN 27
enable_pin: !PA5
# 1/1600
step_distance: 0.000625
#define Z_MAX_PIN 23
endstop_pin: ^!PA1
# I have replaced the original nozzle with
# a hardened steel one that make the extruder
# 1-1.5mm longer, so this may be a little too low
position_endstop: 161.5
position_max: 161.5
position_min: -2.0
homing_speed: 7
homing_retract_dist: 2.0
second_homing_speed: 2
[extruder]
#define E0_STEP_PIN 34
step_pin: PC3
#define E0_DIR_PIN 43
dir_pin: !PL6
#define E0_ENABLE_PIN 26
enable_pin: !PA4
# 1/833
step_distance: 0.001200480192076831
nozzle_diameter: 0.400
filament_diameter: 2.850
#define HEATER_0_PIN 3
heater_pin: PE5
#The Extruder uses 100K thermistor - ATC Semitec 104GT-2 (#5) and PID control
sensor_type: ATC Semitec 104GT-2
# I can't explain this from Marlin
sensor_pin: PF0
control: pid
pid_Kp: 28.79
pid_Ki: 1.91
pid_Kd: 108.51
min_temp: 0
max_temp: 280
min_extrude_temp: 160
max_extrude_only_velocity: 500
max_extrude_only_accel: 2000
[heater_bed]
#define HEATER_BED_PIN 4
heater_pin: PG5
# The Heater Bed uses Honeywell 100K 135-104LAG-J01 temp sensor (#7) and PID control
sensor_type: Honeywell 100K 135-104LAG-J01
# I can't explain this from Marlin
sensor_pin: PF2
control: pid
pid_Kp: 294.0
pid_Ki: 65.0
pid_Kd: 382.0
min_temp: 0
max_temp: 130
[fan]
#define FAN_PIN 8
pin: PH5
[heater_fan nozzle_cooling_fan]
#define FAN1_PIN 6
pin: PH3
[output_pin stepper_xy_current]
#define MOTOR_CURRENT_PWM_XY_PIN 46
pin: PL3
pwm: True
scale: 2.0
cycle_time: .000030
hardware_pwm: True
static_value: 1.300
[output_pin stepper_z_current]
pin: PL4
pwm: True
scale: 2.0
cycle_time: .000030
hardware_pwm: True
static_value: 1.630
[output_pin stepper_e_current]
pin: PL5
pwm: True
scale: 2.0
cycle_time: .000030
hardware_pwm: True
static_value: 1.250
[static_digital_output stepper_config]
# Microstepping pins
#define X_MS1_PIN 40
#define X_MS2_PIN 41
#define Y_MS1_PIN 69
#define Y_MS2_PIN 39
#define Z_MS1_PIN 68
#define Z_MS2_PIN 67
#define E0_MS1_PIN 65
#define E0_MS2_PIN 66
pins:
PG1, PG0,
PK7, PG2,
PK6, PK5,
PK3, PK4
[static_digital_output yellow_led]
#define LED_PIN 13
pins: !PB7
[mcu]
serial: /dev/ttyACM0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 2000
max_z_velocity: 7
max_z_accel: 500
[homing_override]
gcode:
G91
G28 Z
G0 Z-5
G28 X Y
G0 X3 Y7
G90
[probe]
#define Z_MIN_PROBE_PIN 10
pin: ^!PB4
# z_offset equals washer thickness ~= 1.377
z_offset: 1.377
speed: 5.0
samples: 2
sample_retract_dist: 1.0
samples_result: average
samples_tolerance: 0.200
samples_tolerance_retries: 2
[bed_tilt]
# Enable bed tilt measurments using the probe we defined above
# Probe points using X0 Y0 offsets @ 0.01mm/step
points: -2,-6
156,-6
156,158
-2,158
speed: 75
horizontal_move_z: 2
[firmware_retraction]
retract_length: 2
retract_speed: 200
unretract_extra_length: 0
unretract_speed: 200
[gcode_macro G29]
# Preform the ABL by running G29 in the start GCODE script
gcode:
BED_TILT_CALIBRATE

View File

@@ -0,0 +1,163 @@
# This file contains pin mappings for the Lulzbot TAZ 6 circa 2017. To
# use this config, the firmware should be compiled for the AVR
# atmega2560.
# For a TAZ6 with DualV3 extruder, see printer-lulzbot-taz6-dual-v3-2017.cfg.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PC0
dir_pin: PL1
enable_pin: !PA7
step_distance: .010000
endstop_pin: ^PB6
position_endstop: -20
position_min: -20
position_max: 300
homing_speed: 50
[stepper_y]
step_pin: PC1
dir_pin: !PL0
enable_pin: !PA6
step_distance: .010000
endstop_pin: ^PA1
position_endstop: 306
position_min: -20
position_max: 306
homing_speed: 50
[stepper_z]
step_pin: PC2
dir_pin: PL2
enable_pin: !PA5
step_distance: 0.000625
endstop_pin: ^!PB4
position_endstop: -0.7
position_min: -1.5
position_max: 270
homing_speed: 1
# settings for "Tilapia" Hexagon extruder (TAZ6 standard)
[extruder]
step_pin: PC3
dir_pin: !PL6
enable_pin: !PA4
step_distance: 0.001182
nozzle_diameter: 0.400
filament_diameter: 2.920
heater_pin: PH6
sensor_type: ATC Semitec 104GT-2
sensor_pin: PF0
control: pid
pid_Kp: 28.79
pid_Ki: 1.91
pid_Kd: 108.51
min_temp: 0
max_temp: 300
min_extrude_temp: 140
# settings for "Angelfish" Aerostruder (E3D Titan Aero V6)
#[extruder]
#step_pin: PC3
#dir_pin: !PL6
#enable_pin: !PA4
#step_distance: 0.002381
#nozzle_diameter: 0.400
#filament_diameter: 2.920
#heater_pin: PH6
#sensor_type: ATC Semitec 104GT-2
#sensor_pin: PF0
#control: pid
#pid_Kp: 21.00
#pid_Ki: 1.78
#pid_Kd: 61.93
#min_temp: 0
#max_temp: 300
#min_extrude_temp: 140
[heater_bed]
heater_pin: PE5
sensor_type: Honeywell 100K 135-104LAG-J01
sensor_pin: PF2
control: pid
pid_Kp: 162.0
pid_Ki: 17.0
pid_Kd: 378.0
min_temp: 0
max_temp: 130
[fan]
pin: PH5
[heater_fan nozzle_cooling_fan]
pin: PH3
[mcu]
serial: /dev/ttyACM0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 2
max_z_accel: 10
[ad5206 stepper_digipot]
enable_pin: PD7
scale: 2.08
# Channel 1 is E0, 2 is E1, 3 is unused, 4 is Z, 5 is X, 6 is Y
channel_1: 1.34
channel_2: 1.0
channel_4: 1.1
channel_5: 1.1
channel_6: 1.1
# Enable 16 micro-steps on steppers X, Y, Z, E0, E1
[static_digital_output stepper_config]
pins:
PG1, PG0,
PK7, PG2,
PK6, PK5,
PK3, PK4,
PK1, PK2
[static_digital_output yellow_led]
pins: !PB7
[display]
lcd_type: st7920
cs_pin: PG4
sclk_pin: PJ2
sid_pin: PG3
encoder_pins: ^PJ6,^PJ5
click_pin: ^!PE2
menu_timeout: 5
[probe]
pin: ^!PA0
z_offset:1.377
speed: 0.5
lift_speed: 1.5
samples: 2
sample_retract_dist: 1.0
samples_tolerance: 0.075
[bed_tilt]
points: -5,-3
290,-3
290,292
-5,292
speed: 75
horizontal_move_z: 5
[safe_z_home]
home_xy_position: -19,265
speed: 50.0
z_hop: 10.0
# Perform ABL by running G29 in START gcode
[gcode_macro G29]
gcode:
BED_TILT_CALIBRATE

View File

@@ -0,0 +1,392 @@
#This file contains pin mappings for the Lulzbot TAZ 6 circa 2017 using RAMBo and Dual v3 toolhead.
#To use this config, the firmware should be compiled for the AVR atmega2560.
# See the example.cfg file for a description of available parameters.
#-------------------------------------------------------------------------------------------------
#-------------------------------------------------------------------------------------------------
#-------------------------------------------------------------------------------------------------
# LULZBOT TAZ6 (RAMBo) with Dual v3 Extruder Master Config
#-------------------------------------------------------------------------------------------------
#-------------------------------------------------------------------------------------------------
#-------------------------------------------------------------------------------------------------
#Notes:
# - This config includes START and END gcode blocks that already factor in the Marlin X and Y
# offsets for the Dual v3 toolhead using the true 0.01mm/step (100step/mm) linear movement value
# instead of the 0.00995mm/step (100.5step/mm) value that is stock on the TAZ6 to compensate for
# material shrinkage. Material shrinkage compensation should be done in the slicer based on the
# material being used.
#
# - The START and END gcode macros use parameters that should be set using the supplied START and
# END gcode blocks. These blocks have gcode variables that have been tested with Cura
# Ultimaker Edition (UE) v4.3 and opareate based on how many extruders are active.
#
# - Pressure Advance feature has been disabled and should be tuned if enabled.
#
# - All PID values pulled from Lulzbot Marlin 1.1.9.34, however, the PID calibration procedure
# should be done to tune these values to your specific hardware.
#
#-------------------------------------------------------------------------------------------------
# LULZBOT TAZ6 Dual v3 Required Parameters
#-------------------------------------------------------------------------------------------------
[stepper_x]
step_pin: PC0
dir_pin: PL1
enable_pin: !PA7
step_distance: .010000
endstop_pin: ^PB6
position_endstop: -20
position_min: -20
position_max: 295
homing_speed: 50
second_homing_speed: 5
[stepper_y]
step_pin: PC1
dir_pin: !PL0
enable_pin: !PA6
step_distance: .010000
endstop_pin: ^PA1
position_endstop: 306
position_min: -17
position_max: 306
homing_speed: 50
second_homing_speed: 5
[stepper_z]
step_pin: PC2
dir_pin: PL2
enable_pin: !PA5
step_distance: 0.000625
endstop_pin: ^!PB4
position_endstop: 5.0
position_min: -5.8
position_max: 270
homing_speed: 10
second_homing_speed: 1
[extruder]
# This is Extruder0 on the dual v3 (all -1 index in schematic)
# The Dual v3 uses the same temp sensor as the single extruder
# The Dual v3 uses 2x SOMEstruders with modified PID values
step_pin: PC4
dir_pin: !PL7
enable_pin: !PA3
step_distance: 0.001315789473
nozzle_diameter: 0.500
filament_diameter: 2.850
heater_pin: PH4
sensor_type: ATC Semitec 104GT-2
sensor_pin: PF1
control: pid
pid_Kp: 47.45
pid_Ki: 4.83
pid_Kd: 116.63
min_temp: 0
max_temp: 300
min_extrude_temp: 120
[extruder1]
# This is Extruder1 on the dual v3 (all -0 index in schematic)
# The Dual v3 uses the same temp sensor as the single extruder
# The Dual v3 uses 2x SOMEstruders with modified PID values
step_pin: PC3
dir_pin: PL6
enable_pin: !PA4
step_distance: 0.001315789473
nozzle_diameter: 0.500
filament_diameter: 2.850
heater_pin: PH6
sensor_type: ATC Semitec 104GT-2
sensor_pin: PF0
control: pid
pid_Kp: 47.45
pid_Ki: 4.83
pid_Kd: 116.63
min_temp: 0
max_temp: 300
min_extrude_temp: 120
[heater_bed]
#The Heater Bed uses Honeywell 100K 135-104LAG-J01 temp sensor and PID control
heater_pin: PE5
sensor_type: Honeywell 100K 135-104LAG-J01
sensor_pin: PF2
control: pid
pid_Kp: 162.0
pid_Ki: 17.0
pid_Kd: 378.0
min_temp: 0
max_temp: 130
[fan]
#On Dual v3 heat break fan is connected to PH3 (part cooling fan on single extruder)
pin: PH3
[heater_fan nozzle_cooling_fan]
#On Dual v3 part fans are connected to PH5 (heat break fan on single extruder)
pin: PH5
[mcu]
serial: /dev/ttyACM0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 2
max_z_accel: 10
[ad5206 stepper_digipot]
enable_pin: PD7
scale: 2.08
# Channel 1 is E0, 2 is E1, 3 is unused, 4 is Z, 5 is X, 6 is Y
channel_1: 1.34
channel_2: 1.34
channel_4: 1.1
channel_5: 1.1
channel_6: 1.1
[static_digital_output stepper_config]
# Enable 16 micro-steps on steppers X, Y, Z, E0, E1
pins:
PG1, PG0,
PK7, PG2,
PK6, PK5,
PK3, PK4,
PK1, PK2
[static_digital_output yellow_led]
pins: !PB7
[display]
lcd_type: st7920
cs_pin: PG4
sclk_pin: PJ2
sid_pin: PG3
encoder_pins: ^PJ6,^PJ5
click_pin: ^!PE2
menu_timeout:5
[probe]
#Define the nozzle probe feature
pin: ^!PA0
#---> z_offset may vary from machine to machine. Stock is 1.377. <---
z_offset:1.350
speed: 1.0
samples: 2
samples_tolerance: 0.100
[bed_tilt]
#Enable bed tilt measurments using the probe we defined above
#Probe points using X0 Y0 offsets @ 0.01mm/step
points: -3,-6
282,-6
282,300
-3,300
speed: 75
horizontal_move_z: 5
[safe_z_home]
#Needed to lift the Z to clear homing switch on bed
# ---> WARNING! - Z_MAX limit switch not monitored in Klipper! <---
# ---> This could potentially crash the toolhead if already at the top of Z travel! <---
home_xy_position: -19,265
speed: 50.0
z_hop: 15.0
move_to_previous: False
[gcode_macro G29]
#Preform the ABL by running G29 in the START gcode script
gcode:
BED_TILT_CALIBRATE
#-------------------------------------------------------------------------------------------------
# Macros to Support TAZ6 START and END Blocks
#-------------------------------------------------------------------------------------------------
#Cura UE 4.3 (and perhaps older) has extruder enable controls that define the number of active
#extruders. These blocks use that information to control only the active extruders.
#NOTE: T0 is the default extruder, T1 is optional.
#START block for use with dual or single extrusion prints
[gcode_macro START_PRINT]
default_parameter_EXTRUDERS_ENABLED_COUNT: 1
default_parameter_MATERIAL_STANDBY_TEMPERATURE_0: 175
default_parameter_MATERIAL_STANDBY_TEMPERATURE_1: 175
default_parameter_MATERIAL_BED_TEMPERATURE_LAYER_0: 65
default_parameter_MATERIAL_PRINT_TEMPERATURE_LAYER_0_0: 210
default_parameter_MATERIAL_PRINT_TEMPERATURE_LAYER_0_1: 210
#configure the params below to tune the stage desired temperatures based on the standby temps
default_parameter_MATERIAL_SOFTEN_TEMP_OFFSET: 35
default_parameter_MATERIAL_WIPE_TEMP_OFFSET: 35
default_parameter_MATERIAL_PROBE_TEMP_OFFSET: 35
gcode:
;This profile is designed specifically for LulzBot TAZ6 3D Printer with the Yellowfin Dual running Klipper
M73 P0 ; clear GLCD progress bar
M107 ; disable fans
G90 ; absolute positioning
M104 S{MATERIAL_STANDBY_TEMPERATURE_0|int - MATERIAL_SOFTEN_TEMP_OFFSET|int} T0 ; soften filament
{% if EXTRUDERS_ENABLED_COUNT|int == 2 %}
M104 S{MATERIAL_STANDBY_TEMPERATURE_1|int - MATERIAL_SOFTEN_TEMP_OFFSET|int} T1 ; soften filament
{% endif %}
M140 S{MATERIAL_BED_TEMPERATURE_LAYER_0} ; get bed heating up
G28 X Y ; home X and Y
G1 X-17 F3000 ; clear X endstop
M117 Heating... ; LCD status message
M106 S64 ; Fan On lightly
M109 S{MATERIAL_STANDBY_TEMPERATURE_0|int - MATERIAL_SOFTEN_TEMP_OFFSET|int} T0 ; wait for temp
{% if EXTRUDERS_ENABLED_COUNT|int == 2 %}
M109 S{MATERIAL_STANDBY_TEMPERATURE_1|int - MATERIAL_SOFTEN_TEMP_OFFSET|int} T1 ; wait for temp
{% endif %}
M107 ; Fan Off
T0 ; return to first extruder
G28 Z ; home Z
T0 ; select this extruder first
M82 ; set extruder to absolute mode
G92 E0 ; set extruder to zero
G1 E-15 F100 ; suck up 15mm of filament
{% if EXTRUDERS_ENABLED_COUNT|int == 2 %}
T1 ; switch extruders
M82 ; set extruder to absolute mode
G92 E0 ; set extruder to zero
G1 E-15 F100 ; suck up 15mm of filament
{% endif %}
M104 S{MATERIAL_STANDBY_TEMPERATURE_0|int - MATERIAL_WIPE_TEMP_OFFSET|int} T0 ; set to wipe temp
{% if EXTRUDERS_ENABLED_COUNT|int == 2 %}
M104 S{MATERIAL_STANDBY_TEMPERATURE_1|int - MATERIAL_WIPE_TEMP_OFFSET|int} T1 ; set to wipe temp
{% endif %}
M106 ; Turn on fans to speed cooling
G1 X-18 Y107 F3000 ; move above wiper pad
M117 Cooling... ; LCD status message
M109 S{MATERIAL_STANDBY_TEMPERATURE_0|int - MATERIAL_WIPE_TEMP_OFFSET|int} T0 ; wait for T0 to reach temp
{% if EXTRUDERS_ENABLED_COUNT|int == 2 %}
M109 S{MATERIAL_STANDBY_TEMPERATURE_1|int - MATERIAL_WIPE_TEMP_OFFSET|int} T1 ; wait for T1 to reach temp
{% endif %}
M107 ; Turn off fan
M117 Wiping... ; LCD status message
T0 ; switch extruders
G1 Z1 ; push nozzle into wiper
G1 X -18 Y107 F1000 ; slow wipe
G1 X -18 Y102 F1000 ; slow wipe
G1 X -18 Y97 F1000 ; slow wipe
G1 X -17 Y102 F1000 ; slow wipe
G1 X -18 Y92 F1000 ; slow wipe
G1 X -17 Y107 F1000 ; slow wipe
G1 X -18 Y87 F2000 ; fast wipe
G1 X -17 Y77 F2000 ; fast wipe
G1 X -18 Y82 F2000 ; fast wipe
G1 X -17 Y72 F2000 ; fast wipe
G1 X -18 Y67 F2000 ; fast wipe
G1 X -17 Y62 F2000 ; fast wipe
G1 X -18 Y52 F2000 ; fast wipe
G1 X -17 Y57 F2000 ; fast wipe
G1 X -18 Y47 F2000 ; fast wipe
G1 X -17 Y52 F2000 ; fast wipe
G1 X -18 Y82 F2000 ; fast wipe
G1 X -17 Y42 Z2 F2000 ; fast wipe
G1 X -18 Y47 F2000 ; fast wipe
G1 X -17 Y37 F2000 ; fast wipe
G1 X -18 Y42 F2000 ; fast wipe
G1 X -17 Y37 Z1.5 F1000 ; slow wipe
G1 X -18 Y35 F1000 ; slow wipe
G1 X -17 Z5 ; raise extruder
M109 S{MATERIAL_STANDBY_TEMPERATURE_0|int - MATERIAL_PROBE_TEMP_OFFSET|int} ; heat to probe temp
M117 Leveling Bed... ; LCD status message
M204 S100 ; set accel for probing
G29 ; probe sequence (for auto-leveling)
G1 Z10 ; clear Z home switch
M204 S500 ; set accel back to normal
M117 Heating... ; LCD status message
M106 S64 ; Fan On lightly
M104 S{MATERIAL_PRINT_TEMPERATURE_LAYER_0_0} T0 ; set extruder temp
{% if EXTRUDERS_ENABLED_COUNT|int == 2 %}
M104 S{MATERIAL_PRINT_TEMPERATURE_LAYER_0_1} T1; set extruder temp
{% endif %}
G1 X100 Y-16 Z0.5 F3000 ; move to open space
M400 ; clear buffer
M109 S{MATERIAL_PRINT_TEMPERATURE_LAYER_0_0} T0 ; set extruder temp and wait
{% if EXTRUDERS_ENABLED_COUNT|int == 2 %}
M109 S{MATERIAL_PRINT_TEMPERATURE_LAYER_0_1} T1; set extruder temp and wait
{% endif %}
M107 ; Fan Off
M117 Purging... ; LCD status message
T0 ; select this extruder first
G92 E-15 ; set extruder negative amount to purge
G1 E0 F100 ; undo retraction
G92 E-15 ; set extruder negative amount to purge
G1 E0 F100 ; purge 15mm of filament
{% if EXTRUDERS_ENABLED_COUNT|int == 2 %}
T1 ; switch to second extruder
G92 E-15 ; set extruder negative amount to purge
G1 E0 F100 ; undo retraction
G92 E-15 ; set extruder negative amount to purge
G1 E0 F50 ; purge 15mm of filament
G92 E0 ; zero out T1
G1 E-15 F250 ; retract 15mm from T1 - extrude a 500mm skirt/brim to undo in initial layer
M400 ; clear buffer
M106 ; Max Fan Speed
M109 S{MATERIAL_STANDBY_TEMPERATURE_1} T1 ; wait for T1 to cool to prevent ooze
M107 ; Fan Off
{% endif %}
G1 Z0.5 ; clear bed (barely)
G1 X100 Y0 F5000 ; move above bed to shear off filament
T0 ; switch to first extruder
M190 S{MATERIAL_BED_TEMPERATURE_LAYER_0}; get bed temping up during first layer
G1 Z2 E0 F75
M400 ; clear buffer
M117 TAZ Printing... ; LCD status message
#END block for use with dual or single extrusion prints
[gcode_macro END_PRINT]
default_parameter_EXTRUDERS_ENABLED_COUNT: 1
default_parameter_MATERIAL_PART_REMOVAL_TEMPERATURE: 45
default_parameter_MATERIAL_KEEP_PART_REMOVAL_TEMPERATURE_T: 0
gcode:
M400
M104 S0 T0 ; T0 hotend off
{% if EXTRUDERS_ENABLED_COUNT|int == 2 %}
M104 S0 T1 ; T1 hotend off
{% endif %}
M107 ; fans off
G91 ; relative positioning
T0
G1 E-1 F300 ; retract the filament a bit before lifting the nozzle, to release some of the pressure
G1 Z20 E-5 X-20 Y-20 F3000 ; move Z up a bit and retract filament even more
G1 E6 ; re-prime extruder 1
{% if EXTRUDERS_ENABLED_COUNT|int == 2 %}
T1
G1 E-5 F300 ; retract the filament a bit before lifting the nozzle, to release some of the pressure
G1 E5 ; re-prime extruder 2
T0
{% endif %}
M117 Cooling ... ; progress indicator message
G90 ; absolute positioning
G1 Y0 F3000 ; move to cooling position
M190 S{MATERIAL_PART_REMOVAL_TEMPERATURE} ; set bed to cool off
G1 Y280 F3000 ; present finished print
M140 S{MATERIAL_KEEP_PART_REMOVAL_TEMPERATURE_T}; keep temperature or cool downs
M84 ; steppers off
G90 ; absolute positioning
M117 Print Complete ; progress indicator message
#---------------------------------------------------------------------------------------------------
# ULTIMAKER CURA START AND END SCRIPTS - Replace default START and STOP scripts with the below GCODE
#---------------------------------------------------------------------------------------------------
#---> Dual Extrusion Printer Profiles < ---
#; LulzBot Taz6 w/ Dual Extruder Klipper START gcode script (for Cura UE, tested on v4.3)
#; First, set START_PRINT Macro variables from Cura parameters
#SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=EXTRUDERS_ENABLED_COUNT VALUE={extruders_enabled_count}
#SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=MATERIAL_STANDBY_TEMPERATURE_0 VALUE={material_standby_temperature}
#SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=MATERIAL_STANDBY_TEMPERATURE_1 VALUE={material_standby_temperature, 1}
#SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=MATERIAL_BED_TEMPERATURE_LAYER_0 VALUE={material_bed_temperature_layer_0}
#SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=MATERIAL_PRINT_TEMPERATURE_LAYER_0_0 VALUE={material_print_temperature_layer_0}
#SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=MATERIAL_PRINT_TEMPERATURE_LAYER_0_1 VALUE={material_print_temperature_layer_0, 1}
#; Execute START_PRINT GCODE defined in Klipper config file
#START_PRINT
#; LulzBot Taz6 w/ Dual Extruder v3 Klipper END gcode script (for Cura UE, tested on v4.3)
#; First, set END_PRINT Macro variables from Cura parameters
#SET_GCODE_VARIABLE MACRO=END_PRINT VARIABLE=EXTRUDERS_ENABLED_COUNT VALUE={extruders_enabled_count}
#SET_GCODE_VARIABLE MACRO=END_PRINT VARIABLE=MATERIAL_PART_REMOVAL_TEMPERATURE VALUE=45
#SET_GCODE_VARIABLE MACRO=END_PRINT VARIABLE=MATERIAL_KEEP_PART_REMOVAL_TEMPERATURE_T VALUE=0
#; Execute END_PRINT GCODE defined in Klipper config file
#END_PRINT

View File

@@ -0,0 +1,113 @@
# Support for Makergear M2 printers circa 2012 that have the RAMBo
# v1.0d electronics along with the V3A extruder. The electronics use
# Allegro A4984 stepper drivers with 1/8th micro-stepping. To use
# this config, the firmware should be compiled for the AVR atmega2560.
[stepper_x]
step_pin: PC0
dir_pin: !PL1
enable_pin: !PA7
step_distance: .0225
endstop_pin: ^!PB6
position_endstop: 0.0
position_max: 200
homing_speed: 50
[endstop_phase stepper_x]
phases: 32
endstop_accuracy: .200
[stepper_y]
step_pin: PC1
dir_pin: PL0
enable_pin: !PA6
step_distance: .0225
endstop_pin: ^!PB5
position_endstop: 0.0
position_max: 250
homing_speed: 50
[endstop_phase stepper_y]
phases: 32
endstop_accuracy: .200
[stepper_z]
step_pin: PC2
dir_pin: !PL2
enable_pin: !PA5
step_distance: .005
endstop_pin: ^!PB4
position_min: 0.1
position_endstop: 0.7
position_max: 200
homing_retract_dist: 2.0
[endstop_phase stepper_z]
phases: 32
endstop_accuracy: .070
[extruder]
step_pin: PC3
dir_pin: PL6
enable_pin: !PA4
step_distance: .004242
nozzle_diameter: 0.350
filament_diameter: 1.750
heater_pin: PH6
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PF0
control: pid
pid_Kp: 7.0
pid_Ki: 0.1
pid_Kd: 12
min_temp: 0
max_temp: 210
[heater_bed]
heater_pin: PE5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PF2
control: watermark
min_temp: 0
max_temp: 100
[fan]
pin: PH5
[heater_fan nozzle_fan]
pin: PH3
max_power: 0.61
cycle_time: .000030
hardware_pwm: True
[mcu]
serial: /dev/ttyACM0
[printer]
kinematics: cartesian
max_velocity: 500
max_accel: 3000
max_z_velocity: 25
max_z_accel: 30
[ad5206 stepper_digipot]
enable_pin: PD7
# Scale the config so that the channel value can be specified in amps
scale: 1.56
# Channel 1 is E0, 2 is E1, 3 is unused, 4 is Z, 5 is X, 6 is Y
channel_1: 1.0
channel_2: 0.75
channel_4: 0.62 # Z-motor with 30 Ohm coils and 19V power can't exceed .633 Amps
channel_5: 0.82
channel_6: 0.82
# Enable 8 micro-steps on steppers X, Y, Z, E0
[static_digital_output stepper_config]
pins:
PG1, PG0,
PK7, PG2,
PK6, PK5,
PK3, PK4
[static_digital_output yellow_led]
pins: !PB7

View File

@@ -0,0 +1,102 @@
# Support for Makergear M2 printers circa 2016 that have the RAMBo
# electronics along with the V4 extruder and the black and silver Z
# stepper. The electronics use Allegro A4984 stepper drivers with
# 1/16th micro-stepping. To use this config, the firmware should be
# compiled for the AVR atmega2560.
[stepper_x]
step_pin: PC0
dir_pin: !PL1
enable_pin: !PA7
step_distance: .01125
endstop_pin: ^!PB6
position_endstop: 0
position_max: 205
homing_speed: 50
[stepper_y]
step_pin: PC1
dir_pin: PL0
enable_pin: !PA6
step_distance: .01125
endstop_pin: ^!PB5
position_endstop: 0
position_max: 250
homing_speed: 50
[stepper_z]
step_pin: PC2
dir_pin: !PL2
enable_pin: !PA5
step_distance: .0025
endstop_pin: ^!PB4
position_min: 0.1
position_endstop: 0.7
position_max: 200
homing_speed: 15
homing_retract_dist: 2.0
[extruder]
step_pin: PC3
dir_pin: PL6
enable_pin: !PA4
step_distance: .00188
nozzle_diameter: 0.350
filament_diameter: 1.750
heater_pin: PH6
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PF0
control: pid
pid_kp: 26.137
pid_ki: 1.489
pid_kd: 114.675
min_temp: 0
max_temp: 275
max_extrude_only_distance: 150.0
[heater_bed]
heater_pin: PE5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PF2
control: watermark
min_temp: 0
max_temp: 90
[fan]
pin: PH5
[heater_fan nozzle_cooling_fan]
pin: PH3
[mcu]
serial: /dev/ttyACM0
[printer]
kinematics: cartesian
max_velocity: 500
max_accel: 3000
max_z_velocity: 25
max_z_accel: 100
[ad5206 stepper_digipot]
enable_pin: PD7
# Scale the config so that the channel value can be specified in amps.
scale: 2.08
# Channel 1 is E0, 2 is E1, 3 is unused, 4 is Z, 5 is X, 6 is Y
channel_1: 1.25
channel_2: 0.75
channel_4: 0.75
channel_5: 0.75
channel_6: 0.75
# Enable 16 micro-steps on steppers X, Y, Z, E0, E1
[static_digital_output stepper_config]
pins:
PG1, PG0,
PK7, PG2,
PK6, PK5,
PK3, PK4,
PK1, PK2
[static_digital_output yellow_led]
pins: !PB7

View File

@@ -0,0 +1,79 @@
# This file contains a configuration for the "Micromake D1" delta
# printer (using the Makeboard 1.3 electronics). To use this config,
# the firmware should be compiled for the AVR atmega2560.
# See the example.cfg file for a description of available parameters.
[stepper_a]
step_pin: ar54
dir_pin: !ar55
enable_pin: !ar38
step_distance: .01
endstop_pin: ^ar2
homing_speed: 100
position_endstop: 319.5
arm_length: 217.0
[stepper_b]
step_pin: ar60
dir_pin: !ar61
enable_pin: !ar56
step_distance: .01
endstop_pin: ^ar15
[stepper_c]
step_pin: ar46
dir_pin: !ar48
enable_pin: !ar62
step_distance: .01
endstop_pin: ^ar19
[extruder]
step_pin: ar26
dir_pin: ar28
enable_pin: !ar24
step_distance: 0.006271
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: ar10
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog13
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
max_extrude_only_distance: 100.0
[fan]
pin: ar9
[mcu]
serial: /dev/ttyACM0
pin_map: arduino
[printer]
kinematics: delta
max_velocity: 300
max_accel: 3000
max_z_velocity: 150
delta_radius: 95
[delta_calibrate]
radius: 80
#[probe]
#pin: ^!ar18
[display]
lcd_type: hd44780
rs_pin: ar16
e_pin: ar17
d4_pin: ar23
d5_pin: ar25
d6_pin: ar27
d7_pin: ar29
encoder_pins: ^ar31, ^ar33
click_pin: ^!ar35
kill_pin: ^!ar41

View File

@@ -0,0 +1,161 @@
# This file contains common pin mappings for the 2017 Monoprice
# Mini Delta. To use this config, the firmware should be compiled for the
# STM32F070 microcontroller with an 8MHz crystal and USB for communication
# (instead of serial).
#
# IMPORTANT: Use of Kipper with a Monoprice Mini Delta requires a power supply
# with a _minimum_ 120 W (i.e. 10 A) capacity! The stock power supply will not
# work, as it can't power the hotend and the bed at the same time.
#
# Note 1: Some controller boards only trigger the bootloader when an update file
# is "printed" from the LCD, rather than supporting bootloader triggering
# during bootup. It may be preferable to use an ST-Link V2 to flash the
# firmware instead. Follow this link for an example of the commands needed to
# do this: https://github.com/arkorobotics/MiniDeltaBootloader
#
# Note 2: Klipper does not currently support the LCD interface used on this
# printer.
#
# See the example.cfg file for a description of available parameters.
# Stepper A is the front-left tower, as originally wired. If you've rewired
# your steppers to "correct" this, you'll need to swap these values.
[stepper_a]
homing_speed: 50
step_pin: PB12
dir_pin: PB11
enable_pin: !PB10
step_distance: .0175 # This is 57.14 steps per mm
endstop_pin: ^PC14
position_endstop: 125.00
arm_length: 120.8
# Some users report better success using the following value for arm_length:
#arm_length: 121.36
[stepper_b]
step_pin: PB2
dir_pin: PB1
enable_pin: !PB10
step_distance: .0175 # This is 57.14 steps per mm
endstop_pin: ^PC15
[stepper_c]
step_pin: PB14
dir_pin: PB13
enable_pin: !PB10
step_distance: .0175 # This is 57.14 steps per mm
endstop_pin: ^PC13
[extruder]
step_pin: PA7
dir_pin: !PA6
enable_pin: !PB0
step_distance: .02062 # This is 48.50 steps per mm
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA0
# calibrated at 240C on stock hardware
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 300
[heater_bed]
heater_pin: PA5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA4
# calibrated at 70C on stock hardware
control: pid
pid_kp: 51.249
pid_ki: 4.437
pid_kd: 147.983
min_temp: 0
max_temp: 130
# Print cooling fan (omit section if fan not present)
[fan]
pin: PA8
[mcu]
serial: /dev/ttyACM0
restart_method: command
[printer]
kinematics: delta
max_velocity: 150
max_accel: 1200
max_z_velocity: 100
# minimum_z_position is negative to allow delta calibration to work
minimum_z_position: -10.0
delta_radius: 63.00
# Some users report better success using the following value for arm_length:
#delta_radius: 62.70
[delta_calibrate]
radius: 50
speed: 50
horizontal_move_z: 5
######################################################################
# Bed leveling support
######################################################################
[bed_mesh]
speed: 50
horizontal_move_z: 5
mesh_radius: 50
round_probe_count: 5
fade_start: 1.0
fade_end: 0.0
######################################################################
# Bed probing hardware
######################################################################
[probe]
pin: ^!PB7
x_offset: 0.0
y_offset: 0.0
z_offset: -0.1
speed: 5.0
samples: 1
sample_retract_dist: 2.0
samples_result: average
samples_tolerance: 0.100
samples_tolerance_retries: 0
######################################################################
# G-Code macros and events
######################################################################
# G-Code macros (one may define any number of sections with a
# "gcode_macro" prefix).
[gcode_macro START_PRINT]
gcode:
G90 ; switch to absolute positioning - this line was added in case Cura doesn't include it by default
M82 ; set extruder to absolute mode - this line was added in case Cura doesn't include it by default
G28 ; start from home position
BED_MESH_CALIBRATE
G1 Z15.0 F4800 ; move the nozzle up 15mm
G92 E0 ; reset extrusion distance
G1 F200 E5 ; extrude 3mm of feed stock
G92 E0 ; reset extrusion distance again
G1 F4800
[gcode_macro END_PRINT]
gcode:
M104 S0 ; turn off hotend heater
M140 S0 ; turn off bed heater
G91 ; Switch to use Relative Coordinates
G1 E-3 F700 ; retract the filament a bit before lifting the nozzle to release some of the pressure
G1 Z2 F1000 ; raise platform 2mm from current position
G1 E-2 F700 ; retract filament even more
G90 ; Switch back to using absolute coordinates
G28 X Y Z ; Return to home position. Without an X Y or Z after G28 the print completion time will not be displayed on the Mini Delta's display.
M84 ; disable motors
M107 ; turn off fan. Don't use M106 S1. Using M106 S1 may prevent the fan from turning on for the following print. Some say M107 doesn't work for them but if the hotend is below 70 degrees it should work

View File

@@ -0,0 +1,148 @@
# This file contains pin mappings for the MTW Create (circa 2015). To
# use this config, the firmware should be compiled for the AVR
# atmega2560.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PC0
dir_pin: !PL1
enable_pin: !PA7
step_distance: .01
endstop_pin: ^PB6
#endstop_pin: ^PA2
position_endstop: 0
position_max: 250
homing_speed: 50
[stepper_y]
step_pin: PC1
dir_pin: PL0
enable_pin: !PA6
step_distance: .01
endstop_pin: ^PB5
#endstop_pin: ^PA1
position_endstop: 0
position_max: 320
homing_speed: 50
[stepper_z]
step_pin: PC2
dir_pin: PL2
enable_pin: !PA5
step_distance: .00125
endstop_pin: probe:z_virtual_endstop
#endstop_pin: ^PC7
position_endstop: 0.5
position_max: 225
[extruder]
step_pin: PC3
dir_pin: PL6
enable_pin: !PA4
step_distance: .0102
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PH6
sensor_type: ATC Semitec 104GT-2
sensor_pin: PF0
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 275
#Uncomment below for dual extruder printers
#[extruder1]
#step_pin: PC4
#dir_pin: PL7
#enable_pin: !PA3
#heater_pin: PH4
#sensor_pin: PF1
#step_distance: .0102
#nozzle_diameter: 0.400
#filament_diameter: 1.750
#sensor_type: ATC Semitec 104GT-2
#sensor_pin: PF0
#control: pid
#pid_Kp: 22.2
#pid_Ki: 1.08
#pid_Kd: 114
#min_temp: 0
#max_temp: 275
[heater_bed]
heater_pin: PE5
sensor_type: NTC 100K beta 3950
sensor_pin: PF2
control: watermark
min_temp: 0
max_temp: 130
[bltouch]
sensor_pin: PB4
control_pin: PL5
x_offset: -17
y_offset: 37
z_offset: 2.0
[safe_z_home]
home_xy_position: 125,150
z_hop: 10
z_hop_speed: 5
[bed_mesh]
mesh_min: 5,5
mesh_max: 225,225
[fan]
pin: PH5
[heater_fan nozzle_cooling_fan]
pin: PH3
[mcu]
serial: /dev/serial/by-id/usb-UltiMachine__ultimachine.com__RAMBo_854333433343516051F1-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[ad5206 stepper_digipot]
enable_pin: PD7
scale: 2.08
# Channel 1 is E0, 2 is E1, 3 is unused, 4 is Z, 5 is X, 6 is Y
channel_1: 1.34
channel_2: 1.0
channel_4: 1.1
channel_5: 1.1
channel_6: 1.1
# Enable 16 micro-steps on steppers X, Y, Z, E0, E1
[static_digital_output stepper_config]
pins:
PG1, PG0,
PK7, PG2,
PK6, PK5,
PK3, PK4,
PK1, PK2
[static_digital_output yellow_led]
pins: !PB7
# Common EXP1 / EXP2 (display) pins
[board_pins]
aliases:
# Common EXP1/EXP2 headers found on RAMBo v1.4
EXP1_1=PE6, EXP1_3=PG3, EXP1_5=PJ2, EXP1_7=PJ7, EXP1_9=<GND>,
EXP1_2=PE2, EXP1_4=PG4, EXP1_6=PJ3, EXP1_8=PJ4, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PB3, EXP2_3=PJ5, EXP2_5=PJ6, EXP2_7=PD4, EXP2_9=<GND>,
EXP2_2=PB1, EXP2_4=PB0, EXP2_6=PB2, EXP2_8=PE7, EXP2_10=PH2
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "spi"
# See the sample-lcd.cfg file for definitions of common LCD displays.

View File

@@ -0,0 +1,116 @@
# This file constains the pin mappings for the SeeMeCNC Rostock Max
# (version 2) delta printer from 2015. To use this config, the
# firmware should be compiled for the AVR atmega2560.
# See the example.cfg file for a description of available parameters.
[stepper_a]
step_pin: PC0
dir_pin: !PL1
enable_pin: !PA7
step_distance: .0125
endstop_pin: ^PA2
homing_speed: 50
position_endstop: 380
arm_length: 290.800
[stepper_b]
step_pin: PC1
dir_pin: PL0
enable_pin: !PA6
step_distance: .0125
endstop_pin: ^PA1
[stepper_c]
step_pin: PC2
dir_pin: !PL2
enable_pin: !PA5
step_distance: .0125
endstop_pin: ^PC7
[extruder]
step_pin: PC3
dir_pin: !PL6
enable_pin: !PA4
step_distance: .010793
nozzle_diameter: 0.500
filament_diameter: 1.750
heater_pin: PH6
sensor_type: ATC Semitec 104GT-2
sensor_pin: PF0
control: pid
pid_Kp: 20.9700
pid_Ki: 1.3400
pid_Kd: 80.5600
min_temp: 0
max_temp: 300
[heater_bed]
heater_pin: PE5
sensor_type: ATC Semitec 104GT-2
sensor_pin: PF2
control: pid
pid_Kp: 46.510
pid_Ki: 1.040
pid_Kd: 500.000
min_temp: 0
max_temp: 300
[fan]
pin: PH5
[heater_fan nozzle_cooling_fan]
pin: PH4
heater: extruder
[mcu]
serial: /dev/ttyACM0
[printer]
kinematics: delta
max_velocity: 300
max_accel: 3000
max_z_velocity: 150
delta_radius: 174.75
[ad5206 stepper_digipot]
enable_pin: PD7
scale: 2.08
channel_1: 1.34
channel_2: 1.0
channel_4: 1.1
channel_5: 1.1
channel_6: 1.1
[static_digital_output stepper_config]
pins:
PG1, PG0,
PK7, PG2,
PK6, PK5,
PK3, PK4,
PK1, PK2
[static_digital_output yellow_led]
pins: !PB7
[display]
lcd_type: hd44780
rs_pin: EXP1_4
e_pin: EXP1_3
d4_pin: EXP1_5
d5_pin: EXP1_6
d6_pin: EXP1_7
d7_pin: EXP1_8
encoder_pins: ^EXP2_3, ^EXP2_5
click_pin: ^!EXP1_2
#kill_pin: ^!EXP2_8
[board_pins]
aliases:
# Common EXP1/EXP2 headers found on RAMBo v1.4
EXP1_1=PE6, EXP1_3=PG3, EXP1_5=PJ2, EXP1_7=PJ7, EXP1_9=<GND>,
EXP1_2=PE2, EXP1_4=PG4, EXP1_6=PJ3, EXP1_8=PJ4, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PB3, EXP2_3=PJ5, EXP2_5=PJ6, EXP2_7=PD4, EXP2_9=<GND>,
EXP2_2=PB1, EXP2_4=PB0, EXP2_6=PB2, EXP2_8=PE7, EXP2_10=PH2
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "spi"

View File

@@ -0,0 +1,88 @@
# This file contains common pin mappings for Sovol Sv01 printer. To
# use this config, the firmware should be compiled for the AVR
# atmega2560.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: ar54
dir_pin: ar55
enable_pin: !ar38
step_distance: .0125
endstop_pin: ^ar3
position_endstop: 0
position_max: 300
homing_speed: 50
[stepper_y]
step_pin: ar60
dir_pin: ar61
enable_pin: !ar56
step_distance: .0125
endstop_pin: ^ar14
position_endstop: 0
position_max: 255
homing_speed: 50
[stepper_z]
step_pin: ar46
dir_pin: !ar48
enable_pin: !ar62
step_distance: .0025
endstop_pin: ^ar18
position_endstop: 0
position_max: 300
[extruder]
step_pin: ar26
dir_pin: !ar28
enable_pin: !ar24
step_distance: .0024
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: ar10
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog13
control: pid
pid_Kp: 31.147
pid_Ki: 2.076
pid_Kd: 116.803
min_temp: 0
max_temp: 265
[heater_bed]
heater_pin: ar8
sensor_type: ATC Semitec 104GT-2
sensor_pin: analog14
control: pid
pid_Kp: 72.174
pid_Ki: 1.816
pid_Kd: 717.224
min_temp: 0
max_temp: 110
[filament_switch_sensor my_sensor]
switch_pin: ar2
pause_on_runout: True
[fan]
pin: ar9
[mcu]
serial: /dev/ttyUSB0
pin_map: arduino
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[display]
lcd_type: st7920
cs_pin: ar16
sclk_pin: ar23
sid_pin: ar17
encoder_pins: ^ar33, ^ar31
click_pin: ^!ar35

View File

@@ -0,0 +1,125 @@
# Support for Tevo Flash. To use this config, the firmware should be
# compiled for the AVR atmega2560.
# Note, this config has only been tested on a modified Tevo Flash
# (using a Bondtech BMG extruder). If using a stock printer it may be
# necessary to update the extruder step_distance parameter.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: ar54
dir_pin: !ar55
enable_pin: !ar38
step_distance: .012491
endstop_pin: !ar3
position_endstop: -13
position_min: -13
position_max: 235
homing_speed: 50
[stepper_y]
step_pin: ar60
dir_pin: ar61
enable_pin: !ar56
step_distance: .012441
endstop_pin: !ar14
position_endstop: -3
position_min: -3
position_max: 235
homing_speed: 50
[stepper_z]
step_pin: ar46
dir_pin: ar48
enable_pin: !ar62
step_distance: .002520
position_max: 250
endstop_pin: probe:z_virtual_endstop
position_min: -2
[stepper_z1]
step_pin: ar36
dir_pin: ar34
enable_pin: !ar30
step_distance: .002520
[extruder]
step_pin: ar26
dir_pin: ar28
enable_pin: !ar24
step_distance: .002401
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: ar10
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog13
control: pid
pid_Kp: 18.547
pid_Ki: 0.788
pid_Kd: 109.193
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: ar8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog14
control: pid
pid_Kp: 38.824
pid_Ki: 0.539
pid_Kd: 698.838
min_temp: 0
max_temp: 70
[heater_fan my_nozzle_fan]
pin: ar7
[fan]
pin: ar9
[mcu]
serial: /dev/ttyUSB0
pin_map: arduino
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 1000
max_z_velocity: 5
max_z_accel: 100
[display]
lcd_type: uc1701
cs_pin: ar25
a0_pin: ar27
encoder_pins: ^!ar31, ^!ar33
click_pin: ^!ar35
kill_pin: ar64
[bltouch]
sensor_pin: ar18
control_pin: ar11
x_offset: 0
y_offset: 18
z_offset: 1.64
samples: 3
sample_retract_dist: 5
# The homing_override section modifies the default G28 behavior
[homing_override]
set_position_z: 0
axes: z
gcode:
G90
G1 Z5 F600
G28 X0 Y0
G1 X118 Y118 F3600
G28 Z0
# Mesh Bed Leveling.
[bed_mesh]
mesh_min: 5,18
mesh_max: 230,228
probe_count: 9,9
algorithm: bicubic

View File

@@ -0,0 +1,97 @@
# Support for the green Tevo Tarantula Pro. To use this config, the firmware
# should be compiled for the AVR atmega2560.
# Note that this config file is for the "old green" Tarantula pro, with a
# MKS Gen_l 8-bit board.
# It _will not_ work out of the box for the "new orange" Tarantula pro with a
# MKS Sgen_l 32-bit board.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: ar54
dir_pin: !ar55
enable_pin: !ar38
step_distance: 0.012583
endstop_pin: ^!ar3
position_endstop: -2
position_max: 220
position_min: -2
homing_speed: 25.0
[stepper_y]
step_pin: ar60
dir_pin: ar61
enable_pin: !ar56
step_distance: 0.01256
endstop_pin: ^!ar14
position_endstop: 0
position_max: 220
homing_speed: 25.0
[stepper_z]
step_pin: ar46
dir_pin: ar48
enable_pin: !ar62
step_distance: 0.002492
endstop_pin: ^!ar18
position_endstop: 0
position_max: 200
# Enable for dual-z addon
#[stepper_z1]
#step_pin: ar36
#dir_pin: ar34
#enable_pin: !ar30
#step_distance: 0.002492
[extruder]
step_pin: ar26
dir_pin: ar28
enable_pin: !ar24
step_distance: 0.002470
nozzle_diameter: 0.400
filament_diameter: 1.75
heater_pin: ar10
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog13
control: pid
pid_Kp: 22.5
pid_Ki: 1.78
pid_Kd: 74.16
min_temp: 0
max_temp: 220
[heater_bed]
heater_pin: ar8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog14
control: watermark
min_temp: 0
max_temp: 110
[fan]
pin: ar9
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
pin_map: arduino
[printer]
kinematics: cartesian
max_velocity: 400
max_accel: 3000
max_z_velocity: 50
max_z_accel: 100
[heater_fan nozzle_fan]
pin: ar7
[display]
lcd_type: uc1701
cs_pin: ar25
a0_pin: ar27
encoder_pins: ^!ar31, ^!ar33
click_pin: ^!ar35
kill_pin: !ar41
menu_reverse_navigation: true

View File

@@ -0,0 +1,103 @@
# This file contains common pin mappings for Tronxy P802E printer. To
# use this config, the firmware should be compiled for the AVR
# atmega1284p. The Tronxy P802M and P802MA is similar, but will need
# different position_max and position_min settings.
# Note that the "make flash" command does not work with Tronxy boards -
# the boards are typically flashed with this command:
# avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PD7
dir_pin: PC5
enable_pin: !PD6
step_distance: .01
endstop_pin: ^!PC2
position_endstop: -8
position_max: 220
position_min: -8
homing_speed: 50
[stepper_y]
step_pin: PC6
dir_pin: PC7
enable_pin: !PD6
step_distance: .01
endstop_pin: ^!PC3
position_endstop: 0
position_min: 0
position_max: 220
homing_speed: 50
[stepper_z]
step_pin: PB3
dir_pin: !PB2
enable_pin: !PA5
step_distance: .0025
endstop_pin: ^!PC4
position_endstop: 0
position_max: 210
homing_speed: 20
[extruder]
step_pin: PB1
dir_pin: PB0
enable_pin: !PD6
step_distance: .0105
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PD5
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA7
control: pid
pid_kp: 23.060
pid_ki: 1.025
pid_kd: 129.711
min_temp: 0
max_temp: 250
max_extrude_only_distance: 400
[heater_bed]
heater_pin: PD4
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA6
control: pid
pid_kp: 72.174
pid_ki: 1.677
pid_kd: 776.767
min_temp: 0
max_temp: 110
[fan]
pin: PB4
[mcu]
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A96PLN7R-if00-port0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 1000
max_z_velocity: 20
max_z_accel: 100
[display]
lcd_type: hd44780
rs_pin: PA3
e_pin: PA2
d4_pin: PD2
d5_pin: PD3
d6_pin: PC0
d7_pin: PC1
up_pin: PA1
analog_range_up_pin: 9000, 13000
down_pin: PA1
analog_range_down_pin: 800, 1300
click_pin: PA1
analog_range_click_pin: 2000, 2500
back_pin: PA1
analog_range_back_pin: 4500, 5000
#kill_pin: PA1
#analog_range_kill_pin: 400, 600

View File

@@ -0,0 +1,103 @@
# This file contains common pin mappings for Tronxy P802M printer. To
# use this config, the firmware should be compiled for the AVR
# atmega1284p. The Tronxy P802MA is similar, but will need
# auto leveling configuration.
# Note that the "make flash" command does not work with Tronxy boards -
# the boards are typically flashed with this command:
# avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PD7
dir_pin: PC5
enable_pin: !PD6
step_distance: .01
endstop_pin: ^!PC2
position_endstop: -8
position_max: 220
position_min: -45
homing_speed: 50
[stepper_y]
step_pin: PC6
dir_pin: PC7
enable_pin: !PD6
step_distance: .01
endstop_pin: ^!PC3
position_endstop: 0
position_min: -5
position_max: 220
homing_speed: 50
[stepper_z]
step_pin: PB3
dir_pin: !PB2
enable_pin: !PA5
step_distance: .0025
endstop_pin: ^!PC4
position_endstop: 0
position_max: 230
homing_speed: 20
[extruder]
step_pin: PB1
dir_pin: PB0
enable_pin: !PD6
step_distance: .0105
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PD5
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA7
control: pid
pid_kp: 23.060
pid_ki: 1.025
pid_kd: 129.711
min_temp: 0
max_temp: 250
max_extrude_only_distance: 400
[heater_bed]
heater_pin: PD4
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA6
control: pid
pid_kp: 72.174
pid_ki: 1.677
pid_kd: 776.767
min_temp: 0
max_temp: 110
[fan]
pin: PB4
[mcu]
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A96PLN7R-if00-port0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 1000
max_z_velocity: 20
max_z_accel: 100
[display]
lcd_type: hd44780
rs_pin: PA3
e_pin: PA2
d4_pin: PD2
d5_pin: PD3
d6_pin: PC0
d7_pin: PC1
up_pin: PA1
analog_range_up_pin: 9000, 13000
down_pin: PA1
analog_range_down_pin: 800, 1300
click_pin: PA1
analog_range_click_pin: 2000, 2500
back_pin: PA1
analog_range_back_pin: 4500, 5000
#kill_pin: PA1
#analog_range_kill_pin: 400, 600

View File

@@ -0,0 +1,92 @@
# This file contains pin mappings for the Tronxy X5S (circa 2017). To
# use this config, the firmware should be compiled for the AVR
# atmega1284p.
# Note, a number of Melzi boards are shipped with a bootloader that
# requires the following command to flash the board:
# avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex
# If the above command does not work and "make flash" does not work
# then one may need to flash a bootloader to the board - see the
# Klipper docs/Bootloaders.md file for more information.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PD7
dir_pin: !PC5
enable_pin: !PD6
step_distance: .0125
endstop_pin: ^!PC2
position_endstop: 0
position_max: 330
homing_speed: 50
[stepper_y]
step_pin: PC6
dir_pin: !PC7
enable_pin: !PD6
step_distance: .0125
endstop_pin: ^!PC3
position_endstop: 0
position_max: 310
homing_speed: 50
[stepper_z]
step_pin: PB3
dir_pin: PB2
enable_pin: !PD6
step_distance: .0025
endstop_pin: ^!PC4
position_endstop: 0.5
position_max: 400
[extruder]
step_pin: PB1
dir_pin: PB0
enable_pin: !PD6
step_distance: .0111
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PD5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA7
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 275
[heater_bed]
heater_pin: PD4
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA6
control: watermark
min_temp: 0
max_temp: 150
[verify_heater heater_bed]
# adjust for personal bed setup, this prevents stock heated bed from issuing
# false positive heating errors due to slow temperature increase
check_gain_time: 600
[fan]
pin: PB4
[mcu]
serial: /dev/ttyUSB0
[printer]
kinematics: corexy
max_velocity: 300
max_accel: 1000
max_z_velocity: 20
max_z_accel: 100
[display]
lcd_type: st7920
cs_pin: PA1
sclk_pin: PC0
sid_pin: PA3
encoder_pins: ^PD2, ^PD3
click_pin: ^!PA5

View File

@@ -0,0 +1,136 @@
# This is a Klipper configuration for TronXY X5SA, with
# CXY-V6 motherboard.
# === FLASHING WITH STOCK BOOTLOADER ===
# You should make firmware for STM32F103 with bootloader offset
# at 0x8008800 (Chitu v6 Bootloader). Uncheck USB, and leave default
# serial settings.
#
# Use "./update_chitu.py out/klipper.bin update.cbd" to generate update.cbd.
# Put `update.cbd` onto SD card, and reboot the printer.
# It will be automatically installed, and you will be able to update it this way.
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command
[printer]
kinematics: corexy
max_velocity: 300
max_accel: 3000
max_z_velocity: 25
max_z_accel: 30
[stepper_x]
step_pin: PE5
dir_pin: !PE6
enable_pin: !PC13
step_distance: .006275
endstop_pin: !PG10
position_endstop: -1
position_min: -1
position_max: 350
homing_speed: 50
homing_retract_dist: 10
second_homing_speed: 10.0
[stepper_y]
step_pin: PE2
dir_pin: !PE3
enable_pin: !PE4
step_distance: .006275
endstop_pin: !PA12
position_endstop: 0
position_max: 330
homing_retract_dist: 10
homing_speed: 50.0
second_homing_speed: 10.0
[stepper_z]
step_pin: PB9
dir_pin: PE0
enable_pin: !PE1
step_distance: .00125
endstop_pin: probe:z_virtual_endstop
position_max: 400
position_min: -2
[extruder]
step_pin: PB4
dir_pin: PB5
enable_pin: !PB8
step_distance: 0.0111
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PG12
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA1
control: pid
pid_Kp: 18.831
pid_Ki: 0.821
pid_Kd: 108.044
min_temp: 0
max_temp: 250
max_extrude_only_distance: 300
[heater_bed]
heater_pin: PG11
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA0
control: pid
min_temp: 0
max_temp: 130
pid_Kp: 73.932
pid_Ki: 1.521
pid_Kd: 898.279
[heater_fan hotend_fan]
pin: PG14
fan_speed: 0.5
[fan]
pin: PG13
max_power: 0.5
[controller_fan drivers_fan]
pin: PD6
[filament_switch_sensor sentinel]
pause_on_runout: True
runout_gcode:
M25
switch_pin: PA15
[output_pin beeper]
pin: PB0
[safe_z_home]
home_xy_position: 165,165
speed: 50
z_hop: 10
z_hop_speed: 5
[bed_screws]
screw1: 5,5
screw2: 165,5
screw3: 325,5
screw4: 5,325
screw5: 165,325
screw6: 325,325
[bed_mesh]
speed: 120
probe_count: 5,5
horizontal_move_z: 5
algorithm: lagrange
mesh_min : 20,20
mesh_max : 310,310
mesh_pps: 0
[probe]
x_offset: -40
y_offset: 0
pin: !PG9
speed: 30
z_offset: 2

View File

@@ -0,0 +1,91 @@
# This file contains the configurations and pin mappings for the
# Tronxy X8 using the CXY-V2-0508 board. To use this config file, the
# firmware should be compiled for the AVR ATmega1284p, 16MHz.
# Some Tronxy printers come without a bootloader present on the
# board. In that case, use MCUDude MightyCore ATmega1284p bootloader
# with TQFP44 Sanguino pinout. The package can be found at
# (https://github.com/MCUdude/MightyCore). Follow Klipper install
# instructions but instead of "make flash FLASH_DEVICE=/dev/ttyACM0",
# use the following command:
# avrdude -p atmega1284p -c arduino -b 115200 -P /dev/ttyUSB0 -U out/klipper.elf.hex
# See the example.cfg and example-extras.cfg files for a description
# of available parameters.
[mcu]
serial: /dev/ttyUSB0
[stepper_x]
step_pin: PD7
dir_pin: PC5
enable_pin: !PD6
step_distance: 0.010
endstop_pin: ^!PC2
position_endstop: -47
position_max: 220
position_min: -47
homing_speed: 50
[stepper_y]
step_pin: PC6
dir_pin: PC7
enable_pin: !PD6
step_distance: 0.010
endstop_pin: ^!PC3
position_endstop: 0
position_max: 220
position_min: 0
homing_speed: 50
[stepper_z]
step_pin: PB3
dir_pin: !PB2
enable_pin: !PD6
step_distance: 0.0025
endstop_pin: ^!PC4
position_endstop: 0
position_max: 210
homing_speed: 10
[extruder]
step_pin: PB1
dir_pin: PB0
enable_pin: !PD6
step_distance: 0.009931
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PD5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA7
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 275
[heater_bed]
heater_pin: PD4
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA6
control: watermark
max_delta: 2.0
min_temp: 0
max_temp: 150
[fan]
pin: PB4
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 1000
max_z_velocity: 20
max_z_accel: 100
[display]
lcd_type: st7920
cs_pin: PA1
sclk_pin: PC0
sid_pin: PA3

View File

@@ -0,0 +1,89 @@
# This file contains common pin mappings for the Two Trees Sapphire
# Pro printer from 2020. To use this config, the firmware should be
# compiled for the STM32F103. When running "make menuconfig", enable
# "extra low-level configuration setup", select the 28KiB bootloader,
# disable "USB for communication", select USART3 for the "Serial
# Port", and set "GPIO pins to set at micro-controller startup" to
# "!PC6,!PD13".
# Note that the "make flash" command does not work with the Sapphire
# Pro. After running "make", run the following command:
# ./scripts/update_mks_robin.py out/klipper.bin out/Robin_nano35.bin
# Copy the file out/Robin_nano35.bin to an SD card and then restart the
# printer with that SD card.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PE3
dir_pin: !PE2
enable_pin: !PE4
step_distance: .01
endstop_pin: !PA15
position_endstop: 0
position_max: 230
homing_speed: 50
[stepper_y]
step_pin: PE0
dir_pin: !PB9
enable_pin: !PE1
step_distance: .01
endstop_pin: !PA12
position_endstop: 230
position_max: 230
homing_speed: 50
[stepper_z]
step_pin: PB5
dir_pin: PB4
enable_pin: !PB8
step_distance: .0025
endstop_pin: !PA11
position_endstop: 0.5
position_max: 230
[extruder]
step_pin: PD6
dir_pin: !PD3
enable_pin: !PB3
step_distance: .0021
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC3
sensor_type: ATC Semitec 104GT-2
sensor_pin: PC1
control: pid
pid_Kp: 14.669
pid_Ki: 0.572
pid_Kd: 94.068
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PA0
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC0
control: pid
pid_Kp: 325.10
pid_Ki: 63.35
pid_Kd: 417.10
min_temp: 0
max_temp: 130
[fan]
pin: PB1
[mcu]
serial: /dev/ttyUSB0
restart_method: command
[printer]
kinematics: corexy
max_velocity: 250
max_accel: 4500
max_z_velocity: 25
max_z_accel: 100
[static_digital_output reset_display]
pins: !PC6, !PD13

View File

@@ -0,0 +1,95 @@
# This file contains common pin mappings for the Velleman K8200 and
# 3Drag 3D printers (circa 2013). To use this config, the firmware
# should be compiled for the AVR atmega2560.
# Based on config from Martin Malmqvist and Per Hjort.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: ar54
dir_pin: !ar55
enable_pin: !ar38
step_distance: .0125
endstop_pin: ^ar3
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: ar60
dir_pin: !ar61
enable_pin: !ar56
step_distance: .0125
endstop_pin: ^ar14
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: ar46
dir_pin: !ar48
enable_pin: !ar63
step_distance: .0025
endstop_pin: ^ar18
position_endstop: 0.5
# Set position_max to 200 if you have the original Z-axis setup.
position_max: 250
[extruder]
step_pin: ar26
# Remove the "!" from dir_pin if you have an original extruder
dir_pin: !ar28
enable_pin: !ar24
# You will have to calculate your own step_distance.
# This is for the belted extruder https://www.thingiverse.com/thing:339928
step_distance: .001333
nozzle_diameter: 0.400
filament_diameter: 2.85
heater_pin: ar10
sensor_type: ATC Semitec 104GT-2
sensor_pin: analog13
control: pid
pid_Kp: 21.503
pid_Ki: 1.103
pid_Kd: 104.825
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: ar9
sensor_type: ATC Semitec 104GT-2
sensor_pin: analog14
control: pid
pid_Kp: 75.283
pid_Ki: 0.588
pid_Kd: 2408.103
min_temp: 0
max_temp: 130
[fan]
pin: ar8
kick_start_time: 0.500
[mcu]
serial: /dev/ttyUSB0
pin_map: arduino
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 1000
max_z_velocity: 10
max_z_accel: 100
# The LCD is untested - "RepRapDiscount 2004 Smart Controller" displays
#[display]
#lcd_type: hd44780
#rs_pin: ar27
#e_pin: ar29
#d4_pin: ar37
#d5_pin: ar35
#d6_pin: ar33
#d7_pin: ar31
#encoder_pins: ^ar16, ^ar17
#click_pin: ^!ar23

View File

@@ -0,0 +1,107 @@
# Support for the Wanhao Duplicator 6 and its clones (eg, Monoprice
# Ultimate). To use this config, the firmware should be compiled for
# the AVR atmega2560.
# See the example.cfg file for a description of available parameters.
[stepper_x]
step_pin: PA3
dir_pin: !PA1
enable_pin: !PA5
step_distance: 0.0125
endstop_pin: ^!PA0
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: PC5
dir_pin: PC4
enable_pin: !PC6
step_distance: 0.0125
endstop_pin: ^!PA4
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: PC2
dir_pin: !PC1
enable_pin: !PC3
step_distance: 0.0025
endstop_pin: ^!PA7
position_endstop: 0.5
position_max: 175
homing_speed: 25
[extruder]
step_pin: PL7
dir_pin: !PL6
enable_pin: !PC0
step_distance: 0.010091
nozzle_diameter: 0.400
filament_diameter: 1.7500
heater_pin: PE4
sensor_type: PT100 INA826
sensor_pin: PK0
control: pid
pid_Kp: 26.571
pid_Ki: 0.927
pid_Kd: 190.318
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PG5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PK2
control: pid
pid_Kp: 59.593
pid_Ki: 3.01
pid_Kd: 294.985
min_temp: 0
max_temp: 110
[fan]
pin: PH4
[mcu]
serial: /dev/ttyACM0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
# Software control for Stepper current
[output_pin stepper_xy_current]
pin: PL5
pwm: True
scale: 2.782
cycle_time: .000030
hardware_pwm: True
static_value: 1.2
[output_pin stepper_z_current]
pin: PL4
pwm: True
scale: 2.782
cycle_time: .000030
hardware_pwm: True
static_value: 1.2
[output_pin stepper_e_current]
pin: PL3
pwm: True
scale: 2.782
cycle_time: .000030
hardware_pwm: True
static_value: 1.0
[display]
lcd_type: ssd1306
reset_pin: PE3
encoder_pins: ^PG1, ^PG0
click_pin: ^!PD2

Some files were not shown because too many files have changed in this diff Show More