Commit Graph

421 Commits

Author SHA1 Message Date
Scott Lahteine
e141f3a03f Optimize coordinate transformation
Pre-compute the combined position shift and home offset to save a
single float fetch-and-add per conversion. Great for delta/scara and
bed leveling.
2017-03-05 04:43:16 -06:00
Scott Lahteine
5f7e85398b Implement NO_WORKSPACE_OFFSETS 2017-03-05 04:43:15 -06:00
Scott Lahteine
e42fd7813a Save ABL Bilinear Grid to EEPROM 2016-12-15 19:20:48 -08:00
Scott Lahteine
887ed73c9b Expose delta_clip_start_height for use by others 2016-12-13 01:41:08 -08:00
Scott Lahteine
ee50928eee Make LOGICAL and RAW position macros ternary-compatible 2016-12-05 06:43:26 -06:00
Scott Lahteine
50ee749082 Centralize click-handling in the LCD loop 2016-10-28 20:57:21 -05:00
Scott Lahteine
67ab54185b Save hotend_offset array (M218) in EEPROM 2016-10-28 18:45:23 -05:00
esenapaj
d5a5042d23 Fix for the PR #5088 (Handle M108 in M1 also with ULTIPANEL) 2016-10-27 10:32:20 +09:00
Scott Lahteine
d963020532 Sort out some header dependencies 2016-10-10 17:14:03 -05:00
Scott Lahteine
8910bb7c97 Fix buzzer conditional compile 2016-10-04 21:38:41 -05:00
Scott Lahteine
919fe3e4b8 Rename feature to G38_PROBE_TARGET 2016-10-01 05:00:53 -05:00
Scott Lahteine
a2864ab7fe Patched up, cleaned up 2016-10-01 05:00:53 -05:00
Bob-the-Kuhn
2911aa7ffa code changes to implement G38 commands
1) modified 3 code files
Marlin.h
Marlin_main.cpp
endstops.cpp

2) modified config files so I could test on my machine

Testing was done on an AzteegX3pro based machine.

The probe was hooked to the Z_MIN endstop.

My controller doesn't have a dedicated Z_PROBE input so I couldn't test
that functionality.

Verified that a large file (without any G38 commands) executed the same
before and after the changes.

Verified that the head moves as expected when G38.2 and G38.3 commands
are issued. Single & multiple axis moves were tested along with + and -
directions.

Code was added to the main ISR. In normal operation only one extra IF
statement is evaluated. I didn't notice any performance degradation
because of the added code.

The G38 commands are expected to be issued manually by the operator
during machine setup. The G38 commands wait until the machine is idle
before proceeding. That way the other commands are minimally impacted
by the extra ISR overhead when a G38 command is in the queue.

The G38 commands are very similar to the G28 commands except 1) only the
Z_PROBE is used and movement can be in the + or - direction.

See issue 4677 for a discussion on adding G38 commands to Marlin.
Feature request: add ability to use G38.2 command (CNC)
MarlinFirmware/Marlin#4677
2016-10-01 05:00:53 -05:00
Scott Lahteine
ea0dbee3c9 Enable ABL by type, support bilinear on cartesian 2016-09-25 23:35:37 -05:00
Scott Lahteine
77639672d7 Move NONLINEAR bed leveling to planner
This is in advance of moving non-linear bed leveling to the planner
class.
2016-09-18 13:50:38 -05:00
Scott Lahteine
5f2f991192 Use 'logical' rather than 'target' or 'cartesian' 2016-09-18 13:50:38 -05:00
Scott Lahteine
40d3e854f6 Remove redundant extern delta[] 2016-09-18 13:39:47 -05:00
Scott Lahteine
83a41c7ceb Remove SCARA axis_scaling 2016-09-16 15:21:18 -05:00
Scott Lahteine
4f75ce6957 Unify reset_bed_level for linear/non-linear 2016-09-13 03:33:03 -05:00
Scott Lahteine
d65f5d816f Patch to fix kinematics 2016-09-13 03:33:01 -05:00
Scott Lahteine
acd1b6e9c0 Rename delta_grid spacing for general nonlinear 2016-09-13 03:33:00 -05:00
Scott Lahteine
c5fa70809b Implement M0/M1 for EMERGENCY_PARSER 2016-09-13 03:33:00 -05:00
Scott Lahteine
6ab54c60b1 Add conditionals for kinematics, leveling 2016-09-13 03:32:59 -05:00
Scott Lahteine
6ac9d895ca Tweak Filament Width variables 2016-09-10 13:29:25 -05:00
Scott Lahteine
14a03727e1 Tweak serialprintPGM 2016-08-21 00:10:09 -05:00
Scott Lahteine
2f223b8c79 Use ABC and XYZ for "3" 2016-08-21 00:10:08 -05:00
Scott Lahteine
280534c06f Add M211: Enable/Disable Software Endstops 2016-08-21 00:10:08 -05:00
Scott Lahteine
4d4c00d69c Merge pull request #4651 from thinkyhead/rc_homing_vs_leveling_z
Improvements to homing / leveling
2016-08-19 15:45:49 -05:00
Scott Lahteine
41b5c48129 Update software endstops if EEPROM is loaded 2016-08-19 04:32:01 -05:00
Scott Lahteine
628dcbc764 extruder_multiplier => flow_percentage 2016-08-18 22:13:47 -05:00
Scott Lahteine
192ac2dfd7 Squish some CardReader code 2016-08-12 03:32:42 -07:00
Scott Lahteine
d6a7ca6553 Merge pull request #4584 from thinkyhead/rc_delta_cal_more
Use configured feedrates, center in DELTA_CALIBRATION_MENU
2016-08-11 14:04:05 -07:00
Scott Lahteine
cd496dd9bd do_blocking_move_to can't be 'inline', takes const ref args 2016-08-11 12:05:55 -07:00
Scott Lahteine
b63d70b186 Fix serial output for MBL, M303 2016-08-10 18:49:52 -07:00
Scott Lahteine
d320065320 Within Marlin, maintain most feed rates in mm/s 2016-08-07 00:28:52 -07:00
Scott Lahteine
938e6d15c4 Patch up some flaws, here and there 2016-08-05 08:17:37 -07:00
Scott Lahteine
b73203a0b7 Move some includes around to uncover missing deps 2016-08-02 19:37:46 -07:00
Scott Lahteine
14c5a46ee9 Use multiplication for MMM_SCALED 2016-08-02 15:05:17 -07:00
Scott Lahteine
330f82971b Buzzer requires BEEPER_PIN 2016-08-02 14:05:37 -07:00
Scott Lahteine
63fd1f49a6 PID_EXTRUSION_SCALING, disabled by default 2016-07-31 17:49:34 -07:00
Scott Lahteine
8e2f095dde Merge pull request #4456 from jbrazio/speaker-type3
Improvement to non-blocking speaker
2016-07-30 04:07:08 -07:00
Scott Lahteine
46c33f1cfa Merge pull request #4467 from jbrazio/safe_delay-millis_t
Makes safe_delay() to be fully compatible with delay()
2016-07-29 20:23:44 -07:00
João Brázio
226e74a438 Fixes safe_delay() to be fully compatible with delay() 2016-07-30 02:56:26 +01:00
Scott Lahteine
844a4e799e Account for DELTA in Planner::refresh_positioning 2016-07-29 18:41:11 -07:00
João Brázio
2b5faa61e2 Consolidates Buzzer and Speaker into a single object 2016-07-29 19:25:39 +01:00
Scott Lahteine
b40661cb18 Fix output of heater states 2016-07-28 17:40:01 -07:00
Scott Lahteine
3be49881c0 Make SanityCheck.h a catch-all for obsolete configs 2016-07-26 12:41:40 -07:00
Scott Lahteine
d9f7ed9a3c Move some macros from Marlin.h to macros.h 2016-07-26 12:37:13 -07:00
Scott Lahteine
c6226bb0aa Unify config in a single include without nested includes 2016-07-25 23:04:19 -07:00
Scott Lahteine
df27d01cd9 Arrange needed includes in Marlin.h 2016-07-25 20:53:36 -07:00
Scott Lahteine
169c21b477 Merge pull request #4402 from thinkyhead/rc_consistent_positioning
Account for coordinate space offsets
2016-07-24 19:23:20 -07:00
Scott Lahteine
e4816293a8 serial_echopair_P for uint16_t 2016-07-24 17:46:37 -07:00
Scott Lahteine
f75b0c2ee1 Make POSITION macros global 2016-07-24 17:20:36 -07:00
Scott Lahteine
08459a003f Undo the self-sabotage that is do_blocking_move_to_axis_pos 2016-07-23 00:59:11 -07:00
Scott Lahteine
652fd8a826 Merge pull request #4362 from thinkyhead/rc_duplication_mode
DUAL_NOZZLE_DUPLICATION_MODE
2016-07-22 21:17:59 -07:00
Scott Lahteine
35a610abf9 const arg to inverse_kinematics 2016-07-22 17:42:48 -07:00
Scott Lahteine
d5e2d523c7 Generalize kinematics function names 2016-07-22 16:36:34 -07:00
Scott Lahteine
4b1725628b Move kinematic functions to "private" scope 2016-07-22 16:36:33 -07:00
Scott Lahteine
9f30cc84ce Use set_current_from_steppers for other kinematics 2016-07-22 16:36:33 -07:00
AnHardt
5db9b940ee Use forwardKinematics in DELTA run_z_probe() 2016-07-22 16:36:33 -07:00
Scott Lahteine
cbc7f22ad9 Implement DUAL_NOZZLE_DUPLICATION_MODE 2016-07-22 16:23:58 -07:00
Scott Lahteine
976c31235d inline to fix warnings, smaller build size (sometimes) 2016-07-21 13:49:37 -07:00
João Brázio
47fef80848 Nozzle::clean() no longer requires HAS_BED_PROBE 2016-07-19 15:07:02 -07:00
Scott Lahteine
ef0a22871e Merge pull request #4350 from jbrazio/followup-a875861
Adds utility.h
2016-07-19 13:40:52 -07:00
João Brázio
3ebad4e020 Moves all global enums to a central file 2016-07-19 14:31:09 +01:00
João Brázio
f4d63796b2 Adds utility.h 2016-07-19 02:55:23 +01:00
Scott Lahteine
f242aea032 Merge pull request #4319 from thinkyhead/rc_feedrates_to_mess_with_you
Wrangle feed rate variables
2016-07-17 14:07:52 -07:00
Scott Lahteine
93ba5bddd7 Append units to feedrate variables 2016-07-17 13:29:41 -07:00
Scott Lahteine
21ee0612e3 Debug char 2016-07-17 12:27:36 -07:00
Scott Lahteine
05da02f0a2 Implement MIXING_EXTRUDER and SWITCHING_EXTRUDER 2016-07-17 10:53:10 -07:00
João Brázio
a8758619ec The safe_delay() is now globaly accessible 2016-07-16 12:28:06 +01:00
AnHardt
d2a49c016d DELTA: Move out of the clip-zone after G28
Move down to a safe height after G28 for DELTAs.
2016-07-15 15:22:44 +02:00
Scott Lahteine
4b4a582c4f X_DUAL_STEPPER_DRIVERS implementation 2016-07-11 10:22:19 -07:00
Scott Lahteine
2ee4e4f791 Make wait_for_heatup volatile 2016-07-07 16:37:23 -07:00
Scott Lahteine
834ad14c8d Add quickstop_stepper to update current position with stepper.quick_stop() 2016-07-07 16:37:22 -07:00
AnHardt
a129078927 Add an emergency-command parser to MarlinSerial (supporting M108)
Add an emergency-command parser to MarlinSerial's RX interrupt.

The parser tries to find and execute M108,M112,M410 before the commands disappear in the RX-buffer.

To avoid false positives for M117, comments and commands followed by filenames (M23, M28, M30, M32, M33) are filtered.

This enables Marlin to receive and react on the Emergency command at all times - regardless of whether the buffers are full or not. It remains to convince hosts to send the commands. To inform the hosts about the new feature a new entry in the M115-report was made. "`EMERGENCY_CODES:M112,M108,M410;`".

The parser is fast. It only ever needs two switch decisions and one assignment of the new state for every character.

One problem remains. If the host has sent an incomplete line before sending an emergency command the emergency command could be omitted when the parser is in `state_IGNORE`.
In that case the host should send "\ncommand\n"

Also introduces M108 to break the waiting for the heaters in M109, M190 and M303.

Rename `cancel_heatup` to `wait_for_heatup` to better see the purpose.
2016-07-07 16:37:22 -07:00
Petr Zahradnik
43ff0ce35f Rewritten FILAMENT_CHANGE_ENABLE feature 2016-07-02 15:34:33 -07:00
Scott Lahteine
bd491818d6 Reduce storage requirements for strings, make some PGM 2016-06-27 20:36:18 -07:00
Scott Lahteine
bb9c67b4b5 Tweak some feedrate vars 2016-06-22 03:27:31 -07:00
Scott Lahteine
1000563d80 Make M851 standard with a bed probe 2016-06-17 15:19:42 -07:00
Scott Lahteine
b75e648f2c Clarify names of prepare_move functions 2016-06-11 15:32:49 -07:00
João Brázio
5b5aa1572b Non-blocking buzzer 2016-06-09 20:20:05 -07:00
Scott Lahteine
4980ecc1f7 Smaller binary using inline gcode argument getters 2016-06-08 17:03:28 -07:00
Reid Rankin
16212432c9 G20/21 and M149 support, and code_value() refactor
This is an update of MarlinDev PR #196.

G20/21: support for switching input units between millimeters and
inches.
M149: support for changing input temperature units.

In support of these changes, code_value() and code_value_short() are
replaced with an array of functions which handle converting to the
proper types and/or units.
2016-06-08 16:51:10 -07:00
Scott Lahteine
a3e25a0fca Instead of trying to move now, set a flag to move asap 2016-06-05 02:29:48 -07:00
Scott Lahteine
664b299a51 This fix is not DELTA compatible 2016-06-02 17:16:19 -07:00
Scott Lahteine
064efb20e0 Also call clear_command_queue for lcd_sdcard_stop 2016-06-02 17:16:19 -07:00
Scott Lahteine
6277395e1e set_current_position_from_planner() after stepper.quick_stop() 2016-06-02 17:16:19 -07:00
Scott Lahteine
138c5c8378 Merge pull request #3788 from thinkyhead/rc_dual_x_compile_fix
DUAL_X_CARRIAGE fixes, improvements, Travis test
2016-05-18 16:56:54 -07:00
Scott Lahteine
516e79bbda Declare extruder_duplication_enabled in Marlin.h 2016-05-18 15:51:44 -07:00
Scott Lahteine
4041508ffb Function decl. in headers don't need "extern" 2016-05-17 18:35:01 -07:00
Scott Lahteine
3016dfe484 Merge pull request #3744 from thinkyhead/rc_bezier_curves
Add BEZIER_CURVE_SUPPORT — G5 command
2016-05-17 13:57:38 -07:00
Scott Lahteine
1b90682617 Merge pull request #3702 from thinkyhead/rc_sensitive_fan_pins
Remove need to define unused pins as -1 in pins files
2016-05-14 15:49:22 -07:00
Scott Lahteine
b4c891dfd2 Remove obsolete reference to prepare_arc_move 2016-05-14 14:51:09 -07:00
esenapaj
888443ca1e Enclose all #error strings with apostrophes 2016-05-13 21:10:23 +09:00
Scott Lahteine
5ca6334fd2 Cleanup pins files, fixup analogtodigitalpin, etc. 2016-05-08 12:38:00 -07:00
Scott Lahteine
fc5fe2cc22 Merge pull request #3678 from jbrazio/rework/delta-diagonal-rod-timmers
Moved DELTA radius/rod default trimmer values to Conditionals.h
2016-05-05 11:38:14 -07:00
Scott Lahteine
084f6b5b44 Temperature singleton class 2016-05-04 19:42:12 -07:00
João Brázio
23567a1d8b
Moved DELTA radius/rod default trimmer values to Conditionals.h 2016-05-05 00:18:32 +01:00
Scott Lahteine
96f51f400f Planner singleton class 2016-04-30 17:26:50 -07:00
Scott Lahteine
5e4e535ce8 Stepper and Endstops as singleton objects 2016-04-30 17:26:50 -07:00
João Brázio
d6cfcc9c8b
Added new G-Code: M78 2016-04-29 23:13:58 +01:00
Scott Lahteine
ee9bd66a68 Add comments to debug bit flags 2016-04-20 12:37:22 -07:00
Scott Lahteine
ac69fad96d lowercase "stop" function 2016-04-19 19:43:54 -07:00
Scott Lahteine
cafa8b8ce3 Rename filament runout items 2016-04-19 19:43:39 -07:00
Scott Lahteine
a4062a47ac Rename baricuda variables 2016-04-19 19:43:38 -07:00
Scott Lahteine
78747b1328 min_pos/max_pos => sw_endstop_min/sw_endstop_max 2016-04-19 19:43:38 -07:00
Scott Lahteine
50c3140040 Merge pull request #3414 from thinkyhead/rc_host_timeout_mods
Host Keepalive configurable timeout with 2s default
2016-04-08 21:45:45 -07:00
Scott Lahteine
5e18d650c4 Merge pull request #3427 from thinkyhead/rc_better_SERIAL_ECHOPAIR
No casting needed for SERIAL_ECHOPAIR
2016-04-07 19:29:18 -07:00
Scott Lahteine
85883da90c Implement basic HOST_KEEPALIVE_INTERVAL 2016-04-07 19:25:56 -07:00
Scott Lahteine
d7cbb2eec9 Merge pull request #3403 from jbrazio/feature/stopwatch
Print job timer rework
2016-04-07 19:18:03 -07:00
Scott Lahteine
dc19b69697 No casting needed for SERIAL_ECHOPAIR 2016-04-07 16:33:21 -07:00
João Brázio
7c7e30f4cc
Adherence to the new OOP coding standards 2016-04-07 12:41:09 +01:00
Scott Lahteine
865dcf3fb4 Fix FILAMENT_WIDTH_SENSOR measurement
Only measure and store filament width when E is going forward.
2016-04-06 19:48:04 -07:00
João Brázio
eb61051556 Rework the print job timer to use the stopwatch class 2016-04-06 04:34:03 +01:00
Scott Lahteine
d24f14a799 Add HAS_TEMP_HOTEND define 2016-04-03 16:18:49 -07:00
Scott Lahteine
de333c4fea Merge pull request #3279 from thinkyhead/rc_filament_width_sensor
FILAMENT_SENSOR -> FILAMENT_WIDTH_SENSOR
2016-03-30 12:16:27 -07:00
Scott Lahteine
1a79b13b7a FILAMENT_SENSOR -> FILAMENT_WIDTH_SENSOR 2016-03-29 20:54:31 -07:00
Scott Lahteine
5f32184254 Merge pull request #3278 from thinkyhead/rc_cleanup_m111_redo
Echo all debug levels in M111, default to DEBUG_NONE
2016-03-29 20:34:31 -07:00
Scott Lahteine
05765fb570 Add DEBUGGING macro 2016-03-29 19:50:01 -07:00
Scott Lahteine
4402760739 Echo all debug levels in M111, default to DEBUG_NONE
Redo of #3268 by @jbrazio
2016-03-29 19:18:45 -07:00
Scott Lahteine
3252df7998 Minor cleanup to filament sensor code 2016-03-28 20:04:34 -07:00
Scott Lahteine
0b8ef5eba6 Split get_command into units, rename to get_available_commands 2016-03-28 06:00:04 -07:00
Scott Lahteine
d6f92f9efe Remove Tonokip remnant from recent PR 2016-03-25 23:50:29 -07:00
Scott Lahteine
0da744b7b0 Further cleanup of comments, partial Doxygen-style
Following up on #3231
2016-03-25 00:45:56 -07:00
jbrazio
5e5d250832 Added gplv3 header to all Marlin files 2016-03-24 18:01:20 +00:00
Scott Lahteine
04fa9d4f47 Make Autotune options into Menu Edit Items 2016-03-24 02:00:08 -07:00
Scott Lahteine
06332f20be Merge pull request #3113 from jbrazio/bugfix/3061-stop-print-time-counter
Stop print timer with M105/M109
2016-03-20 17:05:07 -07:00
Scott Lahteine
a02ae36ae8 Include M65 "ABC" parameters in EEPROM
Addressing #2773
2016-03-19 05:52:20 -07:00
Scott Lahteine
4bbea5124d Support for multiple PWM fans 2016-03-19 03:10:18 -07:00
Scott Lahteine
4634feaeab Merge pull request #3012 from thinkyhead/fix_command_injection
Use a serial line buffer to prevent queue corruption
2016-03-19 01:43:54 -07:00
Scott Lahteine
963a92ceda Patch idle forevermore 2016-03-18 22:38:35 -07:00
Scott Lahteine
8fe7420310 Use a separate serial line buffer 2016-03-18 16:46:20 -07:00
jbrazio
a645860431 All print timer related activity now uses print_job_start(), print_job_timer() or print_job_stop() 2016-03-12 07:16:39 +00:00
Scott Lahteine
e4945b30d2 sbi and cbi are deprecated 2016-03-06 05:51:55 -08:00
Scott Lahteine
ff13070b59 Use _BV macros, patch up others 2016-03-06 05:51:55 -08:00
Scott Lahteine
eb85342fd9 Merge pull request #2989 from AnHardt/fix2661
Pre home display - Stepper release
2016-03-05 21:30:17 -08:00
Scott Lahteine
772460a7b8 Various minor spelling corrections
Redo of #2939 rebased against RCBugFix
2016-03-05 20:41:15 -08:00
AnHardt
051325ccd7 Introduce axis_homed
Introduce additional variable axis_homed to replace axix_known_position
when the coordinate display should indicate the axis is not homed.
This is to distinguish between "not homed" and "inexact position possible
because stepper was disabled".

# Conflicts:
#	Marlin/ultralcd_implementation_hitachi_HD44780.h
solved
2016-02-28 16:58:28 +01:00
AnHardt
57da1b8497 Host parseble output for M109, M190 and M303
Make the output of M105 more similar to Repetier.
Make the text-print pert of M105 an extra function to make it reusable. `print_heaterstates()`
Use `print_heaterstates()` in M019, M190 and M303
2015-12-07 15:37:53 -06:00
Scott Lahteine
0c7f7ebcfb Styling adjustments (PR#2668 & PR#2670)
Keep "astyled" reformatting
2015-10-03 22:02:45 -05:00
Scott Lahteine
bc50db9cf6 Implement PID_ADD_EXTRUSION_RATE 2015-09-12 07:53:20 -05:00
Shane Francis
4c8330c15c Trim Adjustments for Delta Configurations 2015-09-03 01:05:33 -05:00
Richard Wackerbarth
20b4772155 Create DEBUG_LEVELING_FEATURE 2015-08-27 20:52:08 -05:00
Richard Wackerbarth
6292d9e815 Rename ENABLE_AUTO_BED_LEVELING
With the introduction of the #if ENABLED(…)

reads better than
2015-08-27 20:52:08 -05:00
Christian Lefrançois
a7822e3ff7 Some renaming of Z_PROBE to Z_MIN_PROBE (PR#91)
* Fix a couple of renames omission and macro expansion errors.
2015-08-20 06:04:46 -05:00
Richard Wackerbarth
29b456ae07 Suppress some compiler warnings 2015-08-16 06:56:47 -05:00
Richard Wackerbarth
4b9d5cd352 Use lowercase names for serial instances 2015-08-02 23:01:39 -05:00
Scott Lahteine
1e2deff4fd Rename BTENABLED to BLUETOOTH
- For some reason it’s easy to forget what BT stands for, but it
doesn’t need an abbreviation.
2015-08-02 22:56:50 -05:00
Scott Lahteine
b4abb0ae7f Apply ENABLED / DISABLED to Marlin core files (PR#2558) 2015-07-31 01:03:58 -05:00