MK2.5 port - compilable version
This commit is contained in:
parent
f40b8a2186
commit
8562235440
10 changed files with 724 additions and 24 deletions
|
@ -380,12 +380,6 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||||
#define DISABLE_E false // For all extruders
|
#define DISABLE_E false // For all extruders
|
||||||
#define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled
|
#define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled
|
||||||
|
|
||||||
#define INVERT_X_DIR true // for Mendel set to false, for Orca set to true
|
|
||||||
#define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false
|
|
||||||
#define INVERT_Z_DIR true // for Mendel set to false, for Orca set to true
|
|
||||||
#define INVERT_E0_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
|
|
||||||
#define INVERT_E1_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
|
|
||||||
#define INVERT_E2_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
|
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// ENDSTOP SETTINGS:
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
|
@ -849,8 +843,5 @@ enum CalibrationStatus
|
||||||
#include "Configuration_adv.h"
|
#include "Configuration_adv.h"
|
||||||
#include "thermistortables.h"
|
#include "thermistortables.h"
|
||||||
|
|
||||||
#define PINDA_THERMISTOR
|
|
||||||
|
|
||||||
#define AMBIENT_THERMISTOR
|
|
||||||
|
|
||||||
#endif //__CONFIGURATION_H
|
#endif //__CONFIGURATION_H
|
||||||
|
|
|
@ -40,6 +40,14 @@ const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic o
|
||||||
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
|
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
|
||||||
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
|
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
|
||||||
|
|
||||||
|
// Direction inverting
|
||||||
|
#define INVERT_X_DIR true // for Mendel set to false, for Orca set to true
|
||||||
|
#define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false
|
||||||
|
#define INVERT_Z_DIR true // for Mendel set to false, for Orca set to true
|
||||||
|
#define INVERT_E0_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
|
||||||
|
#define INVERT_E1_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
|
||||||
|
#define INVERT_E2_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
|
||||||
|
|
||||||
// Home position
|
// Home position
|
||||||
#define MANUAL_X_HOME_POS 0
|
#define MANUAL_X_HOME_POS 0
|
||||||
#define MANUAL_Y_HOME_POS -2.2
|
#define MANUAL_Y_HOME_POS -2.2
|
||||||
|
|
|
@ -589,6 +589,9 @@ void restore_print_from_ram_and_continue(float e_move);
|
||||||
bool fans_check_enabled = true;
|
bool fans_check_enabled = true;
|
||||||
bool filament_autoload_enabled = true;
|
bool filament_autoload_enabled = true;
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef TMC2130
|
||||||
|
|
||||||
extern int8_t CrashDetectMenu;
|
extern int8_t CrashDetectMenu;
|
||||||
|
|
||||||
void crashdet_enable()
|
void crashdet_enable()
|
||||||
|
@ -698,6 +701,8 @@ void failstats_reset_print()
|
||||||
eeprom_update_byte((uint8_t *)EEPROM_POWER_COUNT, 0);
|
eeprom_update_byte((uint8_t *)EEPROM_POWER_COUNT, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif //TMC2130
|
||||||
|
|
||||||
|
|
||||||
#ifdef MESH_BED_LEVELING
|
#ifdef MESH_BED_LEVELING
|
||||||
enum MeshLevelingState { MeshReport, MeshStart, MeshNext, MeshSet };
|
enum MeshLevelingState { MeshReport, MeshStart, MeshNext, MeshSet };
|
||||||
|
@ -1063,6 +1068,8 @@ void setup()
|
||||||
#endif
|
#endif
|
||||||
setup_homepin();
|
setup_homepin();
|
||||||
|
|
||||||
|
#ifdef TMC2130
|
||||||
|
|
||||||
if (1) {
|
if (1) {
|
||||||
/// SERIAL_ECHOPGM("initial zsteps on power up: "); MYSERIAL.println(tmc2130_rd_MSCNT(Z_TMC2130_CS));
|
/// SERIAL_ECHOPGM("initial zsteps on power up: "); MYSERIAL.println(tmc2130_rd_MSCNT(Z_TMC2130_CS));
|
||||||
// try to run to zero phase before powering the Z motor.
|
// try to run to zero phase before powering the Z motor.
|
||||||
|
@ -1078,6 +1085,7 @@ void setup()
|
||||||
}
|
}
|
||||||
// SERIAL_ECHOPGM("initial zsteps after reset: "); MYSERIAL.println(tmc2130_rd_MSCNT(Z_TMC2130_CS));
|
// SERIAL_ECHOPGM("initial zsteps after reset: "); MYSERIAL.println(tmc2130_rd_MSCNT(Z_TMC2130_CS));
|
||||||
}
|
}
|
||||||
|
#endif //TMC2130
|
||||||
|
|
||||||
#if defined(Z_AXIS_ALWAYS_ON)
|
#if defined(Z_AXIS_ALWAYS_ON)
|
||||||
enable_z();
|
enable_z();
|
||||||
|
@ -1101,10 +1109,11 @@ void setup()
|
||||||
// Once a firmware boots up, it forces at least a language selection, which changes
|
// Once a firmware boots up, it forces at least a language selection, which changes
|
||||||
// EEPROM_LANG to number lower than 0x0ff.
|
// EEPROM_LANG to number lower than 0x0ff.
|
||||||
// 1) Set a high power mode.
|
// 1) Set a high power mode.
|
||||||
|
#ifdef TMC2130
|
||||||
eeprom_write_byte((uint8_t*)EEPROM_SILENT, 0);
|
eeprom_write_byte((uint8_t*)EEPROM_SILENT, 0);
|
||||||
tmc2130_mode = TMC2130_MODE_NORMAL;
|
tmc2130_mode = TMC2130_MODE_NORMAL;
|
||||||
|
#endif //TMC2130
|
||||||
eeprom_write_byte((uint8_t*)EEPROM_WIZARD_ACTIVE, 1); //run wizard
|
eeprom_write_byte((uint8_t*)EEPROM_WIZARD_ACTIVE, 1); //run wizard
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Force SD card update. Otherwise the SD card update is done from loop() on card.checkautostart(false),
|
// Force SD card update. Otherwise the SD card update is done from loop() on card.checkautostart(false),
|
||||||
|
@ -1158,7 +1167,11 @@ void setup()
|
||||||
}
|
}
|
||||||
|
|
||||||
check_babystep(); //checking if Z babystep is in allowed range
|
check_babystep(); //checking if Z babystep is in allowed range
|
||||||
|
|
||||||
|
#ifdef UVLO_SUPPORT
|
||||||
setup_uvlo_interrupt();
|
setup_uvlo_interrupt();
|
||||||
|
#endif //UVLO_SUPPORT
|
||||||
|
|
||||||
#ifndef DEBUG_DISABLE_FANCHECK
|
#ifndef DEBUG_DISABLE_FANCHECK
|
||||||
setup_fan_interrupt();
|
setup_fan_interrupt();
|
||||||
#endif //DEBUG_DISABLE_FANCHECK
|
#endif //DEBUG_DISABLE_FANCHECK
|
||||||
|
@ -1208,6 +1221,7 @@ void setup()
|
||||||
// so the next time the firmware gets updated, it will know from which version it has been updated.
|
// so the next time the firmware gets updated, it will know from which version it has been updated.
|
||||||
update_current_firmware_version_to_eeprom();
|
update_current_firmware_version_to_eeprom();
|
||||||
|
|
||||||
|
#ifdef UVLO_SUPPORT
|
||||||
if (eeprom_read_byte((uint8_t*)EEPROM_UVLO) == 1) { //previous print was terminated by UVLO
|
if (eeprom_read_byte((uint8_t*)EEPROM_UVLO) == 1) { //previous print was terminated by UVLO
|
||||||
/*
|
/*
|
||||||
if (lcd_show_fullscreen_message_yes_no_and_wait_P(MSG_RECOVER_PRINT, false)) recover_print();
|
if (lcd_show_fullscreen_message_yes_no_and_wait_P(MSG_RECOVER_PRINT, false)) recover_print();
|
||||||
|
@ -1247,6 +1261,8 @@ void setup()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#endif //UVLO_SUPPORT
|
||||||
|
|
||||||
KEEPALIVE_STATE(NOT_BUSY);
|
KEEPALIVE_STATE(NOT_BUSY);
|
||||||
wdt_enable(WDTO_4S);
|
wdt_enable(WDTO_4S);
|
||||||
}
|
}
|
||||||
|
@ -2119,20 +2135,21 @@ bool gcode_M45(bool onlyZ)
|
||||||
current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
|
current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
|
||||||
|
|
||||||
bool endstops_enabled = enable_endstops(true);
|
bool endstops_enabled = enable_endstops(true);
|
||||||
|
#ifdef TMC2130
|
||||||
tmc2130_home_enter(Z_AXIS_MASK);
|
tmc2130_home_enter(Z_AXIS_MASK);
|
||||||
|
#endif //TMC2130
|
||||||
|
|
||||||
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], homing_feedrate[Z_AXIS] / 40, active_extruder);
|
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], homing_feedrate[Z_AXIS] / 40, active_extruder);
|
||||||
|
|
||||||
st_synchronize();
|
st_synchronize();
|
||||||
|
#ifdef TMC2130
|
||||||
tmc2130_home_exit();
|
tmc2130_home_exit();
|
||||||
|
#endif //TMC2130
|
||||||
enable_endstops(endstops_enabled);
|
enable_endstops(endstops_enabled);
|
||||||
|
|
||||||
if (st_get_position_mm(Z_AXIS) == MESH_HOME_Z_SEARCH)
|
if (st_get_position_mm(Z_AXIS) == MESH_HOME_Z_SEARCH)
|
||||||
{
|
{
|
||||||
|
|
||||||
//#ifdef TMC2130
|
|
||||||
// tmc2130_home_enter(X_AXIS_MASK | Y_AXIS_MASK);
|
|
||||||
//#endif
|
|
||||||
|
|
||||||
int8_t verbosity_level = 0;
|
int8_t verbosity_level = 0;
|
||||||
if (code_seen('V'))
|
if (code_seen('V'))
|
||||||
{
|
{
|
||||||
|
@ -2304,6 +2321,7 @@ void process_commands()
|
||||||
lcd_setstatus(strchr_pointer + 5);
|
lcd_setstatus(strchr_pointer + 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef TMC2130
|
||||||
else if(code_seen("CRASH_DETECTED"))
|
else if(code_seen("CRASH_DETECTED"))
|
||||||
{
|
{
|
||||||
uint8_t mask = 0;
|
uint8_t mask = 0;
|
||||||
|
@ -2315,6 +2333,7 @@ void process_commands()
|
||||||
crashdet_recover();
|
crashdet_recover();
|
||||||
else if(code_seen("CRASH_CANCEL"))
|
else if(code_seen("CRASH_CANCEL"))
|
||||||
crashdet_cancel();
|
crashdet_cancel();
|
||||||
|
#endif //TMC2130
|
||||||
|
|
||||||
else if(code_seen("PRUSA")){
|
else if(code_seen("PRUSA")){
|
||||||
if (code_seen("Ping")) { //PRUSA Ping
|
if (code_seen("Ping")) { //PRUSA Ping
|
||||||
|
@ -3995,8 +4014,10 @@ void process_commands()
|
||||||
card.openFile(strchr_pointer + 4,true);
|
card.openFile(strchr_pointer + 4,true);
|
||||||
break;
|
break;
|
||||||
case 24: //M24 - Start SD print
|
case 24: //M24 - Start SD print
|
||||||
|
#ifdef TMC2130
|
||||||
if (!card.paused)
|
if (!card.paused)
|
||||||
failstats_reset_print();
|
failstats_reset_print();
|
||||||
|
#endif //TMC2130
|
||||||
card.startFileprint();
|
card.startFileprint();
|
||||||
starttime=millis();
|
starttime=millis();
|
||||||
break;
|
break;
|
||||||
|
@ -6025,6 +6046,8 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#ifdef TMC2130
|
||||||
|
|
||||||
case 910: // M910 TMC2130 init
|
case 910: // M910 TMC2130 init
|
||||||
{
|
{
|
||||||
tmc2130_init();
|
tmc2130_init();
|
||||||
|
@ -6104,6 +6127,8 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#endif //TMC2130
|
||||||
|
|
||||||
case 350: // M350 Set microstepping mode. Warning: Steps per unit remains unchanged. S code sets stepping mode for all drivers.
|
case 350: // M350 Set microstepping mode. Warning: Steps per unit remains unchanged. S code sets stepping mode for all drivers.
|
||||||
{
|
{
|
||||||
#if defined(X_MS1_PIN) && X_MS1_PIN > -1
|
#if defined(X_MS1_PIN) && X_MS1_PIN > -1
|
||||||
|
@ -7449,6 +7474,8 @@ void serialecho_temperatures() {
|
||||||
|
|
||||||
extern uint32_t sdpos_atomic;
|
extern uint32_t sdpos_atomic;
|
||||||
|
|
||||||
|
#ifdef UVLO_SUPPORT
|
||||||
|
|
||||||
void uvlo_()
|
void uvlo_()
|
||||||
{
|
{
|
||||||
unsigned long time_start = millis();
|
unsigned long time_start = millis();
|
||||||
|
@ -7458,10 +7485,12 @@ void uvlo_()
|
||||||
disable_y();
|
disable_y();
|
||||||
disable_e0();
|
disable_e0();
|
||||||
|
|
||||||
|
#ifdef TMC2130
|
||||||
tmc2130_set_current_h(Z_AXIS, 20);
|
tmc2130_set_current_h(Z_AXIS, 20);
|
||||||
tmc2130_set_current_r(Z_AXIS, 20);
|
tmc2130_set_current_r(Z_AXIS, 20);
|
||||||
tmc2130_set_current_h(E_AXIS, 20);
|
tmc2130_set_current_h(E_AXIS, 20);
|
||||||
tmc2130_set_current_r(E_AXIS, 20);
|
tmc2130_set_current_r(E_AXIS, 20);
|
||||||
|
#endif //TMC2130
|
||||||
|
|
||||||
|
|
||||||
// Indicate that the interrupt has been triggered.
|
// Indicate that the interrupt has been triggered.
|
||||||
|
@ -7469,7 +7498,10 @@ void uvlo_()
|
||||||
|
|
||||||
// Read out the current Z motor microstep counter. This will be later used
|
// Read out the current Z motor microstep counter. This will be later used
|
||||||
// for reaching the zero full step before powering off.
|
// for reaching the zero full step before powering off.
|
||||||
uint16_t z_microsteps = tmc2130_rd_MSCNT(Z_TMC2130_CS);
|
uint16_t z_microsteps = 0;
|
||||||
|
#ifdef TMC2130
|
||||||
|
z_microsteps = tmc2130_rd_MSCNT(Z_TMC2130_CS);
|
||||||
|
#endif //TMC2130
|
||||||
|
|
||||||
// Calculate the file position, from which to resume this print.
|
// Calculate the file position, from which to resume this print.
|
||||||
long sd_position = sdpos_atomic; //atomic sd position of last command added in queue
|
long sd_position = sdpos_atomic; //atomic sd position of last command added in queue
|
||||||
|
@ -7598,6 +7630,7 @@ void uvlo_()
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
#endif //UVLO_SUPPORT
|
||||||
|
|
||||||
void setup_fan_interrupt() {
|
void setup_fan_interrupt() {
|
||||||
//INT7
|
//INT7
|
||||||
|
@ -7629,6 +7662,7 @@ ISR(INT7_vect) {
|
||||||
EICRB ^= (1 << 6); //change edge
|
EICRB ^= (1 << 6); //change edge
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef UVLO_SUPPORT
|
||||||
void setup_uvlo_interrupt() {
|
void setup_uvlo_interrupt() {
|
||||||
DDRE &= ~(1 << 4); //input pin
|
DDRE &= ~(1 << 4); //input pin
|
||||||
PORTE &= ~(1 << 4); //no internal pull-up
|
PORTE &= ~(1 << 4); //no internal pull-up
|
||||||
|
@ -7838,6 +7872,7 @@ void restore_print_from_eeprom() {
|
||||||
// Start SD print.
|
// Start SD print.
|
||||||
enquecommand_P(PSTR("M24"));
|
enquecommand_P(PSTR("M24"));
|
||||||
}
|
}
|
||||||
|
#endif //UVLO_SUPPORT
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -11,6 +11,12 @@
|
||||||
|
|
||||||
#define TMC2130
|
#define TMC2130
|
||||||
#define PAT9125
|
#define PAT9125
|
||||||
|
#define UVLO_SUPPORT
|
||||||
|
#define UVLO_SUPPORT
|
||||||
|
|
||||||
|
#define AMBIENT_THERMISTOR
|
||||||
|
#define PINDA_THERMISTOR
|
||||||
|
|
||||||
|
|
||||||
#define SWI2C // enable software i2c
|
#define SWI2C // enable software i2c
|
||||||
#define SWI2C_A8 // 8bit address functions
|
#define SWI2C_A8 // 8bit address functions
|
||||||
|
|
136
Firmware/pins_Rambo_1_3.h
Normal file
136
Firmware/pins_Rambo_1_3.h
Normal file
|
@ -0,0 +1,136 @@
|
||||||
|
/*****************************************************************
|
||||||
|
* Rambo mini 1.3 Pin Assignments
|
||||||
|
******************************************************************/
|
||||||
|
|
||||||
|
#define ELECTRONICS "RAMBo13a"
|
||||||
|
|
||||||
|
#define KNOWN_BOARD
|
||||||
|
#ifndef __AVR_ATmega2560__
|
||||||
|
#error Oops! Make sure you have 'Arduino Mega 2560 or Rambo' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define PAT9125
|
||||||
|
|
||||||
|
#define PINDA_THERMISTOR
|
||||||
|
|
||||||
|
#define SWI2C // enable software i2c
|
||||||
|
#define SWI2C_A8 // 8bit address functions
|
||||||
|
|
||||||
|
#define PAT9125_SWI2C
|
||||||
|
#define PAT9125_SWI2C_SDA 20 //SDA on P3
|
||||||
|
#define PAT9125_SWI2C_SCL 21 //SCL on P3
|
||||||
|
#define PAT9125_SWI2C_CFG 0xb1 //2us clock delay, 2048 cycles timeout
|
||||||
|
|
||||||
|
//#define PAT9125_HWI2C
|
||||||
|
|
||||||
|
#define X_STEP_PIN 37
|
||||||
|
#define X_DIR_PIN 48
|
||||||
|
#define X_MIN_PIN 12
|
||||||
|
#define X_MAX_PIN 30
|
||||||
|
#define X_ENABLE_PIN 29
|
||||||
|
#define X_MS1_PIN 40
|
||||||
|
#define X_MS2_PIN 41
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 36
|
||||||
|
#define Y_DIR_PIN 49
|
||||||
|
#define Y_MIN_PIN 11
|
||||||
|
#define Y_MAX_PIN 24
|
||||||
|
#define Y_ENABLE_PIN 28
|
||||||
|
#define Y_MS1_PIN 69
|
||||||
|
#define Y_MS2_PIN 39
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 35
|
||||||
|
#define Z_DIR_PIN 47
|
||||||
|
#define Z_MIN_PIN 10
|
||||||
|
#define Z_MAX_PIN 23
|
||||||
|
#define Z_ENABLE_PIN 27
|
||||||
|
#define Z_MS1_PIN 68
|
||||||
|
#define Z_MS2_PIN 67
|
||||||
|
|
||||||
|
#define HEATER_BED_PIN 4 //PG5
|
||||||
|
#define TEMP_BED_PIN 2 //A2
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 3 //PE5
|
||||||
|
#define TEMP_0_PIN 0 //A0
|
||||||
|
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#define TEMP_1_PIN 1 //A1
|
||||||
|
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
|
||||||
|
#define TEMP_AMBIENT_PIN 6 //A6
|
||||||
|
|
||||||
|
#define TEMP_PINDA_PIN 3 //A3
|
||||||
|
|
||||||
|
#define VOLT_PWR_PIN 4 //A4
|
||||||
|
#define VOLT_BED_PIN 9 //A9
|
||||||
|
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 34
|
||||||
|
#define E0_DIR_PIN 43
|
||||||
|
#define E0_ENABLE_PIN 26
|
||||||
|
#define E0_MS1_PIN 65
|
||||||
|
#define E0_MS2_PIN 66
|
||||||
|
|
||||||
|
|
||||||
|
#define MOTOR_CURRENT_PWM_XY_PIN 46
|
||||||
|
#define MOTOR_CURRENT_PWM_Z_PIN 45
|
||||||
|
#define MOTOR_CURRENT_PWM_E_PIN 44
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 53
|
||||||
|
#define LED_PIN 13
|
||||||
|
#define FAN_PIN 6
|
||||||
|
#define FAN_1_PIN -1
|
||||||
|
#define PS_ON_PIN -1
|
||||||
|
#define KILL_PIN -1 // 80 with Smart Controller LCD
|
||||||
|
#define SUICIDE_PIN -1 // PIN that has to be turned on right after start, to keep power flowing.
|
||||||
|
|
||||||
|
#ifdef ULTRA_LCD
|
||||||
|
|
||||||
|
//#define KILL_PIN 32
|
||||||
|
|
||||||
|
#ifdef NEWPANEL
|
||||||
|
|
||||||
|
#define BEEPER 84 // Beeper on AUX-4
|
||||||
|
#define LCD_PINS_RS 82
|
||||||
|
#define LCD_PINS_ENABLE 18
|
||||||
|
#define LCD_PINS_D4 19
|
||||||
|
#define LCD_PINS_D5 70
|
||||||
|
#define LCD_PINS_D6 85
|
||||||
|
#define LCD_PINS_D7 71
|
||||||
|
|
||||||
|
//buttons are directly attached using AUX-2
|
||||||
|
#define BTN_EN1 72
|
||||||
|
#define BTN_EN2 14
|
||||||
|
#define BTN_ENC 9 // the click
|
||||||
|
|
||||||
|
#define SDCARDDETECT 15
|
||||||
|
|
||||||
|
|
||||||
|
#endif //NEWPANEL
|
||||||
|
#endif //ULTRA_LCD
|
||||||
|
|
||||||
|
// Support for an 8 bit logic analyzer, for example the Saleae.
|
||||||
|
// Channels 0-2 are fast, they could generate 2.667Mhz waveform with a software loop.
|
||||||
|
#define LOGIC_ANALYZER_CH0 X_MIN_PIN // PB6
|
||||||
|
#define LOGIC_ANALYZER_CH1 Y_MIN_PIN // PB5
|
||||||
|
#define LOGIC_ANALYZER_CH2 53 // PB0 (PROC_nCS)
|
||||||
|
// Channels 3-7 are slow, they could generate
|
||||||
|
// 0.889Mhz waveform with a software loop and interrupt locking,
|
||||||
|
// 1.333MHz waveform without interrupt locking.
|
||||||
|
#define LOGIC_ANALYZER_CH3 73 // PJ3
|
||||||
|
// PK0 has no Arduino digital pin assigned, so we set it directly.
|
||||||
|
#define WRITE_LOGIC_ANALYZER_CH4(value) if (value) PORTK |= (1 << 0); else PORTK &= ~(1 << 0) // PK0
|
||||||
|
#define LOGIC_ANALYZER_CH5 16 // PH0 (RXD2)
|
||||||
|
#define LOGIC_ANALYZER_CH6 17 // PH1 (TXD2)
|
||||||
|
#define LOGIC_ANALYZER_CH7 76 // PJ5
|
||||||
|
|
||||||
|
#define LOGIC_ANALYZER_CH0_ENABLE SET_OUTPUT(LOGIC_ANALYZER_CH0)
|
||||||
|
#define LOGIC_ANALYZER_CH1_ENABLE SET_OUTPUT(LOGIC_ANALYZER_CH1)
|
||||||
|
#define LOGIC_ANALYZER_CH2_ENABLE SET_OUTPUT(LOGIC_ANALYZER_CH2)
|
||||||
|
#define LOGIC_ANALYZER_CH3_ENABLE SET_OUTPUT(LOGIC_ANALYZER_CH3)
|
||||||
|
#define LOGIC_ANALYZER_CH4_ENABLE do { DDRK |= 1 << 0; } while (0)
|
||||||
|
#define LOGIC_ANALYZER_CH5_ENABLE do { cbi(UCSR2B, TXEN2); cbi(UCSR2B, RXEN2); cbi(UCSR2B, RXCIE2); SET_OUTPUT(LOGIC_ANALYZER_CH5); } while (0)
|
||||||
|
#define LOGIC_ANALYZER_CH6_ENABLE do { cbi(UCSR2B, TXEN2); cbi(UCSR2B, RXEN2); cbi(UCSR2B, RXCIE2); SET_OUTPUT(LOGIC_ANALYZER_CH6); } while (0)
|
||||||
|
#define LOGIC_ANALYZER_CH7_ENABLE SET_OUTPUT(LOGIC_ANALYZER_CH7)
|
|
@ -454,6 +454,8 @@ void setExtruderAutoFanState(int pin, bool state)
|
||||||
analogWrite(pin, newFanSpeed);
|
analogWrite(pin, newFanSpeed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if (defined(TACH_0))
|
||||||
|
|
||||||
void countFanSpeed()
|
void countFanSpeed()
|
||||||
{
|
{
|
||||||
//SERIAL_ECHOPGM("edge counter 1:"); MYSERIAL.println(fan_edge_counter[1]);
|
//SERIAL_ECHOPGM("edge counter 1:"); MYSERIAL.println(fan_edge_counter[1]);
|
||||||
|
@ -526,6 +528,7 @@ void fanSpeedError(unsigned char _fan) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif //(defined(TACH_0))
|
||||||
|
|
||||||
|
|
||||||
void checkExtruderAutoFans()
|
void checkExtruderAutoFans()
|
||||||
|
@ -660,11 +663,16 @@ void manage_heater()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Check if temperature is within the correct range
|
// Check if temperature is within the correct range
|
||||||
|
#ifdef AMBIENT_THERMISTOR
|
||||||
if(((current_temperature_ambient < MINTEMP_MINAMBIENT) || (current_temperature[e] > minttemp[e])) && (current_temperature[e] < maxttemp[e]))
|
if(((current_temperature_ambient < MINTEMP_MINAMBIENT) || (current_temperature[e] > minttemp[e])) && (current_temperature[e] < maxttemp[e]))
|
||||||
|
#else //AMBIENT_THERMISTOR
|
||||||
|
if((current_temperature[e] > minttemp[e]) && (current_temperature[e] < maxttemp[e]))
|
||||||
|
#endif //AMBIENT_THERMISTOR
|
||||||
{
|
{
|
||||||
soft_pwm[e] = (int)pid_output >> 1;
|
soft_pwm[e] = (int)pid_output >> 1;
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
soft_pwm[e] = 0;
|
soft_pwm[e] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -703,8 +711,10 @@ void manage_heater()
|
||||||
(defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1)
|
(defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1)
|
||||||
if(millis() - extruder_autofan_last_check > 1000) // only need to check fan state very infrequently
|
if(millis() - extruder_autofan_last_check > 1000) // only need to check fan state very infrequently
|
||||||
{
|
{
|
||||||
|
#if (defined(TACH_0))
|
||||||
countFanSpeed();
|
countFanSpeed();
|
||||||
checkFanSpeed();
|
checkFanSpeed();
|
||||||
|
#endif //(defined(TACH_0))
|
||||||
checkExtruderAutoFans();
|
checkExtruderAutoFans();
|
||||||
extruder_autofan_last_check = millis();
|
extruder_autofan_last_check = millis();
|
||||||
}
|
}
|
||||||
|
@ -747,7 +757,11 @@ void manage_heater()
|
||||||
pid_output = constrain(target_temperature_bed, 0, MAX_BED_POWER);
|
pid_output = constrain(target_temperature_bed, 0, MAX_BED_POWER);
|
||||||
#endif //PID_OPENLOOP
|
#endif //PID_OPENLOOP
|
||||||
|
|
||||||
|
#ifdef AMBIENT_THERMISTOR
|
||||||
if(((current_temperature_bed > BED_MINTEMP) || (current_temperature_ambient < MINTEMP_MINAMBIENT)) && (current_temperature_bed < BED_MAXTEMP))
|
if(((current_temperature_bed > BED_MINTEMP) || (current_temperature_ambient < MINTEMP_MINAMBIENT)) && (current_temperature_bed < BED_MAXTEMP))
|
||||||
|
#else //AMBIENT_THERMISTOR
|
||||||
|
if((current_temperature_bed > BED_MINTEMP) && (current_temperature_bed < BED_MAXTEMP))
|
||||||
|
#endif //AMBIENT_THERMISTOR
|
||||||
{
|
{
|
||||||
soft_pwm_bed = (int)pid_output >> 1;
|
soft_pwm_bed = (int)pid_output >> 1;
|
||||||
}
|
}
|
||||||
|
@ -924,6 +938,7 @@ static float analog2tempBed(int raw) {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef AMBIENT_THERMISTOR
|
||||||
static float analog2tempAmbient(int raw)
|
static float analog2tempAmbient(int raw)
|
||||||
{
|
{
|
||||||
float celsius = 0;
|
float celsius = 0;
|
||||||
|
@ -944,6 +959,7 @@ static float analog2tempAmbient(int raw)
|
||||||
if (i == AMBIENTTEMPTABLE_LEN) celsius = PGM_RD_W(AMBIENTTEMPTABLE[i-1][1]);
|
if (i == AMBIENTTEMPTABLE_LEN) celsius = PGM_RD_W(AMBIENTTEMPTABLE[i-1][1]);
|
||||||
return celsius;
|
return celsius;
|
||||||
}
|
}
|
||||||
|
#endif //AMBIENT_THERMISTOR
|
||||||
|
|
||||||
/* Called to get the raw values into the the actual temperatures. The raw values are created in interrupt context,
|
/* Called to get the raw values into the the actual temperatures. The raw values are created in interrupt context,
|
||||||
and this function is called from normal context as it is too slow to run in interrupts and will block the stepper routine otherwise */
|
and this function is called from normal context as it is too slow to run in interrupts and will block the stepper routine otherwise */
|
||||||
|
@ -1537,7 +1553,9 @@ void adc_ready(void) //callback from adc when sampling finished
|
||||||
current_temperature_bed_raw = adc_values[2];
|
current_temperature_bed_raw = adc_values[2];
|
||||||
current_temperature_raw_pinda = adc_values[3];
|
current_temperature_raw_pinda = adc_values[3];
|
||||||
current_voltage_raw_pwr = adc_values[4];
|
current_voltage_raw_pwr = adc_values[4];
|
||||||
|
#ifdef AMBIENT_THERMISTOR
|
||||||
current_temperature_raw_ambient = adc_values[5];
|
current_temperature_raw_ambient = adc_values[5];
|
||||||
|
#endif //AMBIENT_THERMISTOR
|
||||||
current_voltage_raw_bed = adc_values[6];
|
current_voltage_raw_bed = adc_values[6];
|
||||||
temp_meas_ready = true;
|
temp_meas_ready = true;
|
||||||
}
|
}
|
||||||
|
@ -1895,7 +1913,9 @@ ISR(TIMER0_COMPB_vect)
|
||||||
}
|
}
|
||||||
#endif //BABYSTEPPING
|
#endif //BABYSTEPPING
|
||||||
|
|
||||||
|
#if (defined(TACH_0))
|
||||||
check_fans();
|
check_fans();
|
||||||
|
#endif //(defined(TACH_0))
|
||||||
|
|
||||||
_lock = false;
|
_lock = false;
|
||||||
}
|
}
|
||||||
|
@ -1949,6 +1969,7 @@ void check_min_temp_bed()
|
||||||
|
|
||||||
void check_min_temp()
|
void check_min_temp()
|
||||||
{
|
{
|
||||||
|
#ifdef AMBIENT_THERMISTOR
|
||||||
static uint8_t heat_cycles = 0;
|
static uint8_t heat_cycles = 0;
|
||||||
if (current_temperature_raw_ambient > OVERSAMPLENR*MINTEMP_MINAMBIENT_RAW)
|
if (current_temperature_raw_ambient > OVERSAMPLENR*MINTEMP_MINAMBIENT_RAW)
|
||||||
{
|
{
|
||||||
|
@ -1965,10 +1986,12 @@ void check_min_temp()
|
||||||
heat_cycles = 0;
|
heat_cycles = 0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#endif //AMBIENT_THERMISTOR
|
||||||
check_min_temp_heater0();
|
check_min_temp_heater0();
|
||||||
check_min_temp_bed();
|
check_min_temp_bed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if (defined(TACH_0))
|
||||||
void check_fans() {
|
void check_fans() {
|
||||||
if (READ(TACH_0) != fan_state[0]) {
|
if (READ(TACH_0) != fan_state[0]) {
|
||||||
fan_edge_counter[0] ++;
|
fan_edge_counter[0] ++;
|
||||||
|
@ -1979,6 +2002,7 @@ void check_fans() {
|
||||||
// fan_state[1] = !fan_state[1];
|
// fan_state[1] = !fan_state[1];
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
|
#endif //TACH_0
|
||||||
|
|
||||||
#ifdef PIDTEMP
|
#ifdef PIDTEMP
|
||||||
// Apply the scale factors to the PID values
|
// Apply the scale factors to the PID values
|
||||||
|
|
|
@ -226,13 +226,20 @@ void PID_autotune(float temp, int extruder, int ncycles);
|
||||||
void setExtruderAutoFanState(int pin, bool state);
|
void setExtruderAutoFanState(int pin, bool state);
|
||||||
void checkExtruderAutoFans();
|
void checkExtruderAutoFans();
|
||||||
|
|
||||||
|
|
||||||
|
#if (defined(TACH_0))
|
||||||
|
|
||||||
void countFanSpeed();
|
void countFanSpeed();
|
||||||
void checkFanSpeed();
|
void checkFanSpeed();
|
||||||
void fanSpeedError(unsigned char _fan);
|
void fanSpeedError(unsigned char _fan);
|
||||||
|
|
||||||
void check_fans();
|
void check_fans();
|
||||||
|
|
||||||
|
#endif //(defined(TACH_0))
|
||||||
|
|
||||||
void check_min_temp();
|
void check_min_temp();
|
||||||
void check_max_temp();
|
void check_max_temp();
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -121,8 +121,10 @@ extern void fsensor_unblock();
|
||||||
extern bool fsensor_enable();
|
extern bool fsensor_enable();
|
||||||
extern void fsensor_disable();
|
extern void fsensor_disable();
|
||||||
|
|
||||||
|
#ifdef TMC2130
|
||||||
extern void crashdet_enable();
|
extern void crashdet_enable();
|
||||||
extern void crashdet_disable();
|
extern void crashdet_disable();
|
||||||
|
#endif //TMC2130
|
||||||
|
|
||||||
|
|
||||||
#ifdef SNMM
|
#ifdef SNMM
|
||||||
|
@ -186,7 +188,6 @@ static void lcd_main_menu();
|
||||||
static void lcd_tune_menu();
|
static void lcd_tune_menu();
|
||||||
static void lcd_prepare_menu();
|
static void lcd_prepare_menu();
|
||||||
//static void lcd_move_menu();
|
//static void lcd_move_menu();
|
||||||
static void lcd_crash_menu();
|
|
||||||
static void lcd_settings_menu();
|
static void lcd_settings_menu();
|
||||||
static void lcd_calibration_menu();
|
static void lcd_calibration_menu();
|
||||||
static void lcd_language_menu();
|
static void lcd_language_menu();
|
||||||
|
@ -202,7 +203,9 @@ static void prusa_stat_temperatures();
|
||||||
static void prusa_stat_printinfo();
|
static void prusa_stat_printinfo();
|
||||||
static void lcd_farm_no();
|
static void lcd_farm_no();
|
||||||
static void lcd_menu_extruder_info();
|
static void lcd_menu_extruder_info();
|
||||||
|
#ifdef TMC2130
|
||||||
static void lcd_menu_fails_stats();
|
static void lcd_menu_fails_stats();
|
||||||
|
#endif //TMC2130
|
||||||
|
|
||||||
void lcd_finishstatus();
|
void lcd_finishstatus();
|
||||||
|
|
||||||
|
@ -1529,6 +1532,7 @@ static void lcd_menu_extruder_info()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef TMC2130
|
||||||
static void lcd_menu_fails_stats_total()
|
static void lcd_menu_fails_stats_total()
|
||||||
{
|
{
|
||||||
//01234567890123456789
|
//01234567890123456789
|
||||||
|
@ -1579,6 +1583,7 @@ static void lcd_menu_fails_stats()
|
||||||
MENU_ITEM(submenu, PSTR("Total"), lcd_menu_fails_stats_total);
|
MENU_ITEM(submenu, PSTR("Total"), lcd_menu_fails_stats_total);
|
||||||
END_MENU();
|
END_MENU();
|
||||||
}
|
}
|
||||||
|
#endif //TMC2130
|
||||||
|
|
||||||
|
|
||||||
#ifdef DEBUG_BUILD
|
#ifdef DEBUG_BUILD
|
||||||
|
@ -1601,8 +1606,13 @@ static void lcd_menu_debug()
|
||||||
static void lcd_menu_temperatures()
|
static void lcd_menu_temperatures()
|
||||||
{
|
{
|
||||||
fprintf_P(lcdout, PSTR(ESC_H(1,0)"Nozzle: %d%c" ESC_H(1,1)"Bed: %d%c"), (int)current_temperature[0], '\x01', (int)current_temperature_bed, '\x01');
|
fprintf_P(lcdout, PSTR(ESC_H(1,0)"Nozzle: %d%c" ESC_H(1,1)"Bed: %d%c"), (int)current_temperature[0], '\x01', (int)current_temperature_bed, '\x01');
|
||||||
|
#ifdef AMBIENT_THERMISTOR
|
||||||
fprintf_P(lcdout, PSTR(ESC_H(1,2)"Ambient: %d%c" ESC_H(1,3)"PINDA: %d%c"), (int)current_temperature_ambient, '\x01', (int)current_temperature_pinda, '\x01');
|
fprintf_P(lcdout, PSTR(ESC_H(1,2)"Ambient: %d%c" ESC_H(1,3)"PINDA: %d%c"), (int)current_temperature_ambient, '\x01', (int)current_temperature_pinda, '\x01');
|
||||||
if (lcd_clicked())
|
#else //AMBIENT_THERMISTOR
|
||||||
|
fprintf_P(lcdout, PSTR(ESC_H(1,2)"PINDA: %d%c"), (int)current_temperature_pinda, '\x01');
|
||||||
|
#endif //AMBIENT_THERMISTOR
|
||||||
|
|
||||||
|
if (lcd_clicked())
|
||||||
{
|
{
|
||||||
lcd_quick_feedback();
|
lcd_quick_feedback();
|
||||||
lcd_return_to_status();
|
lcd_return_to_status();
|
||||||
|
@ -3339,6 +3349,7 @@ static void lcd_sort_type_set() {
|
||||||
}
|
}
|
||||||
#endif //SDCARD_SORT_ALPHA
|
#endif //SDCARD_SORT_ALPHA
|
||||||
|
|
||||||
|
#ifdef TMC2130
|
||||||
static void lcd_crash_mode_info()
|
static void lcd_crash_mode_info()
|
||||||
{
|
{
|
||||||
lcd_update_enable(true);
|
lcd_update_enable(true);
|
||||||
|
@ -3370,6 +3381,7 @@ static void lcd_crash_mode_info2()
|
||||||
else lcd_goto_menu(lcd_settings_menu, 14, true, true);
|
else lcd_goto_menu(lcd_settings_menu, 14, true, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif //TMC2130
|
||||||
|
|
||||||
static void lcd_filament_autoload_info()
|
static void lcd_filament_autoload_info()
|
||||||
{
|
{
|
||||||
|
@ -3401,10 +3413,13 @@ static void lcd_silent_mode_set() {
|
||||||
sei();
|
sei();
|
||||||
#endif //TMC2130
|
#endif //TMC2130
|
||||||
digipot_init();
|
digipot_init();
|
||||||
|
#ifdef TMC2130
|
||||||
if (CrashDetectMenu && SilentModeMenu)
|
if (CrashDetectMenu && SilentModeMenu)
|
||||||
lcd_goto_menu(lcd_crash_mode_info2);
|
lcd_goto_menu(lcd_crash_mode_info2);
|
||||||
|
#endif //TMC2130
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef TMC2130
|
||||||
static void lcd_crash_mode_set()
|
static void lcd_crash_mode_set()
|
||||||
{
|
{
|
||||||
CrashDetectMenu = !CrashDetectMenu; //set also from crashdet_enable() and crashdet_disable()
|
CrashDetectMenu = !CrashDetectMenu; //set also from crashdet_enable() and crashdet_disable()
|
||||||
|
@ -3417,6 +3432,8 @@ static void lcd_crash_mode_set()
|
||||||
else lcd_goto_menu(lcd_settings_menu, 9);
|
else lcd_goto_menu(lcd_settings_menu, 9);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#endif //TMC2130
|
||||||
|
|
||||||
|
|
||||||
static void lcd_set_lang(unsigned char lang) {
|
static void lcd_set_lang(unsigned char lang) {
|
||||||
lang_selected = lang;
|
lang_selected = lang;
|
||||||
|
@ -3831,10 +3848,6 @@ void lcd_wizard(int state) {
|
||||||
lcd_update(2);
|
lcd_update(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void lcd_crash_menu()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void lcd_settings_menu()
|
static void lcd_settings_menu()
|
||||||
|
@ -3886,6 +3899,7 @@ static void lcd_settings_menu()
|
||||||
MENU_ITEM(function, MSG_FANS_CHECK_OFF, lcd_set_fan_check);
|
MENU_ITEM(function, MSG_FANS_CHECK_OFF, lcd_set_fan_check);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef TMC2130
|
||||||
if (SilentModeMenu == 0) MENU_ITEM(function, MSG_SILENT_MODE_OFF, lcd_silent_mode_set);
|
if (SilentModeMenu == 0) MENU_ITEM(function, MSG_SILENT_MODE_OFF, lcd_silent_mode_set);
|
||||||
else MENU_ITEM(function, MSG_SILENT_MODE_ON, lcd_silent_mode_set);
|
else MENU_ITEM(function, MSG_SILENT_MODE_ON, lcd_silent_mode_set);
|
||||||
if (SilentModeMenu == 0)
|
if (SilentModeMenu == 0)
|
||||||
|
@ -3894,6 +3908,7 @@ static void lcd_settings_menu()
|
||||||
else MENU_ITEM(function, MSG_CRASHDETECT_ON, lcd_crash_mode_set);
|
else MENU_ITEM(function, MSG_CRASHDETECT_ON, lcd_crash_mode_set);
|
||||||
}
|
}
|
||||||
else MENU_ITEM(submenu, MSG_CRASHDETECT_NA, lcd_crash_mode_info);
|
else MENU_ITEM(submenu, MSG_CRASHDETECT_NA, lcd_crash_mode_info);
|
||||||
|
#endif //TMC2130
|
||||||
|
|
||||||
if (temp_cal_active == false) {
|
if (temp_cal_active == false) {
|
||||||
MENU_ITEM(function, MSG_TEMP_CALIBRATION_OFF, lcd_temp_calibration_set);
|
MENU_ITEM(function, MSG_TEMP_CALIBRATION_OFF, lcd_temp_calibration_set);
|
||||||
|
@ -5162,7 +5177,9 @@ static void lcd_main_menu()
|
||||||
MENU_ITEM(submenu, MSG_STATISTICS, lcd_menu_statistics);
|
MENU_ITEM(submenu, MSG_STATISTICS, lcd_menu_statistics);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef TMC2130
|
||||||
MENU_ITEM(submenu, PSTR("Fail stats"), lcd_menu_fails_stats);
|
MENU_ITEM(submenu, PSTR("Fail stats"), lcd_menu_fails_stats);
|
||||||
|
#endif //TMC2130
|
||||||
|
|
||||||
MENU_ITEM(submenu, MSG_SUPPORT, lcd_support_menu);
|
MENU_ITEM(submenu, MSG_SUPPORT, lcd_support_menu);
|
||||||
|
|
||||||
|
@ -5242,6 +5259,7 @@ static void lcd_tune_menu()
|
||||||
}
|
}
|
||||||
#endif //DEBUG_DISABLE_FSENSORCHECK
|
#endif //DEBUG_DISABLE_FSENSORCHECK
|
||||||
|
|
||||||
|
#ifdef TMC2130
|
||||||
if (SilentModeMenu == 0) MENU_ITEM(function, MSG_SILENT_MODE_OFF, lcd_silent_mode_set);
|
if (SilentModeMenu == 0) MENU_ITEM(function, MSG_SILENT_MODE_OFF, lcd_silent_mode_set);
|
||||||
else MENU_ITEM(function, MSG_SILENT_MODE_ON, lcd_silent_mode_set);
|
else MENU_ITEM(function, MSG_SILENT_MODE_ON, lcd_silent_mode_set);
|
||||||
|
|
||||||
|
@ -5251,6 +5269,7 @@ static void lcd_tune_menu()
|
||||||
else MENU_ITEM(function, MSG_CRASHDETECT_ON, lcd_crash_mode_set);
|
else MENU_ITEM(function, MSG_CRASHDETECT_ON, lcd_crash_mode_set);
|
||||||
}
|
}
|
||||||
else MENU_ITEM(submenu, MSG_CRASHDETECT_NA, lcd_crash_mode_info);
|
else MENU_ITEM(submenu, MSG_CRASHDETECT_NA, lcd_crash_mode_info);
|
||||||
|
#endif //TMC2130
|
||||||
|
|
||||||
END_MENU();
|
END_MENU();
|
||||||
}
|
}
|
||||||
|
|
466
Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h
Normal file
466
Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h
Normal file
|
@ -0,0 +1,466 @@
|
||||||
|
#ifndef CONFIGURATION_PRUSA_H
|
||||||
|
#define CONFIGURATION_PRUSA_H
|
||||||
|
|
||||||
|
/*------------------------------------
|
||||||
|
GENERAL SETTINGS
|
||||||
|
*------------------------------------*/
|
||||||
|
|
||||||
|
// Printer revision
|
||||||
|
#define FILAMENT_SIZE "1_75mm_MK25"
|
||||||
|
#define NOZZLE_TYPE "E3Dv6full"
|
||||||
|
|
||||||
|
// Developer flag
|
||||||
|
#define DEVELOPER
|
||||||
|
|
||||||
|
// Printer name
|
||||||
|
#define CUSTOM_MENDEL_NAME "Prusa i3 MK2.5"
|
||||||
|
|
||||||
|
// Electronics
|
||||||
|
#define MOTHERBOARD BOARD_RAMBO_MINI_1_3
|
||||||
|
|
||||||
|
|
||||||
|
// Uncomment the below for the E3D PT100 temperature sensor (with or without PT100 Amplifier)
|
||||||
|
//#define E3D_PT100_EXTRUDER_WITH_AMP
|
||||||
|
//#define E3D_PT100_EXTRUDER_NO_AMP
|
||||||
|
//#define E3D_PT100_BED_WITH_AMP
|
||||||
|
//#define E3D_PT100_BED_NO_AMP
|
||||||
|
|
||||||
|
|
||||||
|
/*------------------------------------
|
||||||
|
AXIS SETTINGS
|
||||||
|
*------------------------------------*/
|
||||||
|
|
||||||
|
// Steps per unit {X,Y,Z,E}
|
||||||
|
#define DEFAULT_AXIS_STEPS_PER_UNIT {100,100,3200/8,140}
|
||||||
|
|
||||||
|
// Endstop inverting
|
||||||
|
const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
|
||||||
|
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
|
||||||
|
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
|
||||||
|
|
||||||
|
// Direction inverting
|
||||||
|
#define INVERT_X_DIR false // for Mendel set to false, for Orca set to true
|
||||||
|
#define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false
|
||||||
|
#define INVERT_Z_DIR false // for Mendel set to false, for Orca set to true
|
||||||
|
#define INVERT_E0_DIR true // for direct drive extruder v9 set to true, for geared extruder set to false
|
||||||
|
#define INVERT_E1_DIR true // for direct drive extruder v9 set to true, for geared extruder set to false
|
||||||
|
#define INVERT_E2_DIR true // for direct drive extruder v9 set to true, for geared extruder set to false
|
||||||
|
|
||||||
|
// Home position
|
||||||
|
#define MANUAL_X_HOME_POS 0
|
||||||
|
#define MANUAL_Y_HOME_POS -2.2
|
||||||
|
#define MANUAL_Z_HOME_POS 0.2
|
||||||
|
|
||||||
|
// Travel limits after homing
|
||||||
|
#define X_MAX_POS 255
|
||||||
|
#define X_MIN_POS 0
|
||||||
|
#define Y_MAX_POS 210
|
||||||
|
#define Y_MIN_POS -4 //orig -4
|
||||||
|
#define Z_MAX_POS 210
|
||||||
|
#define Z_MIN_POS 0.15
|
||||||
|
|
||||||
|
// Canceled home position
|
||||||
|
#define X_CANCEL_POS 50
|
||||||
|
#define Y_CANCEL_POS 190
|
||||||
|
|
||||||
|
//Pause print position
|
||||||
|
#define X_PAUSE_POS 50
|
||||||
|
#define Y_PAUSE_POS 190
|
||||||
|
#define Z_PAUSE_LIFT 20
|
||||||
|
|
||||||
|
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
|
||||||
|
#define HOMING_FEEDRATE {3000, 3000, 800, 0} // set the homing speeds (mm/min) // 3000 is also valid for stallGuard homing. Valid range: 2200 - 3000
|
||||||
|
|
||||||
|
#define DEFAULT_MAX_FEEDRATE {200, 200, 12, 120} // (mm/sec) max feedrate (M203)
|
||||||
|
#define DEFAULT_MAX_ACCELERATION {1000, 1000, 200, 5000} // (mm/sec^2) max acceleration (M201)
|
||||||
|
|
||||||
|
|
||||||
|
#define DEFAULT_ACCELERATION 1250 // X, Y, Z and E max acceleration in mm/s^2 for printing moves (M204S)
|
||||||
|
#define DEFAULT_RETRACT_ACCELERATION 1250 // X, Y, Z and E max acceleration in mm/s^2 for retracts (M204T)
|
||||||
|
|
||||||
|
#define MANUAL_FEEDRATE {2700, 2700, 1000, 100} // set the speeds for manual moves (mm/min)
|
||||||
|
|
||||||
|
//number of bytes from end of the file to start check
|
||||||
|
#define END_FILE_SECTION 10000
|
||||||
|
|
||||||
|
#define Z_AXIS_ALWAYS_ON 1
|
||||||
|
|
||||||
|
|
||||||
|
//#define DEBUG_BUILD
|
||||||
|
#ifdef DEBUG_BUILD
|
||||||
|
//#define _NO_ASM
|
||||||
|
#define DEBUG_DCODES //D codes
|
||||||
|
#define DEBUG_STACK_MONITOR //Stack monitor in stepper ISR
|
||||||
|
//#define DEBUG_FSENSOR_LOG //Reports fsensor status to serial
|
||||||
|
//#define DEBUG_CRASHDET_COUNTERS //Display crash-detection counters on LCD
|
||||||
|
//#define DEBUG_RESUME_PRINT //Resume/save print debug enable
|
||||||
|
//#define DEBUG_UVLO_AUTOMATIC_RECOVER // Power panic automatic recovery debug output
|
||||||
|
//#define DEBUG_DISABLE_XMINLIMIT //x min limit ignored
|
||||||
|
//#define DEBUG_DISABLE_XMAXLIMIT //x max limit ignored
|
||||||
|
//#define DEBUG_DISABLE_YMINLIMIT //y min limit ignored
|
||||||
|
//#define DEBUG_DISABLE_YMAXLIMIT //y max limit ignored
|
||||||
|
//#define DEBUG_DISABLE_ZMINLIMIT //z min limit ignored
|
||||||
|
//#define DEBUG_DISABLE_ZMAXLIMIT //z max limit ignored
|
||||||
|
#define DEBUG_DISABLE_STARTMSGS //no startup messages
|
||||||
|
//#define DEBUG_DISABLE_MINTEMP //mintemp error ignored
|
||||||
|
//#define DEBUG_DISABLE_SWLIMITS //sw limits ignored
|
||||||
|
//#define DEBUG_DISABLE_LCD_STATUS_LINE //empty four lcd line
|
||||||
|
//#define DEBUG_DISABLE_PREVENT_EXTRUDER //cold extrusion and long extrusion allowed
|
||||||
|
//#define DEBUG_DISABLE_PRUSA_STATISTICS //disable prusa_statistics() mesages
|
||||||
|
//#define DEBUG_XSTEP_DUP_PIN 21 //duplicate x-step output to pin 21 (SCL on P3)
|
||||||
|
//#define DEBUG_YSTEP_DUP_PIN 21 //duplicate y-step output to pin 21 (SCL on P3)
|
||||||
|
//#define DEBUG_BLINK_ACTIVE
|
||||||
|
//#define DEBUG_DISABLE_FANCHECK //disable fan check (no ISR INT7, check disabled)
|
||||||
|
//#define DEBUG_DISABLE_FSENSORCHECK //disable fsensor check (no ISR INT7, check disabled)
|
||||||
|
#define DEBUG_DUMP_TO_2ND_SERIAL //dump received characters to 2nd serial line
|
||||||
|
#define DEBUG_STEPPER_TIMER_MISSED // Stop on stepper timer overflow, beep and display a message.
|
||||||
|
#define PLANNER_DIAGNOSTICS // Show the planner queue status on printer display.
|
||||||
|
#endif /* DEBUG_BUILD */
|
||||||
|
|
||||||
|
|
||||||
|
/*------------------------------------
|
||||||
|
EXTRUDER SETTINGS
|
||||||
|
*------------------------------------*/
|
||||||
|
|
||||||
|
// Mintemps
|
||||||
|
#define HEATER_0_MINTEMP 15
|
||||||
|
#define HEATER_1_MINTEMP 5
|
||||||
|
#define HEATER_2_MINTEMP 5
|
||||||
|
#define BED_MINTEMP 15
|
||||||
|
|
||||||
|
// Maxtemps
|
||||||
|
#if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
|
||||||
|
#define HEATER_0_MAXTEMP 410
|
||||||
|
#else
|
||||||
|
#define HEATER_0_MAXTEMP 305
|
||||||
|
#endif
|
||||||
|
#define HEATER_1_MAXTEMP 305
|
||||||
|
#define HEATER_2_MAXTEMP 305
|
||||||
|
#define BED_MAXTEMP 125
|
||||||
|
|
||||||
|
#if defined(E3D_PT100_EXTRUDER_WITH_AMP) || defined(E3D_PT100_EXTRUDER_NO_AMP)
|
||||||
|
// Define PID constants for extruder with PT100
|
||||||
|
#define DEFAULT_Kp 21.70
|
||||||
|
#define DEFAULT_Ki 1.60
|
||||||
|
#define DEFAULT_Kd 73.76
|
||||||
|
#else
|
||||||
|
// Define PID constants for extruder
|
||||||
|
//#define DEFAULT_Kp 40.925
|
||||||
|
//#define DEFAULT_Ki 4.875
|
||||||
|
//#define DEFAULT_Kd 86.085
|
||||||
|
#define DEFAULT_Kp 16.13
|
||||||
|
#define DEFAULT_Ki 1.1625
|
||||||
|
#define DEFAULT_Kd 56.23
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Extrude mintemp
|
||||||
|
#define EXTRUDE_MINTEMP 190
|
||||||
|
|
||||||
|
// Extruder cooling fans
|
||||||
|
#define EXTRUDER_0_AUTO_FAN_PIN 8
|
||||||
|
#define EXTRUDER_1_AUTO_FAN_PIN -1
|
||||||
|
#define EXTRUDER_2_AUTO_FAN_PIN -1
|
||||||
|
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||||
|
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*------------------------------------
|
||||||
|
LOAD/UNLOAD FILAMENT SETTINGS
|
||||||
|
*------------------------------------*/
|
||||||
|
|
||||||
|
// Load filament commands
|
||||||
|
#define LOAD_FILAMENT_0 "M83"
|
||||||
|
#define LOAD_FILAMENT_1 "G1 E70 F400"
|
||||||
|
#define LOAD_FILAMENT_2 "G1 E40 F100"
|
||||||
|
|
||||||
|
// Unload filament commands
|
||||||
|
#define UNLOAD_FILAMENT_0 "M83"
|
||||||
|
#define UNLOAD_FILAMENT_1 "G1 E-80 F7000"
|
||||||
|
|
||||||
|
/*------------------------------------
|
||||||
|
CHANGE FILAMENT SETTINGS
|
||||||
|
*------------------------------------*/
|
||||||
|
|
||||||
|
// Filament change configuration
|
||||||
|
#define FILAMENTCHANGEENABLE
|
||||||
|
#ifdef FILAMENTCHANGEENABLE
|
||||||
|
#define FILAMENTCHANGE_XPOS 211
|
||||||
|
#define FILAMENTCHANGE_YPOS 0
|
||||||
|
#define FILAMENTCHANGE_ZADD 2
|
||||||
|
#define FILAMENTCHANGE_FIRSTRETRACT -2
|
||||||
|
#define FILAMENTCHANGE_FINALRETRACT -80
|
||||||
|
|
||||||
|
#define FILAMENTCHANGE_FIRSTFEED 70
|
||||||
|
#define FILAMENTCHANGE_FINALFEED 50
|
||||||
|
#define FILAMENTCHANGE_RECFEED 5
|
||||||
|
|
||||||
|
#define FILAMENTCHANGE_XYFEED 50
|
||||||
|
#define FILAMENTCHANGE_EFEED 20
|
||||||
|
//#define FILAMENTCHANGE_RFEED 400
|
||||||
|
#define FILAMENTCHANGE_RFEED 7000 / 60
|
||||||
|
#define FILAMENTCHANGE_EXFEED 2
|
||||||
|
#define FILAMENTCHANGE_ZFEED 15
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*------------------------------------
|
||||||
|
ADDITIONAL FEATURES SETTINGS
|
||||||
|
*------------------------------------*/
|
||||||
|
|
||||||
|
// Define Prusa filament runout sensor
|
||||||
|
//#define FILAMENT_RUNOUT_SUPPORT
|
||||||
|
|
||||||
|
#ifdef FILAMENT_RUNOUT_SUPPORT
|
||||||
|
#define FILAMENT_RUNOUT_SENSOR 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// temperature runaway
|
||||||
|
#define TEMP_RUNAWAY_BED_HYSTERESIS 5
|
||||||
|
#define TEMP_RUNAWAY_BED_TIMEOUT 360
|
||||||
|
|
||||||
|
#define TEMP_RUNAWAY_EXTRUDER_HYSTERESIS 15
|
||||||
|
#define TEMP_RUNAWAY_EXTRUDER_TIMEOUT 45
|
||||||
|
|
||||||
|
/*------------------------------------
|
||||||
|
MOTOR CURRENT SETTINGS
|
||||||
|
*------------------------------------*/
|
||||||
|
|
||||||
|
// Motor Current setting for BIG RAMBo
|
||||||
|
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||||
|
#define DIGIPOT_MOTOR_CURRENT_LOUD {135,135,135,135,135}
|
||||||
|
|
||||||
|
// Motor Current settings for RAMBo mini PWM value = MotorCurrentSetting * 255 / range
|
||||||
|
#if MOTHERBOARD == 200 || MOTHERBOARD == 203 || MOTHERBOARD == 310
|
||||||
|
#define MOTOR_CURRENT_PWM_RANGE 2000
|
||||||
|
#define DEFAULT_PWM_MOTOR_CURRENT {400, 750, 750} // {XY,Z,E}
|
||||||
|
#define DEFAULT_PWM_MOTOR_CURRENT_LOUD {400, 750, 750} // {XY,Z,E}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*------------------------------------
|
||||||
|
PAT9125 SETTINGS
|
||||||
|
*------------------------------------*/
|
||||||
|
|
||||||
|
#define PAT9125_XRES 0
|
||||||
|
#define PAT9125_YRES 255
|
||||||
|
|
||||||
|
/*------------------------------------
|
||||||
|
BED SETTINGS
|
||||||
|
*------------------------------------*/
|
||||||
|
|
||||||
|
// Define Mesh Bed Leveling system to enable it
|
||||||
|
#define MESH_BED_LEVELING
|
||||||
|
#ifdef MESH_BED_LEVELING
|
||||||
|
|
||||||
|
#define MBL_Z_STEP 0.01
|
||||||
|
|
||||||
|
// Mesh definitions
|
||||||
|
#define MESH_MIN_X 35
|
||||||
|
#define MESH_MAX_X 238
|
||||||
|
#define MESH_MIN_Y 6
|
||||||
|
#define MESH_MAX_Y 202
|
||||||
|
|
||||||
|
// Mesh upsample definition
|
||||||
|
#define MESH_NUM_X_POINTS 7
|
||||||
|
#define MESH_NUM_Y_POINTS 7
|
||||||
|
// Mesh measure definition
|
||||||
|
#define MESH_MEAS_NUM_X_POINTS 3
|
||||||
|
#define MESH_MEAS_NUM_Y_POINTS 3
|
||||||
|
|
||||||
|
#define MESH_HOME_Z_CALIB 0.2
|
||||||
|
#define MESH_HOME_Z_SEARCH 5 //Z lift for homing, mesh bed leveling etc.
|
||||||
|
|
||||||
|
#define X_PROBE_OFFSET_FROM_EXTRUDER 23 // Z probe to nozzle X offset: -left +right
|
||||||
|
#define Y_PROBE_OFFSET_FROM_EXTRUDER 5 // Z probe to nozzle Y offset: -front +behind
|
||||||
|
#define Z_PROBE_OFFSET_FROM_EXTRUDER -0.4 // Z probe to nozzle Z offset: -below (always!)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Bed Temperature Control
|
||||||
|
// Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis
|
||||||
|
//
|
||||||
|
// Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder.
|
||||||
|
// If your PID_dT above is the default, and correct for your hardware/configuration, that means 7.689Hz,
|
||||||
|
// which is fine for driving a square wave into a resistive load and does not significantly impact you FET heating.
|
||||||
|
// This also works fine on a Fotek SSR-10DA Solid State Relay into a 250W heater.
|
||||||
|
// If your configuration is significantly different than this and you don't understand the issues involved, you probably
|
||||||
|
// shouldn't use bed PID until someone else verifies your hardware works.
|
||||||
|
// If this is enabled, find your own PID constants below.
|
||||||
|
#define PIDTEMPBED
|
||||||
|
//
|
||||||
|
//#define BED_LIMIT_SWITCHING
|
||||||
|
|
||||||
|
// This sets the max power delivered to the bed, and replaces the HEATER_BED_DUTY_CYCLE_DIVIDER option.
|
||||||
|
// all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis)
|
||||||
|
// setting this to anything other than 255 enables a form of PWM to the bed just like HEATER_BED_DUTY_CYCLE_DIVIDER did,
|
||||||
|
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||||
|
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
|
||||||
|
|
||||||
|
// Bed temperature compensation settings
|
||||||
|
#define BED_OFFSET 10
|
||||||
|
#define BED_OFFSET_START 40
|
||||||
|
#define BED_OFFSET_CENTER 50
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef PIDTEMPBED
|
||||||
|
//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||||
|
//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
|
||||||
|
#if defined(E3D_PT100_BED_WITH_AMP) || defined(E3D_PT100_BED_NO_AMP)
|
||||||
|
// Define PID constants for extruder with PT100
|
||||||
|
#define DEFAULT_bedKp 21.70
|
||||||
|
#define DEFAULT_bedKi 1.60
|
||||||
|
#define DEFAULT_bedKd 73.76
|
||||||
|
#else
|
||||||
|
#define DEFAULT_bedKp 126.13
|
||||||
|
#define DEFAULT_bedKi 4.30
|
||||||
|
#define DEFAULT_bedKd 924.76
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||||
|
//from pidautotune
|
||||||
|
// #define DEFAULT_bedKp 97.1
|
||||||
|
// #define DEFAULT_bedKi 1.41
|
||||||
|
// #define DEFAULT_bedKd 1675.16
|
||||||
|
|
||||||
|
// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
|
||||||
|
#endif // PIDTEMPBED
|
||||||
|
|
||||||
|
|
||||||
|
/*-----------------------------------
|
||||||
|
PREHEAT SETTINGS
|
||||||
|
*------------------------------------*/
|
||||||
|
|
||||||
|
#define FARM_PREHEAT_HOTEND_TEMP 250
|
||||||
|
#define FARM_PREHEAT_HPB_TEMP 40
|
||||||
|
#define FARM_PREHEAT_FAN_SPEED 0
|
||||||
|
|
||||||
|
#define PLA_PREHEAT_HOTEND_TEMP 215
|
||||||
|
#define PLA_PREHEAT_HPB_TEMP 60
|
||||||
|
#define PLA_PREHEAT_FAN_SPEED 0
|
||||||
|
|
||||||
|
#define ABS_PREHEAT_HOTEND_TEMP 255
|
||||||
|
#define ABS_PREHEAT_HPB_TEMP 100
|
||||||
|
#define ABS_PREHEAT_FAN_SPEED 0
|
||||||
|
|
||||||
|
#define HIPS_PREHEAT_HOTEND_TEMP 220
|
||||||
|
#define HIPS_PREHEAT_HPB_TEMP 100
|
||||||
|
#define HIPS_PREHEAT_FAN_SPEED 0
|
||||||
|
|
||||||
|
#define PP_PREHEAT_HOTEND_TEMP 254
|
||||||
|
#define PP_PREHEAT_HPB_TEMP 100
|
||||||
|
#define PP_PREHEAT_FAN_SPEED 0
|
||||||
|
|
||||||
|
#define PET_PREHEAT_HOTEND_TEMP 230
|
||||||
|
#define PET_PREHEAT_HPB_TEMP 85
|
||||||
|
#define PET_PREHEAT_FAN_SPEED 0
|
||||||
|
|
||||||
|
#define FLEX_PREHEAT_HOTEND_TEMP 240
|
||||||
|
#define FLEX_PREHEAT_HPB_TEMP 50
|
||||||
|
#define FLEX_PREHEAT_FAN_SPEED 0
|
||||||
|
|
||||||
|
/*------------------------------------
|
||||||
|
THERMISTORS SETTINGS
|
||||||
|
*------------------------------------*/
|
||||||
|
|
||||||
|
//
|
||||||
|
//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
|
||||||
|
//
|
||||||
|
//// Temperature sensor settings:
|
||||||
|
// -2 is thermocouple with MAX6675 (only for sensor 0)
|
||||||
|
// -1 is thermocouple with AD595
|
||||||
|
// 0 is not used
|
||||||
|
// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
|
||||||
|
// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
|
||||||
|
// 3 is Mendel-parts thermistor (4.7k pullup)
|
||||||
|
// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
|
||||||
|
// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)
|
||||||
|
// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
|
||||||
|
// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
|
||||||
|
// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)
|
||||||
|
// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
|
||||||
|
// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
|
||||||
|
// 10 is 100k RS thermistor 198-961 (4.7k pullup)
|
||||||
|
// 11 is 100k beta 3950 1% thermistor (4.7k pullup)
|
||||||
|
// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
|
||||||
|
// 13 is 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE"
|
||||||
|
// 20 is the PT100 circuit found in the Ultimainboard V2.x
|
||||||
|
// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||||
|
//
|
||||||
|
// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k
|
||||||
|
// (but gives greater accuracy and more stable PID)
|
||||||
|
// 51 is 100k thermistor - EPCOS (1k pullup)
|
||||||
|
// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
|
||||||
|
// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)
|
||||||
|
//
|
||||||
|
// 1047 is Pt1000 with 4k7 pullup
|
||||||
|
// 1010 is Pt1000 with 1k pullup (non standard)
|
||||||
|
// 147 is Pt100 with 4k7 pullup
|
||||||
|
// 148 is E3D Pt100 with 4k7 pullup and no PT100 Amplifier on a MiniRambo 1.3a
|
||||||
|
// 247 is Pt100 with 4k7 pullup and PT100 Amplifier
|
||||||
|
// 110 is Pt100 with 1k pullup (non standard)
|
||||||
|
|
||||||
|
#if defined(E3D_PT100_EXTRUDER_WITH_AMP)
|
||||||
|
#define TEMP_SENSOR_0 247
|
||||||
|
#elif defined(E3D_PT100_EXTRUDER_NO_AMP)
|
||||||
|
#define TEMP_SENSOR_0 148
|
||||||
|
#else
|
||||||
|
#define TEMP_SENSOR_0 5
|
||||||
|
#endif
|
||||||
|
#define TEMP_SENSOR_1 0
|
||||||
|
#define TEMP_SENSOR_2 0
|
||||||
|
#if defined(E3D_PT100_BED_WITH_AMP)
|
||||||
|
#define TEMP_SENSOR_BED 247
|
||||||
|
#elif defined(E3D_PT100_BED_NO_AMP)
|
||||||
|
#define TEMP_SENSOR_BED 148
|
||||||
|
#else
|
||||||
|
#define TEMP_SENSOR_BED 1
|
||||||
|
#endif
|
||||||
|
#define TEMP_SENSOR_PINDA 1
|
||||||
|
|
||||||
|
#define STACK_GUARD_TEST_VALUE 0xA2A2
|
||||||
|
|
||||||
|
#define MAX_BED_TEMP_CALIBRATION 50
|
||||||
|
#define MAX_HOTEND_TEMP_CALIBRATION 50
|
||||||
|
|
||||||
|
#define MAX_E_STEPS_PER_UNIT 250
|
||||||
|
#define MIN_E_STEPS_PER_UNIT 100
|
||||||
|
|
||||||
|
#define Z_BABYSTEP_MIN -3999
|
||||||
|
#define Z_BABYSTEP_MAX 0
|
||||||
|
|
||||||
|
#define PINDA_PREHEAT_X 20
|
||||||
|
#define PINDA_PREHEAT_Y 60
|
||||||
|
#define PINDA_PREHEAT_Z 0.15
|
||||||
|
/*
|
||||||
|
#define PINDA_PREHEAT_X 70
|
||||||
|
#define PINDA_PREHEAT_Y -3
|
||||||
|
#define PINDA_PREHEAT_Z 1*/
|
||||||
|
#define PINDA_HEAT_T 120 //time in s
|
||||||
|
|
||||||
|
#define PINDA_MIN_T 50
|
||||||
|
#define PINDA_STEP_T 10
|
||||||
|
#define PINDA_MAX_T 100
|
||||||
|
|
||||||
|
#define PING_TIME 60 //time in s
|
||||||
|
#define PING_TIME_LONG 600 //10 min; used when length of commands buffer > 0 to avoid false triggering when dealing with long gcodes
|
||||||
|
#define PING_ALLERT_PERIOD 60 //time in s
|
||||||
|
|
||||||
|
#define LONG_PRESS_TIME 1000 //time in ms for button long press
|
||||||
|
#define BUTTON_BLANKING_TIME 200 //time in ms for blanking after button release
|
||||||
|
|
||||||
|
#define DEFAULT_PID_TEMP 210
|
||||||
|
|
||||||
|
#define MIN_PRINT_FAN_SPEED 75
|
||||||
|
|
||||||
|
#ifdef SNMM
|
||||||
|
#define DEFAULT_RETRACTION 4 //used for PINDA temp calibration and pause print
|
||||||
|
#else
|
||||||
|
#define DEFAULT_RETRACTION 1 //used for PINDA temp calibration and pause print
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define HEATBED_V2
|
||||||
|
|
||||||
|
#define M600_TIMEOUT 600 //seconds
|
||||||
|
|
||||||
|
//#define SUPPORT_VERBOSITY
|
||||||
|
|
||||||
|
#endif //__CONFIGURATION_PRUSA_H
|
|
@ -40,6 +40,14 @@ const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic o
|
||||||
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
|
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
|
||||||
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
|
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
|
||||||
|
|
||||||
|
// Direction inverting
|
||||||
|
#define INVERT_X_DIR true // for Mendel set to false, for Orca set to true
|
||||||
|
#define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false
|
||||||
|
#define INVERT_Z_DIR true // for Mendel set to false, for Orca set to true
|
||||||
|
#define INVERT_E0_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
|
||||||
|
#define INVERT_E1_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
|
||||||
|
#define INVERT_E2_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
|
||||||
|
|
||||||
// Home position
|
// Home position
|
||||||
#define MANUAL_X_HOME_POS 0
|
#define MANUAL_X_HOME_POS 0
|
||||||
#define MANUAL_Y_HOME_POS -2.2
|
#define MANUAL_Y_HOME_POS -2.2
|
||||||
|
|
Loading…
Reference in a new issue