Commit Graph

3918 Commits

Author SHA1 Message Date
Alex Voinea 1c0383c48f
Add capability report for extended M20 2021-04-20 09:03:22 +03:00
D.R.racer 7011014abb Save 16 bytes - pass ls_param by value to functions
... as ls_param is a 1-byte structure it is more conservative to pass it
to functions by value than by a pointer
2021-04-20 06:50:37 +02:00
Voinea Dragos 2129bcf315 M20 T 2021-04-19 14:48:50 +03:00
Voinea Dragos b16e1e5235 Invert size and LFN in M20 L output 2021-04-19 13:54:43 +03:00
Voinea Dragos 6d7d8c7c75 Do not show hidden/system dirs with M20 L 2021-04-19 13:31:30 +03:00
Yuri D'Elia a5e4df390d Sync before/after setting mesh_bed_leveling_flag/homing_flag
mesh_bed_leveling_flag and homing_flag should be set only when the
planner is empty as a consequence of #3100, since any operation executed
*while* the mbl/homing flag is set is considered part of the compound
instruction that generated it (G80, G28, G30, G76).

Failure in doing so can result in instructions just prior being lost,
since they're incorrectly discarded (assumed to be redone).

G1  ; lost ..
G80 ; .. if PP happens here
2021-04-19 06:31:57 +02:00
Yuri D'Elia 23c75da727 Fix Crash/PP recovery position on instructions with comments
PR #2967 altered the way ``sdpos_atomic`` was set, causing issues in the
crashdetect/powerpanic recovery offset if the instruction being
recovered happens to contain a comment.

Previously ``sdpos`` was assumed to be a single byte prior to the last
read character. sdpos+1 would thus position the index to the next
instruction. With gcode-filtering in place, sdpos is left just before
the comment, while the actual read position is at the newline. This
causes to parser to resume in the middle of the comment.

Change the value returned by cardreader::get_sdpos() to always return
the last read position, as everybody expects (!!).

This avoids the +1, and correctly sets the resume position to the next
valid instruction without overhead.
2021-04-19 06:30:37 +02:00
D.R.racer c43688a549 Version changed (3.10.0-RC2 build 4104) 2021-04-16 13:52:36 +02:00
DESKTOP-AFI832L\admin 5a91e1de4d Calibration: fix checking of scan of calibration points
PFW-1223
2021-04-14 06:25:18 +02:00
Voinea Dragos 7356cd0811 EEPROM_JOB_ID 2021-04-09 08:09:51 +02:00
DRracer f9f6284c50
Merge pull request #3100 from wavexx/powerpanic_state_fixes
Fix PowerPanic and Crash Detection during homing and bed leveling
2021-04-07 18:19:50 +02:00
Yuri D'Elia 61faa49cbb Fix buffer overflow in buf
Fix cmd overflow introduced in 186ce0f.

With a precision of %f being .6 and assuming a maximum (theoretical)
acceleration of 99999 we need 47 bytes including terminating byte.

Round it to 48
2021-04-07 15:57:50 +02:00
Alex Voinea d31601dcb8 Use correct mfrid for gd25q20c 2021-04-06 10:16:47 +02:00
Alex Voinea 94c1e65d83 Fix MK2.x builds 2021-04-06 10:16:47 +02:00
Alex Voinea 56948157d0 GD25Q40C xflash support 2021-04-06 10:16:47 +02:00
Alex Voinea 07bf4bbe48 Fix gd25120c rd_uid command 2021-04-06 10:16:47 +02:00
Alex Voinea 9454f9d8ec Rename w25x20cl to xflash 2021-04-06 10:16:47 +02:00
Yuri D'Elia 449d181971 G80: handle power panic
This is handled in the same way crash detection is handled: homing/mbl
invalidates saved_target _and_ current position.

Fixes PP recovery during MBL and homing.
2021-04-06 02:20:00 +02:00
Yuri D'Elia b46a52ffa8 G80: Handle crash detection
At a higher level, crash detection will repeat the last gcode command.

Some commands such as G28 or G80 need to be repeated in full and require
special handling.

In such cases, do not store the saved target coordinate (which is fake
in such cases) and invalidate the saved position.

This fixes the last coordinate of the first G1 move after recovery.

We also avoid moving from the origin when the saved position is
invalidated, which is not strictly necessary, but saves some time.
2021-04-06 02:00:47 +02:00
Yuri D'Elia a5530593fa G80: preserve lcd status and message when aborting
Restore the old status just before returning, so that the subsequent G80
can restore the first (initial) message correctly.
2021-04-06 00:31:56 +02:00
Yuri D'Elia 5923276a86 G80: correctly abort during crash detection
Crash detection is handled at a higher level (which automatically
repeats the current command), however we still need to abort the current
command correctly.

Handle XY crashes by checking the planner status after st_synchronize().
2021-04-06 00:31:29 +02:00
Yuri D'Elia 5da39df968 G80: Use consistent XY axis feedrate 2021-04-06 00:10:33 +02:00
Yuri D'Elia ce2e35d14d Move G80 into it's own function
No actual changes done in the function in this, besides break->return.

In G28, simply call the new function instead of using goto, making the
code more readable.

Also remove the senseless comments in G28 about command queuing (dating
back to when G80 was queued instead of being executed).
2021-04-05 23:35:17 +02:00
Yuri D'Elia d2be40491b PP recovery: clamp initial position to software endstops
As done when initializing the printer from a cold start, we need to
clamp the starting position to software endstops before setting the
planner position since 0,0 is frequently out-of-bounds.

This avoids an useless move during recovery that can cause a crash:

- Initial X is set to be 0
- G1 performed by homing will clamp X>=0, resulting in a positive shift
- If X is already at max X (extruder being parked due to PP), this will
  slam at X+, causing an immediate crash.
2021-04-05 22:11:06 +02:00
Yuri D'Elia 3276320a06 Hide tmc2130_sg_change behind DEBUG_CRASHDET_COUNTERS
tmc2130_sg_change is only used for debugging purposes.
Hide definition and usage behind the required define.
2021-04-05 20:07:03 +02:00
Yuri D'Elia 6a61c26955 Removed unused crashdet_stop_and_save_print2 2021-04-05 20:04:50 +02:00
3d-gussner b74e1d6062 Update RepRap url for `M123` 2021-04-01 19:48:14 +02:00
3d-gussner e12c1dde5c Updated RepRap Wiki and removed the @todos 2021-04-01 19:06:31 +02:00
3d-gussner 3b431bcbc1 Fix output "Y distance from min" by removing ":" so translations can use 20 chars 2021-03-31 08:54:16 +02:00
3d-gussner d864a5cfdb Define #MSG_PRINTER_IP c=18 2021-03-31 08:46:17 +02:00
3d-gussner 9922774fa7 Cleanup some comments ////c= 2021-03-31 08:11:19 +02:00
3d-gussner 8e74cbce58 Remove r=1 and some minor fixes 2021-03-31 08:07:42 +02:00
3d-gussner fb691b44b4 Update #MSG_INFO_SENSORS c=18 2021-03-31 07:51:22 +02:00
3d-gussner 3fb90be46f Define #MSG_SELECT c=18 2021-03-31 07:50:18 +02:00
3d-gussner 9a0e67c1d7 Define #MSG_RENAME c=18 2021-03-31 07:43:48 +02:00
3d-gussner 15919a0f09 Define #MSG_NOZZLE_DIFFERS_CONTINUE c=20 r=5, #MSG_NOZZLE_DIFFERS_CANCELLED c=20 r=9 2021-03-31 07:41:21 +02:00
3d-gussner cdfc40fb62 Define #MSG_MODE_CHANGE_IN_PROGRESS c=20 r=3 2021-03-31 07:38:41 +02:00
3d-gussner c0869efc76 Define #MSG_MK3S_FIRMWARE_ON_MK3 c=20 r=4, #MSG_MK3_FIRMWARE_ON_MK3S c=20 r=4 2021-03-31 07:36:26 +02:00
3d-gussner 268d4020cf Define #MSG_FINDA c=5 and update #MSG_PINDA c=5 2021-03-31 07:32:43 +02:00
3d-gussner c0b8eef6cd Define #MSG_FALSE_TRIGGERING c=20 2021-03-31 07:29:42 +02:00
3d-gussner 1ca443f1f4 Define #MSG_CHECKS c=18 2021-03-31 07:28:18 +02:00
3d-gussner 5e049283be Define #MSG_UNKNOWN c=13 2021-03-31 07:24:41 +02:00
3d-gussner 982153fee1 Define and update #MSG_PRINT_TIME c=19, #MSG_FILAMENT_USED c=19, #MSG_TOTAL_FILAMENT c=19, #MSG_TOTAL_PRINT_TIME c=19 2021-03-31 07:16:36 +02:00
3d-gussner 7a88ce89e4 Update MSG_TEMPERATURE c=18 2021-03-31 07:11:01 +02:00
3d-gussner c0df79d39a Define #MSG_SELECT_TEMP_MATCHES_MATERIAL c=20 r=4 2021-03-31 07:10:03 +02:00
3d-gussner 7268f6a824 Define #MSG_SELECT_FILAMENT c=20 2021-03-31 07:08:09 +02:00
3d-gussner 2e43234d3f Update #MSG_SUPPORT c=18 2021-03-31 07:06:46 +02:00
3d-gussner ba38262109 Update #MSG_STATISTICS c=18 2021-03-31 07:05:28 +02:00
3d-gussner 960ebac02d Update #MSG_SPEED c=15 2021-03-31 07:04:47 +02:00
3d-gussner b52d87e9a5 Define #MSG_Z-LEVELING_ENFORCED c=20 r=4 2021-03-31 07:02:42 +02:00
3d-gussner acbdc2ac8d Define #MSG_RUNOUTS c=7 2021-03-31 06:59:16 +02:00
3d-gussner 09f4850a8a Define #MSG_SLIGHT_SKEW c=13, #MSG_SEVERE_SKEW c=13 2021-03-31 06:53:04 +02:00
3d-gussner 4749dd1750 Define #MSG_CHECK_IR_CONNECTION c=20 r=4 2021-03-31 06:46:43 +02:00
3d-gussner bd8ab39b39 Define #MSG_UNLOAD_FILAMENT_REPEAT c=20 r=4 2021-03-31 06:45:33 +02:00
3d-gussner 5280a89fba Define #MSG_MMU_INSERT_FILAMENT_FIRST_TUBE c=20 r=6 2021-03-31 06:43:21 +02:00
3d-gussner 0d48a32e87 Define #MSG_RESUME_NOZZLE_TEMP c=20 r=4 2021-03-31 06:41:17 +02:00
3d-gussner 4f394c8c5a Update #MSG_TUNE c=18, #MSG_PREHEAT c=18 2021-03-31 06:38:50 +02:00
3d-gussner fbecae1707 Update MSG_PREHEAT c=18 2021-03-31 06:38:06 +02:00
3d-gussner ac810bf03a Define #MSG_REMOVE_SHIPPING_HELPERS c=20 r=3 2021-03-31 06:36:28 +02:00
3d-gussner 00b100bf26 Define #MSG_NOZZLE_FAN c=10, #MSG_PRINT_FAN c=10 2021-03-31 06:30:00 +02:00
3d-gussner baf231b0f1 Update MSG_NO_CARD c=18 2021-03-31 06:23:18 +02:00
3d-gussner 1c09e8411d Define #MSG_PINDA c=6 and remove duplicate saved 8 bytes 2021-03-30 19:30:26 +02:00
3d-gussner 6a266d497b Define #MSG_REMOVE_TEST_PRINT c=20 r=4 2021-03-30 19:19:43 +02:00
3d-gussner 5fcc731be1 Define #MSG_INSERT_FIL c=20 r=6 2021-03-30 19:17:48 +02:00
3d-gussner 243fa68745 Define #MSG_LIN_CORRECTION c=18 2021-03-30 19:16:11 +02:00
3d-gussner 44f7be134d Define #MSG_FS_VERIFIED c=20 r=3 2021-03-30 19:13:31 +02:00
3d-gussner bcdaecb46d Define #MSG_TO_LOAD_FIL c=20, #MSG_TO_UNLOAD_FIL c=20, #MSG_PRESS_KNOB c=20 2021-03-30 19:10:56 +02:00
3d-gussner de9697b913 Define #MSG_PREHEATING_TO_LOAD/UNLOAD/CUT/EJECT c=20 2021-03-30 19:06:46 +02:00
3d-gussner d601355d40 Define #MSG_GCODE_NEWER_FIRMWARE_CONTINUE c=20 r=5, #MSG_GCODE_NEWER_FIRMWARE_CANCELLED c=20 r=8 2021-03-30 19:01:24 +02:00
3d-gussner 669ab0f7f7 Define #MSG_GCODE_DIFF_CONTINUE c=20 r=4, #MSG_GCODE_DIFF_CANCELLED c=20 r=7 2021-03-30 18:58:04 +02:00
3d-gussner e9750a7312 Update #MSG_FIL_FAILD c=20 r=5 2021-03-30 18:52:58 +02:00
3d-gussner 4a5d7bc6b7 Define #MSG_Y_DIST_FROM_MIN c=20 2021-03-30 18:51:04 +02:00
3d-gussner 2abdfeb4c5 Update #MSG_YES c=3 2021-03-30 18:48:14 +02:00
3d-gussner 7f3fe6740b Update #MSG_NO_MOVE c=20 2021-03-30 18:46:56 +02:00
3d-gussner 1a1a1d88a7 Update MSG_MOVE_X/Y/Z c=18 2021-03-30 18:13:49 +02:00
3d-gussner c1f22a5239 Update #MSG_MOVE_AXIS c=18 2021-03-30 18:12:03 +02:00
3d-gussner 99893d5066 Define #MSG_MMU_CONNECTED c=18 2021-03-30 18:11:22 +02:00
3d-gussner 77a7a92a42 Define MSG_MMU_LOAD_FAILED c=20 2021-03-30 18:08:13 +02:00
3d-gussner 4d9dffb042 Define #MSG_MEASURED_SKEW c=13 2021-03-30 18:06:43 +02:00
3d-gussner 1e2dde9a52 Update #MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=20 r=3 2021-03-30 18:02:27 +02:00
3d-gussner afb7c82e26 Update #MSG_LOAD_TO_NOZZLE c=18 2021-03-30 18:00:20 +02:00
3d-gussner 2408bc9f2e Update MSG_LOADING_COLOR c=20 2021-03-30 17:58:51 +02:00
3d-gussner 62ecbb3ae3 Update #MSG_BABYSTEP_Z c=18 2021-03-30 17:57:50 +02:00
3d-gussner 50e69fcca8 Update #MSG_NO c=3 2021-03-30 17:53:58 +02:00
3d-gussner 75c0de741b Update #MSG_AUTO_DEPLETE c=13 2021-03-30 17:52:59 +02:00
3d-gussner ddf47a3cac Update #MSG_NA c=3, #MSG_OFF c=3, #MSG_ON c=3 2021-03-30 17:51:31 +02:00
3d-gussner d1813890a8 Update #MSG_STOPPED c=20 2021-03-30 17:49:02 +02:00
3d-gussner a9ed513979 Update #MSG_STOP_PRINT c=18 2021-03-30 17:48:06 +02:00
3d-gussner 46367c2a33 Update #MSG_STEALTH c=7, #MSG_SILENT c=7, #MSG_NORMAL c=7 2021-03-30 17:46:37 +02:00
3d-gussner 3d848328ed Update #MSG_AUTO_POWER c=10 2021-03-30 17:42:33 +02:00
3d-gussner 8771519880 Update #MSG_HIGH_POWER c=10 2021-03-30 17:41:51 +02:00
3d-gussner afabfa789d Update #MSG_MODE c=6 2021-03-30 17:41:09 +02:00
3d-gussner dc56b74263 Update #MSG_MODE c=9 2021-03-30 17:39:43 +02:00
3d-gussner 2a08a6e441 Update #MSG_SELFTEST_WIRINGERROR c=17 2021-03-30 17:37:50 +02:00
3d-gussner e6ea843e62 Update #MSG_SELFTEST_MOTOR c=18 2021-03-30 17:36:39 +02:00
3d-gussner 35b000faea Update MSG_RESUMING_PRINT c=20 2021-03-30 17:34:36 +02:00
3d-gussner 557486ee0b Update MSG_REFRESH c=18 2021-03-30 17:34:00 +02:00
3d-gussner 54f594238b Update #MSG_NOZZLE c=12 2021-03-30 17:33:15 +02:00
3d-gussner a878056be3 Update MSG_BACK c=18 2021-03-30 17:32:04 +02:00
3d-gussner 610ba9bc45 Update #MSG_CARD_MENU c=18 2021-03-30 17:31:18 +02:00