aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* docs: Provide additional information on "make flash" failuresKevin O'Connor2017-12-114-3/+28
| | | | | | Add some additional information on "make flash" problems. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* pins: Fix atmega168/328 mappingsKevin O'Connor2017-12-091-1/+2
| | | | | | | | | 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>
* delta: Default stepper_b/c position_endstop to stepper_a'sKevin O'Connor2017-12-083-7/+20
| | | | | | | 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>
* delta: Support different arm lengths for each towerKevin O'Connor2017-12-082-26/+30
| | | | | | | 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>
* delta: Rework actuator_to_cartesian() using trilaterationKevin O'Connor2017-12-081-26/+23
| | | | | | | | | 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>
* mcu: Store MCU_stepper commanded_pos as a floatKevin O'Connor2017-12-071-7/+6
| | | | | | | 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>
* stepper: Only align the stepper motor to a full step when requestedKevin O'Connor2017-12-072-1/+8
| | | | | | | | | 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>
* extractconfig: Add helper script that extracts config files from a logKevin O'Connor2017-12-061-0/+56
| | | | | | | 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>
* homing: Directly interact with the kinematic class on query_endstops()Kevin O'Connor2017-12-066-21/+15
| | | | | | Move the query_endstop logic out of toolhead.py and into homing.py. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* homing: Directly interact with the kinematic class when homingKevin O'Connor2017-12-063-10/+13
| | | | | | | 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>
* mcu: Remove unneeded MCU_digital_out.get_last_setting() methodKevin O'Connor2017-12-063-9/+1
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* mcu: Reset the stepper step clock on init - not after each motor onKevin O'Connor2017-12-062-15/+8
| | | | | | | 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>
* mcu: Be sure all moves are completed before raising a home timeoutKevin O'Connor2017-12-061-7/+6
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* homing: Make sure to clean up homing state even if homing failsKevin O'Connor2017-12-062-44/+53
| | | | | | | | | | | 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>
* homing: Pass list of endstops (not steppers) to the homing codeKevin O'Connor2017-12-066-39/+40
| | | | | | | 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>
* mcu: Make sure steppers added to an endstop are on the same mcuKevin O'Connor2017-12-061-0/+2
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* mcu: Make sure all endstop objects are disabled on a reconnectKevin O'Connor2017-12-061-0/+3
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* gcode: Move SET_SERVO command from gcode.py to chipmisc.pyKevin O'Connor2017-12-063-19/+25
| | | | | | | 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>
* gcode: Rework gcode handler setup to allow dynamic command registrationKevin O'Connor2017-12-061-17/+21
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* gcode: Add a get_str() methodKevin O'Connor2017-12-061-17/+10
| | | | | | | 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>
* gcode: Simplify exception handlingKevin O'Connor2017-12-062-20/+21
| | | | | | | | 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>
* gcode: Always allow M112 commandKevin O'Connor2017-12-061-0/+1
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* klippy: Always recommend a FIRMWARE_RESTART on a shutdown eventKevin O'Connor2017-12-031-6/+3
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stepper: get_homed_offset() should return a floatKevin O'Connor2017-12-031-2/+2
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* docs: Add a FAQ documentKevin O'Connor2017-11-303-2/+108
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stepcompress: Fix proactive queue flushing on move with 64K+ stepsKevin O'Connor2017-11-291-16/+21
| | | | | | | | | | | | | | | 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>
* homing: Base homing cpu delay on estimated number of steps neededKevin O'Connor2017-11-292-4/+11
| | | | | | | | | 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>
* docs: Add further details on how to report a bugKevin O'Connor2017-11-211-3/+10
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stepper: Support for multiple steppers controlling a single axisKevin O'Connor2017-11-184-4/+72
| | | | | | | 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>
* stepper: Add get_endstops() / set_position wrappersKevin O'Connor2017-11-186-21/+33
| | | | | | | 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>
* stepper: Store pointers to step_const and step_delta in PrinterStepperKevin O'Connor2017-11-185-35/+28
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stepper: Remove unused variables from PrinterStepper classKevin O'Connor2017-11-181-4/+2
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stepper: Additional code commentsKevin O'Connor2017-11-181-5/+9
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* stepper: Calculate the stepper name directly from the config sectionKevin O'Connor2017-11-185-8/+10
| | | | | | | 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>
* heater: Avoid math errors on extreme ADC readingsKevin O'Connor2017-11-131-0/+1
| | | | | | | Avoid log(0) and divide by zero errors in the thermistor calc_temp() method. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* config: List E1 micro-step pins in order in generic-rambo.cfgKevin O'Connor2017-11-081-1/+1
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* config: Add a generic-printrboard.cfg fileKevin O'Connor2017-10-301-0/+76
| | | | | | Add an example config file for the Printrboard board. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* graphstats: Fix graphing scriptKevin O'Connor2017-10-291-4/+6
| | | | | | | | 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>
* docs: Note version 0.5.0 releaseKevin O'Connor2017-10-251-0/+20
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* config: Warn Beaglebone PRU users that pinmux settings are not updatedKevin O'Connor2017-10-252-0/+12
| | | | | | | | | 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>
* docs: Update Installation document to recommend latest octoprint versionKevin O'Connor2017-10-251-2/+2
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* linux: Remove unneeded includes from timer.cKevin O'Connor2017-10-231-2/+0
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* pru: Force load the ADC module during PRU startupKevin O'Connor2017-10-181-0/+3
| | | | | | | | 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>
* pru: Don't reset the ADC reset complete flag if a shutdown occursKevin O'Connor2017-10-181-1/+1
| | | | | | Only set the have_done_reset flag if the reset completes successfully. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* linux: Fix typo causing config_reset to not fully restartKevin O'Connor2017-10-151-1/+1
| | | | | | A typo in the code caused the wrong config_reset code to be run. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* linux: Open watchdog device after consoleKevin O'Connor2017-10-151-7/+5
| | | | | | | | 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>
* linux: Make sure to close fd on analog/pca9685 init failureKevin O'Connor2017-10-142-11/+17
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* pca9685: Fix missing devices_count incrementKevin O'Connor2017-10-131-0/+1
| | | | | | The devices_count was not being incremented on each device add. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* clocksync: Start with adjusted_freq of 1.0Kevin O'Connor2017-10-131-1/+1
| | | | | | | 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>
* serialhdl: Don't open port at 1200 baudKevin O'Connor2017-10-122-10/+10
| | | | | | | 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>