I got the TAZ4 earlier this month. Life got busy but finally got to play with it on the weekend and I have the same problem. The heated bed never reached the desire temperature. Spend the whole weekend to figure it out. I have never owned or used a 3d printer before.
It was a very frustrating two days but I end up learning a lot. I learn a lot about g-code, eeprom setting, flashing firmware, Slic3r setting, embedded g-code and the configuration.h file. I also found some error in Lulzbot’s support pages.
I wanna share what I learn but please excuse me for a very long post.
The reason why the heated bed never reach the desire temperature is because the PID value for the heated bed stored in the firmware were uncalibrated.
If you are not familiar with PID, these are value that allows the printer to stabilize the heated bed’s temperature. With the wrong PID value the heated will never reach the correct and stable temperature. Not only it has to reach the temperature it has to be stable.
Every Lulzbot is supposed to be calibrated and come with the optimum PID value in the firmware.
One can check the printer’s PID value for the heated bed by sending g-code M304 to the printer
One can also figure out the ideal PID value for one’s printer by doing an autotune.
This is outlined in the following support page:
The only problem is there is error in the page in regarding to saving the pid setting in the eeprom which I’ll explain later.
So first I send m304 to my printer and I got the following;
“ok p:20 i:5 d:275”
I then do the auto tune
This is what I got:
PID Autotune finished! Put the Kp, Ki and Kd constants into Configuration.h”
Hey!! That’s way different from what’s in my printer.
Turns out the PID value for the heated bed in my printer is the default value for the Marlin firmware.
My printer never got a set of calibrated value put in.
At this juncture of my adventure I did not know how to flash a firmware or know anything about the file configuration.h.
So I follow the instruction listed in the support page and entered the PID value using the m304 follow by m500 assuming I can just store the proper value in eeprom without flashing a new firmware.
Everything work until you turn off the computer. The PID value never got stored in the eeprom. The support page is in error in regards to storing the heated bed PID value in the eeprom.
The heated bed PID values are NEVER stored in the eeprom. It has to be hard code into the firmware configuration.h file.
If one do a M503 to query what’s stored in the eeprom, one will find out only the extruder PID values are stored in eeprom and not the heated bed PID values.
That took me a full day to figure out!!!
So next thing I have to do is to figure out how to flash the firmware.
Lulzbot have a support page for that:
i do play with arduino so I have no issue with installing and using the ide. I also find out according to the support page that version 1.01 has to be use.
No luck with the 1.01 version downloaded from the lulzbot site. Keep getting compiler error.
Turns out I need to use a new U8glib libraries for the arduino ide. It is actaully included in the SD card that came with the printer. I just copy the U8glin library from the SD card and paste into the arduino library folder and voila it compiled and I was able to flash the firmware.
Also if you search hard enough in their website there is two version of firmware for the TAZ4. One is the 2014Q2 and the other the newer 2014Q3. The only difference after comparing the two is the value for the setting of the Z-axis and Extruder. Anyway both firmware did not have the correct value for my version of TAZ4. I have to manually put in the correct value listed in the paper work that came with my printer.
I also find out why if you use slic3r that it takes forever for the print to start or never start if the PID value is off. If you set bed temperature in the filament setting to a certain value than slic3r will send the following embedded g-code:
“M190 S90 ; wait for bed temperature to be reached”
The print will not start until you can pass this line.
The printer will wait until the bed reach the correct temperature and stabilize for 10 secs before it goes to the next line of the code.
If the PID value are not the right one than obviously it won’t work. Even with the calibrated PID value set in the firmware it still take one to two minutes for the temperature to stabilize once it get within 0.2 degree of the set value.
One way around it is to set all the temperature setting to zero and preheat manually through the LCD or Pronterface. No embedded g-code will be sent and the print will start immediately you hit print. Just make sure the extruder and bed are at the right temperature before you start. You can adjust the temp down manually after the first few layers are print.
Sorry again for the long post.
I have posted a lot of information and please feel free to ask if you need any clarification.
BTW if you have Netflix don’t miss “PRINT THE LEGEND”
FIRST ROBOTICS Western Canada Regional Champion 2014