Scott Lahteine
f388beafa1
Merge pull request #4476 from otvald/RCBugFix
...
FIX for endstop adjustemt on delta is offset
2016-07-31 01:09:54 -07:00
Thomas Otvald Jensen
fe059f1221
During homing, line_to_axis_pos will make a path which moves across the
...
endstop trigger point. The move is stopped at endstop, so current_position
should also be adjusted to reflect this!
Caused error in subsequent call in endstop adjustment, since the movement
would assume a wrong starting position.
2016-07-30 16:50:31 +02:00
esenapaj
bd73e6d3c8
Fix for PR #4452 (Additional heater-state output changes)
...
・Add missing ';'
2016-07-30 22:49:30 +09:00
Scott Lahteine
bdac2eb13a
Don't set non-existent SLED_PIN
2016-07-30 04:17:21 -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
9e21b2e51d
Merge pull request #4455 from AnHardt/double-bump-feature
...
double bump probing as a feature
2016-07-29 20:00:10 -07:00
Scott Lahteine
db4d03bc81
Merge pull request #4452 from thinkyhead/rc_fix_heaterstates_part_2
...
Additional heater-state output changes
2016-07-29 19:58:00 -07:00
Scott Lahteine
844a4e799e
Account for DELTA in Planner::refresh_positioning
2016-07-29 18:41:11 -07:00
AnHardt
7188ce0ad6
double bump probing as a feature
...
Why double touch probing is not a good thing.
It's widely believed we can get better __probing__ results when using a double touch when probing.
Let's compare to double touch __homing__.
Or better let's begin with single touch __homing__.
We home to find out out position, so our position is unknown.
To find the endstop we have to move into the direction of the endstop.
The maximum way we have to move is a bit longer than the axis length.
When we arrive at the endstop - when it triggers, the stepper pulses are stopped immediately.
It's a sudden stop. No smooth deacceleration is possible.
Depending on the speed and the moving mass we lose steps here.
Only if we approached slow enough (below jerk speed?) we will not lose steps.
Moving a complete axis length, that slow, takes for ever.
To speed up homing, we now make the first approach faster, get a guess about our position,
back up a bit and make a second slower approach to get a exact result without losing steps.
What we do in double touch probing is the same. But the difference here is:
a. we already know where we are
b. if the first approach is to fast we will lose steps here to.
But this time there is no second approach to set the position to 0. We are measuring only.
The lost steps are permanent until we home the next time.
So if you experienced permanently rising values in M48 you now know why. (Too fast, suddenly stopped, first approach)
What can we do to improve probing?
We can use the information about our current position.
We can make a really fast, but deaccelerated, move to a place we know it is a bit before the trigger point.
And then move the rest of the way really slow.
2016-07-30 03:00:49 +02:00
Scott Lahteine
c31f56a38c
Deprecate EXTRUDER_WATTS and BED_WATTS
2016-07-29 17:34:14 -07:00
Scott Lahteine
e1970b4b28
Show power output in same order as temp output
2016-07-29 14:55:22 -07:00
Scott Lahteine
74df828acc
Show ADC values inline rather than after
2016-07-29 14:55:18 -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
8953e3e984
Allow Z_SAFE_HOMING without a probe
2016-07-27 04:33:56 -07:00
Scott Lahteine
5272147f7c
Followup #4402 fixing 3-point leveling
2016-07-25 15:56:34 -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
2595a40a61
Account for coordinate space more in G28 / G29 / M48
2016-07-24 18:34:05 -07:00
Scott Lahteine
b7b7c90477
Merge pull request #4389 from thinkyhead/rc_optimize_planner
...
Optimize planner with precalculation, etc.
2016-07-24 17:48:23 -07:00
Scott Lahteine
b183442c61
Fix inactive_extruder_x_pos for coordinate space
2016-07-24 17:20:36 -07:00
Scott Lahteine
f75b0c2ee1
Make POSITION macros global
2016-07-24 17:20:36 -07:00
Scott Lahteine
101b60ef42
Tweak Dual X Carriage data spacing
2016-07-24 17:20:35 -07:00
Scott Lahteine
d8f2876753
Replace some float division with multiplication
2016-07-24 13:27:50 -07:00
Scott Lahteine
f8b5749235
Replace division in planner with multiplication
2016-07-24 13:27:49 -07:00
Scott Lahteine
db5df9500b
Move sync_plan_position closer to the top
2016-07-24 13:27:49 -07:00
João Brázio
50fb0f7cec
M31 serial output is now always in EN
2016-07-24 15:52:03 +01:00
João Brázio
62d96d72f3
Renamed timestamp_t to duration_t
2016-07-24 03:16:02 +01:00
Scott Lahteine
bb93b6822a
Use set_current_from_steppers_for_axis
2016-07-23 15:25:54 -07:00
AnHardt
96a162beda
Use implications from #4370 in run_z_probe()
...
See also https://github.com/MarlinFirmware/Marlin/pull/4370#issuecomment-234713680
2016-07-23 13:09:28 -07:00
Scott Lahteine
4e67a85a5d
Macros to loop over axes
2016-07-23 13:09:28 -07:00
esenapaj
784be56e99
Follow-up the PR #4353 (General cleanup: enum)
...
・Update description of M111
2016-07-24 00:53:35 +09:00
Scott Lahteine
08459a003f
Undo the self-sabotage that is do_blocking_move_to_axis_pos
2016-07-23 00:59:11 -07:00
esenapaj
d32c4056ad
Fix for the PR #4379 (Additional logging of do_blocking_move_to)
...
・Remove unneeded PSTR()
2016-07-23 16:38:57 +09:00
Scott Lahteine
8099ee51a5
Merge pull request #4379 from thinkyhead/rc_blocking_move_logging
...
Additional logging of do_blocking_move_to
2016-07-23 00:10:55 -07:00
Scott Lahteine
ad16d5019e
Additional logging of do_blocking_move_to
2016-07-22 23:53:08 -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
6da3729531
Merge pull request #4370 from thinkyhead/rc_delta_fwd_kinematics
...
Delta Forward Kinematics (and LOGICAL_POSITION)
2016-07-22 21:16:00 -07:00
Scott Lahteine
b3eb0c8569
Add LOGICAL_POSITION macro, apply to kinematics
2016-07-22 18:38:13 -07:00
Scott Lahteine
35a610abf9
const arg to inverse_kinematics
2016-07-22 17:42:48 -07:00
Scott Lahteine
b6afa028f4
Don't call adjust_delta on SCARA
2016-07-22 16:36:34 -07:00
Scott Lahteine
d5e2d523c7
Generalize kinematics function names
2016-07-22 16:36:34 -07:00
Scott Lahteine
9c4ad7d7ef
Clean up delta declarations in Marlin_main.cpp
2016-07-22 16:36:33 -07:00
Scott Lahteine
4b1725628b
Move kinematic functions to "private" scope
2016-07-22 16:36:33 -07:00
Scott Lahteine
cde068ea42
Use set_current_from_steppers in quickstop_stepper
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
179e091473
Merge pull request #4374 from thinkyhead/rc_jbrazio_timestamp_t
...
Implements timestamp_t structure
2016-07-22 16:08:10 -07:00
AnHardt
499e404fbf
forwardKinematics for Delta printers
2016-07-22 16:01:51 -07:00
João Brázio
23043a1e05
Rework some code to use timestamp_t struct (saves 72 bytes)
2016-07-22 15:53:31 -07:00
Scott Lahteine
0b2c608d2f
Merge pull request #4372 from jbrazio/gcc-bark
...
Fix minor gcc warning
2016-07-22 15:18:53 -07:00
Scott Lahteine
311c7dadb6
Cleanup do_blocking_move_to for DELTA
2016-07-22 14:18:45 -07:00
Scott Lahteine
b78590e63d
Patch and cleanup run_z_probe
2016-07-22 14:18:45 -07:00
João Brázio
2f7716987d
Fix minor gcc warning
2016-07-22 16:08:56 +01:00
AnHardt
376a57232e
DELTA do_blocking_move_to() more like the Chartesian one
2016-07-22 03:12:46 +02:00
AnHardt
6ef26a85d8
Back to the differences method in run_z_probe()
2016-07-21 18:16:38 +02:00
Scott Lahteine
16e5348659
Merge pull request #4360 from thinkyhead/rc_toolchange_for_G28
...
Always switch to tool 0 for G28
2016-07-20 19:07:35 -07:00
Scott Lahteine
d2e9a9c188
Always switch to tool 0 for G28
2016-07-20 09:36:55 -07:00
Scott Lahteine
194d9521c3
Merge pull request #4356 from thinkyhead/rc_simpler_run_z_probe
...
Unify run_z_probe
2016-07-19 19:02:39 -07:00
AnHardt
09a3cc33e6
Unify run_z_probe
...
Unify run_z_probe
Add double touch for DELTAs.
Introduce Z_PROBE_SPEED_FAST and Z_PROBE_SPEED_SLOW
defaulting to homing_feedrate_mm_m[Z_AXIS] and homing_feedrate_mm_m[Z_AXIS]/2
2016-07-19 18:42:48 -07:00
Scott Lahteine
204fd6ec44
Set homing feedrates individually
2016-07-19 17:31:58 -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
6c899bb520
Merge pull request #4349 from jbrazio/gcc-bark-bark
...
Removes some minor GCC warnings
2016-07-19 13:42:33 -07:00
Scott Lahteine
c502018eab
Merge pull request #4353 from jbrazio/global-enum-file
...
General cleanup: enum
2016-07-19 13:37:56 -07:00
AnHardt
11c075c6b2
Introduce line_to_axis_pos(axis_codes axis, float where, float feed_rate = 0.0)
...
and use it in `homeaxis()` instead of `do_blocking_move_to_axis_pos()`.
`do_blocking_move_to_axis_pos` was wrong because it performed subdivided, delta-corrected moves for x- and y-axis.
The first common move for delta homing is like quick_home but for 3 towers.
Fix two warnings.
2016-07-19 17:24:44 +02: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
30ac0782a9
Comment section style correction
2016-07-19 03:27:42 +01:00
João Brázio
79e7721b76
Removes some minor GCC warnings
2016-07-19 03:03:11 +01:00
Scott Lahteine
3422103863
Merge pull request #4310 from thinkyhead/rc_mbl_position_shift
...
Fix position shift with MBL
2016-07-17 18:31:25 -07:00
Scott Lahteine
493d30cd97
Drop intermediate nx, ny, and set destination directly
2016-07-17 17:59:52 -07:00
Scott Lahteine
07a735ad22
We always use destination
so modify mesh_buffer_line
2016-07-17 17:57:33 -07:00
Scott Lahteine
04a5b7b257
A macro to normalize positions
2016-07-17 17:57:32 -07:00
Scott Lahteine
86eb5251c5
Fix some debug messages
2016-07-17 17:10:02 -07:00
Scott Lahteine
1e57a6af73
Use blocking_move, current_position in G28 homing
2016-07-17 16:56:13 -07:00
Scott Lahteine
f6a3a1da09
nz and ne are always set, so drop them down
2016-07-17 14:12:39 -07:00
Scott Lahteine
d0009e013b
Rename cell index vars
2016-07-17 14:12:39 -07:00
Scott Lahteine
697373b071
Reduce code size of mesh_buffer_line
2016-07-17 14:11:25 -07:00
Scott Lahteine
f4a69281fc
Only call mesh_buffer_line when MBL is active
2016-07-17 14:11:25 -07:00
Scott Lahteine
799a31cd30
Include the position_shift when splitting mesh lines
2016-07-17 14:08:20 -07: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
0342661b3f
Merge pull request #4335 from thinkyhead/rc_status_pad_jp
...
Debug char, fix compile errors for lcd pins
2016-07-17 14:07:08 -07:00
Scott Lahteine
5ed1e7a464
codenum => dwell_ms
2016-07-17 13:35:21 -07:00
Scott Lahteine
f38553b482
fix a debug message
2016-07-17 13:29:42 -07:00
Scott Lahteine
3d78b8f929
Use HYPOT macro instead of hypot function
2016-07-17 13:29:42 -07:00
Scott Lahteine
9f9fe043ba
Apply sq macro throughout
2016-07-17 13:29:41 -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
8f24e0a556
Debugging of MBL in G28
2016-07-17 11:08:30 -07:00
Scott Lahteine
05da02f0a2
Implement MIXING_EXTRUDER and SWITCHING_EXTRUDER
2016-07-17 10:53:10 -07:00
Scott Lahteine
02285662f5
Merge pull request #4298 from jbrazio/feature/filament-counter
...
Adds filamentUsed and longestPrint stats to PrintCounter
2016-07-16 23:48:46 -07:00
Scott Lahteine
bf16ae5a70
Merge pull request #4299 from jbrazio/feature/g27-park-nozzle
...
Implements park nozzle feature
2016-07-16 23:47:12 -07:00
João Brázio
a8758619ec
The safe_delay() is now globaly accessible
2016-07-16 12:28:06 +01:00
João Brázio
f5234b0695
Adds a customizable screen timeout for the default boot screen
2016-07-16 12:24:36 +01:00
João Brázio
2f26bc2153
Adds filamentUsed and longestPrint stats to PrintCounter
2016-07-16 12:12:27 +01:00
João Brázio
c711701626
Implements a nozzle parking command (G27)
2016-07-16 12:07:59 +01:00
João Brázio
5f368d1bc3
Followup for #4320
2016-07-16 11:57:35 +01:00
João Brázio
d7c51bc4b9
Merge pull request #4320 from jbrazio/followup/4307
...
Moves do_blocking_move_to_xy() out of the HAS_BED_PROBE define
2016-07-16 11:48:00 +01:00
Scott Lahteine
e563634a25
Merge pull request #4314 from AnHardt/use-d_b_m_t-in-g28
...
Use do_blicking_move_to*() in G28
2016-07-15 20:22:02 -07:00
Scott Lahteine
59ae1811c2
Merge pull request #4303 from AnHardt/delta-g28
...
DELTA: Move out of the clip-zone after G28
2016-07-15 20:20:22 -07:00
João Brázio
fdea8b6e6a
Moves do_blocking_move_to_xy() out of the HAS_BED_PROBE define
2016-07-16 03:59:49 +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
AnHardt
46994fd17d
Use do_blicking_move_to*() in G28
2016-07-15 15:02:15 +02:00
João Brázio
ffbb31b235
Fixes an PSTR overflow with print_xyz()
2016-07-15 11:25:34 +01:00
Scott Lahteine
cec7110409
Merge pull request #4308 from thinkyhead/rc_debug_gcode_t
...
Added logging related to gcode_T
2016-07-14 19:46:33 -07:00
Scott Lahteine
166f19251e
Add more debugging for leveling
...
- Especially in `gcode_T`
- In `update_software_endstops`
- Some tweaks to observe
2016-07-14 19:04:13 -07:00
Scott Lahteine
7ac0b91a45
Collapsible long comment in gcode_T
2016-07-14 18:28:41 -07:00
João Brázio
e71a631f8f
do_blocking_move_*() no longer depend on HAS_BED_PROBE
2016-07-15 01:54:14 +01:00
Scott Lahteine
8bf6861af8
Merge pull request #4054 from jbrazio/feature/g12-clean-tool
...
Implements clean nozzle feature (Lulzbot's REWIPE)
2016-07-14 14:38:38 -07:00
Scott Lahteine
1618870c84
card.printingHasFinished does print_job_timer.stop
2016-07-14 11:39:58 -07:00
Scott Lahteine
34da77dad3
Simply run M31 at the end of an SD print
2016-07-14 11:39:58 -07:00
Scott Lahteine
a8d71f0ac6
Support longer print times in M31
2016-07-14 11:39:58 -07:00
Scott Lahteine
e481b79af1
Allow stopwatch and printcounter to go over 18 hours
2016-07-14 11:39:57 -07:00
João Brázio
4937f9ada4
Minor G12 tweaks and point_t struct extension
2016-07-14 00:07:36 +01:00
João Brázio
021544f572
Improves G12 zig-zag pattern
2016-07-13 21:14:56 +01:00
João Brázio
b05a75655a
Implements a nozzle cleaning pattern generator (G12)
2016-07-13 21:14:19 +01:00
Scott Lahteine
4f77adddbe
Merge pull request #4286 from thinkyhead/rc_debug_clean
...
Prefix and suffix in debug output
2016-07-12 20:49:15 -07:00
Scott Lahteine
e5c7af5ddc
Merge pull request #4222 from thinkyhead/rc_allow_cold_extrude
...
M302: Add "P" parameter, status output
2016-07-12 20:40:14 -07:00
Scott Lahteine
2224032568
Merge pull request #4285 from thinkyhead/rc_manual_move_fast_fine
...
No delay for the smallest LCD moves
2016-07-12 20:16:38 -07:00
Scott Lahteine
d4c68279c8
Add "P" parameter to M302
2016-07-12 20:04:15 -07:00
Scott Lahteine
a8b6b6a128
Merge pull request #4252 from thinkyhead/rc_rename_hpb
...
Replace PLA/ABS preheating with generic
2016-07-12 20:00:33 -07:00
Scott Lahteine
1e14df876d
Use varname as prefix in DEBUG_POS, string as suffix
2016-07-12 19:58:09 -07:00
Scott Lahteine
9e8b3e5ee6
Homing direction is irrelevant in probe raise!
2016-07-12 18:09:02 -07:00
Scott Lahteine
4865447830
Merge pull request #4276 from esenapaj/Suppress-warnings
...
Suppress warnings
2016-07-11 19:08:59 -07:00
esenapaj
58177a1602
Suppress warnings
2016-07-12 08:22:24 +09:00
AnHardt
7bcab26f2a
Don't deploy/stow the probe if z-min-endstop is used for homing
...
Don't deploy/stow the probe if z-min-endstop is used for homing.
Don't apply `zprobe_zoffset` if probe was not used.
2016-07-11 22:01:44 +02:00
AnHardt
e92e58df1f
Adjust wait_for_cooling slope
...
Adjust wait_for_cooling slope
and drop mintemp for cooling.
See
https://github.com/MarlinFirmware/Marlin/pull/4169#issuecomment-231544532
2016-07-11 03:36:23 +02:00
Scott Lahteine
ee0983ab57
Further reduction when HOTENDS == 1
2016-07-10 16:54:30 -07:00
Scott Lahteine
f9e08b1fcd
Merge pull request #4254 from AnHardt/killscreen
...
Add a kill-screen
2016-07-09 20:44:42 -07:00
AnHardt
faac2bcfdb
Add a kill-screen
2016-07-10 04:50:45 +02:00
Scott Lahteine
3b3e52616c
Merge pull request #4253 from thinkyhead/rc_clexpert_runout
...
Runout Sensor without SD Card, Print Timer support in M104
2016-07-09 19:10:36 -07:00
Scott Lahteine
4cd045791c
Reduce code size by trusting the compiler
2016-07-09 18:17:44 -07:00
Scott Lahteine
a8538bd7ce
General cleanup, code reduction in Marlin_main.cpp
2016-07-09 18:17:44 -07:00
Scott Lahteine
1026e5b071
Replace PLA/ABS preheating with generic
2016-07-09 18:06:51 -07:00
Petr Zahradník junior
315b4c2153
Runout sensor without SD Card
2016-07-09 17:57:53 -07:00
AnHardt
468f7f03a2
homeaxis() can leave early
...
when no known axis needs to be homed.
Most changes are only caused from altering the indentation.
```
if (axis == X_AXIS ? HOMEAXIS_DO(X) : axis == Y_AXIS ? HOMEAXIS_DO(Y) : axis == Z_AXIS ? HOMEAXIS_DO(Z) : 0) {
...
}
to
if (!(axis == X_AXIS ? HOMEAXIS_DO(X) : axis == Y_AXIS ? HOMEAXIS_DO(Y) : axis == Z_AXIS ? HOMEAXIS_DO(Z) : 0)) return;
...
```
2016-07-08 15:59:33 +02:00
AnHardt
eff7912243
Ensble/disable hardware endstops in G28 globally.
...
For moving away from the endstops we do not have to disable them.
They are not tested anyway.
2016-07-08 15:49:10 +02:00
AnHardt
f69434d81c
Eliminate void setup_for_endstop_move()
2016-07-08 15:23:20 +02:00
AnHardt
0ea6247fc2
Use logic in Z_SAFE_HOMING
...
Use logic in Z_SAFE_HOMING
From
```
if (home_all_axis || homeZ) {
if (home_all_axis) {
...
home z
}
else if (homeZ) { // Don't need to Home Z twice
home z
}
}
```
to
```
if (home_all_axis || homeZ) {
if (home_all_axis) {
...
}
home z
}
```
2016-07-08 15:08:50 +02:00
AnHardt
de3a169336
Always define MIN_Z_HEIGHT_FOR_HOMING even if 0
...
Always define MIN_Z_HEIGHT_FOR_HOMING even if 0
Always make a potential rise to `home_offset[Z_AXIS]` possible in G28.
Get rid of some very ugly constructs in MBL (ultralcd.cpp).
2016-07-08 15:08:32 +02:00
AnHardt
88ed232f53
Remove HAS_BED_PROBE case in first raise in G28
...
Differentiating made sense here when we could save a dozen lines of code,
but not for one line.
2016-07-08 14:59:44 +02:00
AnHardt
653eff3b31
Clean up quick_home_xy()
...
Since we do the actual homing now in the 'normal' routines `quick_home_xy()`
can be simplified to a relative simple diagonal move.
2016-07-08 14:59:27 +02:00
Scott Lahteine
98d0167a57
Merge pull request #4226 from thinkyhead/rc_emergency_command_parser
...
MarlinSerial emergency-command parser (with M108)
2016-07-07 16:53:55 -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
Scott Lahteine
ecffe92e20
Group EMERGENCY_PARSER commands
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
Scott Lahteine
9f42b1a075
Merge pull request #4235 from thinkyhead/rc_revert_quickhome_test
...
Fix quick homing, tweak MIN_Z_HEIGHT_FOR_HOMING
2016-07-07 13:37:14 -07:00
Scott Lahteine
ad968f2325
Merge pull request #4234 from thinkyhead/rc_better_position_logging
...
Move XYZ in print_xyz and DEBUG_POS to the front
2016-07-07 12:31:15 -07:00
Scott Lahteine
4036c73cdd
Don't raise Z if only homing Z
2016-07-07 12:28:37 -07:00
Scott Lahteine
0b6f8f8244
Apply MIN_Z_HEIGHT_FOR_HOMING raise literally
2016-07-07 12:25:02 -07:00
Scott Lahteine
177ec20bf0
Revert quick-home changes
2016-07-07 12:17:34 -07:00
Scott Lahteine
9c5b462ef2
Move XYZ in print_xyz and DEBUG_POS to the front
2016-07-07 11:42:19 -07:00
Scott Lahteine
4e84c803a3
Merge pull request #4232 from thinkyhead/rc_no_axis_codes_needed
...
Don't use axis_codes if a literal will do
2016-07-06 20:05:16 -07:00
Scott Lahteine
e2f7cb0905
Don't use axis_codes if a literal will do
2016-07-06 18:37:21 -07:00
Scott Lahteine
6559f7359f
Fix comment on Z raise for homing, save a few bytes
2016-07-06 16:21:51 -07:00
Scott Lahteine
d0b29cabf3
Don't re-home X and Y if you quick homed
2016-07-06 13:46:06 -07:00
Scott Lahteine
e0a6b978f5
Don't do_probe_raise with MIN_Z_HEIGHT_FOR_HOMING
2016-07-06 13:46:05 -07:00
Scott Lahteine
7735ec5e7a
Merge pull request #4223 from thinkyhead/rc_rename_heatup
...
Change cancel_heatup to wait_for_heatup
2016-07-06 11:25:44 -07:00
Scott Lahteine
160a2be117
Change cancel_heatup to wait_for_heatup
2016-07-06 09:17:50 -07:00
AnHardt
16c83d203b
Make use of the good features of a sled probe for all probes.
...
Move and extend axis_unhomed test to deploy/stow_z_probe().
Move and extend position store/restore to deploy/stow_z_probe().
Now all kinds of probes can use the 'E' parameter in G29/M48.
Allen key probes can be used now for grid and 3-point levelling.
Deploying the Allen Key probe uses big moves in z direction.
Too dangerous for an unhomed z-axis.
Throw a compile time error when we try to configure an
Allen Key probe homing to z-min and having no other z-min-endstop.
2016-07-06 04:11:04 +02:00
AnHardt
8555816a11
Generalize and simplify 'triggered when stowed test`
...
The `PROBE_IS_TRIGGERED_WHEN_STOWED_TEST` is able to detect if a probe is
successfully deployed/stowed.
It was part of the Allen Key probes code only.
Now the function is generally available.
Currently this test is compulsory for Allen Key probes to not alter the used behaviour
If you want to add the test for an other type of probe simply add
```
#define PROBE_IS_TRIGGERED_WHEN_STOWED_TEST
```
to your config.
2016-07-06 03:56:17 +02:00
AnHardt
5126cce7fd
Move Allen Key probe move scripts to their own functions
...
There was an hidden extra move after the scripts. This is configurable now.
Added the extra moves to the relevant configs.
2016-07-06 03:46:40 +02:00
AnHardt
7d063c111c
Add a optional feedrate parameter to do_blocking_move()
...
Add a optional feedrate parameter to `do_blocking_move()` and its companions.
2016-07-06 03:46:34 +02:00
Scott Lahteine
b114b6a0b3
Save 152 bytes using uint8_t for command indices
2016-07-05 16:29:28 -07:00
Scott Lahteine
0d4ff0c48b
Allow the queue to be cleared from within commands
2016-07-05 16:25:20 -07:00
Scott Lahteine
c450851401
Merge pull request #4209 from AnHardt/too-high-G28
...
Make raise for probe deploy relative in homeaxis()
2016-07-05 11:07:42 -07:00
AnHardt
f799f18388
MBL typo
2016-07-05 18:19:53 +02:00
AnHardt
8b02e68cb6
Make raise for probe deploy relative in homeaxis()
...
Make raise for probe deploy relative in homeaxis()
by setting `current_position[axis]` to zero later.
2016-07-05 10:42:33 +02:00
Scott Lahteine
e48502866b
Merge pull request #3611 from alephobjects/M108_cancel_heatup
...
Introduce M108 cancel wait for heatup/cooldown of the hotend and bed
2016-07-04 01:19:31 -07:00
Scott Lahteine
d70197f514
Merge pull request #4204 from thinkyhead/rc_fix_gcode_t_position
...
Additional patches for gcode_T position change
2016-07-04 01:16:22 -07:00
Scott Lahteine
869b517589
Merge pull request #4205 from thinkyhead/rc_fixup_unit_references
...
References to millimeters in code comments need an update
2016-07-04 01:15:34 -07:00
Scott Lahteine
e104b91ea6
References to millimeters in code comments need an update
2016-07-03 20:13:29 -07:00
AnHardt
ff91d28a3a
Remove wants_to_cool warning
...
Remove wants_to_cool warning
2016-07-04 03:12:11 +02:00
Scott Lahteine
c9e536cf87
Additional patches for gcode_T position change
2016-07-03 18:11:02 -07:00
Scott Lahteine
f31af61ee2
Fix position adjustment with gcode_T and MBL
2016-07-03 17:44:04 -07:00
lrpirlet
9b42c6b44b
apply correction when swtiching from MBL to physical in G28 X
2016-07-03 21:43:42 +02:00
Petr Zahradnik
43ff0ce35f
Rewritten FILAMENT_CHANGE_ENABLE feature
2016-07-02 15:34:33 -07:00
AnHardt
cb1b31f69b
Unconditional do_probe_raise() in probe_pt()
...
If Z_RAISE_BETWEEN_PROBINGS is null or undefined the probe is currently not raised by home_offset[Z_AXIS] and zprobe_zoffset.
But when different from 0 is.
If an undefined Z_RAISE_BETWEEN_PROBINGS expands to 0 (and it does) this is the solution.
A similar asymmetry exists with the newly introduced 'short-cut' in G28 - but its the rise before anything is probed - so should not make a difference.
2016-07-01 15:28:41 +02:00
Scott Lahteine
7ef7843fd4
Merge pull request #4181 from thinkyhead/rc_rename_a_move_func
...
Do interpolated moves for Allen Key deploy/stow
2016-06-30 16:30:09 -07:00
Scott Lahteine
da6b0dab5f
Use prepare_move_to_destination for Allen Key deploy/stow
2016-06-30 16:09:43 -07:00
Scott Lahteine
c42f8fb8dd
Rename some movement sub-functions
2016-06-30 15:50:00 -07:00
Scott Lahteine
5e14a528dd
Always wait for cooling in M109/M190, break at low temp or if cooling stalls
2016-06-29 14:07:54 -07:00
Scott Lahteine
2e96276bf4
More debug message cleanup
2016-06-27 20:36:19 -07:00
Scott Lahteine
dc2c0e5e24
Simpler debug output for deploy/stow
2016-06-27 20:36:18 -07:00
Scott Lahteine
bd491818d6
Reduce storage requirements for strings, make some PGM
2016-06-27 20:36:18 -07:00
AnHardt
e480ee0054
Further cleanup of G28 for probes
2016-06-27 20:19:51 -07:00
AnHardt
39883d03fc
universalize axis_unhomed_error()
2016-06-27 20:19:51 -07:00
AnHardt
e616093d4c
Simplify dock_sled()
...
`dock_sled()` is never called with offset parameter - remove it.
We move x only - so only that needs to be homed. Consequence is - we can home to z-min now with a sled probe!
Feedrates are set and restored in `do_blocking_move()`.
We already checked if the probe is deployed/stowed in deploy/stow_probe.
```
if (z_loc < _Z_RAISE_PROBE_DEPLOY_STOW + 5) z_loc = _Z_RAISE_PROBE_DEPLOY_STOW;
```
makes no sense - remove.
Now the raise is the same for deploy/stow -> move before the if.
Replace the if with a ternary.
Instead writing LOW/HIGH use the boolean `stow` we already have.
There is no reason for not using the sled probe in G29/M48 with 'E'.
It takes a while but works. (tested!)
2016-06-27 20:19:51 -07:00
Scott Lahteine
829c92f1ba
Use Z_RAISE_BETWEEN_PROBINGS with MBL
2016-06-26 15:39:11 -07:00
Scott Lahteine
eb1755208f
Merge pull request #4153 from thinkyhead/rc_probe_raise_options
...
Combine Z raise before/after options
2016-06-26 15:30:08 -07:00
Scott Lahteine
10da7ac86c
Combine Z raise before/after options
2016-06-26 13:56:30 -07:00
Scott Lahteine
3fa631130f
Ensure a minimum height before XY move in probe_pt
2016-06-25 19:19:31 -07:00
Scott Lahteine
ca184d3d72
Merge pull request #4147 from thinkyhead/rc_fix_M48_raise
...
Fix debug output in probe_pt
2016-06-25 18:15:33 -07:00
Scott Lahteine
b4161cbd98
Fix debug output in probe_pt
2016-06-25 17:59:03 -07:00
Edward Patel
da88b00585
MBL: Add support for max z endstop
...
See https://github.com/MarlinFirmware/Marlin/issues/4088
2016-06-25 21:58:02 +02:00
Scott Lahteine
7de7552069
Merge pull request #4133 from MagoKimbra/Single_home_axis_delta
...
Single home Axis Delta need simple sync_plan_position
2016-06-23 21:14:22 -07:00
Scott Lahteine
15a6b49f37
Simplified probe_pt (in G30)
2016-06-23 20:25:46 -07:00
Scott Lahteine
6a7045b9bf
Remove clean_up_after_endstop_move
2016-06-23 20:23:19 -07:00
Scott Lahteine
2a4f866561
Simplified probe_pt (in G29)
2016-06-23 20:22:28 -07:00
Scott Lahteine
89a2aa026b
Simplified probe_pt (in M48)
2016-06-23 19:22:45 -07:00
Scott Lahteine
f8530c5d1f
Simplified probe_pt function (G28 grid)
2016-06-23 19:09:32 -07:00
Scott Lahteine
c376c08042
Simplified probe_pt function (part 1)
2016-06-23 19:00:29 -07:00
Scott Lahteine
9a71b7f8ad
Fix debug message for 3-point leveling
2016-06-23 18:17:31 -07:00
Scott Lahteine
550c03a5a9
Drop raise_z_after_probing function
2016-06-23 18:11:54 -07:00
Scott Lahteine
bb38c816af
Always raise in deploy_z_probe / stow_z_probe
2016-06-23 18:00:20 -07:00
Scott Lahteine
68f3350050
Cleanup M401 / M402
2016-06-23 17:04:41 -07:00
Scott Lahteine
3afda99adf
Regular handlers for G31 / G32
2016-06-23 17:04:13 -07:00
Scott Lahteine
6803c8e37e
Move Z up before, or down after XY, for "blocking move"
2016-06-23 15:50:13 -07:00
MagoKimbra
570f3bbc07
Single home Axis Delta need simple sync_plan_position
2016-06-23 23:09:47 +02:00
Scott Lahteine
7b2fadd598
Apply some fixes from Andreas
...
Derived from
https://github.com/AnHardt/Marlin/commit/6e8ede8c694fa4d9e3c769840b09d56
7f8d8e0dd
2016-06-22 17:35:59 -07:00
Scott Lahteine
bd01592816
Goodbye MECHANICAL_PROBE
2016-06-22 17:13:33 -07:00
Scott Lahteine
2640d13a9f
Simplify initial raise in M48
2016-06-22 16:53:04 -07:00
Scott Lahteine
3763d45656
Return Z position in run_z_probe
2016-06-22 16:52:32 -07:00
Scott Lahteine
1f48b5c30f
Pass a raise to probe_pt, not a Z position
2016-06-22 16:40:21 -07:00
Scott Lahteine
6fdd5ba246
Save and restore feedrate in more places
2016-06-22 16:40:20 -07:00
Scott Lahteine
fe173c2bc6
Generalized probe raise, use for after probing
2016-06-22 14:44:30 -07:00
Scott Lahteine
7da3080761
Simpler cleanup in G28 / G29
2016-06-22 14:44:30 -07:00
Scott Lahteine
15229d988b
Fix compile error for bed matrix in M48
2016-06-22 14:04:46 -07:00
Scott Lahteine
c01352cbd5
Add a dependency for z servo macros
2016-06-22 14:04:23 -07:00
Scott Lahteine
c3794bd695
Add HAS_PROBING_PROCEDURE conditional
2016-06-22 14:03:22 -07:00
Scott Lahteine
bb9c67b4b5
Tweak some feedrate vars
2016-06-22 03:27:31 -07:00
Scott Lahteine
5158bd6e93
Screen out G29 E
for sled and allen key, allow single probe
2016-06-22 03:20:33 -07:00
Scott Lahteine
ccae92588d
Cleanup debug in G28 and G29
2016-06-22 03:20:33 -07:00
Scott Lahteine
b4a9d2366c
Use a macro for kinematic sync_plan_position
2016-06-22 03:20:33 -07:00
Scott Lahteine
bfccf26294
Use sync_plan_position_delta where needed
2016-06-22 03:20:33 -07:00
Scott Lahteine
a6b8c67df4
Move probe deploy after setup call in G29
2016-06-22 03:20:33 -07:00
Scott Lahteine
e69916d1bd
Split up endstop_move functions
2016-06-22 03:20:33 -07:00
Scott Lahteine
0e18a4897b
Simpler handling of sled/allen-key in probe_pt
2016-06-22 03:20:33 -07:00
Scott Lahteine
1a92e2ef18
Comment on run_z_probe
2016-06-22 03:20:33 -07:00
Scott Lahteine
68e0e5855e
For all probes, at the end of G29 simply raise and stow
2016-06-22 03:20:33 -07:00
Scott Lahteine
c3023f8cc5
Make M401/M402 available with HAS_BED_PROBE
2016-06-22 03:20:33 -07:00
Scott Lahteine
9f0c255c69
Show uncorrected position in set_bed_level_equation_3pts
2016-06-22 03:20:33 -07:00
Scott Lahteine
07298ac992
Initialize current_position to home_offset on boot
2016-06-22 03:20:33 -07:00
Scott Lahteine
d50539583a
Make XY_PROBE_SPEED a general probe option
2016-06-22 03:04:47 -07:00
Scott Lahteine
2798499b71
XY_TRAVEL_SPEED => XY_PROBE_SPEED
2016-06-22 02:45:25 -07:00
Scott Lahteine
88dc543584
Add a macro for XY_TRAVEL_FEEDRATE
2016-06-22 02:23:50 -07:00
Scott Lahteine
3996242e9d
Allow Z_MIN_PROBE_REPEATABILITY_TEST solo
2016-06-21 01:56:40 -07:00
Scott Lahteine
26a9cd0b08
Move run_z_probe to earlier block
2016-06-21 01:25:23 -07:00
Scott Lahteine
7f8a2025af
Move raise_z_after_probing into earlier block
2016-06-21 01:03:40 -07:00
Scott Lahteine
2530371516
Always disable probe at the end of G29
2016-06-20 16:40:44 -07:00
Scott Lahteine
6aba98e470
Comment on setup_for_endstop_move
2016-06-20 16:40:44 -07:00
Scott Lahteine
04e88d008e
Clear up ordering in G30
2016-06-20 16:40:44 -07:00
Scott Lahteine
ed75b0ea11
Make clean_up function available for probes
2016-06-20 16:28:45 -07:00
Scott Lahteine
51d52cb52a
Make run_z_probe available for any bed probe
2016-06-20 16:02:36 -07:00
Scott Lahteine
f6b09cf465
Always use deploy/stow for dock_sled
2016-06-20 15:51:01 -07:00
Scott Lahteine
3b457c2dd3
Use deploy/stow with FIX_MOUNTED_PROBE too
2016-06-20 15:25:01 -07:00
Scott Lahteine
7e9d4a68d4
Always raise Z (if needed) for servo deploy/stow
2016-06-19 20:17:13 -07:00
Scott Lahteine
9beb3f2f5e
Merge pull request #4097 from thinkyhead/rc_fil_runout_cleanup
...
FIL_RUNOUT_INVERTING false by default
2016-06-19 19:46:14 -07:00
Scott Lahteine
f215b30932
Merge pull request #4093 from thinkyhead/rc_probe_without_abl
...
Make Z Probe options independent of ABL
2016-06-19 19:44:25 -07:00
Scott Lahteine
2fd2301928
FILRUNOUT => FIL_RUNOUT
2016-06-19 19:25:26 -07:00
Scott Lahteine
de12228758
Make Z Probe options independent of ABL
2016-06-19 18:47:27 -07:00
Scott Lahteine
add0032820
Improve FILAMENT_RUNOUT_SENSOR, FILRUNOUT_PIN
2016-06-19 18:13:33 -07:00
Scott Lahteine
400e13d136
Output a message for SD read errors
2016-06-19 17:14:56 -07:00
Roxy-3D
96b8bcca84
Merge pull request #4081 from thinkyhead/rc_tweaky_m48_tweaks
...
Cleanup of M48
2016-06-18 22:21:16 -05:00
Scott Lahteine
b7e3c1bbc4
Tweak M48 output conditions
2016-06-18 16:17:53 -07:00
Scott Lahteine
1dad912b03
Adjust M48 raise / move handling
2016-06-18 15:38:24 -07:00
Scott Lahteine
46d3ef2223
Simplify sample_set probe_pt call in M48
2016-06-18 15:38:23 -07:00
Scott Lahteine
a647b05f82
Shrink some debug code in G28
2016-06-18 15:38:23 -07:00
Scott Lahteine
4edf813bde
Just-in-time declaration style in M48
2016-06-18 15:38:23 -07:00
Juan Ricardo Gomez Anaya
c475291e19
Fix M851
...
Minor change missing in the process of standardize the gcode M851
2016-06-18 15:19:07 -07:00
Scott Lahteine
4e860babbc
Allow setting xy_travel_speed for delta leveling also
2016-06-18 01:40:49 -07:00
Scott Lahteine
d36d4edd80
Tweak partial homing code
2016-06-18 01:16:50 -07:00
Scott Lahteine
d3a05de96e
Save and restore feedrate in probe functions
2016-06-18 01:16:26 -07:00
Scott Lahteine
defcacc1a9
Delete some obsolete Z servo macros
2016-06-17 18:49:17 -07:00
Scott Lahteine
3a150f07c2
Merge pull request #4073 from thinkyhead/rc_temp_mystery
...
Minor tweaks to M109 / M190
2016-06-17 17:49:50 -07:00
Scott Lahteine
bd4ec727e7
Merge pull request #4066 from thinkyhead/rc_M851_with_probe
...
Make M851 standard with a bed probe
2016-06-17 17:32:55 -07:00
Scott Lahteine
692a6e7c91
Merge pull request #4065 from thinkyhead/rc_goodbye_xy_servos
...
Remove support for XY servo endstops
2016-06-17 17:32:08 -07:00
Scott Lahteine
de177ba6c9
Minor tweaks to M109 / M190
2016-06-17 17:26:21 -07:00
Scott Lahteine
1000563d80
Make M851 standard with a bed probe
2016-06-17 15:19:42 -07:00
Scott Lahteine
f66a194159
Merge pull request #4062 from jbrazio/bugfix/compiler-warnings
...
Fixes misc gcc warnings
2016-06-17 14:23:28 -07:00
Scott Lahteine
1bed392c68
HAS_Z_ENDSTOP_SERVO => HAS_Z_SERVO_ENDSTOP
2016-06-17 14:20:17 -07:00
Scott Lahteine
47ce810f52
Remove support for XY servo endstops
2016-06-17 14:19:17 -07:00
João Brázio
d1e5dc6319
Fixes misc gcc warnings
2016-06-17 20:24:24 +01:00
Scott Lahteine
ef3bef6b9e
Fix feedrate in gcode_T (max_feedrate is mm/s)
2016-06-16 16:03:14 -07:00
MagoKimbra
008d0637dd
Fix gcode_T
2016-06-16 09:05:36 +02:00
Scott Lahteine
da90bbe0eb
Merge pull request #4010 from thinkyhead/rc_toolchange_adjust
...
Fixup position adjustment on toolchange
2016-06-15 21:10:33 -07:00
Scott Lahteine
4b93989a77
MBL Z adjustment on toolchange
2016-06-15 20:49:36 -07:00
Scott Lahteine
9c800d1f8c
Position adjustment for bed leveling
2016-06-15 20:49:36 -07:00
esenapaj
44f091a413
Fix for the PR #4023(Add macros to move servos)
...
・Add missing ')'
2016-06-15 22:34:55 +09:00
Scott Lahteine
52ac2a62ee
Merge pull request #4013 from thinkyhead/rc_toolchange_no_move
...
Use "Tn S1" to change tools without moving
2016-06-14 20:13:01 -07:00
Scott Lahteine
d2a00b74e3
Merge pull request #4004 from thinkyhead/rc_feedrate_in_gcode_T
...
Use linear feedrate in gcode_T, not volumetric
2016-06-14 20:10:08 -07:00
Scott Lahteine
8d8180e028
Parse M905 args in Marlin_main.cpp
2016-06-13 19:25:28 -07:00
Scott Lahteine
2b340f5acb
patch LIN_ADVANCE to use code_value_float
2016-06-13 18:54:25 -07:00
Scott Lahteine
b708196770
Merge pull request #4032 from AnHardt/bootscreen-delay
...
Show bootscreen later
2016-06-13 18:27:05 -07:00
Scott Lahteine
587de1b6b6
Merge pull request #3676 from thinkyhead/rc_lin_advance_feature
...
Advance extrusion algorithm – LIN_ADVANCE
2016-06-13 18:04:58 -07:00
AnHardt
b4fedec0d1
Show bootscreen later
...
Init display and show bootscreen later, but init display in `kill()`
to init outputs before the bootscreen delays but being able to display
kill errors.
2016-06-14 01:59:50 +02:00
Scott Lahteine
4fbe818163
Add macros to move servos
2016-06-12 15:38:30 -07:00
Scott Lahteine
7fb69e24fb
Use "Tn S1" to change tools without moving
2016-06-11 15:58:45 -07:00
Scott Lahteine
b75e648f2c
Clarify names of prepare_move functions
2016-06-11 15:32:49 -07:00
Scott Lahteine
0e2bfd0769
Use linear feedrate in gcode_T, not volumetric
2016-06-10 18:27:01 -07:00
Scott Lahteine
6d62a4ffc8
Patch LIN_ADVANCE for style and forward-compatibility
2016-06-09 21:03:27 -07:00
Sebastianv650
fb8e880734
Add LIN_ADVANCE
2016-06-09 21:03:27 -07:00
Scott Lahteine
e2d4919c01
Merge pull request #3991 from thinkyhead/rc_axis_units
...
Rename some vars to clarify their relationship to acceleration
2016-06-09 20:57:01 -07:00
João Brázio
5b5aa1572b
Non-blocking buzzer
2016-06-09 20:20:05 -07:00
Scott Lahteine
72c6f2923f
axis_steps_per_unit => axis_steps_per_mm
2016-06-09 17:04:51 -07:00
Scott Lahteine
cb4704e07a
Rename some planner acceleration vars
...
- `per_sq_second` => `per_s2`
- `per_sqr_second` => `per_s2`
- `axis_steps_per_sqr_second` => `max_acceleration_steps_per_s2`
2016-06-09 17:04:50 -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
cca047424d
MBL: cel => cell
2016-06-07 19:10:39 -07:00
Scott Lahteine
43947072d5
Merge pull request #3895 from thinkyhead/rc_singlenozzle_part_2
...
SINGLENOZZLE: EXTRUDERS versus HOTENDS
2016-06-04 15:23:17 -07:00