Commit Graph

1292 Commits

Author SHA1 Message Date
Yuri D'Elia
8fb8ff4bf4 Include fsensor recovery stats in the last print stats 2020-02-05 16:20:12 +01:00
DRracer
007395acb4
Merge pull request #2458 from wavexx/la15_compat
Adjust E-jerk in LA10 compatibility mode
2020-02-03 15:57:21 +01:00
Yuri D'Elia
453f5dd874 Adjust E-jerk in LA10 compatibility mode
When upgrading K values of a LA1.0 print, also adjust E-jerk settings
(<2) if permissible according to current accell limits. The same is also
true when jerk is set mid-print via 'M205 E'.

Existing values are always restored when switching to another
compatibility mode.

TODO: Since this is stateful, we will need to save the current print
mode / acceleration and jerk in the eeprom for this to survive a power
panic (see prusa3d#2456).
2020-02-03 15:42:27 +01:00
Yuri D'Elia
84ecf96be5 Do not clear last print fail stats prematurely
M24 was always cleaning the last print failstats. But because M24 is
used to restore a print after power failure (by setting the seek
offset), it would also reset the stats incorrectly after resuming.

Check for the file index position and reset the stats only when a print
is started from the beginning of the file.

Apply the same logic to M32 and similarly handle the LA10->15 conversion
(do not re-apply the adjustment for a resumed print).
2020-01-31 15:08:24 +01:00
DRracer
d70a147af5
Merge pull request #2436 from leptun/MK3_PSU_DELTA_cleanup
Do not clear axis known position when Z is set to silent
2020-01-31 09:08:14 +01:00
DRracer
1ceadcb162
Merge pull request #2448 from wavexx/save_restore_fix
Save and restore fixes
2020-01-30 16:41:01 +01:00
DRracer
1b7677c768
Merge pull request #2394 from wavexx/fsensor_no_recursion
Avoid more recursive behavior in fsensor_update
2020-01-30 14:18:07 +01:00
Yuri D'Elia
1db024f17a Always raise the extruder 25mm during power recovery
Avoids oozed material (drooping more than ~1mm) to scrape and
potentially detach the print.
2020-01-30 13:12:12 +01:00
Yuri D'Elia
571906a494 Do not update saved_target if there's no current_block
There is a chance that current_block can be NULL despite
the queue being non-empty. This can happen early after a block has been
queued, but before the isr has picked it up for processing, and/or when
the current block is at the last step and is being discarded.

Check for current_block directly to avoid this race.
2020-01-30 13:12:12 +01:00
Yuri D'Elia
02d1525445 Display "POWER PANIC DETECTED" when possible
Both during early init and in uvlo_tiny, display "POWER PANIC DETECTED"
if enough charge is left.

This is not worth doing in regular uvlo_, as we want to give full
priority to the X motor
2020-01-29 21:08:56 +01:00
Yuri D'Elia
2b46fdac2d Only trigger a quick reset if there's a pending saved state
Thanks to @leptun
2020-01-29 17:56:26 +01:00
Alex Voinea
4fd913ddf3
Remove commented out code 2020-01-29 17:45:47 +02:00
Yuri D'Elia
b46dc59fad Refuse to start a print if power is lost before arming uvlo
If power has been lost during startup already a falling edge would be
skipped, causing the print to continue and lose its state without
being able to save again.

Check for a low line after arming the interrupt and simply wait
for reset.
2020-01-29 16:06:54 +01:00
Yuri D'Elia
200cdde1af Setup the UVLO interrupt later during initialization
Do not allow uvlo_tiny() to trigger before the previous print has
already been recovered.

A quick repeated power failure could cause uvlo_tiny to overwrite
the Z position before it has been correctly recovered.
2020-01-28 21:50:12 +01:00
Yuri D'Elia
3da20db024 Really poweroff Z motors when PSU_Delta is defined
enable/disable_z behave differently when PSU_Delta is defined.

During powerpanic and kill however we do *really* need to save energy
and poweroff the motors.

Rename enable/disable_z as poweron/poweroff_z and define some aliases so
that we can use the low-level function where needed.
2020-01-27 18:50:17 +01:00
Yuri D'Elia
5d88573711 Save/restore hotend temperatures above 255C in PowerPanic
Use 2 bytes to store extruder temperature during UVLO.

Re-use the storage of EEPROM_UVLO_TINY_Z_MICROSTEPS which has been freed
by previous changes.

Fixes #2303
2020-01-27 14:59:18 +01:00
Yuri D'Elia
50a9fe003a Bump the unparking speed to 50mm/s (same as M600 recovery) 2020-01-27 11:08:28 +01:00
Yuri D'Elia
eb2ca78167 Rewrite uvlo handling for accurate Z re/positioning
- In both uvlo_ and uvlo_tiny, calculate Z usteps properly and adjust
  the Z position to a true fullstep before disabling the motor. This
  avoids shifs during recovery.
- In uvlo_tiny, instead of moving up indefinitely, adjust Z just
  once using the smallest move possible (new def UVLO_TINY_Z_AXIS_SHIFT)
- Perform all the uvlo/recovery processing in physical coordinates
  and MBL off: there should be no automatic Z movement!
- Disable heaters in both handlers to conserve more power.
- Add timing information to uvlo_tiny too.
- During recovery, to switch between physical and logical positioning
  introduce a new "PRUSA MBL" gcode as most of the procedure is
  enqueued, and no existing gcode was available.
2020-01-26 17:46:50 +01:00
Yuri D'Elia
11a0e95f60 Re-enable the code that moves the extruder during PP
There is frequently plenty of power left during a PP. Take advantage of
it by moving the extruder to either side of the axis to detach
completely the nozzle from the print.

Re-enable Z during this move to avoid losing the current step.
2020-01-26 17:46:50 +01:00
Yuri D'Elia
ec5cbf73b9 During PP keep the watchdog waiting for longer
When the printer is connected to a USB host during a PP (and the host
does not lose power), the rambo can linger for longer, sometimes for
long enough to recover the print state. Drain some more power.
2020-01-26 17:46:50 +01:00
Yuri D'Elia
ec8b5aaa34 Do not attempt to "zero-phase" the microstep counter
If the motors are off-phase, this is more likely to "bump" them to an
incorrect/reverse full-step, doing worse.

We need to ensure the motors are already positioned on a fullstep
during power panic instead.

Remove the PSU_DELTA exception: Z _always_ needs to be powered here.
2020-01-26 17:46:26 +01:00
Yuri D'Elia
5310181970 Cancel a recovering print when using the LCD "Stop"
Also clear the UVLO flag when using lcd_print_stop. This prevents an
aborted print which has been cancelled while unparking (just prior to
recover) to come back again at the next startup.
2020-01-26 17:45:47 +01:00
Alex Voinea
4055977a95
Do not clear axis known position when Z is set to silent
Also removed unused (forgotten) variable.
2020-01-25 11:41:27 +02:00
3d-gussner
6d721c9b82 Merge remote-tracking branch 'upstream/MK3' into MK3-Fix_M120_M121
Fix merge with FW3.9.0-beta
2020-01-23 14:46:48 +01:00
Alex Voinea
2e50954710
Merge branch 'MK3' into MK3_fix_selftest_Z_crash2 2020-01-22 14:56:54 +02:00
Yuri D'Elia
7f3d4a8491 Restore the last E axis position correctly after powerpanic
- Initially restore the last E position from the eeprom in any case, not
  just when using absolute mode (although unnecessary: since it will be
  reset later), fixing a possible unitialized position and crash during
  recovery (thanks to @leptun)
- Remove useless extra calls to put the extruder in relative mode:
  the extruder already starts in relative mode and is later switched to
  absolute.
- Replace incorrect calls to STRINGIFY with sprintf_P
- Retract after pressure has been restored in uvlo_tiny, to be
  consistent with a regular uvlo (remove the bogus double unretract
  as a result).
- Set the real E position prior to the panic *after* the retraction,
  using the now-fixed G92.
2020-01-21 17:41:43 +01:00
Yuri D'Elia
4c8f1e8b89 Use eeprom_update_word instead of EEPROM_save_B 2020-01-21 16:36:34 +01:00
Yuri D'Elia
9ac80f73f2 Remove an useless/duplicate Z move
Likely a result of a merge
2020-01-21 16:34:09 +01:00
Yuri D'Elia
8437630122 Inhibit serial processing in uvlo_
Do not process serial commands when re-enabling the global isr.
While printing via USB and a power panic is triggered, *any* extra
command should be ignored.

Abuse the "saved_printing" variable to inhibit serial processing.
2020-01-21 16:29:12 +01:00
Yuri D'Elia
e8f05d0668 Heat both nozzle/bed together while recovering a print 2020-01-21 16:26:16 +01:00
Yuri D'Elia
67decb466d Avoid another call to st_get_position_mm
current_position is already filled by planner_abort_hard.
2020-01-21 16:24:19 +01:00
odaki
b09761ed71 Remove '/*' from M46 source
I forgot to remove the unintended comment start mark when merge.
It has been deleted.
2020-01-16 21:38:39 +09:00
odaki
24b748c4ac Merge remote-tracking branch 'upstream/MK3' into flashair_display_ip 2020-01-16 21:25:55 +09:00
Alex Voinea
1d17a37250
all axis -> all axes 2020-01-16 09:15:44 +02:00
leptun
ccd3885d84
rephrase G28 W 2020-01-15 23:01:09 +02:00
Alex Voinea
6a1eb63a52
Add @todo to M999 2020-01-15 22:41:02 +02:00
Alex Voinea
d676542229
Revert code changes 2020-01-15 22:38:00 +02:00
Alex Voinea
47ddc2e902
M204 - better old_new separation 2020-01-15 22:35:34 +02:00
Alex Voinea
622319f86c
Add missing LF 2020-01-15 22:30:53 +02:00
Alex Voinea
ea51696a68
Merge Special sections as requested 2020-01-15 22:30:43 +02:00
Alex Voinea
aac66d4a4b
Add missing quote 2020-01-15 22:21:23 +02:00
Alex Voinea
d95029bbc7
Merge remote-tracking branch '3d-gussner/MK3-Gcode_documentation' into MK3-Gcode_documentation 2020-01-15 20:17:51 +02:00
Alex Voinea
cabfc37f15
The other changes 2020-01-15 20:17:26 +02:00
3d-gussner
5ff6c1f22c Merge remote-tracking branch 'upstream/MK3' into MK3-Gcode_documentation 2020-01-15 16:36:08 +01:00
Alex Voinea
4cf4720a15
Even more formatting fixes 2020-01-15 17:27:54 +02:00
Alex Voinea
7118007efe
Adjustments 2020-01-15 15:52:56 +02:00
Alex Voinea
7ea00a7efd
Fix typo in page description 2020-01-15 15:31:28 +02:00
Alex Voinea
8449136520
Separate M117 from the TMC2130 commands 2020-01-15 15:31:14 +02:00
Alex Voinea
4a4d7976d1
Fix PRUSA typo 2020-01-15 15:30:48 +02:00
Alex Voinea
55f3e7acaf
Merge branch 'MK3' into MK3-Gcode_documentation 2020-01-15 15:12:18 +02:00
DRracer
27f6807bd5
Merge pull request #2416 from wavexx/fix_G92_e_reset
Fix incorrect usage of plan_set_e_position() in G92 E*
2020-01-15 12:52:13 +01:00
DRracer
7230b99448
Merge pull request #2393 from wavexx/sync_before_resume
Sync before resume
2020-01-15 12:49:56 +01:00
DRracer
43870c4028
Merge pull request #2368 from wavexx/unretract_after_lcd_pause
Unretract when resuming a paused print
2020-01-15 12:47:24 +01:00
Yuri D'Elia
bab756699f Fix incorrect usage of plan_set_e_position() in G92 E*
To maintain an accurate step count (which is required for correct
position recovery), any call to plan_set_position&co needs to be done
synchronously and from a halted state.

However, G92 E* is currently special-cased to skip the sync (likely to
avoid the associated performance cost), causing an incorrect E step
count and position to be set. This breaks absolute position recovery,
miscalculation of the LA factor and possibly other weird issues.

We rewrite the handling of G92 to always sync but still special-case the
frequent "G92 E0" for performance by using a free bit in the block flags.

To avoid a sync, we relay the request for reset first to the planner
which clears its internal state and then relays the request to the final
stepper isr.
2020-01-14 20:24:14 +01:00
odaki
99545a006c M46 "Show the assigned IP address" activated
According to the reprap wiki, M46 has been assigned to display its assigned IP address, but has been disabled.
Now that Toshiba FlashAir IP address processing is working, I activate the M46 code so that I can read the IP address information via serial.
2020-01-12 12:45:43 +09:00
Alex Voinea
32c9cd2307
Merge branch 'MK3' into fix_lcd_stop 2020-01-09 14:17:56 +02:00
DRracer
b088500eaf
Merge pull request #1909 from wavexx/MK3_LA15
Linear Advance 1.5 Returns
2020-01-09 11:22:06 +01:00
3d-gussner
d895890608 Merge remote-tracking branch 'upstream/MK3' into MK3-Fix_M120_M121 2020-01-08 15:59:16 +01:00
3d-gussner
f3668cab92 Merge remote-tracking branch 'upstream/MK3' into MK3-Gcode_documentation
Fix merge issues with G90 and G91
2020-01-08 15:47:38 +01:00
DRracer
2f2e415eae
Merge pull request #2382 from wavexx/fix_lcd_stop
Fix lcd "Stop" when used within a pause
2020-01-08 14:40:54 +01:00
DRracer
3ef1c52a0a
Merge pull request #2381 from wavexx/remove_relative_mode
Remove "relative_mode", only use "axis_relative_modes"
2020-01-08 14:39:43 +01:00
Alex Voinea
1996fc7940
Remove commented-out code 2020-01-07 20:43:56 +02:00
Alex Voinea
f8a0d5d773
Fix lcd_print_stop function 2020-01-07 19:54:06 +02:00
Alex Voinea
df0d781c20
Merge branch 'MK3' into fix_lcd_stop 2020-01-07 19:53:55 +02:00
Yuri D'Elia
853991865c Improve raise_z_above to always raise when at Z_MIN
When check_z_endstop is set, Z_MIN_PIN is checkend regardless of the
moving direction to support Z calibration. This prevents the ability
to use _just_ SG when moving upwards.

But since we know the extruder is at Z_MIN, it's always safe to raise
irregardless, so we can dodge the issue.
2020-01-02 18:07:30 +01:00
Yuri D'Elia
5660fcffb0 Do not enqueue a E/Z moves unless requested
Do not unconditionally enqueue a Z move if no move has been requested.
Since Z is calculated using the absolute current (saved) position and
scheduled for later execution, the queue order becomes relevant.
2019-12-30 14:49:07 +01:00
Yuri D'Elia
86696156af Improve K error checking, allow to manually reset the version
Properly check K independently for each version by delegating it to la10c_value()

Handle -1 as a special case to allow manual reset.
2019-12-30 14:31:39 +01:00
Yuri D'Elia
fd0ed1f0ea Move LA reset from G28 to G80, do not reset on 0
In preparation for #2161, use MBL (G80) as a "new print" boundary
instead of just re-homing to ensure the reset is issued only once for
each print.

Similarly, do not reset the autodetection when LA is disabled via M900
K0. This can/will be used during a print if different quality settings
are used for different filling roles.
2019-12-30 11:32:27 +01:00
Yuri D'Elia
d78636c308 Do not synchronize on M900
Since the advance factor is computed per-segment in LA15, there's no
need to stop the planner. Allow changing K freely at each segment.

This allows varying quality factors for different filling roles, see:
https://github.com/supermerill/Slic3r/issues/108

During pause/resume/crashdetect or powerpanic K might temporarily be out
of sync when used this way. If this becomes an issue, we might need to
store K for each block, as done for the feedrate.
2019-12-29 23:25:16 +01:00
Yuri D'Elia
f5d382f9f4 Remove useless st_synchronize calls when unparking 2019-12-29 22:20:24 +01:00
Yuri D'Elia
186f881600 Avoid calling fsensor_update() one level earlier
Move the common checks between filament sensors out of fsensor_update().

Disable the runout check if a saved state is already present (this check
was missing in the PAT9125 variant) as this is currently not supported.

Note that the CHECK_FSENSOR looks completely redundant besides
e_active().
2019-12-29 22:08:44 +01:00
Yuri D'Elia
7b29ce29b4 Add a Linear Advance 1.0->1.5 compatibility layer
Allow existing gcode using LA10 to transparently take advantage of LA15
by using a simple linear conversion function based on experimental
results with the MK3 implementation of linear advance.

Autodetect LA10 values based on the first M900 instruction contained in
the print. In order to support printing mixed files without resetting
the printer we also reset the autodetection status when starting a new
SD print and/or when explicitly disabling LA.

Since we cannot reliably detect whether a new print is started when
printing via USB, also reset the detection status when homing in G28,
which is generally performed once at each print. Note that this doesn't
clear the previous K value, it only allows a subsequent M900 to provide
LA10 values when printed after a LA15 file.
2019-12-21 23:22:35 +01:00
Yuri D'Elia
c0ae92cd2a Remove "relative_mode", only use "axis_relative_modes"
axis_relative_modes can cleanly handle G90/G91 and M82/M83 without the
need of "relative_mode" entirely.

Change G90/G91 to simply reset all axes according to the requested
state, which avoids to check two variables in get_coordinates(),
fixing the following incorrect handling:

G91   ; all axis relative
M83   ; set extruder absolute
G1 E1 ; should be an absolute move, but still relative
2019-12-20 18:47:30 +01:00
Yuri D'Elia
8d60e4d6db Merge remote-tracking branch 'upstream/MK3' into MK3_LA15 2019-12-18 18:28:41 +01:00
Yuri D'Elia
0cc68228f8 Unretract when resuming a paused print 2019-12-16 16:33:11 +01:00
Yuri D'Elia
faa76df2fe Fix the "Stop print" behavior from the LCD
Correctly cleanup the printer state when stopping the current print:

- Disable interrupts while aborting the planner/queue to ensure
  new serial commands are not inserted while aborting
- _Always_ call planner_abort_hard() to interrupt any pending move!
- Clear the saved_target, which might be set when calling stop
  from within a paused state. Create a new function to clear the
  paused state for future use.
- Do not disable/reset the MBL: doing so will destroy the ability to
  restart correctly using M999.
2019-12-16 15:52:37 +01:00
Alex Voinea
a8e6020238
Fix VERBOSITY 2019-12-16 15:21:55 +02:00
DRracer
d4fab1a713
Merge pull request #2304 from 3d-gussner/MK3-Fix_M81
Fix M81 Turn off Power Supply...
2019-12-15 11:52:56 +01:00
Alex Voinea
770fcd7c42
Merge branch 'MK3' into MK3-PFW-1024 2019-12-14 10:08:52 +02:00
DRracer
6ab3b20ce1
Merge pull request #2348 from leptun/MK3_fix_kill
Fix kill messages
2019-12-13 18:30:27 +01:00
DRracer
30cee7afca
Merge pull request #2353 from wavexx/lcd_pause_fixes
Fix the LCD pause (regression)
2019-12-13 13:53:29 +01:00
Yuri D'Elia
5122f79a39 Merge remote-tracking branch 'upstream/MK3' into MK3_LA15 2019-12-04 17:27:23 +01:00
3d-gussner
17e23693eb Fixed stuipid copy paste error 2019-12-04 14:21:43 +01:00
3d-gussner
0cafd10378 minor fix 2019-12-04 13:43:19 +01:00
3d-gussner
f7bfca3061 Fix merge issues 2019-12-04 13:39:56 +01:00
3d-gussner
7da1db2f25 Merge remote-tracking branch 'upstream/MK3' into MK3-Gcode_documentation 2019-12-04 13:35:09 +01:00
3d-gussner
fb3c65b3dc fixed links to RR Wiki 2019-12-04 12:38:43 +01:00
3d-gussner
cdc6beaf6f Added M910 -> M918 2019-12-04 12:25:33 +01:00
3d-gussner
a5f3027ee1 D2130 updated
Needs review
2019-12-04 11:38:29 +01:00
Yuri D'Elia
8448b8d413 Keep destination updated in an aborted plan as well
When aborting the plan destination is updated anyway to reflect the latest
position. There's no use in this additional check.
2019-12-03 20:37:13 +01:00
Yuri D'Elia
d60230e494 Add some documentation 2019-12-03 20:37:13 +01:00
Yuri D'Elia
792d7ca6dc Turn off heaters just prior to retraction to limit oozing 2019-12-03 20:37:13 +01:00
Yuri D'Elia
4fce74140a Also abort planning in stop_and_save_print_to_ram
Similarly to resume_print_from_ram_and_continue, abort any
planning in mesh_plan_buffer_line already in stop_and_save_print_to_ram
in case it is called for pausing only.
2019-12-03 20:37:09 +01:00
3d-gussner
0ce7c51c1d Added more D-codes to RR Wiki and doxygen
D-1, D80, D81, D106
2019-12-03 20:02:58 +01:00
Yuri D'Elia
454e99dbb5 Use lcd_print_stop() in M603, fix octoprint regression
M603 shouldn't report a fatal error state.
Use lcd_print_stop().

Regression introduced in PR #2274
2019-12-03 16:51:59 +01:00
Alex Voinea
e7f2577233
Fix kill messages 2019-11-29 22:49:22 +02:00
Alex Voinea
a413cfbb9a
Merge branch 'MK3' into MK3-PFW-1024 2019-11-29 13:07:45 +02:00
Yuri D'Elia
dbe2ed4150 Fix pause/resume when using M25/M601
Remove the conflicting and mostly useless card.paused flag (the printing
is either paused, or not) and switch to isPrintPaused only which
accounts for both cases (SD/USB) correctly.

Fix M27/getStatus to show the current real status of the SD print.

Synchronize the queue on M601, as required to precisely pause the print
at the correct instruction.

Alias M25 to M601, which when combined with PR #1899 fixes issue #1614.

Guard against incorrect usage in M601, M602 and M603.
2019-11-28 17:37:58 +01:00
Yuri D'Elia
18eaf21baf Halve memory usage of saved feedrate
Truncate the saved feedrate to an uint16_t.
This is more than sufficient for recovery.
2019-11-28 17:16:37 +01:00
Yuri D'Elia
17176c1df2 Save/restore the default feedrate correctly
Since the global feedrate can be similarly modified for moves ahead of
time, save the original feedrate in the planner as we do for
gcode_target.

This avoids having to undo feedmultiply (and machine limits!) from
"nominal_speed" as previously done.

Thanks @leptun
2019-11-28 17:16:37 +01:00
Yuri D'Elia
4f0af648fb Save/restore feedmultiply independently of the feedrate 2019-11-28 17:16:36 +01:00
Yuri D'Elia
6ecff003b7 Fix M600 insertion by the filament sensor
Remove incorrect usage of stop_and_save_print combined with the
fsensor_recovert internal instruction which would result in a
broken sequence of events and/or broken stack.

Re-use the now safe stop/recover functions in the same spot
(fsensor_checkpoint_stream) to effectively cut a hole in the current
gcode stream to insert an M600 instruction, which removes all
recursive behavior without the need of extra state variables.
2019-11-28 17:13:37 +01:00
Yuri D'Elia
4268c2fdae Fix recovery from relative/chunked moves
When starting to replay existing USB/SD commands from a recovery state,
an immediate relative move needs to compensate for a previously
interrupted move. This is almost the norm for the E axis.

Instead of saving the relative status of the move (which needs to
account for the world2machine conversion and is not always available on
a chunked move split by MBL) save directly the calculated target
position for the move in the original plan, which is easy to replay.
2019-11-28 16:42:35 +01:00
Yuri D'Elia
faa9e925fe Replace a few loops with set_current_to_destination() 2019-11-28 15:57:21 +01:00
Yuri D'Elia
5fa7c178b5 Do not set current_position in mesh_plan_buffer_line
This is a task which _has_ to be performed by the caller,
such as prepare_move().
2019-11-28 15:57:21 +01:00
Yuri D'Elia
0f6b9b4051 Unroll the stack in restore_print_from_ram_and_continue
While handling moves in a recursive plan, such a filament check,
ensure restore_print_from_ram_and_continue unwinds the stack by
aborting early from any call that waits on the planner.

This currently only handles G1 moves, but hard-coded behavior that can
trigger recursive behavior (such as filament change) will probably have
to be checked too.
2019-11-28 15:57:20 +01:00
3d-gussner
660b646b57 RR Wiki for Dcodes
open D-1, D80, D81, D106, D2130
2019-11-27 11:29:55 +01:00
3d-gussner
475551431c How does M862.5 P works??? 2019-11-26 20:21:05 +01:00
3d-gussner
84cb373905 More G codes documented in RR wiki
M44, M45, M47, M403, M509, M851, M601, M602, M603, M862
2019-11-26 20:11:55 +01:00
3d-gussner
5eaf6f0133 Merge branch 'MK3' into MK3-Gcode_documentation
Merge with MK3 branch
2019-11-26 12:48:21 +01:00
DRracer
abb220ff69
Merge pull request #2323 from Panayiotis-git/MK3_Fix_M603
Add oversighted ‘break’ statement at the M603 command's source
2019-11-25 06:04:41 +01:00
Alex Voinea
07b6173aaa Merge branch 'MK3' into MK3-PFW-1024 2019-11-16 11:28:29 +02:00
DRracer
86ea24c364
Merge pull request #2273 from wavexx/do_not_wait_for_disabled_heater
Do not wait forever if the heater on the extruder is disabled
2019-11-15 17:19:11 +01:00
Panayiotis-git
23cf076242 Add oversighted ‘break’ statement at the M603 command's source 2019-11-12 21:32:39 +02:00
3d-gussner
422e7fde4a Merge branch 'MK3' into MK3-Gcode_documentation 2019-11-08 18:16:56 +01:00
DRracer
4cf2f05d1d
Merge pull request #2057 from leptun/MK3_fix_M350
M350 for all axis - MK3
2019-11-08 16:15:15 +01:00
DRracer
a14d7545a5
Update Marlin_main.cpp 2019-11-08 16:06:42 +01:00
DRracer
b33c79e6c7
Merge pull request #1899 from wavexx/fix_lcd_pause_function
Fix the LCD pause function
2019-11-08 14:55:13 +01:00
3d-gussner
5bd995b21b Added more info to doxygen G-Codes 2019-11-06 11:14:06 +01:00
3d-gussner
e6eeafd20c More M-Commands ... 2019-11-05 15:47:04 +01:00
3d-gussner
ca234a11ed M-Commands to M240 2019-11-05 12:40:51 +01:00
3d-gussner
8114bd5b1c Merge with MK3 and few spaces 2019-11-05 09:05:05 +01:00
leptun
cd5ff783cf General fixes and improvements to code 2019-10-31 19:07:20 +02:00
3d-gussner
4501f9d760 M commands documentation #2 2019-10-31 15:46:23 +01:00
3d-gussner
21dcfb23f4 Follow RepRap Wiki G-codes documentation
M120 is Enable endstops
M121 is disable endstops
I guess this was just a typo issue.
2019-10-31 15:31:08 +01:00
3d-gussner
c899320590 Fix M81 Turn off Power Supply...
... as it should be active if PS_ON_PIN is defined and assinged to an actual pin.
2019-10-31 15:08:07 +01:00
3d-gussner
ce8dbb5013 M commands documentation #1 2019-10-30 18:52:25 +01:00
3d-gussner
b9dca5f895 other doxygen format changes 2019-10-30 15:52:27 +01:00
3d-gussner
d472f0730c Change doxygen format 2019-10-30 15:50:23 +01:00
3d-gussner
986ac95c45 G codes documented ... next M commands 2019-10-30 11:19:51 +01:00
3d-gussner
8f05627747 Update #1 gcodes doxygen documentation
added some RepRap G-codes Wiki external links.
2019-10-25 13:04:04 +02:00
Yuri D'Elia
50231b76da Improved handling of unknown Z position
- Introduce raise_z_above to move Z carefully when the current position
  is potentially unknown, using stallguard
- Use raise_z_above for:
  * filament loading/unloading clearance
  * extruder spacing when preheating (to avoid buildplate marks on PEI)
  * before homing to avoid damaging the build plate and to avoid
    repeated Z moves as well

Since raise_z_above is conditional, it will only raise when needed.

Calling raise_z_above when the extruder position is unknown and already
at maximum travel is safe and will prevent further vertical moves.
2019-10-22 15:49:10 +02:00
leptun
4943e17bda Preserve power during PP by turning off backlight 2019-10-19 18:45:31 +03:00
leptun
0ed4a23ae7 And another compile fix... 2019-10-18 12:42:55 +03:00
leptun
9fc42526e7 Backlight always on during calibration 2019-10-18 12:18:43 +03:00
DRracer
5a4126e00c
Merge pull request #2263 from leptun/MK3-Fix_PSU_DELTA_SILENT
PSU_DELTA fix force_high_power_mode()
2019-10-16 13:22:22 +02:00
Yuri D'Elia
7f3ba499a0 Do not wait forever if the heater on the extruder is disabled 2019-10-15 20:54:00 +02:00
leptun
4703853a3d Small fixes 2019-10-12 13:19:17 +03:00
leptun
350e27810a fix selftest Z crash. Use stallGuard when testing Z 2019-10-11 21:00:51 +03:00
leptun
68491c9d4d First implementation 2019-10-11 19:06:37 +03:00
leptun
e3ac2e2509 PSU_DELTA fix force_high_power_mode() 2019-10-10 19:01:57 +03:00
Marek Bel
219a5e0625 Initialize EEPROM_SILENT in one place both for MK3 and MK25 printers and make it more clear. 2019-10-03 21:25:52 +02:00
Marek Bel
7feb763643 Move check for clear EEPROM just after factory_reset() to ensure nothing is written to EEPROM before check.
Fix wizard not starting after Factory RESET / All Data on MK25 printer.

This was broken by:

Author:      leptun <voinea.dragos.alexandru@gmail.com>
Date:        3 weeks ago (9/12/2019 6:16:31 AM)
Commit hash: 78708903e8

Also update eeprom value
2019-10-02 18:38:46 +02:00
leptun
b39f09b68e Merge branch 'MK3' into MM_lay1_cal 2019-10-01 19:20:50 +03:00
DRracer
d044d3b7b5
Merge pull request #2244 from MRprusa3d/PFW-1008
EEPROM_BABYSTEP_Z using removal
2019-10-01 18:04:09 +02:00
MRprusa3d
ed13788e0c EEPROM_BABYSTEP_Z using removal 2019-10-01 16:57:37 +02:00
DRracer
06187f52f3
Merge pull request #2230 from leptun/MK3_Octoprint_fIxes
Mk3 Fan error fix
2019-10-01 11:34:55 +02:00
leptun
61c7479579 Code cleanup: Move texts to messages.c/h 2019-09-30 20:16:01 +03:00
Marek Bel
aba9d1c360 Merge branch 'MK3' into MM_lay1_cal 2019-09-30 18:13:57 +02:00
Marek Bel
8c7015df53 Document set current command. 2019-09-27 15:42:31 +02:00
leptun
9c22692827 Fix Cancel Print command processing 2019-09-25 22:34:31 +03:00
leptun
4d149f0dfa Do not send useless keepalive messages after print is canceled from lcd 2019-09-25 18:50:29 +03:00
leptun
14b72d2b46 Prevent timeout when printing from SD with USB host connected 2019-09-25 18:12:19 +03:00
leptun
2363f19a62 Minor tweaks for usb printing 2019-09-20 21:07:20 +03:00
leptun
fd01942db8 FAN Error fix - Initial 2019-09-19 20:48:59 +03:00
Marek Bel
19a8537901 Document. 2019-09-17 20:35:18 +02:00
Marek Bel
027b6238fd Mark code unused when PINDA_THERMISTOR is defined by macro. Saves 1B of RAM and 4B of FLASH memory. 2019-09-17 20:26:03 +02:00
Marek Bel
73642632f5 Do not force PLA filament in first layer calibration from wizard. Remove duplicate variable wizard_active. Saves 410 B of FLASH and 1 B of RAM. 2019-09-12 22:37:28 +02:00
Marek Bel
e83b2ebe1f Rename mFilamentMenu to lcd_generic_preheat_menu to match naming convention for global function and be more descriptive. 2019-09-12 18:15:15 +02:00
Marek Bel
6661d3aa45 Merge remote-tracking branch 'prusa3d/MK3' into MM_lay1_cal 2019-09-12 14:28:52 +02:00
DRracer
521c5eb8ef
Merge pull request #2141 from mkbel/preheat_menu
Unify preheat menu, add ASA material
2019-09-12 14:25:38 +02:00
Marek Bel
14dc6b86e0 Change undocumented behaviour of M190 (Wait for bed temperature). Document M190 and M109 (Wait for extruder temperature).
Do not remember CooldownNoWait property set by M190 and M109. If M190 was invoked without parameters, CooldownNoWait property was set if it was previously set by "M109 S" or "M109 S" or printer was after power up. Otherwise CooldownNoWait was not set. Now CooldownNoWait is never set if M190 is invoked without parameters.

Saves 44 B of FLASH memory.
2019-09-11 23:37:09 +02:00
DRracer
e1e40213b2 Enable fan pin test even for MK3 (was disabled in 3.7.2 due to lack of
FLASH)
2019-09-10 16:49:22 +02:00
DRracer
898e85e69f
Merge pull request #2038 from Eriobis/MK3
Add a threshold distance to Z calibration
2019-09-10 16:20:24 +02:00
MRprusa3d
978ace7fd7
Update Marlin_main.cpp 2019-09-09 02:16:06 +02:00
Marek Bel
e73b0a88d5 Use same format for all instances where "ok" is send to serial line. 2019-09-05 22:35:01 +02:00
Yuri D'Elia
2345288d40 Fix the LCD pause function
Do not call long_pause recursively!

long_pause() is called before resetting the lcd_command_type. As
long_pause uses st_synchronize() internally, there could be time to
schedule another call to long_pause().
2019-08-31 15:28:31 +02:00
Marek Běl
3f04c4db87
Merge branch 'MK3' into preheat_menu 2019-08-27 22:20:23 +02:00
Marek Bel
269aef1696 Remove unused code guarded by WATCH_TEMP_PERIOD macro as most of the functionality is duplicate to what is implemented in temp_runaway_check(). This will release us from porting setWatch() to unified preheat menu and maintaining it. 2019-08-27 20:05:10 +02:00
DRracer
11ce786aaa Support for more special characters allowed in file names (^ + = [ ] ;
,)
2019-08-27 13:47:58 +02:00
Marek Bel
159a1a70d8 Update documentation. 2019-08-26 17:19:57 +02:00
Marek Bel
52cb37770b Fix repeated power panic restarted print from beginning or jumped at most 65536 B back in file printed from SD card.
As sdpos_atomic was not updated after printer power up and first power panic recovery, it was equal 0. When the first command from SD card was queued its size on SD card was computed as current SD index position minus sdpos_atomic. This was equal to offset from beginning of the file limited to 16 bit storage type. When next power outage occurred earlier then this command was finished and wiped out of queue, this command size (extraordinarily big) was subtracted from sdpos_atomic and saved to EEPROM. This led to up to 65536 B jump back in file printed after next power panic recovery.
2019-08-23 19:30:20 +02:00
DRracer
c6df3fe012
Merge pull request #2127 from DRracer/code-size-reduction-1
Code size reduced by almost 5KB
2019-08-22 14:25:23 +02:00
DRracer
a7c2aec04c Code size reduced by almost 5KB 2019-08-21 09:59:51 +02:00
Marek Bel
3ed6d0637c Re-enable tmc2130_sg_stop_on_crash only if crash detection enabled from menu.
This fixes bug, that disabling crash detection from menu doesn't work during recovery from crash detection.
2019-08-20 19:32:39 +02:00
Marek Bel
f204cdea81 Refactor
Remove variable CrashDetectMenu. Read this state from EEPROM_CRASH_DET instead in bool lcd_crash_detect_enabled().
Rename crashdet_enable() to lcd_crash_detect_enable() and move it to ultralcd.cpp.
Rename crashdet_disable() to lcd_crash_detect_disable() and move it to ultralcd.cpp.
Rename lcd_crash_mode_set() to crash_mode_switch().
Remove forward function declarations from *.cpp file.

Saves 34B of FLASH and 2B of RAM.
2019-08-20 17:22:27 +02:00
DRracer
f07635d08a
Merge pull request #2116 from mkbel/fix_mmu_lay1cal
Fix mmu lay1cal
2019-08-19 19:07:10 +02:00
Marek Bel
f0642f88f1 Fix power panic broken when PSU_Delta defined.
Remove disable_z() call from uvlo_() and uvlo_tiny() power panic interrupt handlers. As historically this function was empty. And in case PSU_Delta macro defined it switches Z trinamic to silent mode, which could take some time and is not needed. Remove alignment to to full step from disable_force_z(), as it is not needed when switching to silent mode.
2019-08-19 17:37:23 +02:00
Marek Bel
e53734895f Make MMU load failed blocking to workaround lack of resume print menu item.
The same workaround used as for USB print (Octoprint).
2019-08-16 20:20:17 +02:00
DRracer
ba81149afe
Merge branch 'MK3' into MK3_3.7.3 2019-08-15 10:25:51 +02:00
DRracer
a28c365bb1
Merge pull request #2075 from MRprusa3d/PFW-873b
farm mode update, documentation correction
2019-08-07 17:48:30 +02:00
MRprusa3d
b471bb7540 farm mode update, documentation correction 2019-08-05 17:51:26 +02:00
Marek Kühn
091cd49ca5 Fw version check disabled in farm mode 2019-08-05 16:59:09 +02:00
DRracer
cb19f0958b Use _delay() and _micros() for future compatibility 2019-08-05 09:51:06 +02:00
Yuri D'Elia
18b8dc89e5 Merge remote-tracking branch 'upstream/MK3' into MK3_LA15 2019-08-04 17:06:34 +02:00
DRracer
7c9d3dd177 Update doxydoc of new G-codes 2019-08-01 13:09:20 +02:00
Simon Benoit
49d2866b48 Add threshold distance to Z calibration
Add missing if statement
2019-07-30 19:43:07 -04:00
leptun
556b87edec M350 for all axis - MK3 2019-07-29 09:41:33 +03:00
DRracer
3e60cf4537 enable only for MK3S (out of FLASH on the MK3) 2019-07-23 16:51:02 +02:00
DRracer
593675c667 delay, micros for the 3.7.x branch 2019-07-23 16:40:21 +02:00
DRracer
6860a572c2 detection of faulty RAMBo (incorrect capacitor on fan tach pin) for MK3/S 2019-07-23 15:55:53 +02:00
DRracer
6f79ef4c9c resolve hidden conflicts in commented code 2019-07-22 17:29:43 +02:00
DRracer
65087b89ee Merge remote-tracking branch 'upstream/MK3' into code_size_optimization
and resolve conflicts (ultralcd.cpp)
2019-07-22 17:26:14 +02:00
Marek Kühn
bd4bfbe586 Added M862 details 2019-07-19 16:15:12 +02:00
Marek Kühn
94e79806bc Updated doxygen docs to work better with confluence. 2019-07-19 13:51:55 +02:00
NotaRobotexe
756ce51b5e
Merge branch 'MK3' into octoprint_fix 2019-07-17 20:06:06 +02:00
NotaRobotexe
b8fec59f21 octoprint fan error fix 2019-07-17 19:59:31 +02:00
DRracer
255db28684 merge unit test and upstream changes 2019-07-17 10:30:49 +02:00
NotaRobotexe
e6255e8451 octoprint fan error work 2019-07-16 19:18:31 +02:00
DRracer
1dab0f7a04
Merge pull request #2008 from leptun/MK3_LCD_improvements
Lcd optimization - 1K of flash saved
2019-07-16 19:15:57 +02:00
DRracer
8b806f692e
Merge pull request #1664 from MRprusa3d/PFW-811
"disable_z()" for Delta PSU
2019-07-16 16:46:34 +02:00
DRracer
d65b333664
Merge pull request #2003 from mkbel/heat_hysteresis
Heat hysteresis
2019-07-16 13:10:47 +02:00
DRracer
0422713b29
Merge pull request #2005 from prusa3d/MK3_3.7.2
Mk3 3.7.2
2019-07-16 08:50:38 +02:00
leptun
8b1c687629 Lcd optimization - 1K of flash saved 2019-07-15 20:32:58 +03:00
Marek Bel
9083d151b2 wait_for_heater() in restore_print_from_ram_and_continue() only if saved_extruder_temperature differs from target hot-end temperature.
This fixes problem, that restore_print_from_ram_and_continue() blocked for heating for at least TEMP_RESIDENCY_TIME (3 seconds) even if temperature was resumed by M600 command.
2019-07-15 18:07:05 +02:00
Marek Bel
549a8a1a6b Restore print fan speed earlier then nozzle temperature.
Avoids nozzle temperature dip when fan is turned on.
2019-07-15 16:25:21 +02:00
NotaRobotexe
8fb30f886a octoprint stop fix 2019-07-15 14:30:21 +02:00
DRracer
a3fde091ab More than 7.5KB saved by slight refactoring of printing to serial line 2019-07-12 10:10:56 +02:00
Marek Běl
d3dd0ad271
Merge pull request #1952 from NotaRobotexe/sound
new sound
2019-07-10 18:06:32 +02:00
MRprusa3d
98bae7af9f
Merge branch 'MK3' into PFW-873 2019-07-10 16:50:14 +02:00
DRracer
9585789288
Merge pull request #1976 from NotaRobotexe/MK3_3.7.2_PP
dont fire power panic at normal power off
2019-07-10 14:19:00 +02:00
MRprusa3d
8229a45187 pre-production version ;-) 2019-07-09 12:16:51 +02:00
NotaRobotexe
9592460281 add old delay 2019-07-04 18:43:59 +02:00
NotaRobotexe
e77898d5dc code edit 2019-07-04 13:21:27 +02:00
NotaRobotexe
81b3b71cca check eeprom inicialization 2019-07-03 19:37:11 +02:00
MRprusa3d
a3a7f3106e print parameters checking 2019-07-03 17:21:11 +02:00
NotaRobotexe
ff3c9d1a7c dont fire power panic at normal power off 2019-06-28 11:25:56 +02:00
Marek Bel
4a16fe6902 Save z_offset, bed_temp and pinda_temp with sheet calibration. 2019-06-26 14:10:12 +02:00
NotaRobotexe
4058cd144b add delay_keep_alive without updating lcd 2019-06-25 14:30:11 +02:00
NotaRobotexe
b5168bd6c2 fan error fix 2019-06-24 17:30:56 +02:00
Marek Bel
19a474eaa5 Fix compiler warnings. 2019-06-20 18:00:29 +02:00
Marek Bel
0a48082609 Add steel sheet profile selector. 2019-06-20 16:40:53 +02:00
Marek Bel
24cec4091b Merge branch 'MK3' into sound 2019-06-17 17:28:19 +02:00
Marek Běl
aff020a6d4
Merge pull request #1897 from NotaRobotexe/farm_mode
PFW-571 send PRN:4 instead PRN:1, PFW-874 new firmware version alert with 30s timeout
2019-06-14 20:05:30 +02:00
Marek Bel
b1df1fb1f1 Fix formatting. We are never using 2 space indentation. 4 spaces are preferred, tabulator is acceptable if surrounding code uses tabs. 2019-06-14 18:18:27 +02:00
Marek Bel
6717590631 Merge branch 'MK3' into MK3_LA15 2019-06-13 15:39:50 +02:00
DRracer
55dc78546b
Merge pull request #1913 from mkbel/fix_spelling
Fix spelling.
2019-06-13 15:12:30 +02:00
Marek Bel
25f0eb9a39 Fix spelling. 2019-06-13 15:01:54 +02:00
Marek Bel
72f5e87c61 Merge branch 'MK3' into use_enum_class_2 2019-06-12 19:17:35 +02:00
Marek Bel
1390d4e5b9 Use first letter capital camel case for enum class members. Change underlying type to uint_least8_t. 2019-06-12 19:11:41 +02:00
Marek Bel
5fcf760954 Use first letter capital camel case for enum class members. Rename CustomMsgTypes to CustomMsg. Remove unnecessary maping to numbers. Change underlying type to uint_least8_t. 2019-06-12 18:54:43 +02:00
Marek Bel
cbb92860d0 Use first letter capital camel case for enum class members. 2019-06-12 18:54:32 +02:00
MRprusa3d
b7d3766ae2
Merge branch 'MK3' into PFW-790 2019-06-12 17:32:13 +02:00
DRracer
c7e1e73880 another almost 200B down by proper usage of smaller data types and enum
classes
2019-06-12 15:41:55 +02:00
DRracer
baa36ce740 another almost 200B down by proper usage of smaller data types and enum
classes
2019-06-12 09:58:42 +02:00
Marek Běl
cb6a3e7e12
Merge pull request #1907 from DRracer/fan_check_error_fix
Do not allow resume printing if fans are still not ok
2019-06-11 15:12:48 +02:00
DRracer
13c3ab14fa test fan check error only when enabled by #ifdef 2019-06-11 15:05:40 +02:00
DRracer
3e37150552 Do not allow resume printing if fans are still not ok 2019-06-11 14:53:10 +02:00
NotaRobotexe
bb980e2fca sound edit, delete mute mode, add blind mode 2019-06-10 15:03:52 +02:00
Marek Běl
327e6cd39b
Merge pull request #1889 from DRracer/fan_check_error_fix
Fan check error fix
2019-06-06 15:52:44 +02:00
DRracer
0cf6bc0677
Merge pull request #1903 from mkbel/filament_runout_mk3_2
Filament runout mk3 2
2019-06-06 15:51:35 +02:00
Vojtech Pavlik
a4bc91ed2f M0/M1/M117 fix: Use CUSTOM_MSG states in M0/1/M117
Now that we have the new CUSTOM_MSG states, we can use them in the M0/M1
and M117 handlers to force the user message to be displayed even when
the printer is printing from a SD card and displaying a file name.
2019-06-06 14:25:36 +02:00
Vojtech Pavlik
5d8eb84965 M0/M1/M117 fix: Move M0/M1 to the top of decoder.
Move M0/M1 decoding before any other command. The M0/M1 message can contain
arbitrary characters and so it also can contain substrings that other
decoders trigger on, like the letter 'G'. Any such substring would cause
misdecoding of the M0/M1 and unpredictable behavior in addition to not
making the printer stop.

M117 already received the same treatment in the past, so we take the same
approach for M0/M1.
2019-06-06 14:24:34 +02:00
Yuri D'Elia
048628083a Remove clear_current_adv_vars()
The pressure state is already reset implicitly at the end of each block,
meaning an extruder switch will never have to reset the internal state
anyway.

We clear the internal backpressure in the following conditions:

- when switching to a non-LA block
- when quickStop is called
- when the scheduler is idling (losing pressure)
2019-06-05 20:25:19 +02:00
MRprusa3d
1d8c24e8a9 "disable_z()" for Delta PSU IV
correction for (motor) mode switching
2019-06-05 19:22:04 +02:00
Marek Bel
19351df8a7 Extracted computation of z_shift for M600 into a separate function to
improve readability. Surprisingly, also the code got shorter.
2019-06-05 18:34:26 +02:00
DRracer
aeed49a80e Fix filament runout on optical filament sensors
Reworked the IR variant accordingly
Some code-size optimization in related functions
2019-06-05 18:33:41 +02:00
DRracer
10247a28a3
Merge pull request #1896 from NotaRobotexe/power_panic
documentation for power panic
2019-06-05 16:10:04 +02:00
NotaRobotexe
0cab2284ea PFW-874 new firmware alert timeout 2019-06-05 15:48:10 +02:00
NotaRobotexe
14270ac1f6 power panic documentation 2019-06-05 15:10:51 +02:00