True Bed Leveling (G32) - wykonywany jest gcode zawarty w pliku "bed.g". Celem jest wyrównanie prowadzenia stołu na silnikach. Powinniśmy tak wypoziomować stół aby jego oś była równoległa z osią karetki Z (czyli dwie równoległe płaszczyzny). Wtedy komenda G32 zmierzy w jakiej odległości od głowicy jest stół przy śrubach trapezowych i zniweluje różnice. Zrobi to w taki sposób że silnik FIZYCZNIE (stąd TRUE) wyrównają poziom względem siebie. Aby to działało musisz mieć silniki Z na różnych driverach (ja mam na Z i E1).
Kod: Zaznacz cały
; bed.g
; called to perform automatic bed compensation via G32
;
; generated by RepRapFirmware Configuration Tool v2 on Mon Mar 18 2019 09:38:28 GMT+0100 (czas środkowoeuropejski standardowy)
M561 ; clear any bed transform
M98 Pdeployprobe.g ; deploy mechanical Z probe
G28 ; Home
G30 P0 X40 Y157 Z-99999 ; probe near a leadscrew, half way along Y axis - MIERZY ODLEGŁOŚĆ STOŁU PRZY PIERWSZEJ TRAPEZÓWCE, PUNKTY ZOSTAŁY PODANE Z UWZGLĘDNIENIEM OFFSETU Z PROBE, TO O CZYM CI PISAŁEM
G30 P1 X282 Y157 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors - TO SAMO PRZY DRUGIEJ ORAZ WYKONUJE WYRÓWNANIE
M98 Pretractprobe.g ; retract mechanical Z probe
Ustawienia używane do "
Run Mesh Compensation (G29)" są zawarte w config.g. Zostawiłem trochę więcej pliku byś zobaczył jak mam skonfigurowane te dwa niezależne silniki osi Z. Sama siatka punktów do autolevelingu jest skonfigurowana za pomocą
Kod: Zaznacz cały
M557 X50:250 Y50:250 S50 ; Define mesh grid
Wielkiej filozofii tu nie ma. Punkt początkowy, końcowy i rozdzielczość dla obu osi.
Kod: Zaznacz cały
; Configuration file for Duet WiFi (firmware version 1.21)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v2 on Mon Mar 18 2019 09:38:28 GMT+0100 (czas środkowoeuropejski standardowy)
; General preferences
(...)
; Drives
M569 P0 S1 ; Drive 0 goes forwards
M569 P1 S1 ; Drive 1 goes forwards
M569 P2 S1 ; Drive 2 goes forwards
M569 P3 S0 ; Drive 3 goes backwards
M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation
M92 X80.00 Y80.00 Z400.00 E406.84 ; Set steps per mm
M566 X900.00 Y900.00 Z270.00 E420.00 ; Set maximum instantaneous speed changes (mm/min)
M203 X6000.00 Y6000.00 Z480.00 E4200.00 ; Set maximum speeds (mm/min)
M201 X500.00 Y500.00 Z180.00 E900.00 ; Set accelerations (mm/s^2)
M906 X1000.00 Y1000.00 Z1000.00 E800.00 I30 ; Set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout
; Z motors
M584 X0 Y1 Z2:4 ;two Z motors connected to driver outputs Z and E1
M671 X0:254 Y137:137 S2.5 ;leadscrews at left and right of X axis, in the middle o Y axis
; Axis Limits
M208 X0 Y-12 Z0 S1 ; Set axis minima
M208 X282 Y271 Z250 S0 ; Set axis maxima
; Endstops
M574 X1 Y1 S1 ; Set active high endstops
; Z-Probe
M574 Z1 S2 ; Set endstops controlled by probe
M307 H7 A-1 C-1 D-1 ; Disable heater on PWM channel for BLTouch
M558 P5 H5 F750 T6000 R0 A1 X0 Y0 Z1 ; Set Z probe type to bltouch and the dive height + speeds
G31 P50 X35.0 Y8.0 Z0.842 ; Set Z probe trigger value, offset and trigger height
M557 X50:250 Y50:250 S50 ; Define mesh grid
(...)
No i teraz jak ja chciałem mieć równy, zmapowany stół to wykonywałem takie komendy w tej kolejności:
G32 ; wyrównanie stołu
G28 Z ; zerowanie osi Z po wyrównaniu stołu
G29 ; mapowanie stołu (oczywiście najlepiej rozgrzanego)
Następnie w start gcode miałem tylko Zerowanie osi (G28) a następnie wgrywanie mapy stołu (G29 S1) i już leciał wydruk.
WAŻNE: plik bed.g wygląda u mnie trochę inaczej, chciałem w nim mieć ponowne zerowanie osi Z. Coś mi jednak nie wychodziło. Nie wklejałem tego kawałka kodu. Nie radzę wklejać na pałę mojego kodu do siebie.
Jak działa tak wypoziomowany stół? W moim worklogu jest przykład drukowania pierwszej warstwy. Do póki działało było super. Ale coś zjebał mi się BLtouch. Na chwilę czekam na czujnik pojemnościowy (zwykły oraz P.I.N.D.A. v2, będę sprawdzać oba) i zastanawiam się czy jest sens robienia osi Z na krańcówki (aby drukarka wgl zaczęła działać) do czasu przyjścia przesyłki.
Źródła:
https://betrue3d.dk/bltouch-on-duet-wif ... and-usage/ - Stąd dowiedziałem się najwięcej. Koleś robi i BLtouch "prosty" (bez true bed leveling) jak i ten "skomplikowany" (z użyciem true bed leveling)
https://duet3d.dozuki.com/Wiki/Connecting_a_Z_probe - standardowe źródło
PS: Co do podpisu i wkurwa to mam identyczne odczucia. Super się buduję i widzi że coś działa. Fajne jest rozwiązywanie problemów samemu i z pomocą forum. Ale wkurwia mnie że mogłem ponad rok temu kupić Pruse MK3 i od dawna drukować w zadowalającej jakości. Bo jeśli chodzi o $$$ to sądzę (bo na szczęście nie liczę nigdzie) że już przekroczyłem 4k zł na HEVO.