Comments (6)
When 4-axis was added, I believe that it basically performs the same iterative correction approach that is used for 2-axis.
Years ago I added the option for 3-axis to specify known stepper-motor coordinates so that you could probe once and calculate the adjustments needed to rotate the plane to the correct position. This was able to take the time to level the bed on a particularly poorly-designed printer I used from 20+ iterations to 2, with the second iteration barely adjusting anything.
The configs suggest this feature also works with 4-axis, but I don't believe that to be true. It works by rotating the bed, and assumes that it is a flat surface. With 4 Z motors it would just rotate the warped surface in space. You would converge quickly, but without actually making the surface as flat as possible.
I believe the method you described matches what I have been thinking might work for 4 axis. I am no mechanical engineer so didn't know whether the materials would actually behave predictably enough to allow this to work. Even if it did not work perfectly, I'm sure it would converge much faster than the current mechanism.
from marlin.
My bed is an 8mm ESG glass with a flatness less than 13 µm. This glass is not fixed to the z axis so that an deformation of the glass is excluded. The glass bed lay on 4 big rubber grommets which are fixed on the z axis. These provide the dimensional compensation and, due to the static friction caused by the large mass, ensure that the glass remains in the XY position.
Yes, it is possible that only 3 of 4 z axis has contact to the glass.
So it is very improtant to ensure that all 4 z axis have contact in front of the alignment.
from marlin.
from marlin.
When I originally wrote quad z support, a company had offered a machine for testing. I did what exists as a draft with no hardware on hand... It apparently was good enough for them as they vanished and never provided hardware to test with... So with no way to test, I had no method to debug any improvements or drive remaining to do so.
Can you write out 2 or 3 example measurements and z motor movements to use as a sanity check?
from marlin.
At moment my USB socket is broken and i can't export the log file as .txt. But i can take some pictures. (new board already ordered) I've recognized that first the approximation works but at some point it becomes worse again.
To calculate the corretion values is much faster than an approximation and works for all quantities between 2 and n Z axis. An uneveness is not under this configuration because this will be handled with auto bed leveling by measuring the mesh. So under consideration that the bed is a perfect surface and the measuring points are on the cross diagonals of the z axis in the same distance to the Center the calculation is much easier, faster and more exact.
from marlin.
Here the requested data from my machine
z_stepper_orientation 0
nozzle_probe_offset {28, 0, -1.9}
z_stepper_align_xy {{62,46},{328,46},{328,344},{62,344}}
G34_max_grade 8
Inerations 10
align_acc 0.01
- Interation:
Z2-Z1=1.22 Z3-Z2=0.95 Z3-Z1=2.17 Z4-Z3=1.69 Z4-Z2=0.74 Z4-Z1=0.49
action: 1:2=1.225 3-2=0.949 3-1=2.174 4-3=1.686 4-2=0.737 4-1=0.284 - Interation:
Z2-Z1=0.40 Z3-Z2=0.58 Z3-Z1=0.98 Z4-Z3=0.72 Z4-Z2=0.14 Z4-Z1=0.26
action: 1:2=0,398 3-2=0.582 3-1=0.980 4-3=0.719 4-2=0.137 4-1=0.261 - Interation:
Z2-Z1=0.27 Z3-Z2=0.01 Z3-Z1=0.28 Z4-Z3=0.03 Z4-Z2=0.02 Z4-Z1=0.25
action: 1:2=0.266 3-2=0.013 3-1=0.279 4-3=0.030 4-2=0.017 4-1=0.249 - Interation:
Z2-Z1=0.09 Z3-Z2=0.10 Z3-Z1=0.00 Z4-Z3=0.04 Z4-Z2=0.06 Z4-Z1=0.03
action: 1:2=0.094 3-2=0.099 3-1=0.005 4-3=0.040 4-2=0.059 4-1=0.035
Decreasing accuracy detected! - Interation:
Z2-Z1=0.23 Z3-Z2=0.09 Z3-Z1=0.14 Z4-Z3=0.01 Z4-Z2=0.08 Z4-Z1=0.15
action: 1:2=0.234 3-2=0.095 3-1=0.140 4-3=0.010 4-2=0.085 4-1=0.150
Decreasing accuracy detected! - Interation:
Z2-Z1=0.10 Z3-Z2=0.18 Z3-Z1=0.08 Z4-Z3=0.04 Z4-Z2=0.22 Z4-Z1=0.12
action: 1:2=0.099 3-2=0.179 3-1=0.081 4-3=0.041 4-2=0.220 4-1=0.121
Decreasing accuracy detected! - Interation:
Z2-Z1=0.29 Z3-Z2=0.09 Z3-Z1=0.19 Z4-Z3=0.17 Z4-Z2=0.27 Z4-Z1=0.02
action: 1:2=0.286 3-2=0.094 3-1=0.192 4-3=0.174 4-2=0.268 4-1=0.017 - Interation:
Z2-Z1=0.03 Z3-Z2=0.06 Z3-Z1=0.04 Z4-Z3=0.09 Z4-Z2=0.16 Z4-Z1=0.13
action: 1:2=0.027 3-2=0.062 3-1=0.036 4-3=0.094 4-2=0.156 4-1=0.130 - Interation:
Z2-Z1=0.11 Z3-Z2=0.07 Z3-Z1=0.04 Z4-Z3=0.02 Z4-Z2=0.04 Z4-Z1=0.07
action: 1:2=0.111 3-2=0.067 3-1=0.043 4-3=0.022 4-2=0.045 4-1=0.066
Decreasing accuracy detected! - Interation:
Z2-Z1=0.10 Z3-Z2=0.08 Z3-Z1=0.02 Z4-Z3=0.06 Z4-Z2=0.14 Z4-Z1=0.04
action: 1:2=0.096 3-2=0.079 3-1=0.017 4-3=0.060 4-2=0.139 4-1=0.043
Decreasing accuracy detected!
ACC: 0.14
from marlin.
Related Issues (20)
- [BUG] Marlin 2.1.2.2 reboots on startup on the Sovol SV06 HOT 5
- [FR] Debugging for other boards/environments HOT 3
- [FR] Adding gcode before/after "preheat" HOT 1
- [BUG] sd read error when starting print from lcd with color_ui HOT 2
- [BUG] MKS_GEN_L extruder fan not working HOT 3
- [FR] Add driver type for MKS SERVO42C motors HOT 2
- [BUG] Probe offset wizard broken when PAUSE_BEFORE_DEPLOY_STOW is enabled HOT 1
- [BUG] Sovol SV06 boot loop with SPEAKER HOT 5
- Dual Y stepper not working HOT 5
- [BUG] tmc2209 motor driver uart not working with skr pro v1.2 HOT 2
- [BUG] Compilation error: MPCTEMP_START defined in dwin.h, but used in temperature.cpp when EXTENSIBLE_UI is enabled HOT 4
- Not sure if code is working with RAMPS 1.4 Shield + LCD HOT 4
- [BUG] ESP3D_WIFISUPPORT Compilation Error, Not working with MKS TinyBee Motherboard HOT 2
- [BUG] Strange behavior of the PWM fans on bugfix-2.1.x MKS Monster8 v2 HOT 3
- [BUG] Freeze_feature does not stop all motors HOT 4
- [FR] Home Offset Here for a specific Axis HOT 2
- [BUG] Dual Z Stepper with dual endstop don't work HOT 38
- I need help with building marlin HOT 1
- [BUG] Marlin 2.1.2.2 Known Issues HOT 1
- [FR] "HotBed" Idle Timeout HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from marlin.