Commit Graph

246 Commits

Author SHA1 Message Date
DRracer 8ac1d5b95e
Attempt to workaround the M73 C0|D0 visual issue (#3067)
Attempt to workaround the M73 C0|D0 visual issue

This is an attempt to enable alternation of time to print finish and time
to color change even in the last minute of time to color change, i.e. be
able to print "0:00C".

The proposed solution leverages the capability of the current FW to read
float values from the C|D parameter. This could have the raw benefit of
being able still to alternate this time on the LCD as "0:00C" (or
"<1min") if the slicer sends a non-zero but <1 time right before the
color change.

Co-authored-by: D.R.racer <drracer@drracer.eu>
Co-authored-by: 3d-gussner <3d.gussner@gmail.com>
2021-03-19 10:18:28 +01:00
Yuri D'Elia 14a1a93bc8 Include probing/MBL in the PRINTER_ACTIVE check
This prevents to perform disruptive actions during homing or between MBL
probes, which would result in a failure.
2021-02-25 17:33:59 +01:00
3d-gussner d063ffb141 Add parameter `D` to gcode `M73` for silent/stealth mode 2021-02-11 07:47:43 +01:00
3d-gussner 91c767b0f2 Reduce code size 2021-02-11 07:47:43 +01:00
3d-gussner cb61436093 Add remaining time to change/pause/user interaction to LCD Info screen
- Add parameter `C` to gcode `M73`
- LCD Info screen switches to change time if last `M73` gcode contains `C` parameter
  - Examples:
    - `M73 P5 R120` will display on LCD ` SD  5%      02:00R ` if it is printing at 100% speed
    - `M73 P5 R120 C60` will display on LCD ` SD  5%      01:00C ` if it is printing at 100% speed

Slicers can generate "Time to change/pause/user interaction" using `C<mins:0-65535>` parameter to "overwrite" the remaining print time.
To switch between time to change and remaining time just send in intervals `M73` with or without `C` parameter.
2021-02-11 07:47:43 +01:00
Voinea Dragos 52f7a71dce More fixes that were extracted from #2405 2021-02-06 14:59:11 +02:00
Alex Voinea 896f4e1dd1 Fix compile error 2021-02-02 19:14:05 +02:00
Alex Voinea f6ae379077 Fix dir_names array definition. Prevents overrun 2021-02-02 19:08:44 +02:00
Alex Voinea 2f4119a6d7 M552 - Printer IP address 2021-02-02 13:21:16 +02:00
3d-gussner 9264454d3a Gcode `M123` only if FANCHECK and TACHOs are defined
Gcode `M155` added parameter "C" to activate auto-report for temperatures, fans and positions
Updated doxygen
@todo Update RepRap Wiki
@todo improve code
2021-01-19 09:01:46 +01:00
3d-gussner a064ce4722 Add gcode `M123` Tachometer value 2021-01-10 15:15:44 +01:00
Alex Voinea 4abf1f436a Gracefully dump the queue + fixes to fancheck 2020-11-09 21:49:56 +02:00
Alex Voinea ff56ece6f8 Remove redundant get_command prototype 2020-11-09 21:49:56 +02:00
Alex Voinea eb007c35d2
Macros initial 2020-09-11 16:12:49 +03:00
DRracer 772844678f
Merge pull request #2809 from leptun/PFW-1134-ALTFAN_KILLSWITCH
Pfw 1134
2020-08-20 15:42:03 +02:00
Alex Voinea 8d9dc73d1b
Fix compile error
fix compile


Fix compile error
2020-08-12 17:25:49 +03:00
Alex Voinea 5530b99882
Reboot after factory reset 2020-08-12 12:46:35 +03:00
Yuri D'Elia 9b8f642b28 Account for flow adjustments in LA
The e/D ratio should be calculated using the extrusion length.

As such, purify the e_D_ratio from the current extruder multiplier in
order to account correctly for flow adjustments.
2020-07-19 17:41:38 +02:00
Marek Bel bbe9e3b4ea Remove temp_cal_active variable.
This saves 18B of FLASH and 1B of RAM memory. This variable was duplicate to EEPROM variable of the same name.
2020-06-11 20:00:55 +02:00
Yuri D'Elia 5082f2a36e Move reset LA state from G80 to M84
Move la10c_reset into finishAndDisableStepper, which is called in both
via lcd_print_stop() and indirectly via M84, saving some space.

M84 is checked-for to determine a complete file, so it's a superior
candidate to G80 (which some people avoid due to MBL issues).
2020-04-29 22:51:23 +02:00
Alex Voinea fd1d05ab48
♻️Code optimization 2020-04-02 14:44:44 +03:00
DRracer 5106831ba2
Merge pull request #2526 from leptun/MK3_decouple_XYZE_relative_mode
Mk3 decouple XYZE relative modes
2020-03-26 18:58:20 +01:00
DRracer c085ecaa11
Merge pull request #2264 from leptun/MK3_fix_selftest_Z_crash2
PFW-1048: fix selftest Z crash. Use stallGuard when testing Z
2020-03-26 18:22:35 +01:00
Alex Voinea d0c51b9e73
int -> bool 2020-03-26 19:06:35 +02:00
Alex Voinea 5fcf18718f
Decouple XYZ relative from E relative. 2020-03-05 11:22:35 +02: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 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
Alex Voinea 2e50954710
Merge branch 'MK3' into MK3_fix_selftest_Z_crash2 2020-01-22 14:56:54 +02: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 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
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 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 e25befa175 Fix include guard to silence duplicate declaration warnings 2019-10-22 15:49:10 +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 350e27810a fix selftest Z crash. Use stallGuard when testing Z 2019-10-11 21:00:51 +03:00
leptun b39f09b68e Merge branch 'MK3' into MM_lay1_cal 2019-10-01 19:20:50 +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 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 32f435d1a0 Increase number of configurable steel sheets to 8. Move sheets into sub menu of HW setup. 2019-08-29 17:21:08 +02:00
Marek Bel 33675c6d1e Change default sheet names. 2019-08-28 18:16:35 +02:00
NotaRobotexe c4d5e332c8
Merge branch 'MK3' into MK3 2019-07-23 11:34:42 +02:00
NotaRobotexe b9f622f8a6 variables to PROGMEM, text formating 2019-07-23 11:31:20 +02:00
NotaRobotexe b5129ff2ec Revert "force push"
This reverts commit 19e7838c20.
2019-07-23 11:12:53 +02:00
NotaRobotexe 19e7838c20 add default names to PROGMEM, text formating edit 2019-07-22 20:35:10 +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
DRracer 255db28684 merge unit test and upstream changes 2019-07-17 10:30:49 +02:00
Marek Bel 3e292fd6b0 Fix compiler warnings:
sketch/Marlin.h:178:17: warning: extra tokens at end of #undef directive
sketch/Marlin.h:181:24: warning: extra tokens at end of #undef directive
sketch/Marlin.h:182:0: warning: "enable_z" redefined
2019-07-16 18:16:28 +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 a3fde091ab More than 7.5KB saved by slight refactoring of printing to serial line 2019-07-12 10:10:56 +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
Marek Bel 72f5e87c61 Merge branch 'MK3' into use_enum_class_2 2019-06-12 19:17:35 +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
MRprusa3d 1d8c24e8a9 "disable_z()" for Delta PSU IV
correction for (motor) mode switching
2019-06-05 19:22:04 +02:00
DRracer 9cb0bc7bcf Fix MINTEMP errors and fsensor runout 2019-05-24 08:46:44 +02:00
Marek Bel 1f3877b221 Extract duplicate code into function. Saves 4B of flash. 2019-05-15 16:31:10 +02:00
Marek Bel 84cabd3836 Change busy_state type, save 340B of flash 2019-04-05 15:20:34 +02:00
Marek Bel bf57a59147 Extract duplicate code into function. Saves 106B flash. 2019-04-05 15:12:35 +02:00
MRprusa3d 4b1fc69088 "disable_z()" for Delta PSU III
stealthChop set if motor-disable (@ Z) required
2019-04-02 20:04:44 +02:00
PavelSindler d22793f276 Z-probe nr. states reduced to 1; 3; 5 2019-03-28 12:02:46 +01:00
MRprusa3d 632781c4a2 "disable_z()" for Delta PSU 2019-03-21 00:45:15 +01:00
MRprusa3d 7d98177716 farmMode updates 2019-03-19 19:48:40 +01:00
PavelSindler b20d9171b6 Merge remote-tracking branch 'upstream/MK3' into 7x7 2019-03-12 11:47:17 +01:00
PavelSindler 4d2b155ff9
Merge pull request #1594 from mkbel/fix_change_filament
Fix change filament
2019-03-12 11:39:15 +01:00
PavelSindler 6a864ffbab G80 parameters configurable via settings menu 2019-03-08 15:43:37 +01:00
PavelSindler dccb6ca2c6 Merge remote-tracking branch 'upstream/MK3' into bed_analysis_gcodes2 2019-03-06 19:56:52 +01:00
PavelSindler f0cc313fed debug gcodes (fans, bed analysis) moved to Dcodes, HOST_KEEPALIVE_FEATURE simplified 2019-03-06 19:56:48 +01:00
Marek Bel ebfd4b2f47 Fix compiler warning: unused parameter 'calib' 2019-03-05 17:02:57 +01:00
Marek Bel 790ae9f0ce Fix compiler warning: unused parameter 'pstep'. 2019-03-05 16:41:41 +01:00
Marek Bel b2255c8be9 Preheat nozzle before loading filament in M600 (change filament) gcode.
This fixes problem of not heating the nozzle when retrying load after MMU load failed.
2019-03-04 22:00:24 +01:00
Marek Bel 02a692c5d9 Store cutter enable state in EEPROM. 2019-02-27 17:34:03 +01:00
Marek Bel 4a4eb9962c Cut filament when cutter is enabled and MMU load fails. 2019-02-27 10:42:26 +01:00
Marek Bel 49b1d1cb93 Move prototype to header file. 2019-02-26 18:50:15 +01:00
PavelSindler 9926468c91 Merge remote-tracking branch 'upstream/MK3' into variants 2019-01-30 17:26:45 +01:00
Marek Bel 6d2358125a Fix Timer_test broken by conditional translation for SYSTEM_TIMER_2. 2019-01-28 19:29:31 +01:00
Robert Pelnar 1b4e49b5ac Fixed fancheck and include in TimerRemaining.h
this commit enables fast pwm mode for bed (SYSTEM_TIMER_2 definition uncomented)
fancheck fix verified with selftest
2019-01-28 12:57:33 +01:00
Robert Pelnar eea755496b Conditional translation for SYSTEM_TIMER_2 because we want to have posibility to switch between old/new implementation.
Timing functions (millis, micros and delay) replaced in whole source, defined in Marlin.h.
This commit enables original implementation (SYSTEM_TIMER_2 undefined)
Verified with passed complete wizard process.
2019-01-27 22:48:51 +01:00
Robert Pelnar fc0b55b213 Timing functions micros2 and delay2 + fix of delay_keep_alive(). 2019-01-27 17:23:53 +01:00
PavelSindler e0c1e4a02d version which should on all printer versions: autoload, selftest, filament detection, filament sensors initialization, filament menus 2019-01-24 01:12:30 +01:00
Marek Bel b4d4bfa667 Do not declare extern class in .cpp file, include appropriate header. 2018-11-06 20:54:53 +01:00
PavelSindler 96ce324b7c load to nozzle improved, unified feedrate and E-distance for final feed used in load filament function, M600 etc. 2018-11-01 16:29:09 +01:00
PavelSindler 0e0dbad871 #ifdef __cplusplus added to allow including to .c file 2018-10-25 21:06:37 +02:00
PavelSindler 01529f18d2 upstream/MK3 merge 2018-10-25 20:57:27 +02:00
Robert Pelnar ac18eb67c0 New lang, arduino 1.8.5 - boot_app debug output
+ variable _uartout linkage fix
+ DEBUG_DCODE5
2018-10-18 16:20:14 +02:00
Marek Bel 9cae0c378a Rename _EEPROM_writeData to EEPROM_writeData. Rename _EEPROM_readData to EEPROM_readData. Add return value to EEPROM_writeData to detect failure to write. Do not mark data as valid, if write has failed. Remove EEPROM_WRITE_VAR and EEPROM_READ_VAR macros. Make pos input only parameter. Convert EEPROM_OFFSET macro to typed constatant EEPROM_M500_base, it was defined in two places, leave it in one place. Use Config_StoreSettings() instead of erase_eeprom_section(). Compare float with 0xff byte by byte to avoid compiler warning "Dereferencing type punned pointer will break strict aliasing rules." 2018-10-08 20:24:56 +02:00
Marek Bel 1585dc66b0 Merge remote-tracking branch 'prusa3d/MK3_dev' into simplify_EEPROM_M500
Known limitation: Unable to compile.
2018-10-08 15:58:49 +02:00
Marek Bel ca179a2d18 Use cs.filament_size from ConfigurationStore. 2018-09-24 17:29:02 +02:00
Marek Bel e225e9cab0 Use cs.volumetric_enabled from ConfigurationStore. 2018-09-24 17:12:16 +02:00
Marek Bel a201128b20 Use cs.retract_length, cs.retract_feedrate, cs.retract_zlift, cs.retract_recover_length and cs.retract_recover_feedrate from ConfigurationStore. 2018-09-24 17:10:25 +02:00
Marek Bel 7e593e6922 Use cs.autoretract_enabled from ConfigurationStore. 2018-09-24 17:03:10 +02:00
Marek Bel f2ae3fb1f7 Use cs.zprobe_zoffset from ConfigurationStore. 2018-09-24 16:47:57 +02:00
Marek Bel 959d0069fa Use cs.add_homing from ConfigurationStore. 2018-09-24 16:42:28 +02:00
PavelSindler 1253fb338a wizard hotfix 2018-09-10 18:02:54 +02:00