Commit Graph

3499 Commits

Author SHA1 Message Date
espr14 1610c96fc4 Fix and report circle divergence 2020-12-21 18:05:52 +01:00
espr14 744763f0a9 Fix diagonal movement 2020-12-21 17:34:54 +01:00
espr14 de23a845b4 Remove unused 2020-12-21 15:53:51 +01:00
espr14 3c9168f8f6 Optimize diagonal 2020-12-21 15:52:25 +01:00
espr14 9a59369c77 Diagonal acceleration 2020-12-21 15:32:09 +01:00
espr14 27ff6b0057 Fix build 2020-12-21 13:11:48 +01:00
espr14 9b55ff9de1 Acceleration up and down 2020-12-21 13:05:26 +01:00
espr14 f39a0999e1 Prepare full acceleration control 2020-12-18 21:33:43 +01:00
espr14 ccf26e4e7a Basic acceleration 2020-12-18 20:04:00 +01:00
espr14 a8f4207df9 New XYZ calibration algorithm 2020-12-17 18:19:36 +01:00
Alex Voinea 2ac106d9fe
Merge branch 'MK3' into MK3_random_patches 2020-11-30 09:14:58 +02:00
odaki 61c48df0bd Merge remote-tracking branch 'upstream/MK3' into flashair_display_ip 2020-11-23 15:53:03 +09:00
Voinea Dragos f96f75bd17 Fix warning and a bit of indentation
Saved 64B of flash and 1B of SRAM
2020-11-16 10:58:26 +02:00
Voinea Dragos f3953d7c83 Merge branch 'MK3' into MK3_random_patches 2020-11-16 09:11:12 +02:00
odaki c0070506fb Merge branch 'MK3' into flashair_display_ip 2020-11-13 22:28:22 +09:00
DRracer d013abfd52
Merge pull request #2890 from prusa3d/MK3_3.9.2
Merge MK3_3.9.2 into MK3
2020-11-13 13:03:35 +01:00
Alex Voinea 807eddafb0
Remove debugging code 2020-11-13 12:12:18 +02:00
Alex Voinea 43ace00a24
Fill the progress bar at the end and code optimizations 2020-11-12 18:43:48 +02:00
Alex Voinea 5ad125cbed
Merge branch 'MK3' into MK3_filecheck_progress_bar 2020-11-12 15:53:33 +02:00
D.R.racer 396ee0fde2
Version changed (3.9.2 build 3524) 2020-11-10 10:27:18 +01:00
Voinea Dragos 176e2674b9 Fix M105 ok hack 2020-11-09 21:49:56 +02:00
Voinea Dragos 023ccb0e89 Fix double ok in M603 2020-11-09 21:49:56 +02:00
Alex Voinea 0c305ee5f5 Fix warning 2020-11-09 21:49:56 +02:00
Alex Voinea 4abf1f436a Gracefully dump the queue + fixes to fancheck 2020-11-09 21:49:56 +02:00
Alex Voinea fdbbc7d62a Terminate last line from the SD card even if it doesn't have a \n 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 5f0e4a1cac Temporary M602 patch. Needs more work 2020-11-09 21:49:56 +02:00
Alex Voinea 6873a9d28e Only send capabilities when M115 is run without arguments 2020-11-09 21:49:56 +02:00
Alex Voinea 0ee8e1f424 Fix missing ok in M601 2020-11-09 21:49:56 +02:00
Alex Voinea e5ebf7c67f Fix missing keep-alive messages 2020-11-09 21:49:56 +02:00
Alex Voinea 26f62f042e Use the longest filename instead of just using the long filename in M27 2020-11-09 21:49:56 +02:00
D.R.racer 4747c8c9f5 Increase top Z-offset limit based on some test results 2020-11-09 12:29:19 +01:00
D.R.racer 5184910ef9 Try harder finding the calibration center
with alternative PINDAs it looks like their properties vary a lot
and searching for the calibration center requires trying different
Z levels.
2020-11-09 06:33:41 +01:00
D.R.racer cd4e16ef9f XYZ calibration tune
PFW-1159
2020-11-06 08:25:56 +01:00
Yuri D'Elia e28159122f Make MIN_Z_FOR_LOAD/UNLOAD the same
When unloading + preheat immediately followed by a load, the carriage is
raised first up to 20mm, then again to 50mm.

With PR #2318 it makes sense to make more space for the extra extrusion
anyway, so make them the same. This moves the carriage only once _while_
preheating, which is nice.
2020-10-29 15:30:16 +01:00
Yuri D'Elia 5f23474c95 Raise Z while preheating when auto/[un]loading the filament
Preheating already raised Z to avoid scorching the PEI sheet, as does
filament loading/unloading to allow for excess material to be removed.

However, when loading/autoloading/unloading via the LCD with a cold
nozzle the preheating menu is performed before the carriage is raised,
leaving the carriage close to the sheet while heating the nozzle.

Pre-raise the carriage already while waiting, so that the subsequent
move is automagically skipped.

Set bFilamentWaitingFlag only once to perform both the LCD
initialization and raising to the appropriate height.

Should fix #2761
2020-10-28 20:49:28 +01:00
DRracer c05d4c9112
Update messages.h
cleanup space
2020-10-21 17:04:20 +02:00
MartinPoupa a84d7ef8d6 corectino of declaration 2020-10-13 16:56:57 +02:00
MartinPoupa c8c7563e8a LCD status changed
When the lcd status changed it will be printed "LCD status changed" to serial line.
2020-10-07 17:44:17 +02:00
Yuri D'Elia df824414ef Fix probing in IR_SENSOR 2020-09-28 21:02:06 +02:00
Yuri D'Elia c2e8d229a7 Be more compliant in the I2C protocol
- Enter a repeated-start for reading data
- Write in the same session
2020-09-28 20:21:07 +02:00
odaki ebc987bd23 Merge branch 'MK3' into flashair_display_ip 2020-09-28 21:19:44 +09:00
Yuri D'Elia 384f40956c Remove obsolete cbi/sbi 2020-09-27 16:42:20 +02:00
Yuri D'Elia 6d476d7144 Still use SWI2C on RAMBo10a boards
The wiring for the PAT9125 on RAMBo10a boards is not directly connected
to the SCL pin and requires the sw mode.

Detect this requirement by checking the definition for the SWI2C_SCL pin
in the board definition.

Remove SWI2C_SCL/SDA from the other boards to use the HW mode.
2020-09-27 14:29:07 +02:00
DRracer 134f841380
Merge pull request #2841 from leptun/MK3_SD_REMOVED_MESSAGE
SD card released message
2020-09-23 10:22:04 +02:00
DRracer 95e2e2f69c
Merge pull request #2832 from leptun/MK3_AUTO_REPORT_TEMPERATURES
Mk3 auto report temperatures
2020-09-23 08:51:26 +02:00
DRracer ef0840f587
Merge pull request #2786 from leptun/MK3_M115_Capabilities_report
Printer Capabilities framework + Macros + Code cleanup
2020-09-23 08:37:03 +02:00
Alex Voinea d9fa44c142
Document M155 command 2020-09-23 09:14:35 +03:00
DRracer e24466f22e
Merge pull request #2837 from prusa3d/MK3_3.9.1
Merge MK3_3.9.1 into MK3
2020-09-22 10:43:59 +02:00
odaki 4c7100985e Merge branch 'MK3_3.9.1' into flashair_display_ip 2020-09-22 11:59:05 +09:00
D.R.racer 7278458316 Version changed (3.9.1 build 3518) 2020-09-18 16:59:22 +02:00
3d-gussner bd7bb5acb3
Update new messages and their translations (#2835)
* Add missing translations

* Add missing CZ and IT translations

* Update CZ, FR, IT, ES translations
CZ thanks to @DRracer
FR thanks to Carlin Dcustom
ES tried myself
IT thanks to @wavexx

Only missing is PL

* Improve wording +change keys

* Add missing PL translations

* Fix copy paste error in Italian
fix double translations

* Make PL translation shorter

* Fix some length issues and capital letters

* Fixed again translations length issues
updated po files

* Update FR translation - thanks @awenelo

* Fix execution of lang-check.py

- Make lang-check.py executable
- Execute directly instead of specifying the python interpreter manually
  ("python" is no longer available on Debian, and would default to
  version 2 prior to that despite being written for python 3)

* Fix permissions of translation files

Co-authored-by: D.R.racer <drracer@drracer.eu>
Co-authored-by: Yuri D'Elia <wavexx@thregr.org>
2020-09-18 16:50:25 +02:00
Voinea Dragos 2f5083daa7
quickfix to mistake made in the experimental menu visibility code
Fix indentation
2020-09-15 18:56:39 +03:00
DRracer 9fb6efc435
Add newline at the end of file 2020-09-15 14:56:41 +02:00
Voinea Dragos c0fced2f3c Fix typo 2020-09-15 14:21:21 +03:00
Voinea Dragos e2ef5af40e Add capability line 2020-09-15 14:21:09 +03:00
Voinea Dragos a1dfbffedb Merge branch 'MK3_M115_Capabilities_report' into MK3_AUTO_REPORT_TEMPERATURES 2020-09-15 13:39:00 +03:00
Voinea Dragos 073eadff7e Merge branch 'MK3' into MK3_AUTO_REPORT_TEMPERATURES 2020-09-15 13:38:47 +03:00
DRracer 3093c8c7f6
Merge pull request #2829 from wavexx/la10_15_readjust
Re-adjust LA10->15 conversion
2020-09-15 11:59:07 +02:00
Alex Voinea c158259970
Remove unused where C++ alternative can be used 2020-09-11 20:04:06 +03:00
Alex Voinea 44b1b1c219
More macros 2020-09-11 18:48:44 +03:00
Alex Voinea c3abd4ffe6
Remove io_atmega2560.h and some more macros 2020-09-11 17:43:38 +03:00
Alex Voinea eb007c35d2
Macros initial 2020-09-11 16:12:49 +03:00
Alex Voinea 160af0a624
Printer capabilities 2020-09-11 16:11:28 +03:00
DRracer f145769e98
Merge pull request #2807 from leptun/MK3_Polling
M220 M221 polling of values
2020-09-09 10:25:36 +02:00
DRracer 763d2d9849
Merge pull request #2806 from leptun/MK3_PRUSA_SN
Make the serial number available to the user
2020-09-09 09:54:29 +02:00
DRracer a0420c7928
Merge pull request #2619 from 3d-gussner/MK3_G21
Add dummy G21 to prevent UNKOWN warnings in serial
2020-09-09 09:22:07 +02:00
DRracer b82ee3fc06
Merge pull request #2811 from leptun/MK3_fastio_timer_patch
Fix fastio extra parenthesis
2020-09-09 08:57:37 +02:00
DRracer a2db9e8f6b
Merge pull request #2585 from leptun/MK3_FEEDRATE
🐛♻️ Update the feedrate percentage before drawing the screen
2020-09-09 08:56:46 +02:00
Yuri D'Elia 26e900896a Re-adjust LA10->15 conversion
After fixing some LA15 issues, the strenght of LA15 increased.
As such, re-adjust the conversion factor so that:

Start K10 => 0.01 (previous minimum was K15)
PLA   K30 => 0.05 (was 0.07, optimal 0.045-0.06)
PETG  K45 => 0.08 (was 0.13, optimal 0.07-0.11 depending on material/temp)
2020-09-07 21:44:34 +02:00
Alex Voinea 7ac16d5f04
Menu view return patch 2020-09-07 19:42:53 +03:00
D.R.racer 02891f6bb8 Version changed (3.9.1-RC1 build 3512) 2020-09-02 11:56:53 +02:00
Alex Voinea 3e7bba54e0
SD card released message 2020-08-28 17:32:07 +03:00
Yuri D'Elia e37cdab38f PAT9125_I2C: accept either NACK or ACK in receive
Both would be technically correct.
2020-08-25 12:15:55 +02:00
Yuri D'Elia d8a8837938 Document the 3 possible modes 2020-08-25 11:32:05 +02:00
Alex Voinea 1659f61dd5
Fix fastio extra parenthesis 2020-08-21 10:51:46 +03:00
Yuri D'Elia 30e7b777e0 Error-out with PAT9125_SWSPI (not fully implemented)
.. and likely will never was/be.
2020-08-20 22:13:13 +02:00
Yuri D'Elia 7f425120f0 Strip down the TWI code
- Only implement a single syncronous read/write function to read a byte,
  since that's all we need currently
- Implement a compact IR_SENSOR probe for PAT9125
- Saves 242 bytes compared to PAT9125_SWI2C
2020-08-20 22:13:04 +02:00
DRracer 772844678f
Merge pull request #2809 from leptun/PFW-1134-ALTFAN_KILLSWITCH
Pfw 1134
2020-08-20 15:42:03 +02:00
Yuri D'Elia 240dc1132e Include initial implementation based on Arduino's twi 2020-08-20 15:34:46 +02:00
Yuri D'Elia 502bc8c72d Isolate more pat9125 code
Remove probing from Marlin_main and move it into pat9125_probe so that
it can support the various variants.
2020-08-20 15:34:46 +02:00
3d-gussner 90c36a5887
Update ALTFAN eeprom documentation
EEPROM_ALTFAN_OVERRIDE and EEPROM_EXPERIMENTAL_VISIBILITY are compared to 0xFF in the code that's why I keep the uint8.
2020-08-20 15:14:39 +02:00
Alex Voinea 2c2926882a
Don't switch unnecessarily. Also "\n" the ";S" request 2020-08-18 19:29:18 +03: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
Alex Voinea 6b853a4cc3
Auto-detect ALTFAN after fw. update 2020-08-12 12:19:08 +03:00
Alex Voinea 96435ad084
Move experimental menu to HW setup 2020-08-12 08:48:12 +03:00
DRracer 008d3b0e65
Merge pull request #2792 from wavexx/MK3_fix_high_speed_deceleration
Mk3 fix high speed deceleration
2020-08-06 13:27:52 +02:00
DRracer 89ecf2ce3a
Merge pull request #2791 from wavexx/stack_protect_reentrant_isr
Fix stack smashing in temperature/fsensor ISR
2020-08-06 13:26:33 +02:00
DRracer d0eca4d5c4
Merge pull request #2794 from leptun/PFW-1134-ALTFAN_KILLSWITCH
Minor documentation fixes to altfan PR
2020-08-06 12:53:34 +02:00
Alex Voinea f1a8657093
Minor documentation fixes
Add even more comments


a
2020-08-06 12:20:38 +03:00
DRracer 22a8c18551
Merge pull request #2784 from leptun/PFW-1134-ALTFAN_KILLSWITCH
altfan killswitch
2020-08-06 08:15:42 +02:00
Yuri D'Elia b3af08d94a Fix stack smashing in temperature/fsensor ISR
The temperature and fsensor ISR re-enable interrupts while executing.

However, we still need to protect the epilogue of the ISR so that
the saved return address is not altered while returning.

We hoist the body of the function out of the isr in both cases for
clarity (and to avoid a stray return bypassing the lock/cli), so that
the re-entrant portion is clearly indicated.

This should fix the "STATIC MEMORY OVERWRITTEN" error messages randomly
happening when stepping at high frequency (where either isr is
preempted more frequently).
2020-08-05 17:47:46 +02:00
DRracer f1bde1a039
Merge pull request #2724 from wavexx/max_ambient
Implement MIN/MAX AMBIENT safety checks
2020-08-05 08:52:55 +02:00
Yuri D'Elia a2c7dcbbf8 Fix indentation 2020-08-04 13:14:35 +02:00
Alex Voinea 654a3a0d79
Other requested changes 2020-08-04 10:43:30 +03:00
Alex Voinea e0bf92cd4e
Change bool literal to int 2020-08-04 09:54:57 +03:00
Yuri D'Elia b8e8f182ca Add reference C implementations for MultiU16X8toH16/MultiU24X24toH16
Higher step counts might still overflow the ASM MultiU24X24toH16.

e4595fa24a
2020-08-03 19:03:13 +02:00
Yuri D'Elia 30a806608f Also convert acceleration_rate to uint32_t
acceleration_rate is also unsigned
2020-08-03 19:01:38 +02:00
Yuri D'Elia aebaca5cdc Correct comments regarding acceleration ramp
Backport fixes from upstream Marlin
2020-08-03 18:53:13 +02:00
Yuri D'Elia 8108d50b59 Reintroduce/fix check for step_rate underflow during deceleration
Check for negative results and results under the final_rate
2020-08-03 18:53:13 +02:00
Yuri D'Elia 4654283f54 Restore indentation 2020-08-03 18:16:20 +02:00
Alex Voinea 12be141188 Fix high speed deceleration 2020-08-03 18:16:13 +02:00
Yuri D'Elia a8ce9358e5 Avoid redundant temperature error strings
Factor-out MIN/MAXTEMP [BED/AMB] out of the error message, which is now
built at runtime instead.

Introduce two missing ultralcd functions lcd_setalertstatus and
lcd_updatestatus to handle regular strings.

246272 -> 246084 = 188 bytes saved
2020-08-01 17:47:42 +02:00
Yuri D'Elia e1c79c342d Re-introduce redundant disable_heaters() calls
Partially revert 285b505c73a54e9af01816e3a614de73ad181851 so that
we ensure heaters are disabled ASAP in case of potential bugs
in the max_*_error functions.
2020-08-01 17:47:20 +02:00
Yuri D'Elia a60ed81a35 Implement MIN/MAX AMBIENT safety checks
Take advantage of the NTC thermistor found on the Einsy as an additional
safety measure, following the steps of the other MIN/MAXTEMP errors.

Introduce two configurable params AMBIENT_MINTEMP and AMBIENT_MAXTEMP
in the variant defines and set them for the MK3/MK3S to -30/+100
respectively.

AMBIENT_MINTEMP is primarily intended to catch a defective board
thermistor (to ensure MAXTEMP would be properly triggered) and thus the
trigger temperature is set just above the sensing limit and well below
the operating range.

AMBIENT_MAXTEMP is set at 100C, which is instead 20C above the maximum
recommended operating temperature of the Einsy. The NTC thermistor is
located just above the main power connector on the bottom of the board,
and could also help in detecting a faulty connection which can result in
rapid overheating of the contacts.

As for MAXTEMP, we cut power to the heaters, print fan and motors to
reduce power draw. Resume is not possible except by resetting the
printer, since the user is highly advised to inspect the board for
problems before attempting to continue.
2020-08-01 17:38:10 +02:00
Yuri D'Elia 3336db7954 Add some important notes about thermistor ADC handling 2020-08-01 17:36:43 +02:00
Yuri D'Elia 65f25b0d7e Remove redundant disable_heater() calls in max/min_temp handling
In max/min_temp handlers remove the redundant disable_heater() call.
Handlers already need to call Stop(), which will disable all heaters
as the first step.

Fix comments in order to mention that all heaters get disabled.
Use "MAX/MINTEMP BED" correctly in both the LCD and serial.
2020-08-01 17:36:43 +02:00
Yuri D'Elia 942fca5b66 Remove useless assignment
target_temperature_bed is already reset by disable_heaters() in Stop()
2020-08-01 17:36:43 +02:00
Yuri D'Elia 87bc5a78b6 Remove bogus comment (BED_MINTEMP *is* implemented) 2020-08-01 17:36:43 +02:00
Yuri D'Elia feafc5e5ab Alternative schedule for LA ticks
Remove most of the original complexity from advance_spread.

Instead of accumulating time to be scheduled, plan ahead of time each
eISR tick using the next main interval + an accumulator (eISR_Err),
which keeps everything much simpler.

The distribution of the advance ticks is now using the real LA
frequency, which leaves a bit more time between the last LA tick and
the main stepper isr.

We take advantage of the accumulator to force a LA tick right after the
first main tick, which removes a +/- 1 scheduling error at higher step
rates.

When decompressing, we force 2 steps instead, so that the direction
reversal happens immediately (first tick zeros esteps, second inverts
the sign), removing another +/- 1 error at higher step rates.
2020-07-29 19:14:48 +02:00
Alex Voinea 773c6997ef
Add comments 2020-07-29 17:36:03 +03:00
Alex Voinea ec6a20971e
Add experimental menu to HW_setup 2020-07-29 11:23:24 +03:00
Alex Voinea d8fbd46cd2
M155 2020-07-23 17:28:25 +03:00
Alex Voinea e2856ba4f5
Make the serial number available to the user 2020-07-21 12:52:04 +03:00
Alex Voinea a95feb56d9
ALTFAN override 2020-07-20 19:35:25 +03:00
Yuri D'Elia a08ca19ade Make flow correction optional, disabled by default
If you're using flow to correct for an incorrect source diameter, which
is probably the main usage when using the LCD, then LA shouldn't be
adjusted.

It's still unclear what the effect of M221 in gcode should be regarding
overall extrusion width. If M221 means "thicker lines", then LA should
also be adjusted accordingly.

This stems from the fact that the source diameter/length needs to be
known in order to determine a compression factor which is independent of
the extrusion width, but the FW only ever sees one value currently (the
extrusion length) which combines both.

This makes it impossible for the FW to adjust for one OR the other
scenario, depending on what you expect for M221 to mean.
2020-07-20 14:33:45 +02: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
Yuri D'Elia c54474f2db Guard against planning/numerical errors in short segments
Turns out for high-res curved models the numerical error and the
SLOWDOWN handling in the planner can cause enough variance in the
calculated pressure to trigger LA to continuosly, making matters worse.

Clamp LA again, but only during extrusion, so that the runaway error is
limited by the current segment length.
2020-07-16 18:54:00 +02:00
Yuri D'Elia fb5f09da6d Fix incorrect precedence for retraction phase
The logic was inverted, causing the fastest isr to always retract
instead of counter-balance the acceleration properly.
2020-07-16 18:53:53 +02:00
Yuri D'Elia c08f37da96 Use nominal rate for phase calculations
The local interval calculated by advance_spread() might oscillate too
much in narrow intervals.
2020-07-12 17:15:47 +02:00
Yuri D'Elia 78bbfc6237 Fix delay calculations inside babystep()
- Avoid all delays when using DEDGE stepping
- Correctly account for direction change delays
2020-06-24 17:58:43 +02:00
Yuri D'Elia 6ea198a866 Fix DEDGE in sm4.c (fixes xyz calibration) 2020-06-24 17:58:43 +02:00
Yuri D'Elia e6b182aa9f Implement proper step/delay pauses in tmc2130 functions
Add constants for the various required delays in tmc2130.h,
which will come in handy for stepper.cpp as well.

Move the delays in the _set functions and remove the pauses
from the various calling points and macros.

Note that the hard-coded pause wouldn't cut it for the stepper ISR,
but it's fine for other use cases.
2020-06-24 17:58:43 +02:00
Yuri D'Elia 1181beffb1 Enable DEDGE stepping on supported variants 2020-06-24 17:58:43 +02:00
Yuri D'Elia 6ceca9bf85 Implement double-edge stepping
Introduce new wrapper macros to tick the stepper pins.
Default to the original raising-edge stepping mode.

When using the TMC double-edge stepping mode (aka half-wave or
square-wave mode) the _LO macros become no-ops.
2020-06-24 17:58:43 +02:00
Yuri D'Elia 6017600714 Reintroduce the ability to disable TMC interpolation per-axis 2020-06-24 17:58:43 +02:00
Yuri D'Elia d53c55ce64 Disable filament checks inside the Move -> Extruder menu 2020-06-24 16:10:32 +02:00
Yuri D'Elia f1efce7e52 Handle LA termination with double/quad stepping properly
Before PR #2591 LA was automatically capped during cruising or
deceleration. However we now rely on reaching the current pressure state
exactly to stop. When dual/quad stepping inside the eISR we might incur
in oscillating behavior if we do not handle it correctly.

This might be the cause behind #2757

This now changes e_step_loops to be a phase-local variable, so we now
reset it each phase too (instead of per-segment).
2020-06-23 16:51:54 +02:00
Yuri D'Elia 50a09824fd Avoid scheduling useless eISR ticks
When switching to a new trapezoid step with the right pressure, cancel
any pending eISR right away.

Similarly do not schedule another eISR if the pressure will be reached
by the end of the eISR.

This was done in the past to preserve the current LA_phase. This is not
needed anymore, since it will be reset at each trapezoid step when LA
is re-initialized.
2020-06-23 15:24:16 +02:00
Yuri D'Elia 1206fc3164 Avoid useless cast 2020-06-22 15:34:34 +02:00
Yuri D'Elia a36efcb347 Remove cumulative error in segments without cruising (take 4)
Avoid sqrt when possible
2020-06-22 15:03:49 +02:00
Yuri D'Elia 173aa2deba Fix bogus timer check preventing fast LA steps to be scheduled
Simplify and fix the broken timer check when scheduling advance ticks.
This dates back to the original LA15 PR, an old bug...
2020-06-22 00:54:50 +02:00
Yuri D'Elia 51a539608c Reset LA_phase at each trapezoid stage
There used to be a single stage where an extruder reversal could occur,
but since PR #2591 reversals can happen up to two times per trapezoid.

Reset LA_phase when ADV_INIT is set, since it is re-inizialized only
when needed a few lines afterward. This improves performance by avoiding
to check the phase continuosly to the end of the trapezoid.

Likewise, always set ADV_INIT during the first cruising step, also to
force a LA_phase reset.
2020-06-22 00:19:47 +02:00
Yuri D'Elia 7c140bc497 Remove cumulative error in segments without cruising (take 3)
Remove another division by precomputing the division directly in
adv_comp.
2020-06-21 16:32:22 +02:00
Yuri D'Elia 753e651af3 Remove cumulative error in segments without cruising (take 2)
Reduce per-trapezoid calculations
2020-06-21 16:32:22 +02:00
Yuri D'Elia 15548958e9 Remove cumulative error in segments without cruising (take 1)
PR #2591 made LA compression always account for retractions instead of
discarding the current compression steps. While this fixed overextrusion
in short segments followed by wipes, it uncovered another issue in how
the compression steps are spread during the trapezoid calculations
leading to gaps in segments followed by retractions (as highlighted by
/some/ prints in #2693).

LA1.5 always computes the required target compression steps for a
segment at nominal speed. Because of how the extra steps are allocated
using multiples of the accelerating frequency, if the segment is
truncated before cruising is reached, an additional cycle of steps can
be inserted before deceleration starts. Deceleration is also not
guaranteed to be symmetric where up to _two_ cycles can be skipped
depending on the stepping cycle, leading to a situation where a
symmetric acceleration/deceleration block will lead up to a cycle of
accumulated compression.

While forcing an the extra step during deceleration is possible by
tweaking the error term (eISR_Err), this doesn't guarantee balance in
all cases. The underlying issue is that the function is aiming a
compression which cannot be reached (nominal speed), and not at the
effective max speed reached in the trapezoid, thus moving the average
result higher over time.

We fix this by calculating the effective maximum speed (and compression)
reached during the trapezoid, which stops compression on the required
cycle irregardless of the error term, balancing the result.

This is the first unoptimized POC: this is not for production: a lot of
calculations are redundand and could work directly in steps/s^2.
2020-06-21 16:32:22 +02:00
Alex Voinea a0cf5714ce
M220 M221 2020-06-19 15:39:16 +03:00
Marek Běl 45e182911d
Merge pull request #2748 from mkbel/detect_superpinda
Detect superPINDA PFW-1107
2020-06-16 14:07:12 +02:00
Marek Bel 9838be8512 Do not compile, if PINDA temperature compensation start point is lower than PINDA_MINTEMP. Document. 2020-06-16 02:03:14 +02:00
Marek Bel d5feed1f6a Refactor: Remove if(true) condition, redundant break statement and decrease indentation. 2020-06-16 01:20:17 +02:00
Marek Bel 40ffea64ab Do not compile temperature compensation code for PINDAv1 if PINDA_THERMISTOR macro is defined.
This saves nearly all of additional FLASH usage of previous commit. It is only 70B worse than if no skipping is done in temperature compensation gcode G76.
2020-06-16 01:09:40 +02:00
Marek Bel d398aa1e3f Skip PINDA_THERMISTOR block in PINDA probe temperature calibration if PINDA_THERMISTOR is not detected.
Costs 1328B of FLASH, something must be wrong.
2020-06-16 00:44:59 +02:00
Marek Bel 23cc22bc22 Move has_temperature_compensation() into temperature.cpp.
No change in FLASH usage.
2020-06-16 00:41:21 +02:00
Marek Bel bdf53387b1 Disable temperature compensation and temperature calibration menu if superPINDA is detected.
Even though functionality was added, 20B of flash memory has been saved.
2020-06-16 00:19:06 +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
Marek Bel fca4015667 Remove st_current_init() call from lcd_temp_calibration_set().
There is no known purpose of this call.
lcd_temp_calibration_set() is switching on/off pinda temperature compensation from LCD settings menu (this is called "Temp. cal." on LCD).
st_current_init() does nothing on Einsy board, it enables and sets motor current selecting outputs on Rambo board (it used to be called digipot in history)
2020-06-11 19:38:40 +02:00
Marek Běl 750af103ff
Merge pull request #2727 from mkbel/fix_unused_function
Unused function warning fix.
2020-06-08 15:25:11 +02:00
Marek Běl 971504f395
Merge pull request #2728 from mkbel/fix_unused_variable
Fix compiler warning unused variable kill_message.
2020-06-08 15:09:19 +02:00
Marek Bel f6df3f2394 Unused function warning fix.
(cherry picked from commit 54e2b6a829)
Pick only unused function warning fix.
2020-06-08 15:04:26 +02:00
Marek Bel 200696c764 Fix compiler warning unused variable kill_message.
(cherry picked from commit 54e2b6a829)
Pick only unused kill_message.
2020-06-08 14:27:58 +02:00
Marek Bel 5648f3fef0 Fix compiler warning enumeration value 'ONE_TO_FALL' not handled in switch. 2020-06-08 13:07:19 +02:00
DRracer 183b102b6c
Document the RPM condition 2020-06-05 16:37:21 +02:00
Alex Voinea 1bf5635459
Trigger fan error during selftest for altfan 2020-06-05 17:17:33 +03:00
D.R.racer 7e41524101 PC-blend preheat temperatures #define typo
A typo slipped through in PR#2711, not even the compiler caught it
(obviously, it is #define to be stringized):
PCB_PREHEAT... -> PC_PREHEAT
2020-06-03 18:05:37 +02:00
D.R.racer fe72ba7a9d Add PC-blend preheat preset 2020-06-03 17:45:55 +02:00
3d-gussner d1865fc59a
MK3s IR sensor improvement (#2698)
* Update EEPROM_FSENSOR_PCB documentation

* Update IR sensor check

* Rename IR messags and add UNKNOWN state

* Update code to use new messages

* To be continued

* Move fsensor related things from ultralcd.h to fsensor.h

* Use defined Thresholds

* IR sensor auto detection "0.3 or older" and "0.4 or newer" when trigger status changes.
Typo fixes
Doxygen documentation

* Cleanup spaces

* Revert PF-build.sh changes

* re-add space in messages

* revert doxygen snytax

* Remove double _Undef

* Fix indentation and doxygen syntax

* Fix indentation

* Better message handling

* Fix indentation

* Fix indentation

* More indentation fixwa

* Extract common code into manage_inactivity_IR_ANALOG_Check

Saves ~60B of code

* Revert indentation changes on fsensor.cpp

* Keep the selftest IR sensor part disabled

Everything shall happen at runtime

* Fix indentation fsensor_update

* Fix another misleading indentation in fsensor_update

Co-authored-by: Alex Voinea <voinea.dragos.alexandru@gmail.com>
Co-authored-by: D.R.racer <drracer@drracer.eu>
2020-06-03 16:14:56 +02:00
DRracer 233e66900f
Merge pull request #2670 from wavexx/la10c_jerk_tune
Increase E-jerk LA10->15 flattened zone
2020-06-03 15:50:57 +02:00
Alex Voinea 751f810dd7
ALTFAN implementation (#2692)
* ALTFAN implementation

* Use CRITICAL_SECTION macros

* Use uint16_t instead of unsigned int

* Add forgotten CRITICAL_SECTION

* Documentation
2020-06-01 17:58:15 +02:00
DRracer eb44ee0f57
Code size optimization: 2KB down (#2687)
* Combine repeated calls into functions with much less parameters -> 2KB
down.

* Save some bytes by removing unnecessary 1-character strings: "x" -> 'x'
used in SERIAL_xxx printing macros.
This is also saves some CPU cycles

* Fix compilation for MK25S and MK3

* Copy surrounding indentation

* Fix compilation for a rare HW setup

* rename mesh_planXX_buffer_line back to mesh_plan_buffer_line

* Remove active_extruder from remaining plan_buffer_line_destinationXYZE
calls and one more fix of indentation
2020-06-01 17:51:28 +02:00
Alex Voinea c84aef3a28
Handle second serial port correctly 2020-05-27 17:40:14 +03:00
Alex Voinea b1e446ef97
Remember the serial characters during Optiboot initialization 2020-05-27 13:50:02 +03:00
Alex Voinea e985d17bd1
Document code 2020-05-27 10:16:44 +03:00
Alex Voinea f11ab17746
Fix warning 2020-05-27 09:59:17 +03:00
Alex Voinea 4ffa4dd8fd
Fix missing start on MK3/S 2020-05-27 09:44:28 +03:00
odaki 3d979a88a5 Merge remote-tracking branch 'upstream/MK3' into flashair_display_ip 2020-05-20 12:37:07 +09:00
D.R.racer 2447dbc69f Version changed (3.9.0 build 3421) - sync 2020-05-18 16:56:32 +02:00
D.R.racer 285088a715 Version changed (3.9.0 build 3421) 2020-05-18 16:45:18 +02:00
Yuri D'Elia 000f824e39 Increase E-jerk LA10->15 flattened zone
Increase the flattened response in the e-jerk conversion from the 1-4.5
region to 0.3-4.5 (same slope). This brings a 0.3 LA10 e-jerk to a 3.45
LA15 equivalent.

This will better handle the legacy Pretty PETG/CFPETG v3 profiles.
2020-05-18 01:22:49 +02:00
3d-gussner deff8dcfde
MK3 3 9 0 missing translations (#2646)
* Add and update missing translations
- updated in Firmware/ files the missing `c=xx` column and `r=yy` rows.
- added missing translations to lang/lang_en*.txt

Everyone is developing and adding messages to serial and especially to LCD  PLEASE add `//// c=xx` or `//// c=xx r=yy` comments.
Preparing translations files without that information is a pain in the ... and takes way more time for somebody else
to review to code as it would take you.

* No need to have `MSG_abcde` again in comments `////` in `messages.c`

* German translation

* Missed a space

* Use the same format as somewhere else

* French translation.
I am not a native French speaking person, so please excuse my mistakes I may have done.

* Spanish translation.
I am not a native Spanish speaking person, so please excuse my mistakes I may have done.

* CZ translation

* Fix typos

* Another fix
It is
Dimmwert and not Dim Wert

* Fix issues reported by `lang-check.py`

* Add "difficult" messages containing `%`

* Updated MSG and German translation

* removed a translation as it breaks the language selection

* No need to wait until any-key is pressed

* No need to wait any-key is pressed

* Fixed two LF issues

* Updated PO files
ready to be send to translators

* Add missing italian translations

* Improve some existing italian translations

* More italian fixes

* More italian fixes

* Add exceptions in editorconfig for po files to avoid recoding

* Fix typo
Thanks @DRracer for pointing out

* Italian translation by @wavexx

* Update po/new/*.po files

* Update after merging MK3 branch

* Update French translation and some c=xx comments

Big thanks to @awenelo @carlin57 for helping with the french translations and their comments.

* Update po files after French translation

* Fixed most `lang-check.py` reported translation errors for Czech and German.
Two Czech have to be reviewed as these are too long.
One German is correct as it is shown in c=20 r=2 but is 1 char longer than this to split the message.
One German translation seams to be to long but have to review the actual max length

* Fix `lang-check.py` Spanish translation errors
There have been quite lot TOO long messages,

Can't imagine that nobody every complained about that.

* Fix `lang-check.py` Italian translations errors

* Update not_tran and not_used files after fixing several translations

* Some more error fixes and update of `po` files

* Polish translation

* Czech updated

* Fix typo

* no need to translate `\x00` if it is the same

* Polish: Runouts->Koniec

* Polish: Runouts->Konce f ... hopefully the last change

* Added MK2.5/s auto power mode to eeprom doxygen

* Final updates.

- Compiled all versions with multi-languages
- Compiled all versions with EN_ONLY
- updated all /lang/po/Firmware*.* files

* Add crlf attributes for po files

As done for editorconfig, this similarly forces git to handle
po files consistently in DOS format.

* Further improvent of IT translations

* Updated translation
Added cleanup to PF-build.sh

* remove lang/not_tran* and lang/not_used mistakenly added into the PR

Co-authored-by: DRracer <drracer@seznam.cz>
Co-authored-by: Yuri D'Elia <wavexx@thregr.org>
Co-authored-by: D.R.racer <drracer@drracer.eu>
2020-05-12 22:23:40 +02:00
3d-gussner 127a1790bc Set unknown IR sensor after factory reset as 0.3 or older 2020-05-12 20:15:02 +02:00
odaki dfd60a843d Merge remote-tracking branch 'upstream/MK3' into flashair_display_ip 2020-05-10 10:25:13 +09:00
DRracer 7079606df3
Merge pull request #2639 from wavexx/la15_adj_threshold
Adjustable Linear Advance limits and thresholds
2020-05-06 15:37:30 +02:00
Yuri D'Elia 2f4f4547c6 Also reset LA10C when disabling LA with K0
As pointed out by @leptun, with MMUs the combination of old/new filament
profiles in the same print is a likely scenario as we transition towards
LA1.5. Reset the detection state also with K0.
2020-04-29 22:56:06 +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
odaki a1254b3a3c Merge branch 'MK3_3.9.0' into flashair_display_ip 2020-04-29 10:19:51 +09:00
Yuri D'Elia b9ce572559 Reset LA10/15 state also when stopping a print
Based on f22fb2770b by @leptun
2020-04-28 17:35:28 +02:00
Yuri D'Elia 0b666ee733 Parametrize LA limits and threshold values
Allow the LA 1.5 MAX value to be configured in Configuration_adv.h.

Define a customizable LA10<>15 detection threshold in function of the
above limit.

Clamp the result of of the LA10->15 return value to always
respect the new LA_K_MAX.
2020-04-28 17:31:42 +02:00
DRracer 7be713199d Version changed (3.9.0-RC3 build 3401) 2020-04-28 12:06:13 +02:00
DRracer 67e9b4c096
IR fsensor fixes (#2632)
* MK3S IR sensor detection and safe operational range fix
* debug, change of fsensor_IR_check behavior
* more doc + disable debug print voltage
* fix displaying MSG_04_OR_NEWER and MSG_03.... kudos to @ovariludovit
* better handling of fsensor not responding scenario
2020-04-28 10:20:21 +02:00
odaki c34c622b3c Merge branch 'MK3_3.9.0' into flashair_display_ip 2020-04-28 00:14:47 +09:00
DRracer 40c052f482 Version changed (3.9.0-RC2 build 3398) 2020-04-24 20:02:13 +02:00
DRracer baaa372a56
Rephrase texts for fsensor detection and cleanup (#2630)
* Rephrase texts for fsensor detection and cleanup

* fsensor msgs only for MK3S
2020-04-24 19:46:54 +02:00
Alex Voinea 8ef87d76ef
MK2.x: move away from endstops after lcd_selfcheck_pulleys() (#2617)
* Removed duplicate #defines
cleaned up display routine

* Change to raise_z_above()

* Better display handling

* Ditch charswitch, show ... for measuring

* Pull in changes from #5

* Fix printf()s

* revert feedrates

* typo

* MK2.x: move away from endstops after lcd_selfcheck_pulleys()


amend

* Use absolute coordinates

Co-authored-by: vintagepc <53943260+vintagepc@users.noreply.github.com>
2020-04-20 09:55:14 +02:00
DRracer 32fa7b5496
Merge pull request #2473 from vintagepc/#2472-#2356-belt-test-stealth-mode
#2472 #2356 #2484 belt test improvements
2020-04-20 09:36:39 +02:00
3d-gussner 1bac0c1765 Add dummy G21 to prevent UNKOWN warnings in serial
And as Prusa firmware operates ONLY in milimeters it kind of does what G21 is supposed to do.
2020-04-18 16:39:04 +02:00
DRracer 60466c0993
Merge pull request #2610 from wavexx/la15_la10_tune
Increase the LA10->15 response
2020-04-16 16:12:05 +02:00
vintagepc dce453fd4a typo 2020-04-16 07:31:54 -04:00
vintagepc 85a4c44d83 revert feedrates 2020-04-16 07:29:59 -04:00
DRracer 1d4b0a9c47
Merge pull request #2586 from leptun/patch-1
🐛Flip lcd_detect_IRsensor logic
2020-04-15 11:24:38 +02:00
DRracer 7c1bf6a836
Merge pull request #2591 from wavexx/la15_chained_wipes
Fix chained wipes in Linear Advance 1.5
2020-04-15 11:23:45 +02:00
Yuri D'Elia 48c459e208 Increase the LA10->15 response 2020-04-12 02:58:44 +02:00
Yuri D'Elia ae4abdf11f Unify LA for all trapezoid steps
Handle uniformly compression & decompression at any stage of the
trapezoid.

Compared to before, this now enables LA compression also in the cruising
step (handling the converse of a chained wipe), as well as decompression
during acceleration.

Both of these can happen as a result of jerk moves, but are incredibly
rare. This is mostly needed to allow rapid decompression directly at the
acceleration step during travels between a retraction&deretraction.

We also check for the pressure level in a single place, reducing code
size as well as disabling LA earlier when not needed for the rest of the
block.
2020-04-12 01:28:34 +02:00
Yuri D'Elia 13b0e27cd7 Do not overflow during LA acceleration limiting
Perform the check one step earlier, avoiding 32bit overflow for very low
compression factors.

Fixes #2566 (although for K15 to have effect the conversion probably
needs to be adjusted on the low end)
2020-04-09 22:55:47 +02:00
Alex Voinea 207f0f27a6
🐛Flip lcd_detect_IRsensor logic 2020-04-09 16:35:38 +03:00
Yuri D'Elia 02a36c498c Release excess pressure within cruising blocks
LA assumes all the nozzle pressure is released at the end of each
extrusion, which makes calculating the required pressure advance during
travels and retracts not normally necessary.

This is not always true in our planner, since the E axis is explicitly
ignored when not in use, but also due to E-jerk allowing a non-linear
jump in speed. And since the compression factor is currently tied by XYZ
axes and not independently calculated, this can result in a wrong
estimation of final pressure in several conditions.

To avoid overburdening the planner, change the underlying assumptions
about backpressure:

1) Pressure is no longer lost when LA is disabled: if a retract is
followed by an unretract of the same length, the pressure will be likely
maintained entirely. This also holds true during travels, as long as the
retract length can overcome all the backpressure (which is the case in
all but the most noodly materials)

2) Pressure is released as soon as possible during travels: we now
enable LA also during travels, but under the sole condition of undoing
excess pressure.

We do that by checking for backpressure at the start of any segment
without an acceleration phase that doesn't have any E-steps (a result
which can happen due to the above). If pressure is not nominal, we run
the extruder in reverse at maximum jerk as long as the segment allows
us, since proper acceleration would be prohibitive at this stage. As the
pressure difference resulting by the above is still _very_ low, any wipe
or short travel will be able to equalize the nozzle pressure *before*
extrusion is resumed, avoiding ooze.
2020-04-09 00:46:57 +02:00
Yuri D'Elia 919386c957 Remove several globals by using a single target pressure
In the current code we initialize the LA state on-demand already at the
right step, which makes keeping track of the tick position no longer
necessary.

Make the advance ISR almost stateless by removing the last vestiges of
the original implementation and introduce a single target pressure. This
will be needed later in order to trigger the LA isr inside the cruising
phase.
2020-04-09 00:46:57 +02:00
Yuri D'Elia 9ec0ac9c64 Always reset e_steps between blocks
If e_steps are scheduled, but not ticked, they're just lost.
Only carry over the pressure state.
2020-04-09 00:46:57 +02:00
Yuri D'Elia 5d27f3362a Remove empty line 2020-04-09 00:46:57 +02:00
Alex Voinea 4c4b4c489c
🐛♻️ Update the feedrate percentage before drawing the screen 2020-04-07 17:10:27 +03:00
3d-gussner c1d05210ff Cleanup useless `break;` 2020-04-07 11:42:09 +02:00
3d-gussner 65a406a2f3 Bugfix for last PR
I forgot to change also the
- `#ifdef DEBUG_DCODE_3` to `#if defined DEBUG_DCODE3 || defined DEBUG_DCODES`
- `#ifdef DEBUG_DCODE_5` to `#if defined DEBUG_DCODE5 || defined DEBUG_DCODES`
in the `Dcodes.h` file which I added to `Dcodes.cpp`.

Due to this issue the "Debug" version fails during compiling.

Sorry for that.
2020-04-07 11:22:48 +02:00
DRracer c8f67f2279
Merge pull request #2568 from 3d-gussner/MK3_Dcodes_move
D- codes move
2020-04-03 11:12:30 +02:00
DRracer b779d786e6
Merge pull request #2569 from leptun/MK3_fix_selftest_Z_crash2
🐛Raise the nozzle from the bed in case Z axis crashes during homing and selftest
2020-04-03 09:04:59 +02:00
Alex Voinea 9b3f51008b
🎨Change CRLF line ending to LF 2020-04-02 19:32:13 +03:00
3d-gussner a1b8ee67b3
Fix missing (hex) in D5 code (#2560)
* Fix missing (hex) in D5 code

* Make ALL D-codes available for DEBUG mode
until now D3 and D5 needed to be defined separately

* Forgot to modify Marlin_main
2020-04-02 14:56:19 +02:00
Alex Voinea fd1d05ab48
♻️Code optimization 2020-04-02 14:44:44 +03:00
Alex Voinea f8843b25b0
Progress bar for check_file() 2020-04-02 13:21:53 +03:00
Alex Voinea 792bab9bbb
Fix go up 2020-04-01 13:50:22 +03:00
Alex Voinea 8b2b32c85b
Raise on nozzle crash 2020-04-01 13:15:08 +03:00
Alex Voinea b8896ad9c0
First attempt for Z probe checking during selftest on the MK3/S 2020-04-01 12:28:39 +03:00
vintagepc b449e248a1 Fix printf()s 2020-03-31 17:48:56 -04:00
vintagepc 0c383e20b3 Pull in changes from #5 2020-03-31 17:33:08 -04:00
vintagepc f1cba64e56 Merge remote-tracking branch 'upstream/MK3' into #2472-#2356-belt-test-stealth-mode 2020-03-31 17:03:10 -04:00
3d-gussner e481013126
Reset all stats during Shipping prep (#2563)
* Reset all stats during Shipping prep
Last print stats were missing

* keep old indentation

Co-authored-by: D.R.racer <drracer@drracer.eu>
2020-03-30 17:01:46 +02:00
DRracer 8196a5f165
Merge pull request #2565 from 3d-gussner/MK3_EEPROM-fix1
EEPROM_BACKLIGHT_TIMEOUT min is 1 sec
2020-03-30 16:58:22 +02:00
3d-gussner 957bfd89e3 Merge remote-tracking branch 'upstream/MK3' into MK3_Dcodes_move 2020-03-30 16:56:59 +02:00
3d-gussner 6da401be56 Move few D-codes command from Marlin_main to Dcodes
D80, D81 and D106 have been added to `Marlin_main.cpp` but all other D-codes moved to `Dcodes.cpp/.h`
2020-03-30 16:53:58 +02:00
3d-gussner aa9aa14472 Version to 1.0.1 2020-03-30 16:24:20 +02:00
3d-gussner 9abc79d89c EEPROM_BACKLIGHT_TIMEOUT min is 1 sec 2020-03-30 16:16:07 +02:00
DRracer 368ee0857b
Merge pull request #2564 from 3d-gussner/MK3_EEPROM-fix1
Typo in some hex default values
2020-03-30 16:15:26 +02:00
Alex Voinea f13269d8a9
Code cleanup 2020-03-30 16:50:50 +03:00
Alex Voinea 104f81cd27
Fix case sensitive include 2020-03-30 15:42:30 +03:00
Alex Voinea 988ba6d8b0
Fix DEBUG_BUILD 2020-03-30 15:38:01 +03:00
3d-gussner 0f9aa00eaf Typo in some hex default values 2020-03-30 10:36:13 +02: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 587b051b1f
Merge pull request #2492 from vintagepc/belt-test-fixes-no-reorg
Belt test improvements (No display alteration)
2020-03-26 18:53:40 +01:00
DRracer b95d7365c8
Merge branch 'MK3' into remove-unnecessary-delay 2020-03-26 18:45:34 +01:00
DRracer a4b8f52269
Merge pull request #2466 from vintagepc/#2464-fix-runout-for-unknown-filament
#2464 fix runout for unknown filament (also fixes #1993, #2301)
2020-03-26 18:43:05 +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
DRracer 65228a046e
Merge pull request #2520 from MRprusa3d/PFW-x001bPR
FS PCB auto-detect
2020-03-26 17:36:18 +01:00
D.R.racer 818efb4fa2 updated messages + slight refactoring to save some bytes 2020-03-26 15:07:48 +01:00
D.R.racer 34ac2917ae fix. warning "Macro expansion producing 'defined' has undefined
behavior"
update screen layout comments
2020-03-26 14:40:47 +01:00
3d-gussner 32c95d5455 Merge branch 'MK3' into MK3_Dcodes_case_sensitive 2020-03-26 14:08:55 +01:00
3d-gussner 2ceec597a5 Fix typo 2020-03-26 14:08:35 +01:00
3d-gussner 9b394dcbe6 Update to Version 1.0 2020-03-26 13:55:23 +01:00
3d-gussner 82cd1f9f84 Typo. thanks @leptun 2020-03-25 17:44:43 +01:00
3d-gussner 4c518545f1 Updated the documentation
copy past from Marlin_main.cpp doxygen documentation d-codes
2020-03-25 17:33:10 +01:00
3d-gussner 0d00db1c33 Some D-codes are case sensitive 2020-03-25 17:26:27 +01:00
3d-gussner 95a24320f7 Added language factory reset
and some other minor fixes
2020-03-23 17:10:40 +01:00
3d-gussner 7cd5d83089 Added S/P to Default/FactoryReset
S = Statistics
P = shipping Prepare
2020-03-23 16:54:35 +01:00
3d-gussner 6be66fcfcd fix some typos 2020-03-23 15:47:59 +01:00
Alex Voinea 6979555fab
more comments 2020-03-23 16:30:51 +02:00
3d-gussner bb43fa9878 typo dedine doesn't work 2020-03-23 14:51:40 +01:00
3d-gussner 0067dc0d9d Merge branch 'MK3' into MK3_EEPROM_doc 2020-03-23 14:15:35 +01:00
3d-gussner f4037b9cb4 Fixes after testing 2020-03-23 14:13:24 +01:00
Alex Voinea 5c4b3eea87
Struct comments 2020-03-23 14:57:03 +02:00
DRracer 73349033d5
Merge pull request #2469 from wavexx/fix_current_pos_init
Initialize current_position correctly during startup
2020-03-23 12:26:32 +01:00
3d-gussner fc793b59d7 changed default values for bowden length after test 2020-03-23 12:02:57 +01:00
DRracer 5a6148670a
Merge pull request #2494 from DRracer/create-mod-filetime-sort
Use combined creation/modification file time stamps for sorting
2020-03-23 11:53:52 +01:00
3d-gussner 32bff79fd6 minor changes + added EEPROM_FREE_NRx ...
Some EEPROM allocations do not use the hole allocated space:

- EEPROM_FARM_NUMBER is only numeric 000-999 and only uses 2 bytes to store the Farm number BUT allocated 3 bytes. Added EEPROM_FREE_NR1 as free space that can be used
- EEPROM_CRASH_DET just changes 1 byte to save it status [on/off] but allocated 5 bytes. Added EEPROM_FREE_NR2 to EEPROM_FREE_NR5 as free space that can be used
2020-03-23 11:40:07 +01:00
Alex Voinea ea1a2bb362
Documentation update 2020-03-23 12:37:56 +02:00
DRracer 468b0e210c
Merge pull request #2372 from leptun/MK3_fix_verbosity
Fix SUPPORT_VERBOSITY
2020-03-23 10:53:39 +01:00
DRracer 0f32c46307
Merge pull request #2371 from 3d-gussner/MK3_Fix_Language_Debug
MK3 fix language debug
2020-03-23 10:53:14 +01:00
3d-gussner 0c65505741 Added PRUSA3DFW at 0x0000 2020-03-23 07:23:36 +01:00
3d-gussner 1b0c86cb51 minor fix 2020-03-22 15:23:41 +01:00
3d-gussner 2778fa9aa0 Added author and version of document 2020-03-22 15:22:14 +01:00
3d-gussner b178252eb9 Added Italic and Bold to highlight some settings 2020-03-22 15:18:45 +01:00
3d-gussner 028a27021b All done...
hope not I forgot one. I will re-test all `D3 Axyyyy Cz` before creating a PR.
2020-03-22 14:08:21 +01:00
3d-gussner 2591f8d593 Added and tested more...
... have to take a short break
2020-03-20 12:36:26 +01:00
3d-gussner c8fc5b2fed Simpler tabel syntax 2020-03-20 10:44:12 +01:00
odaki 684b47e417 Update reference URL
There was an official website of Toshiba called "FlashAir Developers '', and
there was information necessary for FlashAir development, but since it closed in September 2019.
Instead, I will point an archive site for developers.
2020-03-15 19:04:02 +09:00
3d-gussner 4d40ed67f6 remove LF 2020-03-12 12:36:48 +01:00
3d-gussner 2818316366 Started EEPROM Table doxygen documentation 2020-03-12 12:34:33 +01:00
MRprusa3d ff479afd88 version for testing / final review 2020-03-10 15:51:48 +01:00
MRprusa3d f71bbfe95e tresholds specification, steady delay 2020-03-10 00:11:17 +01:00
Alex Voinea 890c137298
Initialize all axis as absolute at the beginning. 2020-03-05 11:29:16 +02:00
Alex Voinea 5fcf18718f
Decouple XYZ relative from E relative. 2020-03-05 11:22:35 +02:00
MRprusa3d f09323a78f heaters-checking update 2020-03-03 14:57:45 +01:00
MRprusa3d 0eaa4edfee configuration update 2020-03-02 21:18:11 +01:00
MRprusa3d 2a9504b20a !!! for testing only !!!
filament sensor auto-detection
2020-03-02 19:07:23 +01:00
MRprusa3d ec5e54de25 state fixing 2020-03-02 17:52:25 +01:00
vintagepc e06beb61c3 Ditch charswitch, show ... for measuring 2020-02-21 18:14:13 -05:00
DRracer 2e18a48b87 Version changed (3.9.0-RC1 build 3272) 2020-02-17 16:47:56 +01:00
DRracer f234ef2104 Use combined creation/modification file time stamps for sorting 2020-02-14 09:09:15 +01:00
vintagepc 1aaefffdb0 Change to raise_z_above() 2020-02-13 07:37:27 -05:00
vintagepc 5abee3d3e5 Better display handling 2020-02-11 19:44:26 -05:00
vintagepc 278bb032d7 Change to raise_z_above() 2020-02-11 18:37:26 -05:00
vintagepc a4458fb57b Removed duplicate #defines
cleaned up display routine
2020-02-11 18:33:40 -05:00
vintagepc e4b1a1e9c4
Remove delay for belttest, similar to #2439
There's a separate PR to remove the first delay in the selftest. (#2439). Mirroring that to the belt test function, which I suspect also inherited it.
2020-02-09 21:39:48 -05:00
vintagepc 721b27fcb6
Reorg/cleanup
Removed unused progress variable
reorganized flow to avoid early returns (ensures forced high power mode is disabled regardless of outcome)
2020-02-08 12:33:23 -05:00
vintagepc 1384e783bf
Force high power mode when running belt test 2020-02-07 16:14:33 -05:00
DRracer a10b7f3963
Merge pull request #2470 from leptun/MK3_Adjusted_mintemp
Adjusted hotend, bed and Ambient mintemp values
2020-02-07 08:54:50 +01:00
Yuri D'Elia f1618bfbd6 Initialize current_position correctly during startup
Just after setting up the w2m matrix, call "clamp_to_software_endstops"
on the current_position (initially [0,0,0]) to move it to the effective
minimal position, which is usually [0,0,non-zero] due to MIN_Z and the
negative probe offset.

This is required to calculate correctly the first relative move:
planning X+10 would unexpectedly calculate a Z shift otherwise.
2020-02-06 22:41:47 +01:00
Yuri D'Elia 9e45b5d41e Improve PAT9125 filament / optical quality checks
Tune the "soft" filament recheck to be more in-line with the latest
changes. Relax the thresholds so that a poorly tracking filament
that managed to trigger a recheck can still pass as long as /some/
motion is detected.

Hide the unused fsensor_oq_result() behind the FSENSOR_QUALITY define,
which is likely broken currently anyway.

Cleanup and simplify all the OQ defines.
2020-02-06 18:27:44 +01:00
Yuri D'Elia 853bb79b6b Return correct status from pat9125_update_bs 2020-02-06 16:39:08 +01:00
Yuri D'Elia bd0544fe9e FS: Use two different speeds when checking for runout
When doing a PAT9125 "soft check", use two different speeds between
retraction and extrusion. This increases the chances that we can
track the surface.
2020-02-06 15:27:22 +01:00
Yuri D'Elia 3be859ece9 FS: Improve reliability on speeds with poor optical tracking
Depending on the filament surface and moving speed, the PAT9125 sensor
can stop being able to track movement.

In such cases, instead of triggering false errors and/or relying on
previous states, read and use the exposure data off the sensor and
increase error counts only for poorly exposed images instead, which
is a good indicator of a far-away (or missing!) tracking surface.
2020-02-06 15:27:22 +01:00
Yuri D'Elia cdc17e8da1 Read all 12 bits correctly from PAT9125 DELTA_* registers
Widen ucXL/ucYL/ucXYH types to 16 bits, since the following shifts
will otherwise truncate the results.
2020-02-06 14:39:04 +01:00
Yuri D'Elia 3af35844e1 Remove redundant check (always trigger the fsensor isr)
Since fsensor_st_block_chunk is already called on fsensor_chunk_size
boundaries, there's no need to check a second time.
2020-02-06 14:39:04 +01:00
Yuri D'Elia 1eddc40ed4 Comment existing code 2020-02-06 14:39:04 +01:00
Yuri D'Elia e84f82a675 Rewrite filament sensor PAT9125 error handling
Rewrite the logic behind the "chunking"/error count behind the PAT9125.

Basic idea: check the _direction_ of movement returned by the optical
sensor and compare it to the direction of the stepper. To avoid doing
this continuosly (and because the optical sensor doesn't necessarily
have the accuracy to track small distances), do so in chunks.

Each time a chunk doesn't match the expected direction, increase the
error count.

Several improvements were done to the previous code:

- Increase the chunk window: this ensures that a filament with
  poor response returns an usable direction, while also moving the
  average return values from the sensor in the middle of the 12 bits
  available for maximum effectiveness.
- Since the returned values are more reliable, reduce the error count
  (1.25mm*4 = ~5mm before runout detection)
- Track _both_ positive and negative movement, although only trigger
  errors during extrusion (necessary due to several assumptions made
  in the mmu/unloading code)
- Do not reset the counters for each block: accumulate distances
  correctly, allowing detection of any block lenght.
2020-02-06 14:37:46 +01:00
vintagepc 34f43d7389
Update mmu.cpp
Fix runout if filament is unknown
2020-02-05 21:41:31 -05:00
Yuri D'Elia 5c4235b886 Correctly reset the PAT9125 filament counters
When the error count is cleared, the cumulative deltas as well as the
segment lenght which is kept inside the stepper isr need to be reset.

Introduce a helper function fsensor_reset_err_cnt to clear all the
required variables in one place which can be used in most cases
(the only exceptions being quality measument).

Introduce a new function st_reset_fsensor to also clear the segment
lenght within the isr.
2020-02-05 16:21:27 +01:00
Yuri D'Elia 6fbd632c84 Isolate all PAT9125-specific code, fix build on !MK3 variants
- Hide all prototypes related to PAT9125 to force all callers
  to check for the proper sensor, since the handling differences
  are substantial
- Remove unneeded lenght accounting from the stepper isr as as
  consequence.
- Keep detailed soft failure counts for the MK3 on the "last print
  failures" status screen, but fix build on variants without a PAT9125
  by fixing the lcd stats function.
2020-02-05 16:20:12 +01:00
Yuri D'Elia d47363d85a Update the filament axis resolution when E resolution is changed
The filament sensor "chunk lenght" needs to be updated every time the
E axis resolution is changed in order to trigger at the same distance.

Introduce a new function fsensor_set_axis_steps_per_unit() and use
it consistent during init, in M92 and M350.
2020-02-05 16:20:12 +01:00
Yuri D'Elia ce74b746f1 FS: Trigger a runout with repeated soft-failures (clog?) 2020-02-05 16:20:12 +01:00
Yuri D'Elia 8fb8ff4bf4 Include fsensor recovery stats in the last print stats 2020-02-05 16:20:12 +01:00
Yuri D'Elia e8ce5e140e FS: Detect runout earlier 2020-02-05 16:20:12 +01:00