Prusa-Firmware/Firmware
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
..
variants Scale extruder motor current linearly with speed. (#2813) 2021-04-23 16:06:28 +02:00
adc.c Change printf_P without format arguments and NL to puts_P only 2021-01-22 18:56:05 +02:00
adc.h
AutoDeplete.cpp
AutoDeplete.h
backlight.cpp Add newline at the end of file 2020-09-15 14:56:41 +02:00
backlight.h General fixes and improvements to code 2019-10-31 19:07:20 +02:00
BlinkM.cpp
BlinkM.h
boards.h
bootapp.c Remove unused/broken bootapp code 2021-03-03 16:31:30 +02:00
bootapp.h Remove unused/broken bootapp code 2021-03-03 16:31:30 +02:00
cardreader.cpp Save 16 bytes - pass ls_param by value to functions 2021-04-20 06:50:37 +02:00
cardreader.h Save 16 bytes - pass ls_param by value to functions 2021-04-20 06:50:37 +02:00
cmdqueue.cpp Fix Crash/PP recovery position on instructions with comments 2021-04-19 06:30:37 +02:00
cmdqueue.h Remove duplicate function is_buffer_empty() 2021-02-19 17:06:00 +01:00
config.h Rename w25x20cl to xflash 2021-04-06 10:16:47 +02:00
Configuration_adv.h Add def M120_M121_ENABLED to Configuration_adv.h 2021-03-11 15:00:49 +01:00
Configuration.cpp
Configuration.h Revert/cleanup mininum extruder height during M600 2021-04-21 19:07:58 +02:00
ConfigurationStore.cpp Report travel acceleration in M503 2021-02-03 11:20:28 +01:00
ConfigurationStore.h Implement separate travel acceleration (M204 T) 2021-02-03 11:20:28 +01:00
conv2str.cpp
conv2str.h
Dcodes.cpp Remove unused/broken bootapp code 2021-03-03 16:31:30 +02:00
Dcodes.h Bugfix for last PR 2020-04-07 11:22:48 +02:00
doxyfile
eeprom.cpp Merge pull request #3055 from awenelo/add-satin-sheet 2021-04-22 07:13:32 +02:00
eeprom.h Scale extruder motor current linearly with speed. (#2813) 2021-04-23 16:06:28 +02:00
fastio.h Remove the extra copy of CRITICAL_SECTION from fastio 2021-01-29 18:30:16 +01:00
Firmware.ino
first_lay_cal.cpp Gracefully dump the queue + fixes to fancheck 2020-11-09 21:49:56 +02:00
first_lay_cal.h Rename lay1cal_preheat() to lay1cal_wait_preheat(). 2019-09-12 00:19:20 +02:00
fsensor.cpp Silence bUpdateEEPROM unused warning in MK3 variant 2021-02-01 07:09:44 +01:00
fsensor.h MK3s IR sensor improvement (#2698) 2020-06-03 16:14:56 +02:00
heatbed_pwm.cpp Remove io_atmega2560.h and some more macros 2020-09-11 17:43:38 +03:00
la10compat.cpp Re-adjust LA10->15 conversion 2020-09-07 21:44:34 +02:00
la10compat.h Adjust E-jerk in LA10 compatibility mode 2020-02-03 15:42:27 +01:00
language.c Rename w25x20cl to xflash 2021-04-06 10:16:47 +02:00
language.h Add defines and templates for community languages 2021-03-01 08:22:43 +01:00
lcd.cpp Merge branch 'MK3' into MK3_NEW_SD_COMPILATION 2021-02-03 18:28:18 +02:00
lcd.h Merge branch 'MK3' into MK3_NEW_SD_COMPILATION 2021-02-03 18:28:18 +02:00
le.sh
macros.h More macros 2020-09-11 18:48:44 +03:00
Marlin_main.cpp Scale extruder motor current linearly with speed. (#2813) 2021-04-23 16:06:28 +02:00
Marlin.h Attempt to workaround the M73 C0|D0 visual issue (#3067) 2021-03-19 10:18:28 +01:00
MarlinSerial.cpp Merge pull request #2982 from DRracer/codesize 2021-01-26 12:04:39 +01:00
MarlinSerial.h
menu.cpp Limit progressbar to LCD_WIDTH 2021-02-26 09:18:28 +02:00
menu.h Cardreader progressbar code 2021-02-25 20:25:32 +02:00
mesh_bed_calibration.cpp Calibration: detect biased PINDA and retry calibration 2021-03-12 05:04:49 +01:00
mesh_bed_calibration.h Calibration: detect biased PINDA and retry calibration 2021-03-12 05:04:49 +01:00
mesh_bed_leveling.cpp
mesh_bed_leveling.h
messages.c Merge pull request #2405 from leptun/MK3_NEW_SD_COMPILATION 2021-03-03 11:45:04 +01:00
messages.h Merge pull request #2405 from leptun/MK3_NEW_SD_COMPILATION 2021-03-03 11:45:04 +01:00
mmu.cpp Refactor lcd_set_cursor + lcd_puts_P -> lcd_puts_at_P 2021-01-22 18:34:47 +01:00
mmu.h Show FINDA state as N/A if last received response is older than 1s. 2019-10-31 17:45:22 +01:00
motion_control.cpp
motion_control.h
optiboot_xflash.cpp Rename w25x20cl to xflash 2021-04-06 10:16:47 +02:00
optiboot_xflash.h Rename w25x20cl to xflash 2021-04-06 10:16:47 +02:00
pat9125.c Fix probing in IR_SENSOR 2020-09-28 21:02:06 +02:00
pat9125.h Isolate more pat9125 code 2020-08-20 15:34:46 +02:00
pins_Einsy_1_0.h Rename w25x20cl to xflash 2021-04-06 10:16:47 +02:00
pins_Rambo_1_0.h
pins_Rambo_1_3.h Still use SWI2C on RAMBo10a boards 2020-09-27 14:29:07 +02:00
pins.h Move SDA/SCL pins into pins.h for fastio compatibility 2021-01-29 17:48:59 +01:00
planner.cpp Implement separate travel acceleration (M204 T) 2021-02-03 11:20:28 +01:00
planner.h Also convert acceleration_rate to uint32_t 2020-08-03 19:01:38 +02:00
printers.h
qr_solve.cpp
qr_solve.h
rbuf.c
rbuf.h
Sd2Card.cpp Update reference URL 2020-03-15 19:04:02 +09:00
Sd2Card.h Fix for Toshiba FlashAir (or other) SD card initialization - add clock cycles between sending CMD0 and CMD8. Redone for MK3 branch) 2019-08-08 15:45:59 -04:00
Sd2PinMap.h Move SDA/SCL pins into pins.h for fastio compatibility 2021-01-29 17:48:59 +01:00
SdBaseFile.cpp Return SdBaseFile into previous state 2021-01-28 09:41:30 +01:00
SdBaseFile.h Remove temporary changes from SdBaseFile.h 2021-01-28 09:42:50 +01:00
SdFatConfig.h
SdFatStructs.h
SdFatUtil.cpp
SdFatUtil.h
SdFile.cpp SDFile - fix errorneous offset computation 2021-03-30 11:33:42 +02:00
SdFile.h Remove commented debug code 2021-02-10 11:18:59 +01:00
SdInfo.h
SdVolume.cpp
SdVolume.h Extract gcode filter from SdBaseFile into SdFile + optimization 2021-01-27 09:33:28 +01:00
Servo.cpp
Servo.h
sm4.c Merge pull request #2789 from wavexx/MK3_TMC2130_DEDGE 2021-01-29 11:13:09 +01:00
sm4.h Fix sm4.h line ending 2021-01-22 18:57:24 +02:00
sound.cpp General fixes and improvements to code 2019-10-31 19:07:20 +02:00
sound.h Toggle Sound 2019-08-31 16:56:14 +03:00
speed_lookuptable.cpp
speed_lookuptable.h Add reference C implementations for MultiU16X8toH16/MultiU24X24toH16 2020-08-03 19:03:13 +02:00
spi.c
spi.h
static_assert.h
stepper.cpp Scale extruder motor current linearly with speed. (#2813) 2021-04-23 16:06:28 +02:00
stepper.h Move reset LA state from G80 to M84 2020-04-29 22:51:23 +02:00
stk500.h
swi2c.c Merge remote-tracking branch 'upstream/MK3' into MK3_PAT9125_I2C 2021-01-29 18:28:55 +01:00
swi2c.h
swspi.cpp
swspi.h
system_timer.h ALTFAN implementation (#2692) 2020-06-01 17:58:15 +02:00
temperature.cpp Insert babysteps using CRITICAL_SECTION instead of cli/sei 2021-02-25 16:44:16 +01:00
temperature.h Remove code duplication for babystep insertion 2021-02-25 16:44:16 +01:00
thermistortables.h Implement MIN/MAX AMBIENT safety checks 2020-08-01 17:38:10 +02:00
timer02.c split timer0 and timer2 initialization. Move timer2 init early 2021-01-31 17:18:32 +02:00
timer02.h split timer0 and timer2 initialization. Move timer2 init early 2021-01-31 17:18:32 +02:00
Timer.cpp
Timer.h Code refactoring 2021-01-20 11:46:25 +01:00
TimerRemaining.h
tmc2130.cpp Scale extruder motor current linearly with speed. (#2813) 2021-04-23 16:06:28 +02:00
tmc2130.h Scale extruder motor current linearly with speed. (#2813) 2021-04-23 16:06:28 +02:00
tone04.c Merge remote-tracking branch 'upstream/MK3' into MK3_PAT9125_I2C 2021-01-29 18:28:55 +01:00
tone04.h ALTFAN implementation (#2692) 2020-06-01 17:58:15 +02:00
twi.c Switch twi.c to fastio 2021-01-29 17:51:38 +01:00
twi.h Be more compliant in the I2C protocol 2020-09-28 20:21:07 +02:00
uart2.c Change printf_P without format arguments and NL to puts_P only 2021-01-22 18:56:05 +02:00
uart2.h
ultralcd.cpp Scale extruder motor current linearly with speed. (#2813) 2021-04-23 16:06:28 +02:00
ultralcd.h Scale extruder motor current linearly with speed. (#2813) 2021-04-23 16:06:28 +02:00
uni_avr_rpi.h
util.cpp M552 - Printer IP address 2021-02-02 13:21:16 +02:00
util.h M552 - Printer IP address 2021-02-02 13:21:16 +02:00
vector_3.cpp
vector_3.h
xflash.c Use correct mfrid for gd25q20c 2021-04-06 10:16:47 +02:00
xflash.h Rename w25x20cl to xflash 2021-04-06 10:16:47 +02:00
xyzcal.cpp Calibration: fix checking of scan of calibration points 2021-04-14 06:25:18 +02:00
xyzcal.h Calibration: detect biased PINDA and retry calibration 2021-03-12 05:04:49 +01:00