Skip to content

G33 updates #6809

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 21, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
224 changes: 131 additions & 93 deletions Marlin/Marlin_main.cpp

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -447,10 +447,10 @@
#define DELTA_DIAGONAL_ROD 218.0 // mm

// Horizontal distance bridged by diagonal push rods when effector is centered.
#define DELTA_RADIUS 100.00 //mm // get this value from auto calibrate
#define DELTA_RADIUS 100.00 //mm Get this value from auto calibrate

// height from z=0 to home position
#define DELTA_HEIGHT 295.00 // get this value from auto calibrate - use G33 P1 A at 1st time calibration
#define DELTA_HEIGHT 295.00 // get this value from auto calibrate - use G33 P1 at 1st time calibration

// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
#define DELTA_PRINTABLE_RADIUS 85.0
Expand All @@ -460,8 +460,8 @@
// See http://minow.blogspot.com/index.html#4918805519571907051
#define DELTA_CALIBRATION_MENU

// set the radius for the calibration probe points - max 0.8 * DELTA_PRINTABLE_RADIUS if DELTA_AUTO_CALIBRATION enabled
#define DELTA_CALIBRATION_RADIUS (DELTA_PRINTABLE_RADIUS - 17) // mm
// set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 if DELTA_AUTO_CALIBRATION enabled
#define DELTA_CALIBRATION_RADIUS ((DELTA_PRINTABLE_RADIUS) * 0.869) // mm

// G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results)
#define DELTA_AUTO_CALIBRATION
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -454,10 +454,10 @@
#define DELTA_CARRIAGE_OFFSET 22.0 // mm

// Horizontal distance bridged by diagonal push rods when effector is centered.
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET - DELTA_EFFECTOR_OFFSET - DELTA_CARRIAGE_OFFSET) //mm // get this value from auto calibrate
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET - DELTA_EFFECTOR_OFFSET - DELTA_CARRIAGE_OFFSET) //mm Get this value from auto calibrate

// height from z=0.00 to home position
#define DELTA_HEIGHT 280 // get this value from auto calibrate - use G33 C-1 at 1st time calibration
#define DELTA_HEIGHT 280 // get this value from auto calibrate - use G33 P1 at 1st time calibration

// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
#define DELTA_PRINTABLE_RADIUS 85.0
Expand All @@ -467,8 +467,8 @@
// See http://minow.blogspot.com/index.html#4918805519571907051
//#define DELTA_CALIBRATION_MENU

// set the radius for the calibration probe points - max 0.8 * DELTA_PRINTABLE_RADIUS if DELTA_AUTO_CALIBRATION enabled
#define DELTA_CALIBRATION_RADIUS (DELTA_PRINTABLE_RADIUS - 17) // mm
// set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 if DELTA_AUTO_CALIBRATION enabled
#define DELTA_CALIBRATION_RADIUS ((DELTA_PRINTABLE_RADIUS) * 0.869) // mm

// G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results)
//#define DELTA_AUTO_CALIBRATION
Expand Down
8 changes: 4 additions & 4 deletions Marlin/example_configurations/delta/generic/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -444,10 +444,10 @@
#define DELTA_CARRIAGE_OFFSET 18.0 // mm

// Horizontal distance bridged by diagonal push rods when effector is centered.
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET - DELTA_EFFECTOR_OFFSET - DELTA_CARRIAGE_OFFSET) //mm // get this value from auto calibrate // height from z=0.00 to home position
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET - DELTA_EFFECTOR_OFFSET - DELTA_CARRIAGE_OFFSET) //mm Get this value from auto calibrate

// height from z=0.00 to home position
#define DELTA_HEIGHT 250 // get this value from auto calibrate - use G33 C-1 at 1st time calibration
#define DELTA_HEIGHT 250 // get this value from auto calibrate - use G33 P1 at 1st time calibration

// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
#define DELTA_PRINTABLE_RADIUS 140.0
Expand All @@ -456,8 +456,8 @@
// See http://minow.blogspot.com/index.html#4918805519571907051
//#define DELTA_CALIBRATION_MENU

// set the radius for the calibration probe points - max 0.8 * DELTA_PRINTABLE_RADIUS if DELTA_AUTO_CALIBRATION enabled
#define DELTA_CALIBRATION_RADIUS (DELTA_PRINTABLE_RADIUS - 28) // mm
// set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 if DELTA_AUTO_CALIBRATION enabled
#define DELTA_CALIBRATION_RADIUS ((DELTA_PRINTABLE_RADIUS) * 0.869) // mm

// G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results)
//#define DELTA_AUTO_CALIBRATION
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -444,10 +444,10 @@
#define DELTA_CARRIAGE_OFFSET 19.5 // mm

// Horizontal distance bridged by diagonal push rods when effector is centered.
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET - DELTA_EFFECTOR_OFFSET - DELTA_CARRIAGE_OFFSET) //mm // get this value from auto calibrate
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET - DELTA_EFFECTOR_OFFSET - DELTA_CARRIAGE_OFFSET) //mm Get this value from auto calibrate

// height from z=0.00 to home position
#define DELTA_HEIGHT 250 // get this value from auto calibrate - use G33 C-1 at 1st time calibration
#define DELTA_HEIGHT 250 // get this value from auto calibrate - use G33 P1 at 1st time calibration

// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
#define DELTA_PRINTABLE_RADIUS 90.0
Expand All @@ -456,8 +456,8 @@
// See http://minow.blogspot.com/index.html#4918805519571907051
//#define DELTA_CALIBRATION_MENU

// set the radius for the calibration probe points - max 0.8 * DELTA_PRINTABLE_RADIUS if DELTA_AUTO_CALIBRATION enabled
#define DELTA_CALIBRATION_RADIUS (DELTA_PRINTABLE_RADIUS - 18) // mm
// set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 if DELTA_AUTO_CALIBRATION enabled
#define DELTA_CALIBRATION_RADIUS ((DELTA_PRINTABLE_RADIUS) * 0.869) // mm

// G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results)
//#define DELTA_AUTO_CALIBRATION
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -431,10 +431,10 @@
#define DELTA_CARRIAGE_OFFSET 30.0 // mm

// Horizontal distance bridged by diagonal push rods when effector is centered.
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET - DELTA_EFFECTOR_OFFSET - DELTA_CARRIAGE_OFFSET) //mm // get this value from auto calibrate
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET - DELTA_EFFECTOR_OFFSET - DELTA_CARRIAGE_OFFSET) //mm Get this value from auto calibrate

// height from z=0.00 to home position
#define DELTA_HEIGHT 277 // get this value from auto calibrate - use G33 C-1 at 1st time calibration
#define DELTA_HEIGHT 277 // get this value from auto calibrate - use G33 P1 at 1st time calibration

// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
#define DELTA_PRINTABLE_RADIUS 127.0
Expand All @@ -443,8 +443,8 @@
// See http://minow.blogspot.com/index.html#4918805519571907051
//#define DELTA_CALIBRATION_MENU

// set the radius for the calibration probe points - max 0.8 * DELTA_PRINTABLE_RADIUS if DELTA_AUTO_CALIBRATION enabled
#define DELTA_CALIBRATION_RADIUS (DELTA_PRINTABLE_RADIUS - 25.4) // mm
// set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 if DELTA_AUTO_CALIBRATION enabled
#define DELTA_CALIBRATION_RADIUS ((DELTA_PRINTABLE_RADIUS) * 0.869) // mm

// G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results)
//#define DELTA_AUTO_CALIBRATION
Expand Down
8 changes: 4 additions & 4 deletions Marlin/example_configurations/delta/kossel_xl/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -449,10 +449,10 @@
#define DELTA_CARRIAGE_OFFSET 22.0 // mm

// Horizontal distance bridged by diagonal push rods when effector is centered.
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET - DELTA_EFFECTOR_OFFSET - DELTA_CARRIAGE_OFFSET) //mm // get this value from auto calibrate
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET - DELTA_EFFECTOR_OFFSET - DELTA_CARRIAGE_OFFSET) //mm Get this value from auto calibrate

// height from z=0.00 to home position
#define DELTA_HEIGHT 380 // get this value from auto calibrate - use G33 C-1 at 1st time calibration
#define DELTA_HEIGHT 380 // get this value from auto calibrate - use G33 P1 at 1st time calibration

// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
#define DELTA_PRINTABLE_RADIUS 140.0
Expand All @@ -461,8 +461,8 @@
// See http://minow.blogspot.com/index.html#4918805519571907051
//#define DELTA_CALIBRATION_MENU

// set the radius for the calibration probe points - max 0.8 * DELTA_PRINTABLE_RADIUS if DELTA_AUTO_CALIBRATION enabled
#define DELTA_CALIBRATION_RADIUS (DELTA_PRINTABLE_RADIUS - 28) // mm
// set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 if DELTA_AUTO_CALIBRATION enabled
#define DELTA_CALIBRATION_RADIUS ((DELTA_PRINTABLE_RADIUS) * 0.869) // mm

// G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results)
//#define DELTA_AUTO_CALIBRATION
Expand Down
6 changes: 4 additions & 2 deletions Marlin/planner.h
Original file line number Diff line number Diff line change
Expand Up @@ -160,8 +160,10 @@ class Planner {
min_travel_feedrate_mm_s;

#if HAS_ABL
static bool abl_enabled; // Flag that bed leveling is enabled
static matrix_3x3 bed_level_matrix; // Transform to compensate for bed level
static bool abl_enabled; // Flag that bed leveling is enabled
#if ABL_PLANAR
static matrix_3x3 bed_level_matrix; // Transform to compensate for bed level
#endif
#endif

#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
Expand Down
8 changes: 8 additions & 0 deletions Marlin/ultralcd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2151,13 +2151,21 @@ void kill_screen(const char* lcd_msg) {
}

void _lcd_delta_calibrate_home() {
#if HAS_LEVELING
reset_bed_level(); // After calibration bed-level data is no longer valid
#endif

enqueue_and_echo_commands_P(PSTR("G28"));
lcd_goto_screen(_lcd_calibrate_homing);
}

// Move directly to the tower position with uninterpolated moves
// If we used interpolated moves it would cause this to become re-entrant
void _goto_tower_pos(const float &a) {
#if HAS_LEVELING
reset_bed_level(); // After calibration bed-level data is no longer valid
#endif

current_position[Z_AXIS] = max(Z_HOMING_HEIGHT, Z_CLEARANCE_BETWEEN_PROBES) + (DELTA_PRINTABLE_RADIUS) / 5;
line_to_current(Z_AXIS);

Expand Down
97 changes: 12 additions & 85 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,99 +6,26 @@
<img align="top" width=175 src="buildroot/share/pixmaps/logo/marlin-250.png" />

Additional documentation can be found at the [Marlin Home Page](http://marlinfw.org/).
Please test this firmware and inform us if it misbehaves in any way, volunteers are standing by!
Please test this firmware and let us know if it misbehaves in any way. Volunteers are standing by!

## Bugfix Branch

__Not for production use. Use with caution!__

This branch is used to accumulate patches to the latest 1.1.x release version. Periodically this branch will form the basis for the next minor 1.1.x release.

Download earlier versions of Marlin on the [Releases page](https://github.com/MarlinFirmware/Marlin/releases). (The latest tagged release of Marlin is version 1.1.0.)
Download earlier versions of Marlin on the [Releases page](https://github.com/MarlinFirmware/Marlin/releases). (The latest tagged release of Marlin is version 1.1.1.)

## Recent Changes
- 1.1.0 - 4 May 2017
- See the [1.1.0 Release Notes](https://github.com/MarlinFirmware/Marlin/releases/tag/1.1.0) for a full list of changes.

- RC8 - 6 Dec 2016
- Major performance improvement for Graphical LCDs
- Simplified probe configuration
- Enable Auto Bed Leveling by type
- Reduce serial communication errors
- Make Bilinear (Mesh) Grid Leveling available for non-delta
- Support for Trinamic TMC2130 SilentStepStick SPI-based drivers
- Add `M211` to Enable/Disable Software Endstops
- Add `M355` to turn the case light on/off and set brightness
- Improved I2C class with full master/slave support
- Add `G38.2` `G38.3` command option for CNC style probing
- Add `MINIMUM_STEPPER_PULSE` option to adjust step pulse duration
- Add `R` parameter support for `G2`/`G3`
- Add `M43` optional command (`PINS_DEBUGGING`)
- Remove SCARA axis scaling
- Improved sanity checking of configuration
- Improved support for PlatformIO and command-line build
- Usable `DELTA_CALIBRATION_MENU`
- Support for Printrbot Rev.F
- New and updated languages

- RC7 - 26 Jul 2016
- Add Print Job Timer and Print Counter (`PRINTCOUNTER`)
- New `M600` Filament Change (`FILAMENT_CHANGE_FEATURE`)
- New `G12` Nozzle Clean (`NOZZLE_CLEAN_FEATURE`)
- New `G27` Nozzle Park (`NOZZLE_PARK_FEATURE`)
- Add support for `COREYZ`
- Add a new Advance Extrusion algorithm (`LIN_ADVANCE`)
- Add support for inches, Fahrenheit, Kelvin units (`INCH_MODE_SUPPORT`, `TEMPERATURE_UNITS_SUPPORT`)
- Better handling of `G92` shifting of the coordinate space
- Add Greek and Croatian languages
- Improve the Manual (Mesh) Bed Leveling user interface
- Add support for more boards, controllers, and probes:
- Vellemann K8400 (`BOARD_K8400`)
- RigidBot V2 (`BOARD_RIGIDBOARD_V2`)
- Cartesio UI (`BOARD_CNCONTROLS_12`)
- BLTouch probe sensor (`BLTOUCH`)
- Viki 2 with RAMPS and MKS boards
- Improve support for `DELTA` and other kinematics
- Improve thermal management, add `WATCH_BED_TEMP_PERIOD`
- Better handling of toolchange, multiple tools
- Add support for two X steppers `X_DUAL_STEPPER_DRIVERS`
- Add support for `SINGLENOZZLE`, `MIXING_EXTRUDER`, `SWITCHING_NOZZLE`, and `SWITCHING_EXTRUDER`
- Simplified probe configuration, allow usage without bed leveling
- And much more… See the [1.1.0-RC7 Change Log](https://github.com/MarlinFirmware/Marlin/releases/tag/1.1.0-RC7) for the complete list of changes.

- RC6 - 24 Apr 2016
- Marlin now requires Arduino version 1.6.0 or later
- Completed support for CoreXY / CoreXZ
- See the [1.1.0-RC6 Change Log](https://github.com/MarlinFirmware/Marlin/releases/tag/1.1.0-RC6) for all the changes.

- RC5 - 01 Apr 2016
- Warn if compiling with older versions (<1.50) of Arduino
- Fix various LCD menu issues
- Add formal support for MKSv1.3 and Sainsmart (RAMPS variants)
- Fix bugs in M104, M109, and M190
- Fix broken M404 command
- Fix issues with M23 and "Start SD Print"
- More output for M111
- Rename FILAMENT_SENSOR to FILAMENT_WIDTH_SENSOR
- Fix SD card bugs
- and a lot more
- See the [1.1.0-RC5 Change Log](https://github.com/MarlinFirmware/Marlin/releases/tag/1.1.0-RC5) for more!

- RC4 - 24 Mar 2016
- Many lingering bugs and nagging issues addressed
- Improvements to LCD menus, CoreXY/CoreXZ, Delta, Bed Leveling, and more…

- RC3 - 01 Dec 2015
- A number of language sensitive strings have been revised
- Formatting of the LCD display has been improved to handle negative coordinates better
- Various compiler-related issues have been corrected

- RC2 - 29 Sep 2015
- File styling reverted
- LCD update frequency reduced

- RC1 - 19 Sep 2015
- Published for testing
- Further integration of Unified Bed Leveling
- Initial UBL LCD Menu
- New optimized G-code parser singleton
- Initial M3/M4/M5 Spindle and Laser support
- Added M421 Q to offset a mesh point
- Refinements to G26 and G33
- Added M80 S to query the power state
- "Cancel Print" now shuts off heaters
- Added `EXTRAPOLATE_BEYOND_GRID` option for mesh-based leveling

## Submitting Patches

Expand Down Expand Up @@ -142,7 +69,7 @@ More features have been added by:
- [[@Tannoo](https://github.com/Tannoo)]
- [[@teemuatlut](https://github.com/teemuatlut)]
- [[@bgort](https://github.com/bgort)]
- [[@LVD-AC](https://github.com/LVD-AC)]
- Luc Van Daele[[@LVD-AC](https://github.com/LVD-AC)] - Dutch, French, English
- [[@paulusjacobus](https://github.com/paulusjacobus)]
- ...and many others

Expand Down