Penggilingan PCB di rumah

gambar


Saya tidak suka etsa papan sirkuit cetak. Yah, saya tidak suka proses rewel dengan besi klorida. Cetak di sana, besi di sini, mengekspos photoresist - seluruh cerita setiap saat. Dan kemudian pikirkan di mana untuk mengalirkan besi klorida. Saya tidak berpendapat, ini adalah metode yang terjangkau dan sederhana, tetapi secara pribadi saya mencoba menghindarinya. Dan kemudian kebahagiaan saya terjadi: Saya menyelesaikan router CNC. Segera timbul pikiran: tetapi tidak apakah akan mencoba membuat papan sirkuit cetak. Tidak lebih cepat dikatakan daripada dilakukan. Saya menggambar adaptor sederhana dari esp-wroom-02 yang kewalahan dan memulai perjalanan saya ke penggilingan papan sirkuit tercetak. Trek dibuat khusus kecil - 0,5 mm. Karena jika ini tidak berhasil, maka untuk apa teknologi ini.


Di sini Anda perlu penyimpangan kecil. Ada beberapa cara bagaimana mendapatkan satu set kode untuk milling papan sirkuit cetak dari cad. Menurut pendapat saya, mereka berbeda tergantung pada sistem CAD yang Anda gunakan. Jika Anda adalah penggemar Eagle, maka ada solusi khusus dan terintegrasi dengan baik untuk itu: PCB-GCode , kemampuan untuk langsung membuka file BRD di chilipeppr. Sayangnya, belum lama berselang, Autodesk mengubah kebijakan lisensi elang, dan sekarang komunitas tidak begitu menyukainya (Anda dapat melihat pendapat salah satu perwakilan komunitas yang terkemuka ).


Karena saya pribadi membuat papan sirkuit tercetak setiap lima tahun pada hari libur besar, KiCAD sudah cukup bagi saya untuk mendesain. Saya tidak menemukan solusi praktis khusus untuk itu, tetapi ada cara yang lebih universal - menggunakan file gerber. Dalam hal ini, semuanya relatif sederhana: ambil pcb, ekspor layer yang diinginkan ke gerber (tanpa mirroring dan magic lainnya!), Jalankan pcb2gcode - dan dapatkan file-nc siap pakai yang dapat diberikan ke pemotong frais. Seperti biasa, kenyataan adalah infeksi jahat dan semuanya ternyata sedikit lebih rumit.


Mendapatkan gcode dari file gerber


Jadi, saya tidak berencana untuk menjelaskan cara mendapatkan file gerber, saya pikir semua orang tahu caranya. Selanjutnya Anda perlu menjalankan pcb2gcode. Ternyata itu membutuhkan sekitar satu juta opsi baris perintah untuk menghasilkan sesuatu yang dapat diterima. Pada prinsipnya, dokumentasinya tidak buruk, saya menguasainya dan menemukan cara untuk mendapatkan semacam gcode bahkan dengan cara itu, tapi tetap saya ingin santai. Karena pcb2gcode GUI ditemukan. Ini, seperti namanya, adalah GUI untuk mengatur parameter pcb2gcode dasar dengan tanda centang, dan bahkan dengan pratinjau.


gambar


Sebenarnya, pada tahap ini beberapa jenis kode diterima dan Anda dapat mencoba melakukan penggilingan. Tetapi ketika saya melihat-lihat tanda centang, ternyata nilai default kedalaman yang ditawarkan perangkat lunak ini adalah 0,05 mm. Oleh karena itu, papan harus dipasang di router setidaknya dengan akurasi lebih tinggi dari ini. Saya tidak tahu bagaimana orang memilikinya, tetapi saya memiliki desktop dengan gilingan yang terasa lebih melengkung. Solusi paling sederhana yang terlintas dalam pikiran adalah menempatkan kayu lapis pengorbanan di atas meja, menggilingkan sebuah saku ke ukuran papan - dan itu idealnya berada di bidang gilingan.


Bagi mereka yang sudah memiliki perintah yang baik dari router, bagian ini tidak menarik. Setelah beberapa percobaan, saya menemukan bahwa perlu untuk menggiling saku dalam satu arah (misalnya, dengan memasukkannya ke gigi) dan dengan tumpang tindih setidaknya tiga puluh persen. Fusion 360 pertama menawarkan saya terlalu sedikit dan melaju bolak-balik. Dalam kasus saya, hasilnya tidak memuaskan.


Akuntansi untuk kelengkungan PCB


Menyelaraskan situs, saya menempelkannya pada selotip dua sisi, meletakkan textolite dan mulai berseliweran. Inilah hasilnya:


gambar


Seperti yang Anda lihat, di satu sisi papan, pemotong praktis tidak menyentuh tembaga, di sisi lain - itu masuk terlalu jauh ke papan, sementara penggilingan remah PCB pergi. Setelah melihat dari dekat papan itu sendiri, saya perhatikan bahwa itu awalnya tidak rata: sedikit melengkung, dan tidak peduli bagaimana Anda menderita dengan itu, akan ada beberapa penyimpangan ketinggian. Kemudian, omong-omong, saya melihat dan menemukan bahwa untuk papan sirkuit tercetak dengan ketebalan lebih dari 0,8 mm, toleransi ± 8% dianggap normal.


Opsi pertama yang muncul di benak Anda adalah kalibrasi otomatis. Menurut logika berbagai hal - yang bahkan lebih mudah, papannya berlapis tembaga, pemotongnya adalah baja, yang dilampirkan satu kabel ke tembaga, yang lain ke pemotong - di sini Anda memiliki probe yang sudah jadi. Ambil dan bangun permukaannya.


Mesin saya dikendalikan oleh grbl pada perisai Cina murah. Grbl memiliki dukungan probe pada pin A5, tetapi untuk beberapa alasan tidak ada konektor khusus pada board saya. Setelah memeriksanya dengan saksama, saya menemukan bahwa pin A5 adalah output ke konektor port SPI (ditandatangani sebagai SCL), ada juga tanah di dekatnya. Ada satu trik dengan "sensor" ini - kabel harus dipilin bersama. Dalam pemotong frais, sangat mudah untuk mengambil, dan tanpa ini, sensor akan terus-menerus memberikan hasil positif yang salah. Bahkan setelah menenun, itu akan berlanjut, tetapi sangat, sangat jarang.


gambar


Jadi, sensor dirakit, diuji oleh tester, maka pertanyaan penting adalah bagaimana memeriksa grbl bahwa semuanya sudah beres dan saya tidak akan merusak satu pengukir. Sebuah googling kecil menunjukkan bahwa ia perlu mengirim tim G38.2 Z-10 F5.


Tim mengatakan: mulai turun ke –10 di Z (ketinggian absolut atau relatif - tergantung pada mode di mana firmware sekarang). Ini akan turun sangat lambat - dengan kecepatan 5 mm / menit. Ini karena pengembang sendiri tidak menjamin bahwa keturunan akan berhenti tepat pada saat sensor dipicu, dan tidak lama kemudian. Karena itu, lebih baik turun perlahan, sehingga semuanya berhenti tepat waktu dan tidak punya waktu untuk naik, jadi jangan main-main. Yang terbaik adalah melakukan tes pertama dengan mengangkat kepala Anda ke ketinggian di atas 10 mm dan menjatuhkan sistem koordinat. Dalam hal ini, bahkan jika semuanya tidak berfungsi dan Anda tidak punya waktu untuk mencapai tombol E-Stop, pemotong frais tidak akan mengalami konstipasi. Anda dapat melakukan dua tes: yang pertama - untuk tidak melakukan apa pun (dan setelah mencapai –10 grbl akan memberikan "Alarm: Probe Fail"), yang kedua - saat turun, tutup sirkuit dengan sesuatu dan pastikan semuanya berhenti.


Selanjutnya, Anda perlu menemukan metode bagaimana sebenarnya mengukur matriks dan mendistorsi gcode sesuai kebutuhan. Sepintas, pcb2gcode memiliki semacam dukungan autoleveling, tetapi tidak ada dukungan grbl. Ada kesempatan untuk meminta tim untuk menjalankan tes dengan tangan Anda, tetapi Anda harus berurusan dengan ini, dan jujur, saya malas. Pikiran yang bertanya mungkin memperhatikan bahwa dengan LinuxCNC, perintah sampel dijalankan cocok dengan perintah grbl. Tetapi kemudian muncul perbedaan yang tidak dapat diperbaiki: semua penterjemah gcode "dewasa" menyimpan hasil tes ke variabel mesin, dan grbl hanya menampilkan nilai ke port.


Sebuah googling ringan menyarankan bahwa masih ada beberapa opsi yang berbeda, tetapi proyek chillpeppr menarik perhatian saya:


Ini adalah sistem dua komponen yang dirancang untuk bermain dengan besi dari web. Komponen pertama - Serial JSON Server, ditulis dalam proses, berjalan pada mesin yang terhubung langsung ke perangkat keras, dan dapat memberikan kontrol port serial melalui soket web. Yang kedua berfungsi di browser Anda. Mereka memiliki kerangka keseluruhan untuk membangun widget dengan beberapa fungsi, yang kemudian dapat didorong ke halaman. Secara khusus, mereka sudah memiliki ruang kerja siap pakai (satu set widget) untuk grbl dan tinyg.


Dan chillpeppr memiliki dukungan autoleveling. Selain itu, secara tampilan jauh lebih nyaman daripada UniversalGcodeSender, yang saya gunakan sebelumnya. Saya meletakkan server, memulai bagian browser, menghabiskan setengah jam mencoba mencari tahu antarmuka, memuat gcode papan saya di sana dan melihat beberapa sampah:


gambar


Setelah melihat gcode itu sendiri yang dihasilkan pcb2gcode, saya melihat bahwa ia menggunakan notasi ketika perintah (G1) tidak diulang pada baris berikutnya, tetapi hanya koordinat baru yang diberikan:


G00 X1.84843 Y34.97110 ( rapid move to begin. ) F100.00000 G01 Z-0.12000 G04 P0 ( dwell for no time -- G64 should not smooth over this point ) F200.00000 X1.84843 Y34.97110 X2.64622 Y34.17332 X2.69481 Y34.11185 X2.73962 Y34.00364 X2.74876 Y31.85178 X3.01828 Y31.84988 X3.06946 Y31.82249 X3.09684 Y31.77131 

Dilihat oleh fakta bahwa chilipeppr hanya menunjukkan gerakan vertikal, ia melihat garis G01 Z-0.12 di sini, tetapi tidak mengerti semua yang muncul setelah F200. Perlu mengulang notasi ledakan. Tentu saja, Anda dapat bekerja dengan tangan Anda atau mengajukan beberapa skrip pasca-pemrosesan. Tetapi belum ada yang membatalkan G-Code Ripper , yang, antara lain, dapat mengalahkan perintah gcode yang rumit (seperti busur yang sama) menjadi yang lebih sederhana. Ngomong-ngomong, dia juga tahu cara menekuk gcode dalam matriks autoprobe, tetapi sekali lagi tidak ada dukungan bawaan untuk grbl. Tetapi Anda dapat membuat perpecahan yang sama. Pengaturan standar cukup cocok untuk saya (kecuali dalam konfigurasi saya harus mengubah unit ke mm sebelumnya). File yang dihasilkan mulai ditampilkan secara normal di chilipeppr:


gambar


Selanjutnya, jalankan autoprobe, jangan lupa untuk menentukan jarak dari mana untuk menurunkan sampel, dan kedalamannya. Dalam kasus saya, saya menunjukkan bahwa itu harus diturunkan dari 1 hingga –2 mm. Batas bawah tidak begitu penting, dapat ditetapkan setidaknya –10, tetapi saya tidak akan menyarankan: beberapa kali saya tidak berhasil menetapkan titik awal untuk memulai tes, dan titik ekstrim berada di luar papan. Jika kedalamannya lebih besar, maka pengukir bisa patah. Dan itu hanya kesalahan. Tingkat batas atas secara langsung tergantung pada berapa lama akan mengukur permukaan. Dalam kasus saya, pada kenyataannya, papan hampir tidak pernah melampaui 0,25 mm ke atas atau ke bawah, tetapi 1 mm entah bagaimana lebih dapat diandalkan. Klik run yang dihargai dan jalankan ke router untuk bermeditasi:


gambar


Dan di antarmuka chilipeppr, permukaan yang sedikit diukur muncul:


gambar


Di sini perlu diperhatikan bahwa semua nilai dalam Z dikalikan dengan 50, agar dapat memvisualisasikan permukaan yang dihasilkan dengan lebih baik. Ini adalah parameter khusus, tetapi 10 dan 50 berfungsi dengan baik menurut saya. Cukup sering saya menemukan fakta bahwa satu titik jauh lebih tinggi daripada yang Anda harapkan darinya. Secara pribadi, saya mengaitkan ini dengan fakta bahwa sensor menangkap ujung dan memberikan positif palsu. Manfaat chilipeppr memungkinkan Anda untuk menurunkan peta ketinggian dalam bentuk json, Anda dapat memperbaikinya dengan tangan Anda setelah itu, dan kemudian memuatnya dengan tangan Anda. Selanjutnya, klik tombol "Kirim GCode Level-Otomatis ke Ruang Kerja" - dan kode yang diperbaiki sudah dimuat dalam lada:


 N40 G1 X 2.6948 Y 34.1118 Z0.1047 (al new z) N41 G1 X 2.7396 Y 34.0036 Z0.1057 (al new z) N42 G1 X 2.7488 Y 31.8518 Z0.1077 (al new z) N43 G1 X 3.0183 Y 31.8499 Z0.1127 (al new z) N44 G1 X 3.0695 Y 31.8225 Z0.1137 (al new z) N45 G1 X 3.0968 Y 31.7713 Z0.1142 (al new z) 

Pemindahan kode Z telah ditambahkan ke kode, yang harus mengkompensasi kekasaran permukaan.


Pemilihan parameter milling


Saya mulai milling, saya mendapatkan hasil ini:


gambar


Di sini Anda dapat melihat tiga poin sekaligus:


  1. Masalah dengan kekasaran permukaan hilang: semuanya dipotong (lebih tepatnya, tergores) hingga kedalaman yang hampir sama, tidak ada celah di mana pun, dan tidak ada tempat yang terkubur terlalu banyak.
  2. Kedalaman tidak cukup: 0,05 mm jelas tidak cukup untuk kertas ini. Papan, omong-omong, adalah beberapa binatang yang tidak diketahui dengan AliExpress, ketebalan tembaga tidak ditunjukkan di sana. Lapisan tembaga berbeda, yang paling umum - dari 18 hingga 140 mikron (0,018-0,14 mm).
  3. Pemukulan pengukir terlihat jelas.

Tentang pendalaman. Sangat mudah untuk mengambil seberapa dalam pengukir harus diturunkan. Tetapi ada kekhususan. Pengukir kerucut memiliki bentuk segitiga dalam proyeksi. Di satu sisi, sudut informasi ke titik kerja menentukan seberapa sulit untuk mematahkan alat dan berapa lama itu akan hidup, dan di sisi lain, semakin besar sudut, semakin lebar potongan pada kedalaman tertentu.


gambar


Rumus untuk menghitung lebar pemotongan untuk kedalaman tertentu terlihat seperti ini (tidak sopan diambil dari reprap.org dan diperbaiki):


 2 * penetration depth * tangens (tool tip angle) + tip width 

Kami mempertimbangkannya: untuk pengukir dengan sudut 10 derajat dan titik kontak 0,1 mm dengan kedalaman 0,1 mm, kami mendapatkan lebar potongan hampir 0,15 mm. Berdasarkan ini, ngomong-ngomong, kita bisa memperkirakan berapa jarak minimum antara trek akan membuat pengukir yang dipilih pada foil dari ketebalan yang dipilih. Baik dan tenang, bahkan jika Anda tidak membutuhkan jarak yang sangat kecil di antara trek, masih tidak layak menurunkan pemotong terlalu dalam, karena pemotong fiberglass sangat terang-terangan bahkan dari paduan keras.


Yah, masih ada momen lucu. Misalkan kita memiliki dua track yang terpisah 0,5 mm. Ketika kita menjalankan pcb2gcode, itu akan melihat nilai parameter offset Toolpath (berapa banyak yang menyimpang dari trek saat milling) dan benar-benar membuat dua lintasan di antara trek, dipisahkan oleh (0,5 - 2 * toolpath_offset) mm, di antara mereka akan ada (melainkan istirahat saja) sepotong tembaga, dan itu akan menjadi jelek. Jika toolpath_offset dibuat lebih besar dari jarak antar trek, pcb2gcode akan memberikan peringatan, tetapi itu hanya akan menghasilkan satu baris di antara trek. Secara umum, untuk aplikasi saya perilaku ini lebih disukai, karena trek lebih lebar, pemotong kurang - keindahan. Benar, mungkin ada masalah dengan komponen smd, tetapi tidak mungkin.


Ada kasus yang jelas dari perilaku ini: jika Anda mengatur toolpath_offset yang sangat besar, maka kita mendapatkan papan sirkuit tercetak dengan melihat diagram Voronoi. Setidaknya - ini indah;) Anda dapat melihat efek pada tangkapan layar pertama dari pcb2gcode yang saya berikan. Ini menunjukkan bagaimana tampilannya.


Sekarang tentang pemukulan pemahat. Ini yang saya sebut sia-sia. Spindle sama sekali tidak buruk, dan tentu saja itu tidak terlalu keras. Di sini, lebih tepatnya, ujung pengukir, ketika bergerak, membungkuk dan melompat di antara titik-titik, memberikan gambar aneh dengan titik-titik di sini. Ide pertama dan utama adalah bahwa pabrik tidak punya waktu untuk memotong dan karena itu melompat. Googling yang mudah menunjukkan bahwa orang-orang menggiling papan sirkuit tercetak dengan spindle pada putaran 50k dengan kecepatan sekitar 1000 mm / menit. Spindel saya memberikan 10k tanpa beban, dan kita dapat mengasumsikan bahwa perlu untuk memotong pada kecepatan 200 mm / menit.


Hasil dan Kesimpulan


Dengan mempertimbangkan semua ini, saya mengukur PCB baru, mulai milling dan dapatkan hasil ini:


gambar


Bagian atas persis sama dengan yang keluar dari pemotong penggilingan, bagian bawah - setelah memegangnya dengan batu asah biasa beberapa kali. Seperti yang Anda lihat, di tiga tempat rel tidak memotong. Secara umum, lebar trek mengapung di seluruh papan. Ini masih perlu ditangani, tetapi saya memiliki asumsi tentang apa alasannya. Pada awalnya saya memperbaiki papan pada selotip dua sisi, dan itu sering pergi. Kemudian di beberapa tempat aku meraih ujung kepala sekrup. Tampaknya tetap lebih baik, tetapi masih bermain sedikit. Saya menduga bahwa pada saat penggilingan ditekan ke situs dan karena ini, pada kenyataannya, tidak dipotong.


gambar


Secara umum, ini semua memiliki prospek. Ketika proses selesai, pembangunan DEM membutuhkan waktu sekitar lima hingga tujuh menit, kemudian penggilingan itu sendiri membutuhkan beberapa menit. Tampaknya Anda dapat melakukan percobaan lebih lanjut. Tapi kemudian Anda bisa melakukan pengeboran di mesin yang sama. Masih membeli paku keling, dan akan ada kebahagiaan! Jika topiknya menarik, maka saya dapat menulis artikel lain tentang pengeboran, papan bilateral, dll.

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


All Articles