Commit Graph

58 Commits

Author SHA1 Message Date
Alex Voinea
a6331d22c8 Remove ancient SNMM code in the MK3 branch 2022-02-15 15:58:33 +01:00
Alex Voinea
e35b21569d
Merge pull request #3005 from wavexx/remove_mres_limits
Allow all microstep resolutions for all axes
2022-02-09 13:48:51 +01:00
Alex Voinea
916212b597 Add ALLOW_ALL_MRES as requested in PR 2022-02-09 10:28:45 +01:00
Yuri D'Elia
d2041ee2fe Enable debugging features on all variants
- XFlash crash dumper on MK3+ series
- Online crash dumper on MK2.5+ series
- D2/D6 on MK3+ series
- D2 on MK2.5+ series
2021-06-13 22:35:43 +02:00
Yuri D'Elia
bd57e00448 Implement an online crash dumper for MK2.5 boards
When XFLASH is not available, allow users to request _online_ crash
dumps by using D23 (since these require active user cooperation).

Once enabled, instead of just rebooting, dump memory directly to
the serial.

As similarly done with EMERGENCY_DUMP, we have two features that can be
enabled:

EMERGENCY_SERIAL_DUMP: enables dumping on crash after being requested
MENU_SERIAL_DUMP: allow triggering the same manually through the support
menu.
2021-06-12 13:37:20 +02:00
Yuri D'Elia
f18d4757c6 Introduce STACK_GUARD_MARGIN in all variants
Create a gap between the BSS and the stack guard.
Set this gap (STACK_GUARD_MARGIN) to 32 bytes in all variants.

The gap serves two purposes:

- Detect a stack overflow earlier (falsely triggering in overtight
  situations is OK!), so that we can hopefully avoid smashing
  the heap and have a clean view during the dump.

- Reserve spack space itself for the stack dumping machinery,
  which is going to grow the stack even further.

Remove get_stack_guard_test_value() which was unused.
2021-06-12 12:08:53 +02:00
Yuri D'Elia
c375610668 Move "WDR dump" inside EMERGENGENCY_DUMP 2021-06-10 17:02:41 +02:00
Yuri D'Elia
dcfdce87c7 Document new applicable build options in the variant files
Document, but don't enable them.
Leave exiting functionality unchanged for now.
2021-06-08 18:17:56 +02:00
Marek Bel
aa45091400
Scale extruder motor current linearly with speed. (#2813)
Scale extruder motor current linearly with speed.

49% less heating when running at low speed and standstill, 4% more torque at maximum extrusion rate (15mm^3/s), 15% more torque in high speed movements (un/retractions).

StealthChop mode is used for low speeds (below 900mm/min)
spreadCycle is used above. Transition speed is well above maximum extrusion rate of 15mm^3/s (275mm/min) so mode transition is not expected to be visible on printed surface.

StealthChop is expected to improve printed surface quality (less artifacts).

Warning you can burn extruder motor if it is not the same impedance as original Prusa i3 Extruder stepper motor. There is no current feedback in low speed so lower impedance motor can be burned by over current.

Even there is no direct current feedback, there is no risk for original motor thermal runaway, as motor resistance increases with temperature, current decreases.

Standstill peak phase current is expected to be 500 mA and linearly increase with speed to 970 mA at 900mm/min where spreadCycle constant current regulation takes over and keeps peak current at 805 mA to maximum speed possible.

As motor heating increases with current squared, lowering low speed current from 700mA to 500mA decreases heating 49% in thate mode, where motor spends most of the time.

Enable E-motor cool mode in farm mode only (and experimental menu) - the experimental menu is visible AND the EEPROM_ECOOL variable has a value of the universal answer to all problems of the universe - i.e. two conditions must be met at the start of the FW to enable the E-cool mode. If the user enables the experimental menu, sets the E-cool mode and disables the menu afterwards, on the next start of the FW the E-cool mode will be DISABLED. This is still subject to discussion how much obscure (security through obscurity) we'd like this option to have .

Additional stuff:
* Add serial debug msg to verify if E-cool mode is on
* Avoid access to E-cool mode switch on machines without TMC2130
* Do not allow only M907 E in case of E-cool mode+warn the user on the serial line that the command was skipped

Co-authored-by: D.R.racer <drracer@drracer.eu>
2021-04-23 16:06:28 +02:00
Alex Voinea
9454f9d8ec Rename w25x20cl to xflash 2021-04-06 10:16:47 +02:00
Yuri D'Elia
5589954b77 Add DEFAULT_TRAVEL_ACCELERATION in all variants
Use the same value as DEFAULT_ACCELERATION for compatibility.
2021-02-03 11:20:28 +01:00
DRracer
42311db5f1
Merge pull request #2789 from wavexx/MK3_TMC2130_DEDGE
Use/enable TMC2130 DEDGE support in MK3/MK3S
2021-01-29 11:13:09 +01:00
DRracer
bfe93d3959
Merge pull request #2951 from DRracer/pvb-08
Add PVB preheat and 0.8mm nozzle presets
2021-01-26 12:09:41 +01:00
DRracer
1a6b6fb491
Merge pull request #1776 from wavexx/unused_tmc_defines
Remove an unused define
2021-01-11 07:43:44 +01:00
D.R.racer
8a083c9970 Add PVB preheat and 0.8mm nozzle presets
minor features reflecting the latest announcement

Needs some 300B of CPU flash though, after 3.9.3 we need to optimize code
size again.
2021-01-08 13:52:39 +01:00
3d-gussner
12f4102272 Group PINDA defines 2020-12-23 21:00:02 +01:00
3d-gussner
4b510fef0a Add PINDA_TEMP_COMP variable to enable SuperPINDA toggle menu/function 2020-12-23 20:59:08 +01:00
3d-gussner
a97587f373 Changed PINDA_MINTEMP having own value
Prevent bad readings/issues if someone changes the bed thermistor that is "better" with lower min values and creates a custom firmware.
The firmware will now be in the range of the PINDAv2 thermistor independant from the bed thermistor (which may change and need adjustments)
2020-12-23 20:58:44 +01:00
3d-gussner
62c36f718b Add SuperPINDA support for MK2.5/S
- Changed DETECT_SUPERPINDA to SUPERPINDA_SUPPORT as on miniRAMo the thermistor readings below 30°C
  aren't accurate egnough to determine if SUPERPINDA is connected or not
- Add LCD toggle menu Settings -> HW Setup -> SuperPINDA [Yes/No] to overwrite SuperPINDA detection
  - If EEPROM_PINDA_TEMP_COMPENSTATION is empty = 0xff then detect SuperPINDA by checking thermistor
  - If EEPROM_PINDA_TEMP_COMPENSTAION is 0 then forec enable for temperature compensation menues and functions
  - If EEPROM_PINDA_TEMP_COMPENSATION is 1 then force disable for temperature compensation menues and functions
2020-12-23 20:56:50 +01: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
1181beffb1 Enable DEDGE stepping on supported variants 2020-06-24 17:58:43 +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
D.R.racer
fe72ba7a9d Add PC-blend preheat preset 2020-06-03 17:45:55 +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
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
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
e6ba9e633c
Adjusted hotend, bed and Ambient mintemp values 2020-01-21 14:50:53 +02:00
DRracer
4c74866864
Merge pull request #1933 from prusa3d/enable_cutter
Enable MMU cutter.
2020-01-09 13:47:44 +01:00
Yuri D'Elia
19589f02f1 Remove an unused define 2019-12-04 17:22:21 +01:00
Alex Voinea
779423f0e7
Move hardcoded values to variants 2019-11-29 15:06:54 +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
0fda4e5594 Merge branch 'cut_last_try' into enable_cutter 2019-09-10 18:37:09 +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
7cc9fe2e4f
Update 1_75mm_MK3S-EINSy10a-E3Dv6full.h 2019-09-09 02:20:39 +02:00
Marek Bel
3da43ae8c2 Do not port print fan preheat speed preset, as it was never used. And it was broken until recently fixed when adding ASA profile. 2019-08-26 21:14:07 +02:00
Marek Bel
eb68bb9b43 Add ASA preheat. 2019-08-15 17:46:29 +02:00
Marek Bel
469ca6e184 Merge commit 'refs/tags/v3.8.0-RC1^{}' into enable_cutter 2019-08-15 14:48:28 +02:00
Simon Benoit
49d2866b48 Add threshold distance to Z calibration
Add missing if statement
2019-07-30 19:43:07 -04:00
DRracer
8b806f692e
Merge pull request #1664 from MRprusa3d/PFW-811
"disable_z()" for Delta PSU
2019-07-16 16:46:34 +02:00
MRprusa3d
8229a45187 pre-production version ;-) 2019-07-09 12:16:51 +02:00
MRprusa3d
4db4f19128 'variant files' update ;-((( 2019-07-03 18:14:48 +02:00
MRprusa3d
7e3cb98a1f & MK3S 2019-07-03 17:50:41 +02:00
Marek Bel
181c42fa62 Merge remote-tracking branch 'prusa3d/MK3' into enable_cutter 2019-06-18 20:03:41 +02:00
MRprusa3d
b7d3766ae2
Merge branch 'MK3' into PFW-790 2019-06-12 17:32:13 +02:00
Marek Bel
00da4640e2 Document. 2019-05-30 23:29:33 +02:00
Marek Bel
469aa10097 Enable MMU cutter. 2019-03-29 07:27:29 +01:00
MRprusa3d
632781c4a2 "disable_z()" for Delta PSU 2019-03-21 00:45:15 +01:00
Harpalyke
0f21ccee3c Adding the microstepping resolution for all axis to the eprom config which is persisted during M500 for Mk3 and Mk3S 2019-03-19 21:39:59 +00:00
MRprusa3d
7d98177716 farmMode updates 2019-03-19 19:48:40 +01:00
PavelSindler
c05561d6b1
Merge pull request #1607 from PavelSindler/7x7
7x7 mbl and switching mmu modes
2019-03-15 19:55:15 +01:00