Taz 6 updated to M175 V2 Issues

Hello, I have a Taz 6 and after many years of use, I finally updated to a new tool head. I went with the M175 V2, I also purchased the adapter required to use it with the Taz 6. I followed the instructions, installed it, I actually uninstalled Cura and deleted cache folders and did a fresh install. Upon installation, added the printer with the M175 V2 print head. Updated the firmware as needed, selected the printhead on the actual printer and stored settings.

Printed a couple things to test, seemed totally fine. Later on, I was printing a longer print (about 6 hours) and Cura crashed towards the end of the print. The printer stopped dead in its tracks. I reset everything and attempted to print it again, but started having very odd issues. One time it tried to go home and missed completely, had to shut it off. Once I watched it closely and that didn’t happen, now it will just take a really long time preparing for the print. Like it will have met the target temps for the hot end and bed but just sit there for minutes at a time. Once it finally gets to bed leveling it finishes and then again once up to temp will sit there, sometimes up to 5-6 minutes after already reaching target temp. Sometimes it will then begin to print, other times it just sits indefinitely.

Sorry this is a bit scattered, but I’ve just had so many different issues I’m having a tough time explaining them all clearly. Any help would be much appreciated.


Ok, so got this from the console when it’s stalled:
< [13:56:33] echo:busy: processing
< [13:56:33] T:210.57 /210.00 B:60.05 /60.00 @:54 B@:15 W:4
< [13:56:34] T:211.88 /210.00 B:60.07 /60.00 @:29 B@:12 W:3
< [13:56:35] T:211.98 /210.00 B:60.04 /60.00 @:29 B@:16

I started a print, it heated up, wiped nozzle, and then bed leveled. This took around 5 minutes total. Seemingly a lot slower than before, but at least it’s working. After the bed level, it changed target nozzle temp to 210c and moved to starting position. It then sat there from 6 minutes until I finally killed it at 16 minutes. During that dead time is when that log is from.

Looking at the Gcode for the printer here’s the bit from the point it does bed leveling (I think at least):

G29 ; start auto-leveling sequence

M420 S1 ; enable leveling matrix

M425 Z ; use measured Z backlash for compensation

M425 Z F0 ; turn off measured Z backlash compensation. (if activated in the quality settings, this command will automatically be ignored)

M204 S500 ; restore standard acceleration

G1 X0 Y0 Z15 F5000 ; move up off last probe point

G4 S1 ; pause

M400 ; wait for moves to finish

M117 Heating… ; progress indicator message on LCD

M109 R{material_print_temperature_layer_0} ; wait for extruder to reach printing temp

M190 R{material_bed_temperature_layer_0} ; wait for bed to reach printing temp

G1 Z2 E0 F75 ; prime tiny bit of filament into the nozzle

M117 TAZ 6 M175v2 Printing… ; progress indicator message on LCD

The only spot I see where it actually calls for a pause is the G4 S1 line. I couldn’t find anything on the use of S as a parameter, but I’m assuming it saying pause for 1 second there. From this I can’t see any other criteria that would prevent it from continuing to the next step–it just says reach target temp, which it does repeatedly while staying stuck in that step. Not really sure where to go with this, any ideas?

I had problems with my M175 V2.1 because the PID values in the firmware were so far off that it didn’t make it through the start gcode. Use M303 E0 C8 S200 U where 200 is the target temperature to get new PID values and then add to the start gcode M301 P17.42 I1.22 D62.43 ; Nozzle PID (P24.54 I2.52 D61.75) substituting your values (the comment contains the default firmware values). I picked 200 for the temperature because it is where I print PLA.


Thank you so much! That seemed to improve it greatly. I haven’t ever messed with the g-code before, so I followed your instructions and then opened settings>printers and then went to the startup g-code there and added it as the first line. Is that correct? (it seems so given it’s working much better now)

Would you also mind explaining those commands a little more? Like I entered " M303 E0 C8 S200 U in the console window and it started the PID autotune, but it also gave errors saying certain commands weren’t valid. Once it finished, I saw in the debug where it provides the final PID values, which is what I used for the P, I, and D values at the start of the g-code.

Thanks again so much for the information!

Tested it some more, this definitely seems to have resolved the issue–last 2 prints started printing in about 6 minutes…it still does some odd things with temps and the order it does things is slower than it used to be, but this is lightyears better. Thanks again very much for the fantastic info!

Two URLs I use all the time are https://marlinfw.org/meta/gcode/ and https://reprap.org/wiki/G-code. In this case, see M303 and M301.

Adding the M301 line near the beginning of the start gcode is the correct place. The Universal firmware contains default values for all of the tool heads it supports including the original Standard Extruder V2.1 and the M175 V2.

I created a document (see below) that contains the firmware values expanded into gcode which I can add to the supplied start gcode. I believe a future version of CuraLE will provide similar commands but commented out. I ran PID autotune on each of my tool heads and E-step calibration on most (I used the “sticker value” for my three Standard Extruders).

TAZ_6_Tool_Head_Calibration2.gcode (2.1 KB)

1 Like

M303 is PID autotune obviously,
E0 means tune extruder 0. If you had a dual extruder you might want to do it again for E1.
C8 means do 8 cycles. If you don’t specify how many it will do 5. But my experience is 5 is not enough. I always do 8. And do it from a room temperature start.
S200 is the target temp to tune to. Use whatever temp you plan to print at. If you want to do a tune that is good for multiple temps, just use a temp in the middle of the range.
The U mean to use the result immediately instead of just displaying the values.

1 Like

So there are two ways to implement this PID tuning. What I normally do is just run a command like “M303 E0 C8 S200” without the U. I’ve seen where it seems like the U doesn’t actually make it use the calculated values so I skip it. You’ll get the result when the tune is done. Then I will use the M301 command to re-enter the resulting values into the setup. Or use M304 if tuning the bed PID. Then issue an M500 to save it to EEPROM.

The advantage of doing this way and saving to EEPROM is that the values should stay set and you don’t have to do any editing of the machine start code in Cura. You don’t have to re-slice your files to get the new start code incorporated or hand edit your already sliced g-code files. This should work great if you never change your tool head.

The advantage of doing it @b-morgan’s way is that you can have diffferent values for different tool heads. You can put the values into the sliced files or machine start code for each printer/tool head combination you use and it will pick up the right values as you switch tool heads and print the g-code that was sliced for that tool head.


Hi b-morgan…this is an interesting comment…where do I learn more about the PID values, when and if I need to follow the procedures?

More information at https://reprap.org/wiki/G-code#M301:_Set_PID_parameters including this link, https://reprap.org/wiki/PID_Tuning.

Hopefully, you should find the answer to “when and if” from there.


Thank you @b-morgan and @cdsmith for all of the great info in this thread! Hopefully anyone else that runs into any issues similar will also find this useful. I for one don’t know all the ins and outs of 3d printing, so this was all new information to me and extremely helpful. Thanks again.