Hi, I have a problem with the bed leveling on my SV04 and I have narrowed the problem down to a twisted x-axis. In my firmware I have changed between ENABLE_LEVELING_AFTER_G28 and RESTORE_LEVELING_AFTER_G28 with various combinations of G28, G34 and G29 (bilinear). When I place a finger on the z-axis I can feel that both z-axis move independently from each other on the first layer. However, the first layer is higher on one the left side and lower on the right. The only thing that I have found is that some people seems to have a problem with a twisted x-axis and this conclution have I also landed on. From my knowledge it seems that M423 X_AXIS_TWIST_COMPENSATION is not supported on the SV04, I am running johncarlson21 firmware with some tweaks. Is there someone that can guide me to any solution or if it is possible to edit Marlin to add this feature?
Hi,
presuming that you already have checked & adjusted all mechanical components of your SV04 (e.g. bearing rollers, removed dirt on gantry, fixed screws etc.) & tested levelling with disabled mesh compensation (M420 S0) it is quite a project to add X_AXIS_TWIST_COMPENSATION to the SV04 firmware. It could be done by merging all source code blocks that contain the string #if ENABLED(X_AXIS_TWIST_COMPENSATION & into the very position of the corresponding source code files of your current firmware or copying the complete file, if it is new. Additionally, X_AXIS_TWIST_COMPENSATION has to be enabled in the Configuration_adv.h file.
Things above are the easy part that makes G-Code M423 available for a host session. Transferring the guided X-Twist compensation procedure which exist for LCD display only to the SV04 touchdisplay will be more challenging…
Hi again,
my current firmware update v1.14.4 has just been released. It is available in my GitHub repository.
I merged M423 “X Twist Compensation” basically as described above. The compensation process is currently not supported via the display screen. M423 can be called via host console e.g. by using Printrun/Pronterface & USB-cable.
The compensation process consists of nine individual steps which are described here in the Marlin LCD user interface source code. Touch display integration will be implemented in a later release.
Hi,
Thanks for the integration of M423. However, after connecting the SV04 to my laptop via Pronterface and typing M423 in the terminal it echoes Unknown command. Other commands works as expected. I did not change anything before compiling the firmware v1.14.4 display v1.14.3.
Hi again,
thanks for letting me know. I have to apologize for not running the first test before announcing the feature in my release…
Well, this is what went wrong: In file “Configuration_adv.h” the X_AXIS_TWIST_COMPENSATION definitions were omitted due to missing preconditions. Therefore building the firmware went smooth without any warning - I should have know better…
After moving the X_AXIS_TWIST_COMPENSATION definition block in file “Configuration_adv.h” & some minor adjustments I had a successful build, that responded to the M423 command in my console test.
The update will be as v1.14.5 in my GitHub repository this evening.
Did you ever think of implementing UBL where you could adjust each point? I used a cheap ender 3 v3 se recently that has that ability and it is very nice.
I used Pronterface and manually added some points, M423 X0 Z0, M423 X1 Z0.05, M423 X2 Z0.10 for instance. You need to first start by defining the spaces in the X-axis using M423 X0 I50. Where the I value is X-axis length divided by the amount of points you want. Hope this works.
I typed in M423 X0 I50 and it said “?(Z) required”
It seems with that figure for I that there would be 5 or 6 points. is the “X0” really supposed to be A0? As the X starting point?
So then do I go to these points on the bed and put z at 0 ond see how much I need to go up and down to get proper bed clearance and then put that compensation figure in for M423 X0 Z(whatever I measure)?