Commit Graph

35 Commits

Author SHA1 Message Date
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
Yuri D'Elia
a9625747db Reinstate the nop instruction as delay in non-DEDGE
When TMC2130_MINIMUM_PULSE is 0 a minimum delay is implied.
In this case, use a single "nop" instruction.
2021-01-26 19:43:29 +01:00
Yuri D'Elia
4fed728e08 Elide delayMicroseconds for TMC2130 in non-DEDGE mode
Introduce new macros TMC2130_MINIMUM_DELAY/STEPPER_MINIMUM_DELAY for
blocking pauses.

If MINIMUM_PULSE has defined to be zero, avoid the delay call entirely.
2021-01-26 16:02:53 +01: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
Marek Bel
6b8a5bc3ac Fix compiler warnings
sketch/tmc2130.cpp:146:42: warning: default argument given for parameter 1 of 'void tmc2130_init(bool)' [-fpermissive]
sketch/tmc2130.cpp:146:24: warning: unused parameter 'bSupressFlag' [-Wunused-parameter]
2019-07-16 17:31:56 +02:00
MRprusa3d
1d8c24e8a9 "disable_z()" for Delta PSU IV
correction for (motor) mode switching
2019-06-05 19:22:04 +02:00
Robert Pelnar
41b885c537 M907 fix - value in mA (PFW) 2018-11-12 20:39:25 +01:00
Marek Bel
9271d12bf7 Save 32B of FLASH, fix compiler warning: sketch/tmc2130.cpp:238:6: warning: unused parameter 'last_step_mask' [-Wunused-parameter]. 2018-08-07 16:32:32 +02:00
Marek Bel
904db96cd1 Fix compiler warning sketch/tmc2130.h:123:3: warning: 'tmc2130_axis_config' defined but not used [-Wunused-variable] 2018-07-25 15:03:38 +02:00
Robert Pelnar
771cead291 TMC2130 gcodes for live motor tunning:
TMC_SET_WAVE_X..E (linearity correction)
TMC_SET_CHOP_X..E (chopper configuration - 4 args - toff, hstr, hend, tbl)
2018-07-09 16:44:10 +02:00
Robert Pelnar
339d2ebdef Z-axis stealth mode
XYZcal fix
2018-04-03 18:26:39 +02:00
Robert Pelnar
92997204a1 Linearity correction - TMC codes for calibration object, variable stored as uint8, range from 1.03 to 1.20 2018-04-03 12:30:35 +02:00
Marek Bel
397e7d4791 Increase resolution of wave factor. 2018-03-26 15:17:06 +02:00
Robert Pelnar
fb8a28d120 bugfix - beltstatus overflow 2018-03-01 14:34:21 +01:00
Robert Pelnar
06da2bb915 Accurate homing, fix - enabled after selftest.
Experimantal menu - conditional translation.
2018-02-22 20:50:34 +01:00
Robert Pelnar
dff8c29362 Microstep linearity correction, optimized wave compression.
Correction factor can be adjusted from 0.9 to 1.25 by 0.005 steps.
2018-02-17 19:58:40 +01:00
Robert Pelnar
57499dc6a0 M350 for E axis (8, 16, 32, 64, 128 microsteps) 2018-02-15 15:40:49 +01:00
Robert Pelnar
79caf3d9c6 tmc2130 optimalization, accurate homing and microstep linearity correction
dcode D12 removed (no longer needed)
homeaxis optimized + xy home calibration support
new eeprom variables
new lcd menu edit types (byte3, mres, wfac), new menu "Experimental"
currents adjusted
2018-02-15 04:17:58 +01:00
Robert Pelnar
210b97d16d New fail stats (global, last print), crashdetection X and Y separated 2018-01-30 13:10:36 +01:00
Robert Pelnar
c6e10fb903 Removed SG software homming
After Calibration Z enabled minstop (SG and PINDA)
TMC2130 code simplification
2017-12-15 14:10:20 +01:00
Robert Pelnar
4dae6f871e Sg load meassurement durring self test - 'Belt status' 2017-11-27 04:46:58 +01:00
Robert Pelnar
877c8a3978 TMC2130 configuration in eeprom (not finished).
Extruder and Z holding currents same as running currents.
M600 filament unload speed = 3500 (PFW-22).
FSensor - algorithm changed (reset error couter instead of decrement)
build number = 106
2017-10-30 15:45:29 +01:00
Robert Pelnar
40fae26d75 Silent / Hight Power mode switching - wait for standstill
parameter tunning:
PWM_GRAD, PWM_AMPL TCOOLTHRS (XY)
2017-09-26 12:22:58 +02:00
Robert Pelnar
39f6e746dc Crashdetection tunning. 2017-09-26 01:43:56 +02:00
Robert Pelnar
e11ae8bdbf Soft homing + fixed homing in silent mode. 2017-09-23 20:01:37 +02:00
Robert Pelnar
89acf29247 Silent/High Power mode switching with crashdetection. 2017-09-23 15:01:31 +02:00
Robert Pelnar
df1aa85526 Crashdetection + configuration file. 2017-09-22 19:28:32 +02:00
Robert Pelnar
d63045fdb3 TMC2130 stallguard improovment - axis load monitoring, autocalibrate Z. 2017-08-21 13:06:17 +02:00
Robert Pelnar
a7477673de HW SG homing, SWSPI pins for EINY03/04 2017-07-18 13:54:01 +02:00
Robert Pelnar
cd48d5b4ff TMC2130 stallguard SW homing improvement - steps delta instead of delay (loop count), new function tmc2130_home_restart, always enable endstops durring homing. 2017-07-12 17:36:50 +02:00
Robert Pelnar
2b24e9ceb3 Changed jerks, disabled oversampling, debug code, commands for seting pwm_ampl and pwm_grad (M917, M918), changed configuration files 2017-07-06 13:06:07 +02:00
Robert Pelnar
176c32de91 TMC2130 stallguard homing - sg_thrs_x and sg_thrs_y - command M916, lcd_silent_mode_set_tune 2017-07-03 10:39:56 +02:00
Robert Pelnar
e09f0c64c7 TMC2130 tuning, silent/high power mode 2017-07-03 07:43:50 +02:00
Robert Pelnar
f6a8e1df9d TMC2130 + software SG homing + LF lineendings + tmc2130 debug M-Codes
M910 - tmc2130_init
M911 - set holding currents
M912 - set running currents
M913 - print currents
2017-07-01 12:39:16 +02:00
PavelSindler
43d696659f 3.0.12-RC2 sync 2017-06-29 18:35:43 +02:00