gloomyandy / RepRapFirmware

OO C++ RepRap Firmware
GNU General Public License v3.0
257 stars 61 forks source link

SKR v1.4 Turbo, SBC and Dual Z Motors -> No Compensation #29

Closed tekknix closed 4 years ago

tekknix commented 4 years ago

Hi, i use the same Setup on a Duet Wifi with DueX5 and also on a Duet Maestro. All of the Printers are equipped with 2 Motors for Z and therefore i make use of the Leveling of the X-Axis Gantry before levelling the Bed.

Now my 3rd Printer is equipped with SKR v1.4 Turbo, 5 TMC 2209 Drivers and a Pi 4 as the SBC.

Everything seems to be working beneath 4 Facts:

1st: If in the Configuration

M584 X0 Y1 Z2:4 E3                              ; set drive mapping
M350 X16 Y16 Z16 E16 I1                         ; configure microstepping with interpolation

The Axis behaves normally incl. the Z - Axis

In the original Firmware i configure normally:

M584 X0 Y1 Z2:4 E3                              ; set drive mapping
M350 X16 Y16 Z16:16 E16 I1                         ; configure microstepping with interpolation

This leads to an error-Message if i use it in the LPC-Port cause then Driver 4 will run with "0 Steps"...

2nd: Normally i need to configure the Motor-Amps via M906 for both Z-Motors:

Like here:

M906 X900 Y1000 Z850:850 E1000 I30

But if i do this in the LPC-Port, the Z-Drives will only going down, never up. I have got headache from this

M906 X900 Y1000 Z1000 E1000 I30

3rd: My Bed-Leveling do noting. No Chance that the Gantry will be leveled.

I use this for G32:

M561 ; clear any bed transform
G29 S2
; If the printer hasn't been homed, home it
if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed
    G28 ; home

; Probe the bed and do auto calibration
G1 X5 Y155 F6000        ; go to just above the first probe point
while true
    if iterations = 15 ;max 15 Testdurchläufe
        abort "Zu viele Auto-Kalibrierungs Versuche"
    G30 P0 X47 Y155 Z-99999 ; Spindel Z-1
    if result != 0
        continue
    G30 P1 X275 Y155 Z-99999 S2 ; Spindel Z-2
    if result != 0
        continue
    if move.calibration.initial.deviation <= 0.003 ;max abweichung Je nach Z-Probe anpassen!
        break
    else
        echo "wiederhole Kalibrierung da Abweichung zu hoch (" ^ move.calibration.initial.deviation ^ "mm)"
echo "Auto kalibrierung erfolgreich, Abweichung von: ", move.calibration.initial.deviation ^ "mm"
echo "Happy Printing"
;end loop
G29  ; probe the bed and enable compensation

But the outcome is frustrating:

  | M98 P"0:/macros/Level-Z"Error: Some computed corrections exceed configured limit of 0.50mm: 0.208 -0.792 Error: Some computed corrections exceed configured limit of 0.50mm: 0.210 -0.789 Error: Some computed corrections exceed configured limit of 0.50mm: 0.205 -0.789 Error: Some computed corrections exceed configured limit of 0.50mm: 0.207 -0.790 Error: Some computed corrections exceed configured limit of 0.50mm: 0.212 -0.789 Error: Some computed corrections exceed configured limit of 0.50mm: 0.209 -0.790 Error: Some computed corrections exceed configured limit of 0.50mm: 0.208 -0.792 Error: Some computed corrections exceed configured limit of 0.50mm: 0.213 -0.794 Error: Some computed corrections exceed configured limit of 0.50mm: 0.210 -0.795 Error: Some computed corrections exceed configured limit of 0.50mm: 0.209 -0.792 Error: Some computed corrections exceed configured limit of 0.50mm: 0.208 -0.795 Error: Some computed corrections exceed configured limit of 0.50mm: 0.206 -0.791 Error: Some computed corrections exceed configured limit of 0.50mm: 0.209 -0.792 Error: Some computed corrections exceed configured limit of 0.50mm: 0.208 -0.792 Error: Some computed corrections exceed configured limit of 0.50mm: 0.208 -0.792 Zu viele Auto-Kalibrierungs Versuche
-- | --

Even this one will missed completely between the different tries:

echo "wiederhole Kalibrierung da Abweichung zu hoch (" ^ move.calibration.initial.deviation ^ "mm)"

Any Ideas?

Regards MoS-tekknix