@ -36,13 +36,13 @@
*
*/
# define EEPROM_VERSION "V30 "
# define EEPROM_VERSION "V31 "
// Change EEPROM version if these are changed:
# define EEPROM_OFFSET 100
/**
* V30 EEPROM Layout :
* V31 EEPROM Layout :
*
* 100 Version ( char x4 )
* 104 EEPROM Checksum ( uint16_t )
@ -84,64 +84,68 @@
* 308 G29 L F bilinear_start ( int x2 )
* 312 bed_level_grid [ ] [ ] ( float x9 , up to float x256 ) + 988
*
* DELTA ( if deltabot ) : 36 bytes
* 348 M666 XYZ endstop_adj ( float x3 )
* 360 M665 R delta_radius ( float )
* 364 M665 L delta_diagonal_rod ( float )
* 368 M665 S delta_segments_per_second ( float )
* 372 M665 A delta_diagonal_rod_trim_tower_1 ( float )
* 376 M665 B delta_diagonal_rod_trim_tower_2 ( float )
* 380 M665 C delta_diagonal_rod_trim_tower_3 ( float )
* DELTA ( if deltabot ) : 48 bytes
* 348 M666 XYZ endstop_adj ( float x3 )
* 360 M665 R delta_radius ( float )
* 364 M665 L delta_diagonal_rod ( float )
* 368 M665 S delta_segments_per_second ( float )
* 372 M665 A delta_diagonal_rod_trim [ A ] ( float )
* 376 M665 B delta_diagonal_rod_trim [ B ] ( float )
* 380 M665 C delta_diagonal_rod_trim [ C ] ( float )
* 384 M665 I delta_tower_angle_trim [ A ] ( float )
* 388 M665 J delta_tower_angle_trim [ B ] ( float )
* 392 M665 K delta_tower_angle_trim [ C ] ( float )
*
* Z_DUAL_ENDSTOPS : 4 bytes
* 384 M666 Z z_endstop_adj ( float )
* Z_DUAL_ENDSTOPS ( if not deltabot ) : 48 bytes
* 348 M666 Z z_endstop_adj ( float )
* - - - dummy data ( float x11 )
*
* ULTIPANEL : 6 bytes
* 388 M145 S0 H lcd_preheat_hotend_temp ( int x2 )
* 392 M145 S0 B lcd_preheat_bed_temp ( int x2 )
* 396 M145 S0 F lcd_preheat_fan_speed ( int x2 )
* 396 M145 S0 H lcd_preheat_hotend_temp ( int x2 )
* 400 M145 S0 B lcd_preheat_bed_temp ( int x2 )
* 404 M145 S0 F lcd_preheat_fan_speed ( int x2 )
*
* PIDTEMP : 66 bytes
* 400 M301 E0 PIDC Kp [ 0 ] , Ki [ 0 ] , Kd [ 0 ] , Kc [ 0 ] ( float x4 )
* 416 M301 E1 PIDC Kp [ 1 ] , Ki [ 1 ] , Kd [ 1 ] , Kc [ 1 ] ( float x4 )
* 432 M301 E2 PIDC Kp [ 2 ] , Ki [ 2 ] , Kd [ 2 ] , Kc [ 2 ] ( float x4 )
* 448 M301 E3 PIDC Kp [ 3 ] , Ki [ 3 ] , Kd [ 3 ] , Kc [ 3 ] ( float x4 )
* 464 M301 L lpq_len ( int )
* 408 M301 E0 PIDC Kp [ 0 ] , Ki [ 0 ] , Kd [ 0 ] , Kc [ 0 ] ( float x4 )
* 424 M301 E1 PIDC Kp [ 1 ] , Ki [ 1 ] , Kd [ 1 ] , Kc [ 1 ] ( float x4 )
* 440 M301 E2 PIDC Kp [ 2 ] , Ki [ 2 ] , Kd [ 2 ] , Kc [ 2 ] ( float x4 )
* 456 M301 E3 PIDC Kp [ 3 ] , Ki [ 3 ] , Kd [ 3 ] , Kc [ 3 ] ( float x4 )
* 472 M301 L lpq_len ( int )
*
* PIDTEMPBED :
* 466 M304 PID thermalManager . bedKp , thermalManager . bedKi , thermalManager . bedKd ( float x3 )
* PIDTEMPBED : 12 bytes
* 474 M304 PID thermalManager . bedKp , . bedKi , . bedKd ( float x3 )
*
* DOGLCD : 2 bytes
* 47 8 M250 C lcd_contrast ( int )
* 486 M250 C lcd_contrast ( int )
*
* FWRETRACT : 29 bytes
* 480 M209 S autoretract_enabled ( bool )
* 481 M207 S retract_length ( float )
* 485 M207 W retract_length_swap ( float )
* 48 9 M207 F retract_feedrate_mm_s ( float )
* 493 M207 Z retract_zlift ( float )
* 497 M208 S retract_recover_length ( float )
* 501 M208 W retract_recover_length_swap ( float )
* 505 M208 F retract_recover_feedrate_mm_s ( float )
* 488 M209 S autoretract_enabled ( bool )
* 489 M207 S retract_length ( float )
* 493 M207 W retract_length_swap ( float )
* 497 M207 F retract_feedrate_mm_s ( float )
* 501 M207 Z retract_zlift ( float )
* 505 M208 S retract_recover_length ( float )
* 509 M208 W retract_recover_length_swap ( float )
* 513 M208 F retract_recover_feedrate_mm_s ( float )
*
* Volumetric Extrusion : 17 bytes
* 509 M200 D volumetric_enabled ( bool )
* 510 M200 T D filament_size ( float x4 ) ( T0 . .3 )
* 517 M200 D volumetric_enabled ( bool )
* 518 M200 T D filament_size ( float x4 ) ( T0 . .3 )
*
* TMC2130 : 20 bytes
* 526 M906 X TMC2130 X - stepper current ( uint16_t )
* 528 M906 Y TMC2130 Y - stepper current ( uint16_t )
* 530 M906 Z TMC2130 Z - stepper current ( uint16_t )
* 532 M906 X2 TMC2130 X2 - stepper current ( uint16_t )
* 53 4 M906 Y2 TMC2130 Y2 - stepper current ( uint16_t )
* 536 M906 Z2 TMC2130 Z2 - stepper current ( uint16_t )
* 538 M906 E0 TMC2130 E0 - stepper current ( uint16_t )
* 540 M906 E1 TMC2130 E1 - stepper current ( uint16_t )
* 542 M906 E2 TMC2130 E2 - stepper current ( uint16_t )
* 544 M906 E3 TMC2130 E3 - stepper current ( uint16_t )
* TMC2130 Stepper Current : 20 bytes
* 534 M906 X stepperX current ( uint16_t )
* 536 M906 Y stepperY current ( uint16_t )
* 538 M906 Z stepperZ current ( uint16_t )
* 540 M906 X2 stepperX2 current ( uint16_t )
* 542 M906 Y2 stepperY2 current ( uint16_t )
* 544 M906 Z2 stepperZ2 current ( uint16_t )
* 546 M906 E0 stepperE0 current ( uint16_t )
* 548 M906 E1 stepperE1 current ( uint16_t )
* 550 M906 E2 stepperE2 current ( uint16_t )
* 552 M906 E3 stepperE3 current ( uint16_t )
*
* 546 Minimum end - point
* 186 7 ( 546 + 36 + 9 + 288 + 988 ) Maximum end - point
* 55 4 Minimum end - point
* 1875 ( 55 4 + 36 + 9 + 288 + 988 ) Maximum end - point
*
*/
# include "Marlin.h"
@ -353,16 +357,15 @@ void Config_Postprocess() {
EEPROM_WRITE ( delta_radius ) ; // 1 float
EEPROM_WRITE ( delta_diagonal_rod ) ; // 1 float
EEPROM_WRITE ( delta_segments_per_second ) ; // 1 float
EEPROM_WRITE ( delta_diagonal_rod_trim_tower_1 ) ; // 1 float
EEPROM_WRITE ( delta_diagonal_rod_trim_tower_2 ) ; // 1 float
EEPROM_WRITE ( delta_diagonal_rod_trim_tower_3 ) ; // 1 float
EEPROM_WRITE ( delta_diagonal_rod_trim ) ; // 3 floats
EEPROM_WRITE ( delta_tower_angle_trim ) ; // 3 floats
# elif ENABLED(Z_DUAL_ENDSTOPS)
EEPROM_WRITE ( z_endstop_adj ) ; // 1 float
EEPROM_WRITE ( z_endstop_adj ) ; // 1 float
dummy = 0.0f ;
for ( uint8_t q = 8 ; q - - ; ) EEPROM_WRITE ( dummy ) ;
for ( uint8_t q = 11 ; q - - ; ) EEPROM_WRITE ( dummy ) ;
# else
dummy = 0.0f ;
for ( uint8_t q = 9 ; q - - ; ) EEPROM_WRITE ( dummy ) ;
for ( uint8_t q = 12 ; q - - ; ) EEPROM_WRITE ( dummy ) ;
# endif
# if DISABLED(ULTIPANEL)
@ -674,20 +677,19 @@ void Config_Postprocess() {
}
# if ENABLED(DELTA)
EEPROM_READ ( endstop_adj ) ; // 3 floats
EEPROM_READ ( delta_radius ) ; // 1 float
EEPROM_READ ( delta_diagonal_rod ) ; // 1 float
EEPROM_READ ( delta_segments_per_second ) ; // 1 float
EEPROM_READ ( delta_diagonal_rod_trim_tower_1 ) ; // 1 float
EEPROM_READ ( delta_diagonal_rod_trim_tower_2 ) ; // 1 float
EEPROM_READ ( delta_diagonal_rod_trim_tower_3 ) ; // 1 float
EEPROM_READ ( endstop_adj ) ; // 3 floats
EEPROM_READ ( delta_radius ) ; // 1 float
EEPROM_READ ( delta_diagonal_rod ) ; // 1 float
EEPROM_READ ( delta_segments_per_second ) ; // 1 float
EEPROM_READ ( delta_diagonal_rod_trim ) ; // 3 floats
EEPROM_READ ( delta_tower_angle_trim ) ; // 3 floats
# elif ENABLED(Z_DUAL_ENDSTOPS)
EEPROM_READ ( z_endstop_adj ) ;
dummy = 0.0f ;
for ( uint8_t q = 8 ; q - - ; ) EEPROM_READ ( dummy ) ;
for ( uint8_t q = 11 ; q - - ; ) EEPROM_READ ( dummy ) ;
# else
dummy = 0.0f ;
for ( uint8_t q = 9 ; q - - ; ) EEPROM_READ ( dummy ) ;
for ( uint8_t q = 12 ; q - - ; ) EEPROM_READ ( dummy ) ;
# endif
# if DISABLED(ULTIPANEL)
@ -899,16 +901,15 @@ void Config_ResetDefault() {
# endif
# if ENABLED(DELTA)
const float adj [ ABC ] = DELTA_ENDSTOP_ADJ ;
endstop_adj [ A_AXIS ] = adj [ A_AXIS ] ;
endstop_adj [ B_AXIS ] = adj [ B_AXIS ] ;
endstop_adj [ C_AXIS ] = adj [ C_AXIS ] ;
const float adj [ ABC ] = DELTA_ENDSTOP_ADJ ,
drt [ ABC ] = { DELTA_DIAGONAL_ROD_TRIM_TOWER_1 , DELTA_DIAGONAL_ROD_TRIM_TOWER_2 , DELTA_DIAGONAL_ROD_TRIM_TOWER_3 } ,
dta [ ABC ] = { DELTA_TOWER_ANGLE_TRIM_1 , DELTA_TOWER_ANGLE_TRIM_2 , DELTA_TOWER_ANGLE_TRIM_3 } ;
COPY ( endstop_adj , adj ) ;
delta_radius = DELTA_RADIUS ;
delta_diagonal_rod = DELTA_DIAGONAL_ROD ;
delta_segments_per_second = DELTA_SEGMENTS_PER_SECOND ;
delta_diagonal_rod_trim_tower_1 = DELTA_DIAGONAL_ROD_TRIM_TOWER_1 ;
delta_diagonal_rod_trim_tower_2 = DELTA_DIAGONAL_ROD_TRIM_TOWER_2 ;
delta_diagonal_rod_trim_tower_3 = DELTA_DIAGONAL_ROD_TRIM_TOWER_3 ;
COPY ( delta_diagonal_rod_trim , drt ) ;
COPY ( delta_tower_angle_trim , dta ) ;
# elif ENABLED(Z_DUAL_ENDSTOPS)
z_endstop_adj = 0 ;
# endif
@ -1179,15 +1180,18 @@ void Config_ResetDefault() {
SERIAL_EOL ;
CONFIG_ECHO_START ;
if ( ! forReplay ) {
SERIAL_ECHOLNPGM ( " Delta settings: L=diagonal_rod, R=radius, S=segments_per_second, ABC=diagonal_rod_trim_tower_[123] " ) ;
SERIAL_ECHOLNPGM ( " Delta settings: L=diagonal rod, R=radius, S=segments-per-second, ABC=diagonal rod trim, IJK=tower angle trim " ) ;
CONFIG_ECHO_START ;
}
SERIAL_ECHOPAIR ( " M665 L " , delta_diagonal_rod ) ;
SERIAL_ECHOPAIR ( " R " , delta_radius ) ;
SERIAL_ECHOPAIR ( " S " , delta_segments_per_second ) ;
SERIAL_ECHOPAIR ( " A " , delta_diagonal_rod_trim_tower_1 ) ;
SERIAL_ECHOPAIR ( " B " , delta_diagonal_rod_trim_tower_2 ) ;
SERIAL_ECHOPAIR ( " C " , delta_diagonal_rod_trim_tower_3 ) ;
SERIAL_ECHOPAIR ( " A " , delta_diagonal_rod_trim [ A_AXIS ] ) ;
SERIAL_ECHOPAIR ( " B " , delta_diagonal_rod_trim [ B_AXIS ] ) ;
SERIAL_ECHOPAIR ( " C " , delta_diagonal_rod_trim [ C_AXIS ] ) ;
SERIAL_ECHOPAIR ( " I " , delta_tower_angle_trim [ A_AXIS ] ) ;
SERIAL_ECHOPAIR ( " J " , delta_tower_angle_trim [ B_AXIS ] ) ;
SERIAL_ECHOPAIR ( " K " , delta_tower_angle_trim [ C_AXIS ] ) ;
SERIAL_EOL ;
# elif ENABLED(Z_DUAL_ENDSTOPS)
CONFIG_ECHO_START ;