[First Batch Shipped Out] FAQs of Dual Extrusion 3D Printing Module for Snapmaker 2.0

I have a dual print toolhead from the second batch.
There was a improvement on the feedgear door mechanism but unfortunately it seems not to work. There is a rubber inserted which is not strong enough. The door stays close but i have grinding problems every print full of retraction.

So, print the wedge (mine with +10% in z axis to tight fit)!

Yea, mine didn’t fit. I’ll try +10% and see if that works.

Thanks,
C

It’s not a simple thing to describe, but yes, I’m postulating that either the Z offset or the e steps or both are off for one or both nozzles.

In an ideal world, this would all self-calibrate, but I have never had a 3D printer that is able to do this perfectly.

The G-code I posted above is what I’m still using. I will double-check to make sure and update it if needed. It is a good place to start.

  1. Stop using Luban. Use PrusaSlicer. For now anyway, I have not had good results with Luban.

  2. When connected to the printer, use G-code M503. This will show you all of the printer’s settings stored in EEPROM. Make a copy of this and keep it in a safe place in case you need to refer to it later or go back to previous settings.

  3. First, you need to calibrate the e-steps. What are e-steps? The goal is to determine how many ā€œstepsā€ the motor needs to move in order to extrude 1mm of filament. The printer’s calculations are based on pushing a certain length of filament, but if your steps are off, you may be pushing too much or too little in terms of length.

For my printer, the e-steps are different between the two nozzles. You can read about calibrating the e-steps here: https://teachingtechyt.github.io/calibration.html#esteps.

To switch between nozzles, use T0 (left) or T1 (right). Then you can follow those instructions for each nozzle. Record the values for each nozzle.

  1. Update the G-code lines that I have above to match your needed e-steps. In the start G-code, it’s:

{if initial_extruder == 0}M92 E672.60081{elsif initial_extruder == 1}M92 E680.07339{endif}

For the tool change G-code, it’s:

{if next_extruder == 0}M92 E672.60081{elsif next_extruder == 1}M92 E680.07339{endif}

In these lines, my left nozzle needs 672.60081 and my right nozzle needs 680.07339.

  1. Why do we have to do this? In an ideal world, the nozzles would extrude identically, but manufacturing tolerances will cause them to be different. But, the Snapmaker firmware doesn’t support separate e-steps for each extruder. (It is possible for them to implement this. That feature is supported by the code base, but they haven’t included that feature for some reason.) So, the only other option is to have your slicer change to the right e-steps for each extruder.

  2. Then, calibrate the z offset. There are two offsets: One for the left nozzle which is the main one, and another which is the right nozzle offset which is ADDED or SUBTRACTED from the left. So it is an offset of the offset. If your nozzles are identical, the second offset would be 0. The left nozzle is listed under setting M206, which you can see when you run M503. For my left nozzle, M206 says ā€œZ0.14ā€

  3. To calibrate the left z offset, the card is not enough. There is a known bug in the current firmware that sets the offset too high even with the card. Instructions are here: https://teachingtechyt.github.io/calibration.html#firstlayer. You will keep changing M206 ZXXX until you have a good result with the left nozzle.

  4. To calibrate the right z offset, that is under M218 when you run M503. My current setting is M218 Z-1.445. That means that for my right nozzle, it needs to be 1.445 mm lower than the left nozzle. Run through the same process as above, but change M218 ZXXX until you have a good first layer with the right nozzle.

  5. Use M500 to save any settings that you have changed for M206 and M218.

That’s it at a high level. Doing these things made all the difference. Of course, you can do more calibration (look at that site I linked to). The more calibration you do, the better your prints will be.

Wedge should be solid pla or petg

Does it really make a difference if you used 676 for both extruders? That’s 0.6% off the exact value, I have difficulties to believe that it’s relevant. Other effects like filament diameter variations will be in the same order and usually do not significantly effect the print… I’d even not be surprised if the error in measurement is larger, i.e. if you’d run calibration 10 times you’d get a spread of results of that order.

1 Like

I tend to agree they are physicaly the same system.

Would have to run more tests to see if difference matter that much.

My understanding is that there are two separate extruder motors, so it is not physically the same system for each nozzle. Also, think of all the parts that go into forcing the filament through the nozzle (motor, gears, electronics, etc.) Each one of those parts has manufacturing tolerances and no part is ever perfect. Manufacturing differences from part to part can also add up between the start of the mechanism and the end.

There is a distinct difference on my setup between the two. Maybe others won’t see the same variance. On my setup, the difference between the 2 is a little over 1%. (Yes, measurements will vary from test to test. I’m doing the best I can. I performed the test 3 times and took the average.) But, let’s say for the sake of discussion that the difference between my 2 extruders is 1%. Over 100mm of filament, that’s 1mm of error. And that’s only over 100mm of filament, which is really not a lot of filament. That error will be magnified over longer prints. With 100mm of filament, that equates to roughly 962mm3 of filament. So, now that 1% is 9.62mm3 of a difference in filament volume.

Of course, e-steps are only one calculation. As you say, you can change the extrusion multiplier in the slicer settings. But, what does the slicer and printer use as a base to make all of it’s calculations? Filament volume. It wants to know that when it asks for 100mm of filament, the extruder is giving 100mm of filament. If you have the wrong volume (aka length of filament), the slicer’s calculations when creating the g-code will all be off.

Some people may not care as much as I do about aesthetically pleasing prints or dimensionally accurate prints. But, the starting point for all extrusion calculations is the e-steps.

To your point about the diameter of the filament, that comes after the e-steps. You will have some filament that is too thick or too thin. I don’t know that I’ve ever seen filament that is exactly 1.75mm in diameter. So, the reason you would use the extrusion multiplier (or tell the slicer the diameter) is to account for the physical filament. If you have filament that is 1.73mm in average diameter, that is the reason to adjust that in the slicer settings. But, the slicer will still count on an extrusion of 100mm of filament being 100mm in length.

In my experience, setting the filament diameter does make a difference in quality and dimensional accuracy. In particular, the tops of prints will be rough if too much filament or have gaps if too little. (The same goes for e-steps.) I take a few measurements of every spool of filament to set the extrusion multiplier in PrusaSlicer.

Should we have to do all this? Of course not. In a perfect world, everything would work perfectly out of the box. But, no individual part (motor, gear, electronic component) or assembly (the entire dual extruder) is perfect.

People don’t have to take this approach if they don’t want to, but I’m trying to help others get better printing experiences. You may not agree with the need to do what I’m suggesting, but you can’t argue that calibrating individual e-steps and individual z-height is a bad thing, especially when someone is having problems.

Yes you can push the accuracies as much as you want. Precision is a never ending pursuit. I personally have my x y z measured object dimensional error is all down to less than a .1mm delta so it can be done.

But it would be a much harder task to detect a 1% volume error than a 1% dimensional error. Considering squish, layer overlap etc.

They are two seperate extruders yes. But they all use the same part numbers.

Made on likely the same day by the same machine so tolerance between the parts isnt a large factor.

Is this logical programming specific to Prusaslicer (I saw you said you use that)?

I use Simplify3D and am not sure if the method would be the same. I presume it’s doable still, but I noticed that the inherit variables can differ between slicers.

Yes, that is specific to PrusaSlicer. But, I checked S3D’s web site. I haven’t tested this, but this should do it. Just add this to your pre tool change script (with your e-step #s):

{IF NEWTOOL=0}M92 E672.60081
{IF NEWTOOL=1}M92 E680.07339

1 Like

Thanks.

Those estep numbers are rather significant. the single extruder was around 212ish.

Interesting.

1 Like

honestly those numbers are right in the range. i suspect major gearing changes from the single nozzle to the dual extruder.

My E steps are equal currently at E669.32 i may re test them after this conversation thread. but isnt on the top of my list currently

Yeah. The dual extruder either uses a higher gear ratio or more precise stepper motors or both so there are more steps per mm.

Thanks Hauke, I had the same feeling. Which leaves me with z offset as the postulated issue. Since my first lines are solid; I’m going to try mounting the supplied filament holder and see if using it as intended vice my filament boxes makes a difference.

I can see how drag can lift the nozzle and that could potentially cause the z offset issues I’m seeing.

No reaction of snapmaker Support yet regarding the broken Pin in my Module…

1 Like

Yes its very possible that’s your issue.

I’d send them an email a day replying to the initial email. Frustrating.

So I contacted support and they were very helpful. They have offered to replace my module because its got manufacturing issues. I was surprised and grateful!

Btw. - my assumption: If you ask support friendly and polite, they answer quickly. If you whine, swear and threaten, they ignore you. If I read the tone that some users here in the forum use, I can very well imagine that the politeness-focused culture in China will make the support people say: weeeellll, let’s put this impolite big nose on the ā€œlaterā€ backlog stack…

3 Likes