Vibration compensation

Dear J1 users,

I’ve been having a look at the difference in the START G-CODE between Luban v4.7.2 and the Cura profile/plugin.
Surprisingly, I’ve noticed what I consider a major difference with the additional M593 command in the Cura start gcode compared to Luban.

Cura: M593 P1 F50 => F50 is to vibration compensation of 50 Hz. The P1 parameter is undocumented and is possibly a proprietary parameter from Snapmaker.

Luban: Not a single M593 command through the gcode file.

Therefore my question: How is the vibration compensation handled on the J1?

I know there is the calibration you can perform and it likely stores some values in the internal memory of the printer.

To investigated, I decided to print the Ringing model found on the Marlin web site. I used the Vase/Spiralize mode but I did not run the script to change the vibration compensation with the layers.

For both Luban and Cura, the wavy gap was fused, which should not be the case with a well calibrated printer.
Then, I ran the test again on Cura with the script to change the vibration compensation in function of the layer height. I encountered a bug in the firmware which is described here. After implementing a simple workaround in the script, the result of the calibration test was a vibration frequency of 21.5 Hz. A last print with this new setting (M593 P1 F21.5) gave the expected result for my config.

Given these results, I’m just wondering if the vibration compensation from the vibration calibration is used at all in Luban? Isn’t it assuming a default correction of 50Hz?
Why the Cura START G-CODE is defaulted to 50Hz? Obviously, when using Cura, the values stored in the printer memory are not used.

Does anyone has any opinion or could provide a better insight on how this vibration compensation is handled on the J1?

Thanks in advance.

1 Like

For now, I can only state M593 is a standard Marlin gcode: Input Shaping | Marlin Firmware

Can you share what your workaround in the script was for it to print on the J1? I am trying to fine tune my frequency as well. But cannot get the default Marlin script to print due to the firmware bug pointed out.

Got it. For those wanting to manually tune input shaping using the method defined by Marlin, the layer change script below worked for me with PrusaSlicer.

M593 F{(layer_num < 2 ? 15 : 15 + 45.0 * (layer_num - 2) / 297)} ; Hz Input Shaping Test

1 Like