Anet A8 Üzerinde Marlin Firmware İle 3D Touch Sensor Kurulumu

Bu makalede 3D Touch sensörünün (BL Touch klonlarından biri) Anet A8‘e kendi extruder’i kullanılarak nasıl yerleştirildiğini açıklayacağız.

Eğer E3D Bowden veya diğer tip extruder kullanıyorsanız Bölüm 2‘ye geçiniz. Bu durumda kullandığınız extruder’a göre bir 3D Touch tutucu temin etmeniz lazım (örnek https://www.thingiverse.com/thing:2193695 veya https://www.thingiverse.com/thing:2668564, daha fazlası Thingiverse’de bulunur) ve sonrasında kullanacağınız tutucuya göre 3D Touch ile nozzle mesafesi için Bölüm-1 den yararlanın.

I used new designed & latest version of 3D Touch sensor. (Where to buy link can be found end of the article)

Bölüm 1 – 3D Touch Tutucuyu Yazdırma ve Takma

Mustafa Tokay tarafından tasarlanan bu tutucu (makalenin bazı önemli kısımlarında onun video yönergelerinden yararlanılmıştır, kendisinin YouTube kanalını tavsiye ederiz.) kullanacağız. Bu nedenle, tutucu STL dosyasını indirmek için aşağıdaki linke tıklayın. Ayrıca Thingiverse’de bulunan bazı alternatif 3D Dokunmatik tutucuları da seçebilirsiniz. (Örn: https://www.thingiverse.com/thing:2975487)

İndir “3D Files” 3DTouchHolder.zip – 115 defa indirildi – 749 KB

Ardından 3D Touch‘ı aşağıdaki resimlerde gösterildiği gibi monte edin. 4 adet M3 * 30 tip vidaya ihtiyacınız olacaktır. Paket ile gelenleri kullanmayacağız.

Sonra tutucuyu 3D Touch ile ekstruder ünitesine takın.

Bu adım son derece önemlidir. 3D Touch ucu ve yazıcı nozzle aşağıdaki şekilde ayarlanmalıdır. 3D Touch sensör ucunun yukarı (react) konumunda olduğundan emin olun.

3D Touch alt gövdesi ile nozzle ucu arasındaki mesafenin 8 +/- 0.5 mm aralığında olduğundan emin olmalısınız:

Kağıt tipi cetvel kullanabilir veya mesafeyi ölçmek için Leveling Height Gauge STL’yi yazdırabilirsiniz. https://www.thingiverse.com/thing:1538742

Bu parça ile ilgili nasıl kullanılır videosu burada.

Aşağıdaki resimde görüldüğü gibi bir kağıt cetvel kullanarak ölçtüm (8.2mm veya 8.3mm en iyisidir). Nozzle ucunu ısıtıcı tablaya yaklaştırın. Manuel ısıtıcı tabla yükseklik kalibrasyon ayarı yapar gibi, nozzle yataktan 0,02 mm civarında yukarıda olacak şekilde ayarlamak için bir kağıt kullanın. Basitçe kağıt sürtünerek ileri geri hareket etmeli.


Step 2 – 3D Touch Kablo Bağlantıları

Aşağıdaki resimde Anet board pinlerine hangi 3D Touch kablosunun bağlanması gerektiğini göreceksiniz. Sensör paketinde gelen uzatma kablolarını kullanmanız gerekir. Uzatma kabloları ana ünite kablolarıyla aynı renktedir. Kablo renklerini eşleştirin. (Bunu bir kez daha kontrol edin !! Siyah ve beyazı ters bağladığımdan tüm günümü boşuna harcadım…)

Resimde görebileceğiniz gibi turuncu kablo LCD kablo bağlantı noktası Pin3‘e bağlanmalıdır. Turuncu kabloyu bu pine bağlamak için iki seçenek vardır;

Seçenek-1: Pin üzerine lehimlemek

Bu seçenek lehimleme konusunda deneyim gerektirir. Bir adet 90 derece açılı erkek pinli konnektöre ihtiyacınız olacak.

Bunu çeşitli online sitelerden veya yurtdışından Aliexpress temin edebilirsiniz. Çok tavsiye etmesek de kabloyu kesmeyi ve doğrudan lehimlemeyi de tercih edebilirsiniz. Turuncu kabloyu hehimleyeceğimiz yer aşağıdaki resimdeki 3 nolu bağlantı noktası.

Seçenek-2: LCD kablosunu kesmek

Alternatif olarak, LCD bağlantı kablosunun kırmızı çizgi tarafından sayacağınız 3. kablosunu kesebilirsiniz. Bu 3.kablo boştadır. Kesin ve 3D Touch turuncu kablosunu bağlayın. Ardından bağlantıyı bantlayın. Makaron varsa aşağıdaki resimde gördüğünüz gibi kullanmanızı öneriyorum. Yoksa elektronik mağazalardan veya Aliexpress den temin edebilirsiniz.

 


Bölüm 3 – Marlin Konfigürasyon Ayarları

Şimdi 3d Touch montajı ve kablo bağlantılarını bitirdikten sonra, yazılım ayarlarına geçiyoruz ve Marlin’deki bazı ayarları değiştireceğiz. Arduino IDE uygulaması ile Marlin configuration.h dosyasını kullanacağız.

Adım 1- Konfigürasyon dosya değişiklikleri

Kullandığınız Marlin kılasörü içindeki mevcut configuration.h dosyasının önce yedeğini alın ve aynı kılasör içindeyken Marlin.ino dosyasını Arduino IDE uygulaması ile açın ve  configuration.h dosya tabına yıklayın.

configuration.h dosyasında aşağıdaki bölümü bulun. Marlin sürüm v1.1.9 ‘da satır 730 civarıdır.

//#define BLTOUCH
#if ENABLED(BLTOUCH)
  //#define BLTOUCH_DELAY 375   // (ms) Enable and increase if needed
#endif
  • //#define BLTOUCH satırının başındaki // kaldırın. (// açıklama satırı anlamındadır. Kaldırdığınızda o satır aktif olur)
  • Hemen altına #define SERVO0_PIN 27 ekleyin.

Yani şu şekilde olacak o bölüm:

#define BLTOUCH
#define SERVO0_PIN 27
#if ENABLED(BLTOUCH)
  //#define BLTOUCH_DELAY 375   // (ms) Enable and increase if needed
#endif

Bu şekilde BLTOUCH (dolayısıyla kolanlarını) Marlin firmware içinde aktif yaptık.

Sonra aşağıdaki kısmı bulun. Bu bölümde Marlin’e 3D Touch sensörümüzü extruder nozzle etrafına nasıl yerleştirdiğimizi bildireceğiz. Nozulun sağ tarafına (X ekseni) takmışsak ofset değeri (4) pozitif olacaktır. Sol taraf (-) negatiftir. Aynı şekilde Y ve Z ekseni de ayarlanabilir.

/**
 *   Z Probe to nozzle (X,Y) offset, relative to (0, 0).
 *   X and Y offsets must be integers.
 *
 *   In the following example the X and Y offsets are both positive:
 *   #define X_PROBE_OFFSET_FROM_EXTRUDER 10
 *   #define Y_PROBE_OFFSET_FROM_EXTRUDER 10
 *
 *      +-- BACK ---+
 *      |           |
 *    L |    (+) P  | R <-- probe (20,20)
 *    E |           | I
 *    F | (-) N (+) | G <-- nozzle (10,10)
 *    T |           | H
 *      |    (-)    | T
 *      |           |
 *      O-- FRONT --+
 *    (0,0)
 */
#define X_PROBE_OFFSET_FROM_EXTRUDER 81   // X offset: -left  +right  [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER 0   // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0   // Z offset: -below +above  [the nozzle]

Aşağıda X ekseni mesafesinin nasıl ölçüleceğine dair bir örnek göstermek isteriz. Bizim kendi bastığımız tutucu ile taktığımızda sensör ucu mesafemiz yaklaşık 81mm (siz de ölçün). Bu değeri X_PROBE_OFFSET_FROM_EXTRUDER satırına yazın. 3D Touch prob ucu tepki konumunda (yukarı) olduğunda, nozzle uç noktasından en az 2 mm, en fazla 3 mm daha yüksekte olmalıdır. 

Aşağıdaki bölümü bulun ve Z_SAFE_HOMING (satır 1145 civarı) ve aktif yapın (başındaki // kaldırın). Bunu etkinleştirdiğinizde nozzle home pozisyonunda ısıtıcı yatağın ortasına gidecektir.

#define Z_SAFE_HOMING

#if ENABLED(Z_SAFE_HOMING)
  #define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2)    // X point for Z homing when homing all axes (G28).
  #define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2)    // Y point for Z homing when homing all axes (G28).
#endif

Sonra Z_MIN_PROBE_ENDSTOP_INVERTING bulun ve değeri false olarak değiştirin.

#define Z_MIN_PROBE_ENDSTOP_INVERTING false  // set to true to invert the logic of the probe.

AUTO_BED_LEVELING_BILINEAR (satır 979) bulun ve aktif yapın (başındaki // kaldırın)

//#define AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR
#define AUTO_BED_LEVELING_BILINEAR
//#define AUTO_BED_LEVELING_UBL
//#define MESH_BED_LEVELING

Aşağıdaki kod bloğunu bulun (satır 1027 civarı) ve aşağıdaki ile değiştirin.

  // Set the boundaries for probing (where the probe can reach).
  #define LEFT_PROBE_BED_POSITION (X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER)
  #define RIGHT_PROBE_BED_POSITION (X_BED_SIZE - MIN_PROBE_EDGE)
  #define FRONT_PROBE_BED_POSITION (MIN_PROBE_EDGE + Y_PROBE_OFFSET_FROM_EXTRUDER)
  #define BACK_PROBE_BED_POSITION (Y_BED_SIZE - MIN_PROBE_EDGE)

Aşağıdaki satırı bulun ve aktif yapın

#define NOZZLE_CLEAN_FEATURE

Son olarak aşağıdaki satırı bulun EEPROM_SETTINGS ve aktif yapın.

#define EEPROM_SETTINGS   // Enable for M500 and M501 commands

Adım 2- Firmware yükleme 

Düzenlediğimiz Marlin firmware şimdi yazıcınıza yükleyin.

Bu sensörlerle ilgili Marlin config parametreleri hakkında daha fazla bilgi edinmek istiyorsanız, bu makaleyi inceleyebilirsiniz: http://www.cazda.com/bl-touch-sensor-positioning-and-parameters-in-marlin/


Bölüm 4 – Son Ayarlamalar

Bu bölümde, ısıtıcı yatak ve sensör üzerinde ince ayarlar yapacağız. Gcode terminal uygulamasına ihtiyacımız olacak. Bu özellik, OctopiRepetier-Host ve Simplify3D‘de mevcuttur, ancak bu uygulamaları kullanmıyorsanız Printrun-Pronterface adlı ücretsiz bir uygulama vardır. Bu uygulama Windows ve Mac üzerinde çalışabiliyor ve ücretsizdir.

https://github.com/kliment/Printrun/releases/tag/printrun-1.6.0

adresinden indirin ve ZIP dosyayı direk açıp çalıştırın.  Çalıştırdıktan sonra COM port ve baud rate (115200 tavsiye ederiz) ve USB kablo ile yazıcınıza bağlanıp Connect tıklayarak bağlantıyı kurun.

Bağlantı kurulduğunda, yazıcınızda EEPROM üzerinde ayarlanan mevcut bazı parametreleri sağ gcode giriş panelinde göreceksiniz.

Home butonuna (veya G28 gcode) tıklayın  ve extruder home pozisyonu alıncaya kadar bekleyin. 3D sensor ısıtıcı tablanın ortasına gidecektir. (eğer tam ortalamamışsa, Marlin konfigürasyon configuration.h dosyasında X_MIN_POS ve Y_MIN_POS değerleri ile oynamanız gerekecek. Bunu nasıl yaparız derseniz daha sonra buradaki makalemize göz atın. Şu an için bu ayarsızlık önemli değil.

Şimdi aşağıdaki gcode komutlarını sırasıyla gcode panelinden girelim.

M851 Z0
M500
M501
M503

En sonunda gcode panelinde echo: M851 Z0.00 mesajı görmelisiniz.

Sonrasında Z ekseni home pozisyonu için aşağıdaki komutu girin.

G28 Z0

Nozzle sıfır konumuna göndermek için aşağıdaki komutu gönderin. Nozzle ısıtıcı yatağa doğru inecektir.

G1 F60 Z0

Sonra aşağıdaki komutu gönderin (Soft end stops – off)

M211 S0

Bu pozisyonda + x yönlü hareket dairelerini kullanarak ekstruder nozzle yatağın tam ortasına doğru hareket ettirin. Daha iyi konumlandırma için 1 ve 0,1 adım daireler kullanın.

Sonra bir kağıt parçası alın ve nozzle altına yerleştirin.

Kağıdı çok kolay hareket ettirebiliyorsanız ve herhangi bir direnç yoksa, extruder nozzle ucu ısıtıcı yataktan uzaktır. Eğer öyleyse, manuel kalibrasyon işlemine benzer şekilde, Z eksen yüksekliğini biraz aşağıda çekerek (yukarıdaki resimde kırmızı işaretlenmiş oklarla), nozzle biraz direnç gösterene kadar kağıdı öne ve arkaya hareket ettirin. Kağıt hareket ederken direnç gördüğü noktada bırakın ve LCD ekranda gösterilen Z değerini not edin. Muhtemelen eksi değer olacaktır. O değerin üzerine kağıt kalınlığını da ekliyoruz. Tahminen 80gr fotokopi kağıdı kalınlığı 0.06 mm kadar dersek toplam Z değerimiz -1.69-0.06 = -1.75 olacaktır.

Bu değeri aşağıdaki M851 komutu ile gönderin. Örnekte -1.75 hesapladığımız için Z-1.75 yazıldı. Siz kendi rakamınızı yazın.

M851 Z-1.75

Şimdi kapattığımız soft endstop ayarını açalım. Aşağıdaki komutu yazın.

M211 S1

Sonrasında aşağıdaki komutları sırasıyla uygulayın. Ayarladığımız değerler EEPROM‘a kaydedilecek.

M500
M501
M503

Ardından kağıdı alabilirsiniz ve  üzerine tıklayarak ekstruderi home pozisyonuna getirin.

Hepsi bu kadar.


Bölüm 5 – Start & End gcodes ayarları

Her baskıdan önce otomatik yatak seviyelendirme yapmak istiyorsanız, bu değişikliği yapın. Yoksa arada kendiniz manuel yaparsınız.

Start g-code

G21            ;metric values
G90            ;absolute positioning
M82            ;set extruder to absolute mode
M107           ;start with the fan off
G28            ;home position
G29            ;bed leveling with BLTouch/3D Touch
G1 Z15.0 F600  ;move the platform down 15mm
G92 E0         ;zero the extruded length
G1 F200 E3     ;extrude 3mm of feed stock
G92 E0         ;zero the extruded length again
M117 Printing...

End g-code

M104 S0                      ;extruder heater off
M140 S0                      ;bed heater off
G91                          ;relative positioning
G1 E-1 F300                  ;retract the filament to release pressure
G1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit
G28 X0 Y0                    ;move X/Y to min endstops
G90                          ;absolute positioning
G1 Y190 F9000                ;(optional) move heatbed to front
M84                          ;steppers off

 


3D Touch sensörün bu güncellenmiş sürümü ile, 3D yazıcı hareketi sırasında titremenin sensör üzerindeki etkisi giderilmiştir.

   

Güncel sürüm 3D Touch sensör aşağıdaki linklerden satın alınabilir:

      

 


Sitemizdeki 3D makaleler hakkında ilk siz bilgi sahibi olmak istiyorsanız, Facebook grubumuza katılın


Anet A8 ile ilgili makaleler: