From 93400ea4e072b57d267ea9fff7e12b5b02478c0f Mon Sep 17 00:00:00 2001 From: Aaron Yourk Date: Sun, 25 Dec 2016 02:49:34 -0700 Subject: [PATCH] Fix ENCODER steps in Configuration.h Add temp tables for the E3D PT100 with Amplifier in thermistortables.h Make it easier to switch to the PT100 temperature sensor with appropriate PID values for the Extruder. --- Firmware/Configuration.h | 4 +- Firmware/thermistortables.h | 87 +++++++++++++++++++ .../variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h | 31 +++++++ 3 files changed, 120 insertions(+), 2 deletions(-) diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index ca7bdb58d..306ba2e0d 100644 --- a/Firmware/Configuration.h +++ b/Firmware/Configuration.h @@ -455,8 +455,8 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define SDSUPPORT // Enable SD Card Support in Hardware Console //#define SDSLOW // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) #define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -#define ENCODER_PULSES_PER_STEP 2 // Increase if you have a high resolution encoder -#define ENCODER_STEPS_PER_MENU_ITEM 2 // Set according to ENCODER_PULSES_PER_STEP or your liking +#define ENCODER_PULSES_PER_STEP 4 // Increase if you have a high resolution encoder +#define ENCODER_STEPS_PER_MENU_ITEM 1 // Set according to ENCODER_PULSES_PER_STEP or your liking //#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. //#define ULTIPANEL //the UltiPanel as on Thingiverse //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click diff --git a/Firmware/thermistortables.h b/Firmware/thermistortables.h index ac1dea736..2b0f6ee63 100644 --- a/Firmware/thermistortables.h +++ b/Firmware/thermistortables.h @@ -1059,6 +1059,93 @@ const short temptable_147[][2] PROGMEM = { PtLine(200,100,4700) PtLine(250,100,4700) PtLine(300,100,4700) + PtLine(350,100,4700) + PtLine(400,100,4700) + PtLine(450,100,4700) + PtLine(500,100,4700) + PtLine(550,100,4700) + PtLine(600,100,4700) + PtLine(650,100,4700) + PtLine(700,100,4700) + PtLine(750,100,4700) + PtLine(800,100,4700) + PtLine(850,100,4700) + PtLine(900,100,4700) + PtLine(950,100,4700) + PtLine(1000,100,4700) + PtLine(1050,100,4700) + PtLine(1100,100,4700) +}; +#endif +#if (THERMISTORHEATER_0 == 148) || (THERMISTORHEATER_1 == 148) || (THERMISTORHEATER_2 == 148) || (THERMISTORBED == 148) // Pt100 with 4k7 MiniRambo pullup, no Amp. +const short temptable_148[][2] PROGMEM = { +// More raw data values avaliable via http://www.micropik.com/PDF/pt100.pdf +// This information is taken from http://shop.prusa3d.com/forum/improvements-f14/mini-rambo-1-3-and-e3d-with-pt100-t700-s40.html#p20938 +{0,0}, // first two entries are bogus, just to get the heater running +{286,50}, +{469,100}, +{531,150}, +{590,200}, +{649,250}, +{708,300}, +{763,350}, +{819,400}, +{872,450}, +}; +#endif +#if (THERMISTORHEATER_0 == 247) || (THERMISTORHEATER_1 == 247) || (THERMISTORHEATER_2 == 247) || (THERMISTORBED == 247) // Pt100 with 4k7 MiniRambo pullup & PT100 Amplifier +const short temptable_247[][2] PROGMEM = { +// Calculated from Bob-the-Kuhn's PT100 calculator listed in https://github.com/MarlinFirmware/Marlin/issues/5543 +// and the table provided by E3D at http://wiki.e3d-online.com/wiki/E3D_PT100_Amplifier_Documentation#Output_Characteristics. +{ 0 * OVERSAMPLENR, 0 }, +{ 244 * OVERSAMPLENR, 1 }, +{ 252 * OVERSAMPLENR, 10 }, +{ 262 * OVERSAMPLENR, 20 }, +{ 270 * OVERSAMPLENR, 30 }, +{ 278 * OVERSAMPLENR, 40 }, +{ 286 * OVERSAMPLENR, 50 }, +{ 294 * OVERSAMPLENR, 60 }, +{ 302 * OVERSAMPLENR, 70 }, +{ 310 * OVERSAMPLENR, 80 }, +{ 318 * OVERSAMPLENR, 90 }, +{ 326 * OVERSAMPLENR, 100 }, +{ 334 * OVERSAMPLENR, 110 }, +{ 344 * OVERSAMPLENR, 120 }, +{ 352 * OVERSAMPLENR, 130 }, +{ 358 * OVERSAMPLENR, 140 }, +{ 366 * OVERSAMPLENR, 150 }, +{ 374 * OVERSAMPLENR, 160 }, +{ 382 * OVERSAMPLENR, 170 }, +{ 390 * OVERSAMPLENR, 180 }, +{ 398 * OVERSAMPLENR, 190 }, +{ 406 * OVERSAMPLENR, 200 }, +{ 414 * OVERSAMPLENR, 210 }, +{ 422 * OVERSAMPLENR, 220 }, +{ 430 * OVERSAMPLENR, 230 }, +{ 436 * OVERSAMPLENR, 240 }, +{ 444 * OVERSAMPLENR, 250 }, +{ 452 * OVERSAMPLENR, 260 }, +{ 458 * OVERSAMPLENR, 270 }, +{ 466 * OVERSAMPLENR, 280 }, +{ 474 * OVERSAMPLENR, 290 }, +{ 480 * OVERSAMPLENR, 300 }, +{ 488 * OVERSAMPLENR, 310 }, +{ 496 * OVERSAMPLENR, 320 }, +{ 504 * OVERSAMPLENR, 330 }, +{ 510 * OVERSAMPLENR, 340 }, +{ 518 * OVERSAMPLENR, 350 }, +{ 524 * OVERSAMPLENR, 360 }, +{ 532 * OVERSAMPLENR, 370 }, +{ 538 * OVERSAMPLENR, 380 }, +{ 546 * OVERSAMPLENR, 390 }, +{ 554 * OVERSAMPLENR, 400 }, +{ 622 * OVERSAMPLENR, 500 }, +{ 688 * OVERSAMPLENR, 600 }, +{ 749 * OVERSAMPLENR, 700 }, +{ 809 * OVERSAMPLENR, 800 }, +{ 865 * OVERSAMPLENR, 900 }, +{ 919 * OVERSAMPLENR, 1000 }, +{ 969 * OVERSAMPLENR, 1100 }, }; #endif #if (THERMISTORHEATER_0 == 1010) || (THERMISTORHEATER_1 == 1010) || (THERMISTORHEATER_2 == 1010) || (THERMISTORBED == 1010) // Pt1000 with 1k0 pullup diff --git a/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h index c7e3ecb8a..43973fb1c 100644 --- a/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h @@ -18,6 +18,12 @@ GENERAL SETTINGS // 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 @@ -73,15 +79,26 @@ EXTRUDER SETTINGS #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 150 +#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 +#endif // Extrude mintemp #define EXTRUDE_MINTEMP 130 @@ -305,12 +322,26 @@ THERMISTORS SETTINGS // 1047 is Pt1000 with 4k7 pullup // 1010 is Pt1000 with 1k pullup (non standard) // 147 is Pt100 with 4k7 pullup +// 148 is Pt100 with 4k7 pullup and no PT100 Amplifier (in case type 147 doesn't work) +// 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 147 +#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 147 +#else #define TEMP_SENSOR_BED 1 +#endif #endif //__CONFIGURATION_PRUSA_H