Discussion of Snapmaker 2.0 Firmware Updates

What leveling process are you using?
I haven’t heard much from SM. I’m guessing Covid19 is hampering their work.

Currently my best proces is:
Do an Auto level, apply an adjustment matrix, tweak using my “Check Level Hot.gcode” file.
I’m finding that the more I’m tweaking the leveling the more it heats up and consequently the more it changes. I have a definite dip in the bed on the front left.

About my “adjustment matrix”: I did an Auto level, then I did a Manual level, tweaked that to ±.02, then took the difference between that and the Auto level. Using the “M421 InJn Qz.zz” you can increment the values in the matrix. I have a file that increments all the matrix values with one pass. You can turn on Auto leveling and then run that file, it does the Auto level, then applies the adjustment matrix. That gets pretty close, then a few individual matrix point tweaks.

I suspect the best bet is to have a “cold adjustment” file and a “hot adjustment” file. Run the cold one when you first start up and then the hot one once you are warm.

This is very tedious I know, hopefully SM can learn how to improve Auto leveling and especially allow hot leveling.

EDIT: Currently the Manual leveling is broken, when I do it I have to move some of those values in the matrix to their correct location. The matrix effectively needs to be mirrored about the X=Y line. So values in (I,J) 0,0 1,1 & 2,2 are correct. 0,2 swaps with 2,0. 1,2 swaps with 2,1. And finally 0,1 swaps with 1,0.

2 Likes

In my experimenting I’ve discovered that you can’t interrupt a “G4” pause. The stop command doesn’t do it. I think it really should. A “M0” or “M1” from the console doesn’t interrupt it, I think that should too. Is this a problem with Marlin or a problem with Snapmakers implementation? @parachvte?

Did you ever get an answer to your question? I’m seeing the same results on my setup as well.

No answer yet. I did register it as an issue on Github.

Latest firmware release states in release notes/bug fixes

“Fixed a bug that home offset is cleared when resetting settings.”

Issue still remains as seen here in the M206 command lines:

Send: M503
Recv: G21 ; (mm)
Recv:
Recv: M200 D1.75
Recv: M92 X400.00 Y400.00 Z400.00 E235.80
Recv: M203 X150.00 Y150.00 Z50.00 E25.00
Recv: M201 X3000.00 Y3000.00 Z100.00 E10000.00
Recv: M204 P1000.00 R1000.00 T1000.00
Recv: M205 B20000.00 S0.00 T0.00 J0.02
Recv: M206 X-17.00 Y-8.00 Z0.00
Recv: M420 S1 Z15.00
Recv: G29 W I0 J0 Z0.00000
Recv: G29 W I1 J0 Z0.00000
Recv: G29 W I2 J0 Z0.00000
Recv: G29 W I0 J1 Z0.00000
Recv: G29 W I1 J1 Z0.00000
Recv: G29 W I2 J1 Z0.00000
Recv: G29 W I0 J2 Z0.00000
Recv: G29 W I1 J2 Z0.00000
Recv: G29 W I2 J2 Z0.00000
Recv: M301 P13.00 I0.10 D17.00
Recv: M851 Z1.00
Recv: M900 K0.08
Recv: M603 L0.00 U60.00
Recv: ok
[…]
Send: M502
Recv: leveling OFF
Recv: leveling OFF
Recv: echo:Hardcoded Default Settings Loaded
Recv: ok
[…]
Send: M503
Recv: G21 ; (mm)
Recv:
Recv: M200 D3.00
Recv: M200 D0
Recv: M92 X400.00 Y400.00 Z400.00 E212.21
Recv: M203 X150.00 Y150.00 Z50.00 E25.00
Recv: M201 X3000.00 Y3000.00 Z100.00 E10000.00
Recv: M204 P1000.00 R1000.00 T1000.00
Recv: M205 B20000.00 S0.00 T0.00 J0.02
Recv: M206 X0.00 Y0.00 Z0.00
Recv: M420 S0 Z0.00
Recv: G29 W I0 J0 Z9.00000
Recv: G29 W I1 J0 Z9.00000
Recv: G29 W I2 J0 Z9.00000
Recv: G29 W I0 J1 Z9.00000
Recv: G29 W I1 J1 Z9.00000
Recv: G29 W I2 J1 Z9.00000
Recv: G29 W I0 J2 Z9.00000
Recv: G29 W I1 J2 Z9.00000
Recv: G29 W I2 J2 Z9.00000
Recv: M301 P13.00 I0.10 D17.00
Recv: M851 Z1.00
Recv: M900 K0.22
Recv: M603 L0.00 U60.00
Recv: ok

Note: The first M503 is right after an upgrade (no bed leveling of any kind performed) of the FW to v1.7.0 and notice that the mesh points are all ZERO. After an M502 all Mesh points have now been set to Z9.0000. Is this another bug or will it cause an issue for someone updating the firmware and then performing a manual level?

Since my bed sheet is already ruined I will flash the FW again and attempt a manual level to see what happens in case it is an issue.

@DroneOn
Appreciate your feedback,this is Scott from Snapmaker.
For the home offset issue, It seems to be a new bug, FW didn’t put the specific home offset(relative to machine size) in Marlin original home offset. Because the FW has to be adapted to 3 kind of machines, and they have different home offset. So we save the 3 different home offset to another position. If you reboot the machine, in boot-up log, you will get correct home offset again.

Regarding to leveling data was erased, the reason is, considering some users have zero specific home offset, we change the EEPROM version to force settings to be reset after upgrading FW 1.7.0.0,and then the specific home offset will be reset to default one relative to the machine size.

With 1.7:
When the TS crashes due to bad GCODE in file, it lets you restart, but the SD directory is not displayed correctly (it’s a different directory) AND the manual movement controls no longer respond. Therefore you have to power cycle to get back to normal. I also didn’t navigate the folders I had on the thumb drive. Some showed correctly and some didn’t.

This version chokes on a GCODE file that worked with 1.6.

We had tested with some G-code files and it’s a bug that TS crashed when parsing some G-code. Sorry for the inconvenience and we will fix it ASAP.

When the TS restarted after crash, it seems like TS did not initialize correctly. With this issue, we will check our codes and find a better solution to fix it. Thanks for your feedback, please stay tuned on our updates.

Hi can you please check for this backlash compensation.

@Edwin

1 Like

1)- It will be also very important to be able to fix bed temperatue when doing manual/auto leveling.
All the 3D printer have this basic feature.

2)- When doing Manual leveling I would like to have the possibility to get back to the current saved position from on of the point leveling and be able to better adjust

2 Likes

Sorry for the late reply. I have asked our firmware engineer, and he said the backlash compensation was not activated now.

1, Will add this option to have the bed heated up before the calibration process. Meanwhile, the coefficient of expansion of the print sheet is 10-5mm / ° C, which is a negligible small value.
Our mechanic engineer are dedicated to find new material for the print sheet and proofing now.
2, If you do the manual calibration, the value of Z-offset will be saved and used until you switch off the machine or do a new calibration process.

Wait! So a manual calibration does not persist across a reboot? That’s troubling news.

The value of Z offset of calibration will remain if you save it by operating the command “M500” until a new calibration process begins.

Unless you’ve changed the GCode; then I’d expect it to clear any manual calibrations that have been done.

Just received my A350 … great machine so far. A couple of suggestions in relation to the software on the machine.

  1. Everything is in English (which is good), but the about page is in Chinese … any chance that could be changed to English as well?

  2. When you finish a 3D print and the machine puts itself into the “home” position the bed sticks out in front of the machine quite considerably … and chance that the "default “home” position could retrace the bed into the machine so that it doesn’t stick out?

Thanks, Marek.

2 Likes

I will forward this to our development team. Thanks for the feedback.

1 Like
  1. We just checked the About page, but it is in English already. Could you post a screenshot of the interface?

  2. The bed sticks out so that users can take off their 3D printed objects of the heat bed more easily. It is designed to be like that :grinning:

1 Like

I think you mean the finish position of the bed after printing.- Its all about your endgcode which is saying Y-Axis go to home-position or so.- you could create your own endgcode with other slicers or edit a file of Snapmaker Luban to do other things at end.
This could things destroy, take care.:
C:\Program Files\Snapmaker Luban\resources\app\resources\CuraEngine\Config\fdmextruder.def.json
Line 66:
“default_value”: “M104 S0\nM140 S0\n;Retract the filament\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM84”,

You have to replace the Y0 by Y100 for example and save it correct.-
No warranty from my side because of your edit!

1 Like

WOW! No warranty if a user changes their end gcode? Does this mean I have no warranty because I use PrusaSlicer with my own end gcode? @xchrisd @Rainie