CNC İLE BASKILI DEVRE YAPIMI
BASKILI DEVRELERİ BAKIR KAPLAMAYI CNC İLE KESEREK YAPMAK
(AN ENGLISH VERSION OF THIS POST IS AVAILABLE IN THIS BLOG)
Selçuk ÖZBAYRAKTAR MART 2018 Revizyon 1
CNC ILE BASKILI DEVRE YAPIMI
GİRİŞ ve AMAÇ
Hobi amaçlı ya da prototip devreleri genelde “bir” adet üretiyoruz. Tek yüzlü bir PCB olarak gerçekleştirilebilecek kadar basit bir baskılı devre için günlerce siparişin teslimini beklemek ya da optik/kimyasal yöntemlerle uğraşmak can sıkıcı oluyor.
Geliştirdiğim masa üstü CNC pek çok çalışmamda olduğu gibi bu konuda da imdadıma yetişti. PCB üzerinde su yolları ve adacıklar arasındaki izolasyon hatlarını ince bir oyma ucu ile keserek çıkarmak pek çok duruma uygun bir yöntem. Bu yöntem hobi ve prototip çalışmalarına büyük kolaylık ve hız kazandırıyor.
PCB geometrisinin inceliği kullanılacak CNC ve kesim ucuna bağlı. Benim CNC 0.02 ummadım hassasiyetine sahip. Elimdeki 15 derece açılı kesim uçları ile kolaylıkla elde edebileceğim izolasyon kanalı ve su yolu genişliği 0.5mm olarak görünüyor. Internette 0.2mm ye inebildiklerini iddia edenler var. Ben de elim değdiğinde daha ince geometrili SMD tasarımları deneyip nereye kadar gidebileceğimi göreceğim. Sonucu burada yayınlarım.
Sağladığı hız ve kolaylığa karşılık, PCB mizi tek tarafa sığdırmak zorunda kalmamızdan dolayı, eksik kalabilecek 3-5 bağlantıyı da ile ve tel köprüler ile yapmayı göze alıyoruz.
Aynı yöntemi iki taraflı plakete de uygulamak mümkün, ama delik içi kaplama yapamadıktan sonra külfetine değmiyor, Çinliler bu günlerde 10×10 cm ilk çift yüzlü plaketlerin 10 adedini 5 dolara yapı gönderiyorlar, 3 hafta sürüyor. Yalnız kargo parası 12-15 Dolar, yani kendisinden pahalı.
Burada anlattığım yöntem, sabah aklınıza düşen bir devreyi aynı gün PCB üzerinde test etmek istediğiniz heyecanlı projeler için.
Plaketin su yolları dışında kalan kısımlarının da irili ufaklı bakır adacıklar halinde kalması aslında devrenin sinyal yolları arasındaki diyafonileri engelleme ve parazitlere bağışıklığını güçlendirmek için çok yararlı bir araç sağlamakta. Bu adacıklar uygun birer noktalarından topraklandıklarında etkin bir ekranlama görevini yerine getirebilmekteler.
Bu yöntemin başarısı plaketin tasarımının bu süreç göz önüne alınarak yapılmasına da büyük ölçüde bağlı. Aşağıdaki noktalara dikkate etmek gerekiyor:
1) CNC kesici ucu 0.5mm den ince kesemiyor, yani izolasyon aralıkları bundan daha dar olamaz.
2) Yan yana giden su yollarının komşu kenarları – normal tasarımların tam tersine- birbirine değer durumda, yani komşu kenarları paylaşılan bir tek sınır çizgisi olmalı. Bu bizi paralel giden iki yol arasında gereksiz yere iki izolasyon kanalından kurtararak tasarımı sadeleştirir, daha geniş iletken yollara imkan sağlayan bir yer tasarrufu sağlar.
3) İletken yolların kalınlığını kesici ucun her iki taraftan en az 0.25 mm yiyeceğini, yani toplamda 0.5mm kaybedeceğinizi düşünerek olabildiğince kalın tasarlıyoruz. 0.5 mm ye kadar incelmiş su yolları iletkenlik sağlıyor ancak, delik içi kaplama olmadığından bu incecik bakır şerit herhangi bir eleman ayağından gelecek en küçük bir itme ile kolayca plaketten ayrılıp kopabiliyor. Eğer, 2.54mm aralıklı delik içi geçişli devre elemanları kullanıyorsak, su yollarını 2.54mm genişlikte seçmek pek çok şeyi yerli yerine oturtuyor. Su yollarımız da 2 mm gibi gayet kullanışlı bir ölçüye geliyor.
Aşağıdaki çizimler bu iki noktayı açıklıyor:
GENEL SÜREÇ
Bakırlı plaketi CNC ile oyarak su yolları oluşturmak için plaketin sadece bir yüzünü ele alarak Gcode komut dosyası oluşturmak gerekiyor. Plaket tek taraflı tasarlandı ise zaten tek yüzde su yolları vardır. Eğer çift taraflı tasarlandı ise diğer yüzünde kalan bağlantılar eksik kalacağından, plakete lehimlenecek tel köprüler ile tamamlanmak zorunda.
Süreç aşağıdaki gibi işliyor:
- Devre EAGLE ile tek taraflı PCB olarak tasarlanıyor. Ya da bağlantıların mümkün olduğunca bir tarafta (örneğin üst tarafta) olduğu bir çift yüzlü plaket olarak tasarlanıyor.
- Tasarlanan plaketin çoğunluk su yollarını içeren tarafı EAGLE’dan DXF olarak kaydediliyor. EAGLE da ayrıca bir “make” dosyası da oluşturulup kaydediliyor. Bu dosyada delikleri delmek için gerekecek .xln dosyası var.
- Bu DXF çizimi Autodesk FUSION360 (ücretsiz sürüm) ile istenmeyen sınır ve kesişim çizgilerinden temizleniyor. Gerekli görülen makyaj ve düzeltmeler (retouch) yapılıyor.
- Temizlenerek son halini alan çizim FUSION360 dan yine DXF olarak kaydediliyor.
- Bu yeni DXF dosyası INKSCAPE ile açılıyor. Çizim Inkscape çizim alanına sol alt köşesi “0,0” olacak şekilde yerleştiriliyor. Inkscape’in uygun eklentisi kullanılarak “.gcode” dosya olarak kaydediliyor.
- Bu Gcode dosyasını kabul edebilecek bir CNC ile baskılı devre plaketindeki kesim işlemi yapılıyor.
- Plaket CNC den çıkarılmadan, kazıma ucu yerine delme ucu takılarak bu defa “.xln” (Excellon formatı) dosyası yüklenerek delim işlemi yapılıyor.
SÜREÇ AYRINTILARI
Bu dokümanda plaketin üst tarafındaki su yollarına ilişkin Gerber kesim kodlarının elde edilişi, yani .gcode dosyasının hazırlanışı anlatılıyor.
EAGLE da TASARIM
Not: Bu dokümandaki örnek ekran görüntülerinde PCB tasarımı normal kurallara göre yapılmış görünmekle birlikte uygulamada su yollarını “GİRİŞ ve AMAÇ” paragrafında belirttiğimiz gibi tasarlamak gereklidir. Sonuçta plaketimizin EAGLE görünümü şöyle bir şey olacaktır:
- Eagle ile PCB tasarımımızı yapıyoruz. Bu metin hazırlanırken Eagle 8.6.0 sürümü kullanılıyordu.
Aşağıdaki işlemleri yapmadan önce projenizi kaydedip, “CAM” (generate CAM data) butonuna basarak bir CAM paketi oluşturun. Bunun içindeki .xln dosyasını delikleri delmek için CNC ye vereceğiz. (.zip olarak oluşturulan bir üretim dosyaları paketi, eğer plaketinizi dışarıya yaptıracaksanız bunu PCB üreticinize gönderiyorsunuz.)
CNC deki kesim işlemi için dosya oluşturmaya devam edelim. Eagle da tasarlanan .brd dosyası isim_R1.dxf olarak dxf formatında kaydedilir. (“isim” yerine kendi vereceğiniz dosya adını kullanın.)
Bunun için önce sheets menüsünden tüm sayfalar kapatılır, sonra sadece top, pads, vias ve dimension sayfaları seçilir.
OK dedikten sonra File/Export/dxf ile dosya kaydedilir.
Bunun için, DXF seçeneği tıklanınca açılan pencerede dosya ismi (isim_R1.dxf) girilir, “always vector font” ve “fill areas” seçenekleri kapatılır, ölçüler mm olarak seçildikten sonra OK ile devam edilir.
Şimdi dosyamız istenen yere kaydedilmiştir.
FUSION360 da YAPILAN İŞLEMLER
- İsim_R1.dxf dosyası Fusion360 da sketch olarak import edilir.
- Bunun için Sketch/Create Sketch tıklanır
Create Sketch ya da insert dxf tıklanınca bunun yerleştirileceği yüzeyin seçilmesi gerekiyor, ben taban düzlemini seçtim.
Şimdi de import edilecek dosyamızı seçeceğiz. Select dxf file tıklanınca :
Open düğmesi tıklanır:
OK tıklanır. Görüntüyü sağ üst köşedeki küpü çevirip “top” yüzeyi tıklanarak üst görünüm moduna geçilir.
Şimdi bu çizim üzerinde çalışarak istenmeyen kesişim çizgilerini temizleyeceğiz. Buradaki her bir çizgi CNC de keserek oyulacak bir kanal anlamına gelir. Bu resimde görülen çizgilerin hepsi çizim üzerinde bırakılırsa kesintisiz ve tek parça olması gereken su yollarımızın her biri bir sürü parçaya ayrılması ile sonuçlanır.
Bu nedenle su yolları üzerindeki ve bunların bağlandığı adacıklar arasındaki kesişim çizgilerini kaldıracağız.
Bunun için EAGLE’ın Sketch/Trim seçeneği tıklanır. Artık üzerine tıklayarak seçeceğimiz çizgi parçacıkları silinecektir.
Görüntüyü yaklaştırıp büyüterek silinecek parçacıkların seçimini kolaylaştıralım. İmleci üzerine getirerek kırmızı kalın görüntü kazanan seçilmiş parçacığı tıkladığımızda silme işlemi tamamlanacaktır.
Kırmızı parçayı silmek üzere tıklayalım, parçacık silinip kaybolur. Bu işlemin ardından beliren işaretleri bu aşamada dert etmeyelim :
Bu arada, Fusion pek çok gereksiz objeyi görüntülemez, ya da çok küçük olduklarından gözden kaçabilirler. Bu nedenle Sketch Palette de Show Points kutusu da işaretlenerek noktaların da görüntülenmesi sağlanır. Bundan sonra Modify/Delete/Select/OK komutu ile tüm çizimin gereksiz objelerden temizlenmesi gerekir. Aksi halde bir sonraki adımda .dxf olarak kaydedilen dosyada hiç beklenmeyen delik ve objeler belirebiliyor. Sonuçta aşağıdaki adımlarda Inkscape’e aktarılacak olan çizimde böyle istenmeyen nesnelerle karşılaşılırsa bu adıma geri dönerek temizliği tamamlamak gerekir.
Örneğin aşağıdaki – bir sonraki adımda elde edeceğimiz- INKSCAPE görünümündeki çember, FUSION360 ekranında görünmüyor. Sonuçta su yolumuzu parçalara ayıran bir parazit olarak karşımıza çıkıyor.
Gereksiz dairesel uçlar, köşeler vb. de temizlenerek mümkün plan en sade tasarıma ulaşıldığında plaketimiz EAGLE’daki halinden epeyi farklı, ancak CNC de kazıma yöntemi ile üretim için en optimal duruma gelmiş oluyor. Bu sayede gerber dosyamız çok kısalıyor, dolayısı ile CNC üretim süresi de çok kısalıyor, ayrıca devremiz kısa devre ve açık devre risklerini en aza indirgemiş oluyor.
Bu şekilde tüm istenmeyen çizgiler ve nesneler temizlenip son halini alan Fusion360 sketch isim_R2.dxf olarak kaydedilir. Bunun için soldaki browser penceresinde sketch altında isim_R1/Save As DXF seçeneği tıklanır.
Açılan pencerede dosya adı ve yeri seçenekleri doldurulur. Biz “isim_R2” olarak yeni bir isim altında kaydediyoruz.
INKSCAPE de YAPILAN İŞLEMLER
Artık son halini alan tasarımımız isim_R2.dxf adı altında kaydedilmiş durumda. Sıra buna ait Gcode doyasını oluşturmaya geldi. Bunun için “voxelizer” gibi başka uygulamalar varsa da biz ücretsiz olması ve bir sürü tasarım- çizim marifeti olması nedeniyle InkScape’i kullanacağız.
InkScape’e aşağılarda anlatıldığı gibi bir Gcode addon eklenmiş olmalıdır.
- dxf dosyası Inkscape’e import edilerek açılır, Save_As isim_R2.Gcode olarak kaydedilir. Bunun için Inkscape’e aşağıda anlatıldığı şekilde bir Gcode add-on eklenmesi gereklidir.
Kullandığımız inkscape sürümü 0.92 :
File/Import seçeceği tıklanır
Açılan pencerede dosyamızı bulup seçeceğiz
Dosyamızı seçip Open tıklanınca açılan ilk pencerede bir şeye dokunmaya gerek yok, OK deyip devam edelim:
Artık çizimimiz Inkscape çalışma alanına gelmiş durumda, bunu sürükleyerek çizim alanımızın sol alt köşesine taşıyacağız. Tam olarak 0,0 noktası ile çakışması önemli, onun için üst menüdeki X ve Y giriş alanlarına manuel olarak “0” girilmesi daha kolay olur.
Şimdi çizimimiz olması gereken yere yerleştirildi.
Buna ait Gcode dosyasını oluşturup kaydetmek için file/save_as komutu :
Açılan sayfada dosya ismini “isim_R2” olarak yazıp, dosya seçimi listesinden Gcode eklentisi olan “3-axis gcode plotter (*.gcode)” seçilir. Eğer eklentiyi önceden yüklemediyseniz bu seçenek listede yer almayacaktır. Uygulamadan çıkıp aşağılarda anlatıldığı gibi yükleyip buraya dönmek gerekecektir. Bu durumda dosyamızı sonra açmak üzere .svg olarak kaydedip çıkabiliriz.
Şimdi bu eklentinin yüklü olduğunu varsayarak Gcode seçeceği ile devam edelim.
CAM üretim parametrelerinin tanımlanacağı bir pencere açılır. Burada çalışma alanının büyüklüğü, kesici ucun parça içine giriş derinliği, havada ilerleme yüksekliği, hızlar vb. girilir. Eğer çalışma alanı çizim alanından küçük ise, ya da çizim çalışma alanı dışına taşıyorsa hata mesajı vererek kayıt işlemini yapmayacaktır. Bu ikisinin uyumlu olmasına dikkat edilmelidir.
OK tıklandığında, isim_R2.gcode dosyamız üretilerek kaydedilecektir. Artık CNC mize bu Gcode doyasını vererek çalıştırabiliriz.
Sonuna elde ettiğimiz Gcode dosyasını Mac üzerinde görüntülemek için Pleasant-3D uygulamasını kullanabilirsiniz:
Eagle’da ürettiğimiz Excellon delik delme programı da aşağıdaki gibi bir text dosyası:
Ve bu da CNC den çıkan baskılı devremiz. Plaket güzel oldu ama kenarlarını düzgün kesemedim. Kenarların kesimini de CNC de yapmak lazım ama fena halde kesici uç harcanıyor, çokça toz ve gürültü çıkıyor.
INKSCAPE’e GCODE PLUG IN EKLENMESİ
Çizimimizi CNC de kullanabilmek için Gerber/Gcode komut listelerine çevirmemiz gerekiyor.
Inkscape dosyalarını .svg uzantılı olarak saklar. Biz yapılmış olan çizimleri .dxf formatında import ederek işleyeceğiz. Bunun için de Inkscape.org sitesinde verilen extensionlar arasındaki GcodePlot eklentisini kullandım. (Buna alternatif Unicorn add-on u da vardı ama yeni sürüm Inkscape ile çalışmıyor.) Buraya tıklayınca bir başka sayfaya yönlendiriyor:
Buradaki “Link” e tıklayınca arkadaşın bu eklentiyi yayınladığı Instructables sitesine yönlendiriyor. (Bu arada Instructables sitesi “maker” denilen amatörler için çok ilginç ve yararlı bir site, yemek yapmaktan uçak yapmaya kadar ne arasanız var. Tavsiye ederim.)
Ve burada Gcode eklentisinin indirilmesi ve eklenmesini gayet güzel anlatıyor.
Buradaki “gcodeplot scripts” linki tıklandığında, eklentinin indirilebileceği bir sayfaya yönlendiriliyoruz:
Buradaki “gcodeplot.zip” dosyası işimizi görüyor. Arkadaş gayet cömert biçimde kaynak kodlarını da vermiş ama, meraklısı değilsek ya da bir başka CNC için modifikasyon yapmak niyetinde değil isek bunu indirmeye gerek yok. Zaten eklenti Python da yazıldığından istediğiniz zaman açıp inceleyebilir ya da değiştirebilirsiniz.
MacOs için bu eklentiyi Inkscape e yüklemenin yolu:
Finder ile “Applications/Inkscape” sağ tıklanarak “Show package contents” seçeneği tıklanır.
Aşağıdaki silsile izlenerek resources/share/Inkscape/Extensions/ klasörüne ulaşılır.
extensions klasörüne indirilmiş olan GcodePlot klasöründen alınan aşağıdaki 3 dosya kopyalanır:
gcodeplot.inx
gcodeplotutils Klasörü
gcodeplot.py
İçeriği olduğu gibi de kopyalayabiliriz, ama bazılarını kullanmayacağız, ya da zaten var (svgpath klasörü örneğin.)
Artık InkScape yeniden başlatıldığında “save as” dosya tipi seçenekleri arasında 3-axis-Gcode plotter seçeneğinin de belirdiği görülecektir.