Snapmaker 2.0 Doesn't honor initial temp settings

I am using Luban and I have noticed that snapmaker ignored the initial layer temperature settings.
Can we get a fix for this please?

Did you verify this in the g-code?

Tile_Water_20200128105133336.gcode (4.6 MB)

The gcode looks good to me (Though I am no expert)
I suppose it’s possible that the UI simply doesn’t reflect the initial settings

The code does show that it changes from 205 down to 195 after the first layer.
Is the Snapmaker not changing the temperature?

Correct, it ignores the initial layer temp

I used the same material settings for this print as the previous gcode
Village_2020012811391680_20200128135015193.gcode (4.0 MB)

Interesting. Any input @Rainie ?

I checked all printing methods (USB, WiFi transfer and print from Luban) and only with the print via Luban instructions the printer is changing the temperature settings. The other two methods ignore it. The M104 lines are in the gcode

So my conclusion is, that the bug is in the Snapmaker 2 firmware. Maybe something with the priority of the manual setting?

Because the TouchScreen is effectively controlling the flow of code to the controller, perhaps it’s a timing issue for when it shows the temperature change. It sees the future temperature change in the code going to the controller and displays it but the controller hasn’t actually executed that code yet therefore you don’t get to see it display the first temp. I’m just making a guess at what’s going on. I’ve got some experiments in mind to try.

I’ve noticed a related issue. When it detect out-of-filament, the Nozzle temp goes to 200 for the rest of the print.

After further experiments and watching I believe the auto calibrate routine turns off or rather suspends all heating while the routine runs. It could be that the bed heating elements interfere with the proximity sensor, maybe the filament heater too.

I find with mine it ignores an M190 command to wait for temperature and just continues on with homing and probing. This happens if I manually insert an M190 before G28 or if it is present in a sliced file from PrusaSlicer as well. The fact that it ignores the heat commands seems to be problematic because my bed is changing shape when heated or the bed mesh is just not working. First layers are all over the place.

It could be that the TouchScreen (TS) is parsing the file and looking ahead so to speak and taking action. @parachvte? How about telling us what’s going on here?

I made a more detailed check of the our problem:

I set the temperatures for initial layer at 210°C, the print temperature at 200°C and then I modified the temperature from the comment / header in the gcode file (see screen shot below).

Then I loaded it on the Snapmaker and what do we see? 205°C (I forgot to load the filament and he even jumped back to 205°C after the loading) (see pics below)

So the Snapmaker reads the headerinfo and ignores all M104 and M190 orders.

1 Like

The touchscreen allows the temperature adjustment during printing when parsing the gcode, and the priority of the temperature set in the gcode was overwritten.
So the temp value of 70 degrees may be covered by the value of 50 degrees.
This is a touchscreen firmware issue and will be fixed in the next version.

You can adjust the temperature by sliding left in the touchscreen to increase the working temp for the initial layer if the temp is not high enough.

Sorry for the inconvenience.


@SchnabsiX You are very close :wink:. Touchscreen ignores the first M104/M109/M140/M190, instead uses the header info (we will correct the header info to reflect the initial layer temperature).

By doing so, we allow user to modify initial temperatures before printing. And later M104/M109/M140/M190 commands are still executed since we may have different temperatures for different layers. Align with this, if you modify temperature during printing, the temperature will be changed immediately, but later when another M104/M109/M140/M190 command comes it will be overwritten by the command.

There are two kinds of needs to adjust temperature, one is to change temperature immediately and no affect later temperature commands, another is to change temperature and overwrite all later temperature commands. We implemented the first one, we will consider if both methods can be presented in TS, in a proper way.