Delta Printer Kalibrasi Otomatis, Contoh Prism Mini

Dalam artikel sebelumnya , diperlihatkan cara mengkalibrasi printer delta dalam mode manual. Tetapi karena kompleksitas dan kompleksitas pengaturan, diputuskan untuk melakukan kalibrasi otomatis. Karena versi finalnya adalah pada tahap pengujian dan pembuatan, kami masih ingin membuat hidup lebih mudah bagi pelanggan kami, dan untuk semua orang yang membuat printer untuk diri mereka sendiri sesuai dengan skema ini. Selanjutnya, salah satu cara untuk menerapkan kalibrasi otomatis akan dipertimbangkan.
Ada banyak pendekatan, memasang probe yang dapat ditarik pada ejektor dengan microswitch, sensor FSR, sensor Hall, dll. Tetapi sistem ini memiliki kelemahan yang signifikan - mereka mengukur jarak bukan ke nozzle, tetapi langsung ke sensor, ditambah, dalam beberapa kasus, penyelarasan mungkin gagal (jika sensor tidak terletak bukan pada nozzle, perhitungan geometri mungkin dilanggar. Belum lagi keakuratan) .
Pilihan ideal adalah untuk memperbaiki sentuhan nosel itu sendiri di atas meja. Dan di sini Anda bisa menggunakan dua cara:
  • Buat kontak listrik antara HotEnd dan efektor, sehingga HotEnd dapat dipindahkan dan membuka (atau menutup) kontak ketika Anda mengkliknya.
  • Buat kontak listrik antara nosel logam dan meja.

Opsi pertama lebih rumit dalam pembuatan dan stabilitas pekerjaan, tetapi dengan desain yang tepat itu akan memberikan hasil yang stabil permanen, tanpa gerakan tubuh tambahan.
Opsi kedua kurang nyaman digunakan, tetapi mudah diterapkan, dan paling sering kalibrasi jarang diperlukan dan dapat dilakukan sesuai kebutuhan.
Kami akan berbicara tentang metode kedua:


Dari alat yang kita butuhkan:
  1. Aluminium scotch tape (sebenarnya, itu adalah aluminium foil berdasarkan perekat, dan tidak semua jenis kaset penguat di sana)
  2. "Crocodile" - untuk menghubungkan salah satu kontak ke kotak logam hot-end, pada prinsipnya, Anda dapat melakukan dengan klip kertas apa pun, atau memperbaiki ujung kawat dengan memasang atau menyoldernya (keras tapi efektif)
  3. Jepitan kantor
  4. Pin blok 2.54 untuk menghubungkan sensor improvisasi kami ke papan RAMPS 1.4 (atau ke konektor EndStop yang sesuai di papan Anda). Beberapa orang memiliki keriting untuk memasang blok seperti itu, tetapi Anda dapat menemukan blok serupa di unit komputer dengan menghapusnya dari "tweeter" atau tombol.
  5. Aksesori solder, diinginkan untuk memiliki fluks aktif dan besi solder yang kurang kuat.
  6. Kabel, sekitar satu meter.

Cara paling sederhana untuk menerapkan lapisan penghantar arus ke pesawat kerja kami (kaca) adalah stiker dari pita aluminium, tetapi penting untuk menempelkannya secara merata dan menghaluskannya sehingga ada kontak listrik antara pita, itu diperiksa secara mendasar dengan multimeter untuk "dering".

Juga, untuk beralih, Anda harus membuat kawat, seperti yang ditulis sebelumnya, peras salah satu ujungnya menjadi blok 2,54 (atau solder untuk itu), dua ujung lainnya akan diperbaiki pada radiator HotEnd dan di atas meja dengan pita aluminium. Untuk merangkak ke radiator kami mengambil buaya biasa dan menyolder salah satu ujung kawat ke sana, saya menyarankan menggunakan asam untuk kemudahan penyolderan, meskipun saya berhasil dengan pemanasan yang baik dan rosin biasa, tetapi ujung kedua juga dapat disolder ke buaya, tetapi dalam kasus ini ada kemungkinan untuk merusak pita perekat ketika diperbaiki, dan buaya harus cukup besar. Kami bertindak sebagai berikut: mengambil klip kertas dan membersihkannya dari cat (lebih disukai dari semua sisi). Poin penting di sini adalahbahwa kita akan menyolder kawat tembaga ke jepitan logam dengan solder biasa (PIC 61) dan untuk penyolderan yang berhasil sama, kita memerlukan fluks aktif, kami menggunakan asam ortofosfat biasa (asam solder).


Berikut ini adalah foto-foto koneksi ke papan tulis dan ke printer itu sendiri. Ujung-ujung kabel pada printer kami terhubung ke Z-max., Dan dalam firmware perlu untuk menunjukkan apa keadaan normal dari saklar batas (sensor kami, tertutup atau terbuka). Dengan pendekatan ini, sensor terbuka dalam kondisi normal.




Firmware dengan kalibrasi otomatis untuk printer delta dapat diambil dari sini: firmware Marlin Delta dengan pembaruan autokalibrasi. RichCattell
Firmware Pengaturan:
Cohfiguration.h
// Precision for G30 delta autocalibration function
#define AUTOCALIBRATION_PRECISION 0.03 // mm.  ,     0.1.

// Diameter of print bed - this is used to set the distance that autocalibration probes the bed at.   ,        ,     ( ),  ,    (  , ..   )   .
#define BED_DIAMETER 170 // mm

// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool X_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.     


Setelah menghubungkan kabel dan menyesuaikan firmware printer, Anda perlu memulai kalibrasi itu sendiri. Dan inilah poin yang sangat penting bahwa kalibrasi harus dilakukan dari komputer, karena Printer itu sendiri tidak melakukan operasi ini dengan benar. Tampaknya tidak ada cukup memori perangkat dan kalibrasi berakhir di suatu tempat di tengah.
Juga, salah satu fitur kalibrasi otomatis adalah bahwa algoritma secara berurutan memilih parameter geometri, yang dapat memakan waktu cukup lama, terutama jika geometri rusak parah atau parameter awal tidak diatur dengan benar (misalnya, panjang diagonal adalah 150 mm, dan pada kenyataannya 200 mm, dan algoritma dengan langkah yang diberikan akan mengulangi kalibrasi setiap iterasi lagi, pada akhirnya akan dikalibrasi, tetapi akan memakan waktu yang tidak terbayangkan)

Untuk memulai kalibrasi otomatis, sambungkan ke printer melalui USB, dan gunakan program pronterface. Ada tiga jenis kalibrasi:
  • Perintah G30 - mengkalibrasi offset - pada dasarnya mengatur ketinggian ke limit switch.
  • Tim G30A - mengkalibrasi seluruh geometri printer, panjang diagonal, lekukan sakelar batas (tinggi) dan kelengkungan geometri sesuai dengan "Menara" - menara (kemungkinan besar, printer mendukung ketinggian yang berbeda)
  • Tim G29 - yang disebut AutoBedLevel - kalibrasi otomatis kelengkungan tabel. Pada printer delta, ini berfungsi paling benar, dan dimulai segera sebelum pencetakan dimulai pada kode-g awal.

Dengan demikian, dua yang terakhir paling relevan.
Berikut ini adalah daftar konsol printer tanpa kalibrasi awal dan menyalakannya kembali.
Prinsip kalibrasi pendek:
  • Memeriksa / Menyesuaikan Endstop Offset
  • Periksa / Sesuaikan Delta Radius
  • Memeriksa kesalahan geometri menara
  • Seleksi Panjang Diagonal> Memeriksa Geometri Menara> Rekonsiliasi Penghapusan EndStop. Ketika dua parameter pertama berubah, yang ketiga dipilih dan siklus diulang sampai ketiga parameter puas.


Daftar kalibrasi awal - iterasi dari 4 hingga 17 dipotong sejak itu mengulangi tindakan
Connecting...
start
Printer is now online.
echo:Marlin 1.0.0
echo: Last Updated: Jul 31 2015 11:09:21 | Author: (RichCattell, Prism Mini)
Compiled: Jul 31 2015
echo: Free Memory: 1753  PlannerBufferBytes: 1232
echo:Hardcoded Default Settings Loaded
echo:Steps per unit:
echo:  M92 X100.00 Y100.00 Z100.00 E156.00
echo:Maximum feedrates (mm/s):
echo:  M203 X200.00 Y200.00 Z200.00 E200.00
echo:Maximum Acceleration (mm/s2):
echo:  M201 X9000 Y9000 Z9000 E9000
echo:Acceleration: S=acceleration, T=retract acceleration
echo:  M204 S3000.00 T3000.00
echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s),  Z=maximum Z jerk (mm/s),  E=maximum E jerk (mm/s)
echo:  M205 S0.00 T0.00 B20000 X20.00 Z20.00 E20.00
echo:Home offset (mm):
echo:  M206 X0.00 Y0.00 Z0.00
echo:Delta Geometry adjustment:
echo:  M666 A0.000 B0.000 C0.000 I0.000 J0.000 K0.000 U0.000 V0.000 W0.000 R66.00 D154.00 H230.00
echo:Endstop Offsets:
echo:  M666 X0.00 Y0.00 Z0.00
echo:Z-Probe Offset:
echo:  M666 P X0.00 Y0.00 Z0.00
echo:PID settings:
echo:   M301 P15.09 I0.75 D76.13
echo:SD init fail
Setting hotend temperature to 190.000000 degrees Celsius.
Setting bed temperature to 70.000000 degrees Celsius.
>>> g30 a
SENDING:G30 A
Starting Auto Calibration..
Calibration precision: +/-0.100mm
|	Z-Tower			Endstop Offsets
| 	-7.8500			X:0.00 Y:0.00 Z:0.00
| -5.2400		-8.5900		Tower Offsets
| 	-6.8400			A:0.00 b:0.00 C:0.00
| -3.7200		-8.0400		I:0.00 J:0.00 K:0.00
| 	-5.6900			Delta Radius: 66.0000
| X-Tower		Y-Tower		Diagonal Rod: 154.0000



Iteration: 1
Checking/Adjusting endstop offsets //  /   endstop'
			x:-3.6800 (adj:-3.6800) y:-7.9600 (adj:-7.9600) z:-7.7700 (adj:-7.7700)
			X=ERROR Y=ERROR Z=ERROR
			x:0.7500 (adj:-2.9300) y:-0.1900 (adj:-8.1500) z:-0.2200 (adj:-7.9900)
			X=ERROR Y=ERROR Z=ERROR
			x:0.1600 (adj:-2.7700) y:-0.0800 (adj:-8.2300) z:0.0500 (adj:-7.9400)
			X=ERROR Y=OK Z=OK
			x:0.0300 (adj:-2.7400) y:-0.0200 (adj:-8.2500) z:0.0100 (adj:-7.9300)
			X=OK Y=OK Z=OK
|	Z-Tower			Endstop Offsets
| 	-0.0300			X:-2.74 Y:-8.25 Z:-7.93
| -0.0200		0.1500		Tower Offsets
| 	-0.2800			A:0.00 b:0.00 C:0.00
| -0.0300		-0.0300		I:0.00 J:0.00 K:0.00
| 	-0.1900			Delta Radius: 66.0000
| X-Tower		Y-Tower		Diagonal Rod: 154.0000
Checking delta radius //  
Adjusting Delta Radius //  
			x:-0.0600 (adj:-2.8000) y:-0.0300 (adj:-8.2800) z:-0.0500 (adj:-7.9800)
			X=OK Y=OK Z=OK
			 c: -0.2000 delta radius:66.0000 prec:0.010 tries:0
			 done:false
			x:0.0700 (adj:-2.7300) y:0.0900 (adj:-8.1900) z:0.0300 (adj:-7.9500)
			X=OK Y=OK Z=OK
			 c: -0.2100 delta radius:66.2000 prec:0.010 tries:0
			 done:false
			x:0.0600 (adj:-2.6700) y:0.0300 (adj:-8.1600) z:0.0600 (adj:-7.8900)
			X=OK Y=OK Z=OK
			 c: -0.1500 delta radius:66.4000 prec:0.010 tries:0
			 done:false
			x:0.0400 (adj:-2.6300) y:-0.0100 (adj:-8.1700) z:0.0300 (adj:-7.8600)
			X=OK Y=OK Z=OK
			 c: -0.0800 delta radius:66.6000 prec:0.010 tries:1
			 done:false
			x:0.0300 (adj:-2.6000) y:0.0400 (adj:-8.1300) z:0.0600 (adj:-7.8000)
			X=OK Y=OK Z=OK
			 c: 0.0200 delta radius:66.8000 prec:0.010 tries:2
			 done:false
			x:-0.0100 (adj:-2.6100) y:0.0200 (adj:-8.1100) z:-0.0200 (adj:-7.8200)
			X=OK Y=OK Z=OK
			 c: -0.0900 delta radius:66.7000 prec:0.010 tries:3
			 done:false
			x:-0.0000 (adj:-2.6100) y:-0.0000 (adj:-8.1100) z:-0.0000 (adj:-7.8200)
			X=OK Y=OK Z=OK
			 c: -0.0500 delta radius:66.7500 prec:0.020 tries:0
			 done:false
			x:0.0500 (adj:-2.5600) y:0.0100 (adj:-8.1000) z:0.0300 (adj:-7.7900)
			X=OK Y=OK Z=OK
			 c: -0.0400 delta radius:66.8000 prec:0.020 tries:1
			 done:false
			x:-0.0100 (adj:-2.5700) y:-0.0500 (adj:-8.1500) z:-0.0400 (adj:-7.8300)
			X=OK Y=OK Z=OK
			 c: 0.0100 delta radius:66.8500 prec:0.020 tries:1
			 done:true
			 
			 
			 
Iteration: 2
Checking/Adjusting endstop offsets //  /   endstop'
			x:-0.0000 (adj:-2.5700) y:0.0300 (adj:-8.1200) z:0.0300 (adj:-7.8000)
			X=OK Y=OK Z=OK
|	Z-Tower			Endstop Offsets
| 	 0.0100			X:-2.57 Y:-8.12 Z:-7.80
| 0.0100		0.1700		Tower Offsets
| 	 0.0000			A:0.00 b:0.00 C:0.00
| 0.0200		-0.0200		I:0.00 J:0.00 K:0.00
| 	-0.1900			Delta Radius: 66.8500
| X-Tower		Y-Tower		Diagonal Rod: 154.0000
Checking for tower geometry errors.. //   
			x_diff = 0.15000
			y_diff = 0.03000
			z_diff = 0.20000
			high_diff = 0.20000
			xy_equal = false
			xz_equal = true
			yz_equal = false
			Opp Range = 0.36000
			t1:Err t2:OK t3:Err
			Tower geometry OK
Checking DiagRod Length //  
			target:0.0033 c:0.0000 adj:0.00000
			|	Z-Tower			Endstop Offsets
			| 	-0.0000			X:-2.57 Y:-8.12 Z:-7.80
			| 0.0400		0.2000		Tower Offsets
			| 	-0.0000			A:0.00 b:0.00 C:0.00
			| -0.0100		-0.0000		I:0.00 J:0.00 K:0.00
			| 	-0.2000			Delta Radius: 66.8500
			| X-Tower		Y-Tower		Diagonal Rod: 154.0000
			
			
			
Iteration: 3
Checking/Adjusting endstop offsets  //  /   endstop'
			x:-0.0100 (adj:-2.5800) y:0.0300 (adj:-8.0900) z:0.0300 (adj:-7.7700)
			X=OK Y=OK Z=OK
			|	Z-Tower			Endstop Offsets
			| 	-0.0300			X:-2.58 Y:-8.09 Z:-7.77
			| 0.0300		0.1400		Tower Offsets
			| 	-0.0200			A:0.00 b:0.00 C:0.00
			| 0.0100		-0.0400		I:0.00 J:0.00 K:0.00
			| 	-0.2200			Delta Radius: 66.8500
			| X-Tower		Y-Tower		Diagonal Rod: 154.0000
Checking for tower geometry errors..  //   
			x_diff = 0.13000
			y_diff = 0.07000
			z_diff = 0.19000
			high_diff = 0.19000
			xy_equal = true
			xz_equal = true
			yz_equal = false
			Opp Range = 0.36000
			t1:Err t2:OK t3:Err
			Tower geometry OK
Checking DiagRod Length //  
			target:-0.0033 c:-0.0200 adj:-0.20000
			target:0.2133 c:0.2000 adj:-0.20000
			target:0.4267 c:0.4000 adj:-0.20000
			target:0.6233 c:0.6200 adj:0.00000
Diag Rod Length changed .. Homing Endstops  //  ... "" -      Endstop
|	Z-Tower			Endstop Offsets
| 	-0.4600			X:-2.58 Y:-8.09 Z:-7.77
| -0.4000		-0.2900		Tower Offsets
| 	-0.4600			A:0.00 b:0.00 C:0.00
| -0.4500		-0.5200		I:0.00 J:0.00 K:0.00
| 	-0.6900			Delta Radius: 66.8500
| X-Tower		Y-Tower		Diagonal Rod: 153.4000

Iteration: 17
Checking/Adjusting endstop offsets
x:0.0100 (adj:-3.0300) y:0.0300 (adj:-8.5000) z:0.0100 (adj:-8.2300)
X=OK Y=OK Z=OK
|	Z-Tower			Endstop Offsets
| 	-0.0300			X:-3.03 Y:-8.50 Z:-8.23
| 0.0400		0.1200		Tower Offsets
| 	-0.0300			A:0.00 b:0.00 C:0.00
| 0.0100		-0.0600		I:0.00 J:0.00 K:0.00
| 	-0.2600			Delta Radius: 66.8500
| X-Tower		Y-Tower		Diagonal Rod: 153.3453
Checking for tower geometry errors..
x_diff = 0.11000
y_diff = 0.10000
z_diff = 0.23000
high_diff = 0.23000
xy_equal = true
xz_equal = false
yz_equal = false
Opp Range = 0.38000
Tower 3 has largest error
t1:Err t2:Err t3:Err
Tower3 Error: Adjusting
 tower: -0.0400 opptower:-0.2700 tower radius adj:0.0000
 done:false
x:0.0000 (adj:-3.0300) y:0.0000 (adj:-8.5000) z:-0.0600 (adj:-8.2900)
X=OK Y=OK Z=OK
 tower: -0.0700 opptower:-0.1300 tower radius adj:-1.0000
 done:false
x:-0.0600 (adj:-3.0900) y:-0.0900 (adj:-8.5900) z:-0.0900 (adj:-8.3800)
X=OK Y=OK Z=OK
 tower: -0.0900 opptower:0.0900 tower radius adj:-2.0000
 done:false
x:-0.0500 (adj:-3.1400) y:-0.0400 (adj:-8.6300) z:-0.0700 (adj:-8.4500)
X=OK Y=OK Z=OK
 tower: 0.0400 opptower:0.0500 tower radius adj:-1.5000
 done:true
Tower Postions changed .. Homing Endstops
|	Z-Tower			Endstop Offsets
| 	 0.6400			X:-3.14 Y:-8.63 Z:-8.45
| 0.3300		0.4500		Tower Offsets
| 	 0.0900			A:0.00 b:0.00 C:0.00
| 0.0900		0.0100		I:0.00 J:0.00 K:-1.50
| 	-0.0200			Delta Radius: 66.8500
| X-Tower		Y-Tower		Diagonal Rod: 153.3453



Iteration: 18
Checking/Adjusting endstop offsets
x:0.1000 (adj:-3.0400) y:0.0600 (adj:-8.5700) z:0.6500 (adj:-7.8000)
X=OK Y=OK Z=ERROR
x:-0.0500 (adj:-3.0900) y:-0.0400 (adj:-8.6100) z:0.0600 (adj:-7.7400)
X=OK Y=OK Z=OK
|	Z-Tower			Endstop Offsets
| 	-0.0000			X:-3.09 Y:-8.61 Z:-7.74
| -0.0600		0.0200		Tower Offsets
| 	-0.1100			A:0.00 b:0.00 C:0.00
| -0.0000		-0.0700		I:0.00 J:0.00 K:-1.50
| 	 0.0200			Delta Radius: 66.8500
| X-Tower		Y-Tower		Diagonal Rod: 153.3453
Checking delta radius
Adjusting Delta Radius
x:-0.0200 (adj:-3.1100) y:-0.0300 (adj:-8.6400) z:0.0200 (adj:-7.7200)
X=OK Y=OK Z=OK
 c: -0.1100 delta radius:66.8500 prec:0.010 tries:0
 done:false
x:0.0500 (adj:-3.0600) y:0.0400 (adj:-8.6000) z:0.0100 (adj:-7.7100)
X=OK Y=OK Z=OK
 c: -0.0400 delta radius:67.0500 prec:0.010 tries:1
 done:false
x:0.0400 (adj:-3.0200) y:0.0800 (adj:-8.5200) z:0.0600 (adj:-7.6500)
X=OK Y=OK Z=OK
 c: -0.0000 delta radius:67.2500 prec:0.010 tries:1
 done:true
 
 
 
Iteration: 19
Checking/Adjusting endstop offsets
x:-0.0000 (adj:-3.0200) y:-0.0200 (adj:-8.5400) z:0.0100 (adj:-7.6400)
X=OK Y=OK Z=OK
|	Z-Tower			Endstop Offsets
| 	-0.0200			X:-3.02 Y:-8.54 Z:-7.64
| -0.0600		0.0200		Tower Offsets
| 	 0.0000			A:0.00 b:0.00 C:0.00
| -0.0100		-0.0300		I:0.00 J:0.00 K:-1.50
| 	 0.0200			Delta Radius: 67.2500
| X-Tower		Y-Tower		Diagonal Rod: 153.3453
Autocalibration Complete
SENDING:M500
echo:Settings Stored




Daftar kalibrasi ulang penuh
SENDING:G30 A
Starting Auto Calibration..
Calibration precision: +/-0.100mm
| Z-Tower Endstop Offsets
| -0.1800 X:-3.02 Y:-8.54 Z:-7.64
| -0.3000 -0.1600 Tower Offsets
| -0.2200 A:0.00 b:0.00 C:0.00
| -0.2200 -0.2000 I:0.00 J:0.00 K:-1.50
| -0.1500 Delta Radius: 67.2500
| X-Tower Y-Tower Diagonal Rod: 153.3453
Iteration: 1
Checking/Adjusting endstop offsets
x:-0.2100 (adj:-3.2300) y:-0.2000 (adj:-8.7400) z:-0.1700 (adj:-7.8100)
X=ERROR Y=ERROR Z=ERROR
x:0.0100 (adj:-3.2200) y:0.0100 (adj:-8.7300) z:-0.0200 (adj:-7.8300)
X=OK Y=OK Z=OK
| Z-Tower Endstop Offsets
| 0.0200 X:-3.22 Y:-8.73 Z:-7.83
| -0.1000 0.0300 Tower Offsets
| 0.0000 A:0.00 b:0.00 C:0.00
| -0.0200 -0.0300 I:0.00 J:0.00 K:-1.50
| 0.0100 Delta Radius: 67.2500
| X-Tower Y-Tower Diagonal Rod: 153.3453
Autocalibration Complete

Source: https://habr.com/ru/post/id382461/


All Articles