TAZ4 Firmware Modifications for E3Dv6 Hotend
This is kind of an involved process. Just read everything carefully and you should be fine.
Lulzbot has instructions for uploading the firmware here:
You can find your firmware in the software folder on the SD card that came with your printer. If you lost it, you can also download the latest firmware for your printer from Lulzbot:
You will need to make some changes to the Configuration.h file (its in the Marlin folder). Open it with Notepad, then find the section called Thermal Settings. Change TEMP_SENSOR_0 and TEMP_SENSOR_1 to 5. Also change HEATER_0_MAXTEMP and HEATER_1_MAXTEMP to 300. When you are done it should look like this:
//=========================================================================== //=============================Thermal 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) // 60 is 100k Maker's Tool Works Kapton Bed Thermister // // 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) #define TEMP_SENSOR_0 5 #define TEMP_SENSOR_1 5 #define TEMP_SENSOR_2 0 #define TEMP_SENSOR_BED 7 // This makes temp sensor 1 a redundant sensor for sensor 0. If the temperatures difference between these sensors is to high the print will be aborted. //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 // Actual temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 10 // (seconds) #define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. // The minimal temperature defines the temperature below which the heater will not be enabled It is used // to check that the wiring to the thermistor is not broken. // Otherwise this would lead to the heater being powered on all the time. #define HEATER_0_MINTEMP 5 #define HEATER_1_MINTEMP 5 #define HEATER_2_MINTEMP 5 #define BED_MINTEMP 5 // When temperature exceeds max temp, your heater will be switched off. // This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure! // You should use MINTEMP for thermistor short/failure protection. #define HEATER_0_MAXTEMP 300 #define HEATER_1_MAXTEMP 300 #define HEATER_2_MAXTEMP 250 #define BED_MAXTEMP 150
The TAZ uses 24 volt power, but the software limits the current so that it can use a 12 volt heater. If your hotend came with a 24 volt heater cartridge, you will need to change PID_MAX to 255. Otherwise, if it came with a 12 volt cartridge, leave this part alone.
// PID settings: // Comment the following line to disable PID and enable bang-bang. #define PIDTEMP #define BANG_MAX 70 // limits current to nozzle while in bang-bang mode; 255=full current #define PID_MAX 255 // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current #ifdef PIDTEMP //#define PID_DEBUG // Sends debug data to the serial port. //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX #define PID_FUNCTIONAL_RANGE 16 // If the temperature difference between the target temperature and the actual temperature // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. #define PID_INTEGRAL_DRIVE_MAX 70 //limit for the integral term #define K1 0.96 //smoothing factor within the PID #define PID_dT ((OVERSAMPLENR * 8.0)/(F_CPU / 64.0 / 256.0)) //sampling period of the temperature routine
The E3D hotend has a cooling fan that needs to run whenever the hotend is warm. There are two ways to setup the fan.
- Use the existing wires for the layer cooling fan and make some changes to the firmware (you will loose the layer cooling fan).
- Keep the layer cooling fan and run new wires to power the heat sink fan from +24V.
If you choose option 1, then you will need to make the following changes to Configuration_adv.h.
// Extruder Fan Setup // If set to -1 all Extruder fans will be disabled // If set to 1 only EX_FAN_0 will be used as a nozzle cooling fan for Extruder0 // If set to 2 EX_FAN_0 and EX_FAN_1 will be used as nozzle cooling fan and will switch between active nozzles // If set to 3 EX_FAN_0 will be Contorled by M106 S255 and EX_FAN_1 will be controled by M106 P1 S255 // If set to 4 EX_FAN_0 will be used as a nozzle cooling fan and EX_FAN_1 will be used as a heat sink fan #define EXTRUDER_FAN_SETUP 4 #define EX_FAN_0 FAN1_PIN #define EX_FAN_1 FAN_PIN #if defined(EXTRUDER_FAN_SETUP) && EXTRUDER_FAN_SETUP == 4 // Extruder cooling fans // Configure fan pin outputs to automatically turn on/off when the associated // extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE. // Multiple extruders can be assigned to the same pin in which case // the fan will turn on when any selected extruder is above the threshold. #define EXTRUDER_0_AUTO_FAN_PIN EX_FAN_1 #define EXTRUDER_1_AUTO_FAN_PIN EX_FAN_1 #define EXTRUDER_2_AUTO_FAN_PIN -1 #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed #endif
After you upload the firmware, be sure to change the nozzle size in your slicer (most E3Ds come with 0.4mm). In MatterControl its in Settings > Printer > Extruder > Nozzle Diameter. Test the changes by warming up your extruder. The extruder fan should come on a few seconds after the temperature hits 50 degrees. If it does not, shut the heater off immediately.
You should also tighten down the nozzle while the extruder is hot. Warm it up to 260 C and use a socket wrench to make sure the nozzle is snug.