Commit Graph

45 Commits

Author SHA1 Message Date
Guðni Már Gilbert e1e0b0afa1 Refactor code which resets crash detection setting
Add function crashdet_use_eeprom_setting

Change in memory:
Flash: -52 bytes
SRAM: 0 bytes
2023-11-22 21:19:43 +00:00
3d-gussner 5050fd768b
Merge pull request #4150 from gudnimg/psu-delta-typo
Fix a typo in `PSU_Delta` define
2023-09-12 16:28:32 +02:00
Guðni Már Gilbert 02332018ec tmc2130: Fix bug with vSense bit and current values
If vSense changes at runtime due to Run current
being changed. Then we must always shift the Hold current
correctly. Whether the vSense is changing 1 -> 0 or 0 ->1

Change in memory (with TMC2130_SERVICE_CODES_M910_M918):
Flash: +76 bytes
SRAM: 0 bytes
2023-08-05 10:41:21 +02:00
Guðni Már Gilbert 5288d615f8 optimisation: lcd avoid streams
Author: leptun

Change in memory:
Flash: -124 bytes
SRAM: 0 bytes
2023-07-25 15:02:49 +00:00
Guðni Már Gilbert 3819f7a473 tmc2130: Refactor code for setting/changing currents
- Always re-calculate the Vsense flag when the currents are changed
- Make sure Hold current is not larger than Run current
- Added SetCurrents() function from MMU FW
- Added MotorCurrents structure from MMU FW
- Various code size optimisations e.g. in power panic

Change in memory:
Flash: -10 bytes
SRAM: +4 bytes
2023-07-25 08:56:43 +02:00
Guðni Már Gilbert a87faba2bd tmc2130: pull TMC2130_CNSTOFF_E outside tmc2130_setup_chopper
We can probably improve tmc2130_chopper_config further by adding
a constructor.

No change in memory
2023-07-25 08:56:43 +02:00
Guðni Már Gilbert ea095543b3 Fix a typo in PSU_Delta define
It's case sensitive: "PSU_delta" --> "PSU_Delta"
2023-04-15 18:44:23 +00:00
Guðni Már Gilbert ebdcfbec50 cleanup: tmc2130: make variables static where applicable
No change in memory
2023-04-15 13:45:10 +00:00
Alex Voinea fea608c8c4 A few more meassuring typos 2022-12-22 12:54:42 +01:00
Yuri D'Elia b3790f4094 Typo: meassure -> measure 2022-12-22 12:54:42 +01: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
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